:root{
  --bg:#120B06;--bg2:#22160E;--surface:#2A1C12;--surface2:#3A261A;--cream:#F5ECDC;--cream2:#F8EBD5;--muted:#CBBBA7;
  --amber:#F5A524;--amber2:#F5B83C;--amber3:#B8780F;--green:#10B981;--green2:#0A9D6A;--line:rgba(245,236,220,.14);
  --blue:#2A5BD1;--red:#DC3C2E;--ludo-green:#176B34;--yellow:#F0C93A;--ink:#160B05;--shadow:0 28px 90px rgba(0,0,0,.42);
  --display:"Bricolage Grotesque","Arial Narrow",Inter,system-ui,sans-serif;--body:"Hanken Grotesk",Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:var(--bg);color:var(--cream);font-family:var(--body);overflow:hidden}button,input,select{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.app{position:relative;width:100%;height:100%;overflow:hidden;background:var(--bg)}
.world-scene{position:absolute;inset:0;overflow:hidden;perspective:1000px;transition:transform .85s cubic-bezier(.2,.75,.25,1),filter .5s ease}

.road{position:absolute;left:-5%;right:-5%;bottom:0;height:25%;background:linear-gradient(#2c2928,#1e1f20);transform:skewY(-1deg);z-index:2;box-shadow:inset 0 14px 35px rgba(0,0,0,.4)}.shop{position:absolute;z-index:3;bottom:23%;border:1px solid rgba(0,0,0,.28);box-shadow:0 30px 70px rgba(0,0,0,.35)}@keyframes steam{0%{opacity:0;transform:translateY(12px) scale(.7)}50%{opacity:.7}100%{opacity:0;transform:translateY(-32px) scale(1.4)}}
.c1{width:90%;height:43%;top:4%;left:0}.c2{width:74%;height:36%;top:0;left:38%}.danfo{position:absolute;z-index:5;left:-16%;bottom:9%;width:12%;height:11%;background:linear-gradient(#e4b619 0 62%,#2a2621 62%);border:4px solid #26201a;animation:danfo 22s linear infinite;box-shadow:0 14px 22px rgba(0,0,0,.32)}.danfo:before{content:"";position:absolute;left:0;right:0;top:19%;height:10%;background:#26201a}@keyframes danfo{0%{transform:translateX(0)}46%{transform:translateX(980%)}46.1%{transform:scaleX(-1) translateX(-980%)}92%{transform:scaleX(-1) translateX(0)}100%{transform:translateX(0)}}
@keyframes bob{50%{transform:translateY(-3px)}}
.stool{position:absolute;width:10%;height:17%;background:#4f2d1b;border-radius:40%;bottom:-10%;box-shadow:0 8px 20px rgba(0,0,0,.45)}
/* Ikeja */

/* Final */

.world-vignette{position:absolute;inset:0;z-index:8;background:linear-gradient(180deg,rgba(18,11,6,.12),transparent 34%,rgba(18,11,6,.14) 55%,rgba(18,11,6,.68) 100%),radial-gradient(circle at 50% 38%,transparent 0 35%,rgba(18,11,6,.45) 94%);pointer-events:none}.app[data-phase="lobby"] .world-scene{transform:scale(1.08) translateY(-2%);filter:saturate(.9) brightness(.72)}
/* Shell */
.topbar{position:absolute;z-index:20;left:18px;right:18px;top:14px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.topbar>*{pointer-events:auto}.brand-button{border:0;background:transparent;display:flex;align-items:center;gap:10px;padding:0;text-align:left}.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,var(--green),var(--green2));display:grid;place-items:center;color:#06261a;font:900 14.5px var(--display);box-shadow:0 10px 28px rgba(16,185,129,.18)}.brand-copy b{display:block;font:800 13.9px var(--display);letter-spacing:.08em}.brand-copy small{display:block;color:#d6c7b4;font-size:11.7px;letter-spacing:.06em;margin-top:2px}.topbar-actions{display:flex;align-items:center;gap:7px}.top-pill,.icon-button{border:1px solid var(--line);background:rgba(25,15,9,.78);backdrop-filter:blur(15px);box-shadow:0 12px 35px rgba(0,0,0,.18)}.top-pill{height:38px;border-radius:999px;padding:0 11px;display:flex;gap:6px;align-items:center;font-size:12.2px}.top-pill b{font-size:12.2px}.top-pill small{font-size:11.2px;color:var(--muted)}.coin-dot{color:var(--amber)}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(16,185,129,.12)}.icon-button{width:38px;height:38px;border-radius:13px}.identity-card{position:absolute;z-index:18;left:18px;top:70px;width:255px;padding:11px;border:1px solid var(--line);background:rgba(31,19,11,.82);backdrop-filter:blur(16px);border-radius:18px;display:grid;grid-template-columns:48px 1fr 20px;gap:10px;align-items:center;text-align:left;box-shadow:var(--shadow)}.avatar-chip{position:relative;width:48px;height:48px;border-radius:15px;background:linear-gradient(145deg,#e0b25e,#793e7e);overflow:hidden}.avatar-head{position:absolute;width:17px;height:17px;border-radius:50%;background:#5b3528;left:16px;top:7px}.avatar-body{position:absolute;left:8px;right:8px;bottom:-4px;height:28px;border-radius:45% 45% 8px 8px;background:linear-gradient(135deg,#6f2f8b,#f5a524)}.identity-copy b{display:block;font-size:12.8px}.identity-copy span{display:block;color:var(--muted);font-size:11.7px;margin:2px 0}.identity-copy em{font-style:normal;color:var(--amber);font-size:11.4px;font-weight:800}.identity-arrow{font-size:20px;color:#c7b79f}.venue-chip{position:absolute;z-index:15;left:50%;top:76px;transform:translateX(-50%);border:1px solid var(--line);background:rgba(18,11,6,.65);backdrop-filter:blur(14px);padding:7px 11px;border-radius:999px;display:flex;align-items:center;gap:6px;font-size:11.7px;white-space:nowrap}.venue-chip small{color:var(--muted)}.pin-dot{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 4px rgba(245,165,36,.1)}.live-rail{position:absolute;z-index:17;right:18px;top:70px;width:min(330px,30vw);display:grid;gap:7px}.live-card{border:1px solid var(--line);background:rgba(31,19,11,.80);backdrop-filter:blur(15px);border-radius:15px;padding:9px 10px;display:grid;grid-template-columns:32px 1fr auto;gap:9px;align-items:center;text-align:left;box-shadow:0 12px 32px rgba(0,0,0,.16);transition:.2s}.live-card:hover{transform:translateX(-3px);border-color:rgba(245,165,36,.38)}.live-icon{width:32px;height:32px;border-radius:10px;background:rgba(245,165,36,.10);display:grid;place-items:center;color:var(--amber);font-weight:900}.live-card b{font-size:12.2px;display:block}.live-card small{display:block;color:var(--muted);font-size:11.6px;margin-top:2px}.live-card em{font-style:normal;color:var(--green);font-size:11.2px;font-weight:900}.hero{position:absolute;z-index:16;left:50%;bottom:96px;transform:translateX(-50%);width:min(760px,88vw);text-align:center;text-shadow:0 14px 38px rgba(0,0,0,.45)}.hero-kicker,.eyebrow{font-size:11.7px;font-weight:900;letter-spacing:.16em;color:var(--green);text-transform:uppercase}.hero h1{font:800 clamp(42px,5.7vw,82px)/.88 var(--display);letter-spacing:-.055em;margin:8px 0 10px}.hero h1 span{color:#f6ddb6}.hero p{font-size:13.6px;line-height:1.45;color:#eadac4;max-width:590px;margin:0 auto 15px}.hero-actions{display:flex;gap:8px;justify-content:center}.primary-cta,.secondary-cta{height:62px;border-radius:18px;padding:0 26px;display:flex;flex-direction:column;justify-content:center;align-items:center}.primary-cta{min-width:320px;border:0;background:linear-gradient(180deg,var(--green),var(--green2));color:#06271A;box-shadow:0 18px 40px rgba(16,185,129,.22),inset 0 1px rgba(255,255,255,.22)}.primary-cta span{font:900 17px var(--display)}.primary-cta small{font-size:11.4px;font-weight:800;opacity:.8}.secondary-cta{min-width:150px;border:1px solid var(--line);background:rgba(30,19,12,.82);backdrop-filter:blur(12px)}.secondary-cta span{font:800 13.4px var(--display)}.secondary-cta small{font-size:11.4px;color:var(--muted);margin-top:2px}.hero-micro{font-size:11.4px;color:#cab9a1;margin-top:8px}.world-pulse{position:absolute;z-index:15;left:18px;bottom:20px;border:1px solid var(--line);background:rgba(18,11,6,.76);backdrop-filter:blur(12px);border-radius:14px;padding:9px 11px;display:flex;gap:8px;align-items:center;max-width:360px;box-shadow:0 10px 28px rgba(0,0,0,.16)}.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(16,185,129,.1)}.world-pulse b,.world-pulse span{font-size:11.6px}.world-pulse span{color:var(--muted);margin-left:4px}.nav-dock{position:absolute;z-index:19;left:50%;bottom:14px;transform:translateX(-50%);display:flex;gap:3px;padding:5px;border:1px solid var(--line);background:rgba(18,11,6,.88);backdrop-filter:blur(18px);border-radius:20px;box-shadow:var(--shadow)}.nav-dock button{border:0;background:transparent;color:var(--muted);min-width:66px;padding:8px 9px;border-radius:13px;font-size:11.4px;font-weight:800}.nav-dock button:hover{background:rgba(255,255,255,.08);color:var(--cream)}.nav-dock i{display:block;font-style:normal;font-size:14.5px;color:var(--amber);margin-bottom:2px}
/* Sheets */
.sheet-backdrop{position:absolute;z-index:70;inset:0;display:none;align-items:flex-end;justify-content:center;background:rgba(7,4,2,.58);backdrop-filter:blur(8px)}.sheet-backdrop.open{display:flex}.sheet{width:min(1080px,calc(100% - 24px));max-height:85%;overflow:auto;margin:0 12px 14px;background:#1B110A;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);padding:20px}.sheet-header{position:sticky;top:-20px;z-index:4;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:1px 0 14px;background:linear-gradient(#1B110A 82%,rgba(27,17,10,0))}.sheet-header h2{font:800 30px/1 var(--display);letter-spacing:-.035em;margin:4px 0 5px}.sheet-header p{margin:0;color:var(--muted);font-size:12.5px}.sheet-close{border:1px solid var(--line);background:var(--surface2);width:40px;height:40px;border-radius:13px;font-size:19px}.sheet-body{padding-bottom:3px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.card{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:14px}.card.gold{border-color:rgba(245,165,36,.4);background:linear-gradient(135deg,rgba(245,165,36,.07),var(--surface) 52%)}.card.green{border-color:rgba(16,185,129,.32)}.card h3,.card b{font-size:13.1px}.card p{font-size:12.2px;line-height:1.48;color:#e6d3b9}.card small{display:block;color:var(--muted);font-size:11.7px;margin-top:3px}.section-title{margin:18px 0 8px;color:var(--green);font-size:11.4px;letter-spacing:.15em;font-weight:900;text-transform:uppercase}.btnrow{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.mini{border:1px solid var(--line);background:var(--surface2);padding:8px 10px;border-radius:10px;font-size:11.4px;font-weight:900}.mini.primary{border:0;background:var(--green);color:#06271A}.mini.gold{border:0;background:var(--amber);color:#2a1704}.mini.ghost{background:transparent}.progress{height:6px;border-radius:999px;background:#3B2A1E;overflow:hidden;margin-top:8px}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--green),#65ddb1)}.metric{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}.metric strong{font:800 24px var(--display)}.metric small{margin:0;color:var(--muted)}
/* Journey */
.journey-layout{display:grid;grid-template-columns:1.12fr .88fr;gap:12px}.journey-map{position:relative;min-height:470px;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:radial-gradient(circle at 58% 36%,rgba(245,165,36,.13),transparent 25%),linear-gradient(155deg,#281b12,#0c1514)}.journey-map:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:34px 34px}.lagos-outline{position:absolute;left:8%;right:8%;top:16%;bottom:11%;border:1px solid rgba(245,236,220,.12);border-radius:55% 35% 46% 55%/45% 55% 40% 60%;transform:rotate(-8deg);background:linear-gradient(130deg,rgba(16,185,129,.06),rgba(245,165,36,.025));box-shadow:inset 0 0 70px rgba(16,185,129,.03)}.journey-road{position:absolute;height:4px;background:linear-gradient(90deg,var(--green),var(--amber));transform-origin:left;border-radius:99px;opacity:.75}.jr1{left:14%;top:72%;width:24%;transform:rotate(-31deg)}.jr2{left:33%;top:58%;width:25%;transform:rotate(-22deg)}.jr3{left:54%;top:48%;width:22%;transform:rotate(-15deg)}.jr4{left:71%;top:43%;width:13%;transform:rotate(16deg)}.journey-pin{position:absolute;width:42px;height:42px;border:0;border-radius:50%;background:#26170e;border:2px solid rgba(245,236,220,.22);display:grid;place-items:center;font:900 12.2px var(--display);box-shadow:0 8px 22px rgba(0,0,0,.28);z-index:2}.journey-pin.active{background:var(--green);color:#06271A;border-color:#7becbf;box-shadow:0 0 0 10px rgba(16,185,129,.09),0 8px 22px rgba(0,0,0,.3)}.journey-pin.open{border-color:rgba(245,165,36,.65);color:var(--amber)}.journey-pin.locked{opacity:.42}.jp1{left:12%;top:70%}.jp2{left:30%;top:54%}.jp3{left:52%;top:43%}.jp4{left:69%;top:37%}.jp5{left:79%;top:49%}.jp6{left:67%;top:62%}.jp7{left:49%;top:72%}.jp8{left:30%;top:79%}.jp9{left:17%;top:41%}.map-label{position:absolute;font-size:11.2px;color:var(--muted);letter-spacing:.05em}.ml1{left:10%;top:82%}.ml2{left:27%;top:64%}.ml3{left:50%;top:53%}.ml4{left:68%;top:28%}.journey-side{display:grid;gap:10px;align-content:start}.stage-card{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center}.stage-num{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#1e1510;border:1px solid var(--line);font:800 15px var(--display)}.stage-card.active .stage-num{background:rgba(16,185,129,.14);border-color:rgba(16,185,129,.35);color:var(--green)}.stage-card .status{font-size:11.2px;font-weight:900;color:var(--amber)}.street-tabs{display:flex;gap:6px;margin-bottom:10px}.tab-btn{border:1px solid var(--line);background:transparent;padding:8px 11px;border-radius:10px;font-size:11.4px;font-weight:900;color:var(--muted)}.tab-btn.on{background:var(--surface2);color:var(--cream);border-color:rgba(245,165,36,.3)}.race-row{display:grid;grid-template-columns:32px 1fr auto;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(245,236,220,.07)}.race-row:last-child{border-bottom:0}.race-pos{font:800 15px var(--display);color:var(--amber)}
/* Padi / Watch / leader */
.person-row{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(245,236,220,.08)}.person-row:last-child{border-bottom:0}.person-face{width:44px;height:44px;border-radius:14px;background:linear-gradient(145deg,#d3a34b,#6e347b);position:relative;overflow:hidden}.person-face:before{content:"";position:absolute;width:15px;height:15px;border-radius:50%;left:15px;top:6px;background:#5b3629}.person-face:after{content:"";position:absolute;left:7px;right:7px;bottom:-2px;height:27px;border-radius:45% 45% 6px 6px;background:#1a8c77}.person-row b{font-size:12.5px}.person-row small{color:var(--muted);font-size:11.6px}.online-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:5px}.table-preview{position:relative;min-height:180px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:linear-gradient(160deg,#312115,#17110c)}.preview-table{position:absolute;left:25%;right:25%;top:26%;bottom:19%;background:#5a321f;transform:perspective(600px) rotateX(50deg);border:5px solid #26150e}.preview-board{position:absolute;left:28%;right:28%;top:7%;bottom:7%;display:grid;grid-template:1fr 1fr/1fr 1fr;transform:rotate(45deg);border:3px solid #ddcfaf}.preview-board i:nth-child(1){background:var(--red)}.preview-board i:nth-child(2){background:var(--ludo-green)}.preview-board i:nth-child(3){background:var(--blue)}.preview-board i:nth-child(4){background:var(--yellow)}.preview-people span{position:absolute;width:26px;height:26px;border-radius:50%;background:#6a3b2a;border:4px solid #b47342}.pp1{left:16%;top:42%}.pp2{right:16%;top:42%}.pp3{left:47%;top:12%}.pp4{left:47%;bottom:4%}.table-meta{position:absolute;left:10px;right:10px;bottom:8px;display:flex;justify-content:space-between;gap:8px;align-items:end}.table-meta b{font-size:12px}.table-meta small{font-size:11.2px;color:var(--muted)}.leader-row{display:grid;grid-template-columns:32px 40px 1fr auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(245,236,220,.08)}.leader-rank{font:800 15px var(--display);color:var(--amber)}.leader-score{text-align:right}.leader-score b{display:block;font:800 16px var(--display)}.leader-score small{font-size:11px;color:var(--muted)}
/* Gist */
.week-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.day-card{min-height:118px;border:1px solid var(--line);border-radius:16px;padding:10px;background:var(--surface);position:relative}.day-card.today{border-color:rgba(16,185,129,.5);background:linear-gradient(160deg,rgba(16,185,129,.10),var(--surface))}.day-card .day{font:800 11.7px var(--display);color:var(--amber)}.day-card b{display:block;font-size:12.2px;margin:9px 0 4px}.day-card small{font-size:11.3px;color:var(--muted);line-height:1.35}.day-card .now{position:absolute;right:8px;top:8px;font-size:11px;color:var(--green);font-weight:900}.mission-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(245,236,220,.08)}.mission-row:last-child{border:0}.reward{font-size:11.2px;color:var(--amber);font-weight:900}
/* Shop */
.shop-layout{display:grid;grid-template-columns:minmax(320px,.95fr) 1.05fr;gap:12px}.shop-preview{position:sticky;top:66px;min-height:470px;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:radial-gradient(circle at 50% 20%,rgba(245,165,36,.13),transparent 30%),linear-gradient(#322117,#16100c)}.preview-character{position:absolute;left:50%;top:15%;width:130px;height:270px;transform:translateX(-50%)}.pc-head{position:absolute;left:43px;top:0;width:45px;height:52px;border-radius:48% 48% 43% 43%;background:#583328}.pc-body{position:absolute;left:19px;top:45px;width:92px;height:115px;border-radius:42% 42% 18% 18%;background:linear-gradient(135deg,#6f2f8b,#f5a524);border:2px solid rgba(255,255,255,.08)}.pc-leg{position:absolute;top:148px;width:34px;height:110px;background:#6f2f8b;border-radius:8px 8px 12px 12px}.pc-leg.l{left:27px}.pc-leg.r{right:27px}.pc-cap{position:absolute;left:43px;top:-6px;width:46px;height:22px;border-radius:50% 50% 10% 10%;background:var(--amber);display:none}.preview-prop{position:absolute;left:8%;right:8%;bottom:5%;height:23%;background:linear-gradient(135deg,#5b351f,#2d1a11);transform:perspective(600px) rotateX(58deg);border:5px solid #24140d}.preview-prop:after{content:"";position:absolute;left:35%;right:35%;top:10%;bottom:10%;background:#efe2c6;border:3px solid #c6b794}.preview-caption{position:absolute;left:14px;right:14px;bottom:14px;display:flex;justify-content:space-between;align-items:end}.preview-caption b{font:800 15px var(--display)}.catalog-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.shop-item{border:1px solid var(--line);background:var(--surface);border-radius:16px;padding:11px;text-align:left;min-height:98px;position:relative}.shop-item.selected{border-color:rgba(245,165,36,.55);box-shadow:inset 0 0 0 1px rgba(245,165,36,.15)}.shop-item b{font-size:12.2px}.shop-item small{font-size:11.4px;color:var(--muted);display:block;margin-top:3px}.shop-price{position:absolute;right:10px;bottom:10px;color:var(--amber);font-size:11.2px;font-weight:900}.swatch{width:35px;height:35px;border-radius:12px;margin-bottom:10px;background:linear-gradient(135deg,#783e92,#f5a524)}
/* Identity */
.identity-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:12px}.identity-stage{min-height:500px;border:1px solid var(--line);border-radius:24px;background:radial-gradient(circle at 50% 18%,rgba(245,165,36,.16),transparent 29%),linear-gradient(#312014,#150e0a);position:relative;overflow:hidden}.identity-stage .preview-character{top:18%;transform:translateX(-50%) scale(1.35)}.identity-stage-copy{position:absolute;left:18px;right:18px;bottom:18px}.identity-stage-copy h3{font:800 28px/1 var(--display);margin:0 0 5px}.identity-stage-copy p{font-size:12.2px;color:var(--muted);margin:0}.form-card{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:15px;margin-bottom:9px}.form-card label{display:block;font-size:11.2px;letter-spacing:.14em;color:var(--green);font-weight:900;margin-bottom:7px}.form-card input,.form-card select{width:100%;height:44px;border-radius:12px;border:1px solid var(--line);background:#1b110b;color:var(--cream);padding:0 12px;font-size:12.8px}.choice-row{display:flex;flex-wrap:wrap;gap:6px}.choice{border:1px solid var(--line);background:#24170f;color:var(--muted);padding:8px 10px;border-radius:10px;font-size:11.2px;font-weight:900}.choice.selected{border-color:rgba(245,165,36,.5);background:rgba(245,165,36,.1);color:var(--cream)}.dream-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.dream{border:1px solid var(--line);background:#21160f;padding:10px;border-radius:13px;text-align:left}.dream.selected{border-color:rgba(16,185,129,.5);background:rgba(16,185,129,.08)}.dream b{font-size:11.7px}.dream small{font-size:11px;color:var(--muted);display:block;margin-top:3px}
/* Ticket/share */
.ticket{max-width:780px;margin:auto;background:#f1dfbd;color:#24140d;border-radius:9px;padding:22px 25px;position:relative;box-shadow:0 24px 50px rgba(0,0,0,.28);background-image:linear-gradient(rgba(117,76,38,.035) 1px,transparent 1px);background-size:100% 6px}.ticket:before,.ticket:after{content:"";position:absolute;left:0;right:0;height:12px;background:radial-gradient(circle at 6px -1px,transparent 6px,#f1dfbd 6.5px) 0 0/14px 12px repeat-x}.ticket:before{top:-11px;transform:rotate(180deg)}.ticket:after{bottom:-11px}.ticket .serial{font-size:11.2px;letter-spacing:.12em;font-weight:900;color:#7c5d3f}.ticket h2{font:800 30px/1.02 var(--display);letter-spacing:-.03em;margin:10px 0}.ticket p{font-size:12.5px;line-height:1.48;color:#5f432b}.ticket-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:14px 0}.ticket-stat{border:1px dashed rgba(72,42,21,.25);border-radius:10px;padding:10px;text-align:center}.ticket-stat b{display:block;font:800 21px var(--display)}.ticket-stat small{font-size:11px;color:#6c4a31}.ticket-actions{display:flex;flex-wrap:wrap;gap:6px}.ticket-actions button{border:1px solid rgba(48,25,10,.18);background:rgba(255,255,255,.25);color:#28160b;padding:8px 10px;border-radius:9px;font-size:11.2px;font-weight:900}.ticket-actions .primary{background:#0a9d6a;color:#06271a;border:0}.ticket-actions .gold{background:#f5a524;border:0}.share-layout{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:start}.share-card{aspect-ratio:9/16;max-height:610px;border-radius:28px;overflow:hidden;position:relative;background:linear-gradient(180deg,#4f3021,#160e0a);border:1px solid rgba(245,236,220,.18);box-shadow:0 24px 50px rgba(0,0,0,.28)}.share-card .share-scene{position:absolute;inset:0;background:radial-gradient(circle at 50% 22%,rgba(245,165,36,.2),transparent 32%),linear-gradient(180deg,#6f4d35 0 43%,#2d1d14 43%)}.share-card .share-table{position:absolute;left:10%;right:10%;top:32%;height:26%;background:#59311d;transform:perspective(700px) rotateX(56deg);border:7px solid #28160d}.share-card .share-title{position:absolute;left:20px;right:20px;bottom:26px}.share-card .share-title .badge{display:inline-block;border-radius:999px;padding:5px 8px;background:var(--green);color:#06271a;font-size:11px;font-weight:900}.share-card .share-title h3{font:800 34px/.94 var(--display);letter-spacing:-.045em;margin:10px 0 8px}.share-card .share-title p{font-size:11.7px;color:#e4cfb3;line-height:1.45}.share-side .card{margin-bottom:8px}
/* Settings */
.setting-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(245,236,220,.08)}.setting-row:last-child{border:0}.setting-row b{font-size:12.2px}.setting-row small{font-size:11.5px;color:var(--muted);display:block;margin-top:2px}.toggle{width:40px;height:22px;border:0;border-radius:999px;background:#4b382c;position:relative}.toggle:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#d7c8b4;transition:.2s}.toggle.on{background:var(--green2)}.toggle.on:after{left:21px;background:#eafff7}
/* Lobby */
.lobby-layer{position:absolute;z-index:45;inset:0;display:none;align-content:center;justify-items:center;background:linear-gradient(180deg,rgba(18,11,6,.14),rgba(18,11,6,.5));backdrop-filter:blur(3px)}.lobby-layer.open{display:grid}.lobby-copy{text-align:center;margin-bottom:18px}.lobby-copy h2{font:800 clamp(28px,4vw,52px)/1 var(--display);margin:5px 0}.lobby-copy p{font-size:12.2px;color:#d6c4aa;margin:0}.lobby-table-wrap{width:min(680px,76vw);aspect-ratio:1.6;position:relative}.lobby-board{position:absolute;left:34%;right:34%;top:24%;bottom:24%;display:grid;grid-template:1fr 1fr/1fr 1fr;transform:rotate(45deg);background:#efe2c6;border:7px solid #321e14;box-shadow:0 20px 50px rgba(0,0,0,.4)}.lobby-board .red{background:var(--red)}.lobby-board .green{background:var(--ludo-green)}.lobby-board .blue{background:var(--blue)}.lobby-board .yellow{background:var(--yellow)}.lobby-board span{position:absolute;left:34%;right:34%;top:34%;bottom:34%;display:grid;place-items:center;background:#173743;color:#efe2c6;font:900 11.7px var(--display)}.seat-card{position:absolute;width:190px;padding:9px;border:1px solid var(--line);border-radius:14px;background:rgba(27,17,10,.88);backdrop-filter:blur(10px);display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:9px;align-items:center;box-shadow:0 12px 28px rgba(0,0,0,.22);transition:.25s}.seat-card .seat-avatar{grid-row:1/3;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#84508d,#dca545);position:relative}.seat-card .seat-avatar:after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:#5b3426;left:13px;top:6px}.seat-card b{font-size:12px}.seat-card small{font-size:11.2px;color:var(--muted)}.seat-card.empty{opacity:.55;filter:saturate(.4)}.seat-card.joined{opacity:1;filter:none;animation:seatpop .34s ease}.seat-you{left:50%;bottom:0;transform:translateX(-50%)}.seat-one{left:0;top:43%;transform:translateY(-50%)}.seat-two{right:0;top:43%;transform:translateY(-50%)}.seat-three{left:50%;top:0;transform:translateX(-50%)}@keyframes seatpop{from{transform:scale(.88);opacity:.3}to{opacity:1}}.lobby-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;margin-top:18px}.chip-action,.ghost-action{border:1px solid var(--line);background:rgba(34,22,14,.86);backdrop-filter:blur(10px);padding:9px 12px;border-radius:11px;font-size:11.4px;font-weight:900}.ghost-action{background:transparent}
/* Match */
.match-layer{position:absolute;z-index:90;inset:0;background:#071019;display:none}.match-layer.open{display:block}.match-layer iframe{width:100%;height:100%;border:0;display:block}.match-shell-top{position:absolute;z-index:4;left:12px;right:12px;top:10px;display:flex;align-items:center;gap:9px;pointer-events:none}.match-shell-top>*{pointer-events:auto}.match-back{width:38px;height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(7,16,25,.78);backdrop-filter:blur(12px)}.match-shell-top div{border:1px solid rgba(255,255,255,.1);background:rgba(7,16,25,.78);backdrop-filter:blur(12px);border-radius:12px;padding:7px 10px}.match-shell-top b{display:block;font:800 11.7px var(--display);letter-spacing:.08em}.match-shell-top small{font-size:11px;color:#9bb0bb}.match-live{margin-left:auto;border:1px solid rgba(52,211,153,.22);background:rgba(7,16,25,.78);backdrop-filter:blur(12px);border-radius:999px;padding:7px 10px;font-size:11px;color:#9aeecb;font-weight:900}.match-live i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#34d399;margin-right:4px}.demo-end{position:absolute;z-index:5;right:14px;bottom:14px;border:1px solid rgba(52,211,153,.25);background:rgba(7,16,25,.84);color:#b6f4d9;border-radius:12px;padding:9px 12px;font-size:11.2px;font-weight:900;backdrop-filter:blur(12px)}
.toast{position:absolute;z-index:130;left:50%;bottom:86px;transform:translate(-50%,16px);opacity:0;pointer-events:none;background:#1d140d;border:1px solid var(--line);padding:10px 14px;border-radius:13px;font-size:11.7px;box-shadow:var(--shadow);transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
/* Responsive */
@media(max-width:820px){
  .topbar{left:12px;right:12px;top:10px}.brand-copy{display:none}.brand-mark{width:38px;height:38px;border-radius:12px}.streak-pill{display:none}.top-pill{height:36px;padding:0 9px}.identity-card{left:12px;top:59px;width:auto;max-width:210px;padding:8px 9px;grid-template-columns:39px 1fr}.identity-arrow{display:none}.avatar-chip{width:39px;height:39px;border-radius:12px}.avatar-head{left:12px;top:5px}.avatar-body{left:6px;right:6px}.identity-copy b{font-size:12px}.identity-copy span{font-size:11.2px}.identity-copy em{font-size:11px}.venue-chip{top:61px;right:12px;left:auto;transform:none}.venue-chip small{display:none}.live-rail{top:116px;right:12px;width:42%;gap:5px}.live-card{grid-template-columns:28px 1fr;padding:7px 8px}.live-card:nth-child(n+4){display:none}.live-card .live-icon{width:28px;height:28px}.live-card em{display:none}.live-card b{font-size:11.4px}.live-card small{font-size:11px}.hero{bottom:90px;width:calc(100% - 24px);text-align:left}.hero-kicker{font-size:11.2px}.hero h1{font-size:clamp(38px,13vw,60px);max-width:500px}.hero p{margin-left:0;font-size:12.5px;max-width:500px}.hero-actions{justify-content:flex-start}.primary-cta{min-width:0;flex:1;height:58px}.secondary-cta{min-width:105px;height:58px}.hero-micro{font-size:11px}.world-pulse{display:none}.nav-dock{left:12px;right:12px;bottom:10px;transform:none;justify-content:space-between;border-radius:17px}.nav-dock button{min-width:0;flex:1;padding:7px 4px}.journey-layout,.shop-layout,.identity-layout,.share-layout{grid-template-columns:1fr}.journey-map{min-height:380px}.shop-preview{position:relative;top:auto;min-height:390px}.identity-stage{min-height:390px}.week-strip{grid-template-columns:repeat(2,1fr)}.week-strip .day-card:last-child{grid-column:1/-1}.grid4{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:1fr}.sheet{max-height:87%;padding:16px;border-radius:22px 22px 18px 18px;margin:0 8px 8px;width:calc(100% - 16px)}.sheet-header{top:-16px}.sheet-header h2{font-size:25px}.lobby-table-wrap{width:94vw;aspect-ratio:.9}.lobby-board{left:27%;right:27%;top:31%;bottom:31%}.seat-card{width:145px}.seat-one{left:0;top:45%}.seat-two{right:0;top:45%}.seat-three{top:3%}.seat-you{bottom:3%}.ticket{padding:20px 16px}.ticket h2{font-size:25px}.ticket-stats{grid-template-columns:repeat(3,1fr)}.share-card{max-height:none;width:min(310px,100%);margin:auto}.journey-side{grid-template-columns:1fr}.hero h1 span{display:inline}.match-shell-top{top:7px;left:7px;right:7px}.demo-end{bottom:8px;right:8px}
}
@media(max-width:430px){.live-rail{width:47%}.live-card:nth-child(n+3){display:none}.hero{bottom:87px}.hero h1{font-size:44px}.hero p{max-width:88%;margin-right:auto}.secondary-cta{min-width:96px;padding:0 14px}.top-pill.live-pill small{display:none}.top-pill.live-pill b{font-size:11.2px}.venue-chip{font-size:11.2px}.nav-dock button span{font-size:11px}.shop-grid{grid-template-columns:1fr}.dream-grid{grid-template-columns:1fr}.ticket-stats{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.world-scene{transition:none!important}}
/* World-attached interactions: the product can be entered through the place, not only menus. */


/* Spectate mode */
.spectate-layer{position:absolute;z-index:88;inset:0;display:none;background:radial-gradient(circle at 50% 15%,#5b3b25 0,#21150e 45%,#100a07 100%);overflow:hidden}.spectate-layer.open{display:block}.spectate-top{position:absolute;z-index:5;left:14px;right:14px;top:12px;display:flex;align-items:center;gap:10px}.spectate-top>div{background:rgba(18,11,6,.74);border:1px solid var(--line);border-radius:12px;padding:8px 11px;backdrop-filter:blur(10px)}.spectate-top b{display:block;font:800 11.7px var(--display);letter-spacing:.08em}.spectate-top small{display:block;font-size:11.2px;color:var(--muted)}.spectate-back,.spectate-seat{border:1px solid var(--line);background:rgba(18,11,6,.82);border-radius:12px;padding:10px 12px;font-size:11.2px;font-weight:900}.spectate-seat{margin-left:auto;background:var(--green2);border-color:transparent;color:#061c13}.spectate-world{position:absolute;inset:0;perspective:950px}.spectate-table-3d{position:absolute;left:50%;top:52%;width:min(52vw,680px);aspect-ratio:1.5;transform:translate(-50%,-50%) rotateX(58deg);background:#4b2b1b;border:10px solid #2a1710;border-radius:7px;box-shadow:0 35px 90px #0009}.spectate-board{position:absolute;left:28%;right:28%;top:8%;bottom:8%;display:grid;grid-template:1fr 1fr/1fr 1fr;transform:rotate(45deg);background:#efe2c6;border:6px solid #24150f}.spectate-board i:nth-child(1){background:var(--red)}.spectate-board i:nth-child(2){background:var(--ludo-green)}.spectate-board i:nth-child(3){background:var(--blue)}.spectate-board i:nth-child(4){background:var(--yellow)}.spectate-board span{position:absolute;inset:34%;display:grid;place-items:center;background:#163743;color:#efe2c6;font:900 11.7px var(--display)}.spectate-player{position:absolute;width:150px;text-align:center}.spectate-player span{display:block;width:58px;height:82px;margin:auto;border-radius:38% 38% 16% 16%;background:linear-gradient(#60392c 0 25%,#7a3b9d 25% 70%,#2a201a 70%)}.spectate-player b,.spectate-player small{display:block;background:rgba(18,11,6,.78);width:max-content;max-width:150px;margin:auto;padding:3px 7px}.spectate-player b{font-size:11.4px;border-radius:8px 8px 0 0}.spectate-player small{font-size:11px;color:var(--muted);border-radius:0 0 8px 8px}.sp1{left:12%;top:42%}.sp2{right:12%;top:42%}.sp3{left:43%;top:12%}.sp4{left:43%;bottom:6%}.spectate-rival{position:absolute;left:50%;top:17%;transform:translateX(-50%);padding:8px 12px;border-radius:999px;background:rgba(18,11,6,.78);border:1px solid var(--line);font-size:11.2px;font-weight:800}.cheer-tray{position:absolute;z-index:6;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:6px;align-items:center;padding:7px;border-radius:15px;background:rgba(18,11,6,.82);border:1px solid var(--line);backdrop-filter:blur(12px)}.cheer-tray span{font-size:11px;color:var(--muted);font-weight:900;padding:0 6px}.cheer-tray button{border:1px solid var(--line);background:#2a1c12;border-radius:10px;padding:8px 10px;font-size:11px;font-weight:900}.cheer-bubble{position:absolute;z-index:7;left:50%;top:31%;transform:translate(-50%,10px);opacity:0;background:var(--cream);color:var(--ink);padding:9px 13px;border-radius:14px;font:800 12.2px var(--display);transition:.2s}.cheer-bubble.show{opacity:1;transform:translate(-50%,0)}
.leader-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:9px}.leader-tabs button{border:1px solid var(--line);background:#24170f;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900}.leader-tabs button.on{background:var(--amber);color:var(--ink);border-color:transparent}
.announcement-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid rgba(245,236,220,.08)}.announcement-row:first-child{border-top:0}.announcement-like{border:1px solid var(--line);background:#2a1c12;border-radius:999px;padding:7px 9px;font-size:11px;font-weight:900}.announcement-like.liked{background:var(--green2);color:#061c13;border-color:transparent}
@media(max-width:820px){.spectate-table-3d{width:88vw;top:49%}.spectate-player{width:112px}.spectate-player span{width:42px;height:60px}.sp1{left:2%;top:39%}.sp2{right:2%;top:39%}.sp3{left:36%;top:15%}.sp4{left:36%;bottom:13%}.spectate-seat{font-size:11px;padding:9px}.cheer-tray{left:10px;right:10px;transform:none;overflow-x:auto;justify-content:flex-start}.cheer-tray span{display:none}.spectate-rival{top:24%;white-space:nowrap}.spectate-top>div{min-width:0}.spectate-top>div b,.spectate-top>div small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
.match-pause{border:1px solid rgba(255,255,255,.12);background:rgba(7,16,25,.78);color:#dbe7ea;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900;backdrop-filter:blur(12px)}
/* R3 — complete-product depth: return loop, venue travel, crown ceremony, offline state. */
.network-pill{gap:6px}.return-banner{position:absolute;z-index:27;left:50%;top:124px;transform:translateX(-50%);display:flex;align-items:center;gap:9px;min-width:330px;max-width:min(560px,58vw);padding:9px 12px;border:1px solid rgba(245,184,60,.34);background:rgba(34,22,14,.84);backdrop-filter:blur(14px);border-radius:15px;box-shadow:0 14px 42px rgba(0,0,0,.25);text-align:left}.return-banner[hidden]{display:none}.return-dot{width:9px;height:9px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 6px rgba(245,165,36,.09)}.return-banner span:nth-child(2){min-width:0;flex:1}.return-banner b{display:block;font:800 11.2px var(--display);letter-spacing:.12em;color:var(--amber2)}.return-banner small{display:block;font-size:11.2px;color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.return-banner em{font-style:normal;font-size:11px;color:var(--green);font-weight:900;white-space:nowrap}
.app.world-traveling .world-scene{transform:scale(1.035) translateY(8px);filter:blur(2px) brightness(.82)}
.crown-layer{position:absolute;z-index:120;inset:0;display:none;place-items:center;background:radial-gradient(circle at 50% 30%,rgba(245,165,36,.18),rgba(6,14,12,.91) 52%,rgba(5,9,8,.97));padding:20px}.crown-layer.open{display:grid}.crown-stage{position:relative;width:min(620px,94vw);text-align:center;padding:34px 28px 30px;border:1px solid rgba(245,184,60,.28);border-radius:30px;background:linear-gradient(180deg,rgba(42,28,18,.95),rgba(18,11,6,.97));box-shadow:0 40px 120px rgba(0,0,0,.6);overflow:hidden}.crown-stage:before,.crown-stage:after{content:"";position:absolute;top:-30%;width:32%;height:150%;background:linear-gradient(180deg,rgba(245,184,60,.16),transparent 68%);transform:rotate(18deg);filter:blur(2px)}.crown-stage:before{left:3%}.crown-stage:after{right:3%;transform:rotate(-18deg)}.crown-close{position:absolute;right:14px;top:14px;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:#24170f;font-size:20px;z-index:2}.crown-kicker{font:800 11.2px var(--display);letter-spacing:.18em;color:var(--amber2)}.crown-mark{font-size:74px;line-height:1;margin:12px 0 2px;color:var(--amber);text-shadow:0 0 35px rgba(245,165,36,.32)}.crown-stage h2{font:800 clamp(34px,6vw,62px)/.95 var(--display);margin:6px 0}.crown-stage h3{font:800 24px var(--display);margin:10px 0 0;color:var(--green)}.crown-stage p{margin:4px 0 18px;color:var(--muted)}.champion-wall-card,.rule-pick{position:relative;z-index:1;text-align:left;padding:14px 16px;border-radius:16px;border:1px solid var(--line);background:#24170f;margin:10px 0}.champion-wall-card span,.rule-pick small{display:block;font-size:11px;letter-spacing:.12em;color:var(--muted);font-weight:900}.champion-wall-card b,.rule-pick b{display:block;font:800 18px var(--display);margin:4px 0}.champion-wall-card small,.rule-pick span{font-size:11.2px;color:var(--muted)}.rule-pick{border-color:rgba(16,185,129,.28);background:linear-gradient(180deg,rgba(10,157,106,.12),#24170f)}
.app.offline .live-rail{opacity:.18;pointer-events:none}.app.offline .live-pill{display:none}.app.offline .network-pill{display:flex!important}.app.offline .world-pulse{opacity:.45}.app.offline .hero-micro:after{content:" · OFFLINE VS BOTS";color:var(--amber)}
.game-library{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.game-card{position:relative;min-height:170px;padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#302015,#21150e);overflow:hidden}.game-card.live{border-color:rgba(16,185,129,.35);background:linear-gradient(180deg,rgba(10,157,106,.16),#21150e)}.game-card .game-glyph{font:800 42px/1 var(--display);opacity:.86}.game-card b{display:block;font:800 18px var(--display);margin:18px 0 4px}.game-card small{display:block;color:var(--muted);font-size:11.2px;line-height:1.35}.game-card em{position:absolute;right:10px;top:10px;font:900 11px var(--display);font-style:normal;letter-spacing:.08em;padding:5px 7px;border-radius:999px;background:#3b291c;color:var(--muted)}.game-card.live em{background:var(--green2);color:#071b13}.timeline{display:grid;gap:0}.timeline-row{display:grid;grid-template-columns:18px 1fr;gap:10px;position:relative;padding-bottom:14px}.timeline-row:not(:last-child):before{content:"";position:absolute;left:8px;top:18px;bottom:0;width:1px;background:rgba(245,236,220,.12)}.timeline-dot{width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:#3a261a;border:1px solid var(--line);font-size:11px}.timeline-row.current .timeline-dot{background:var(--amber);color:var(--ink)}.timeline-row b{display:block;font-size:11.7px}.timeline-row small{display:block;color:var(--muted);font-size:11.2px}.street-history{display:flex;gap:7px;overflow-x:auto;padding-bottom:4px}.street-history .history-chip{flex:0 0 auto;border:1px solid var(--line);background:#25180f;border-radius:13px;padding:9px 11px}.history-chip b{display:block;font-size:11.2px}.history-chip small{font-size:11px;color:var(--muted)}
@media(max-width:820px){.return-banner{top:108px;left:12px;right:12px;transform:none;min-width:0;max-width:none;padding:8px 10px}.return-banner em{display:none}.return-banner small{max-width:220px}.crown-stage{padding:28px 18px 22px}.game-library{grid-template-columns:repeat(2,1fr)}.game-card{min-height:145px}.network-pill small{display:none}}
@media(max-width:430px){.return-banner{top:104px}.return-banner b{font-size:11px}.return-banner small{max-width:180px}.game-library{grid-template-columns:1fr 1fr}.game-card{padding:13px;min-height:130px}.game-card b{font-size:15px}.game-card .game-glyph{font-size:34px}}
.tourney-bracket{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:10px}.bracket-col{display:grid;align-content:start;gap:7px}.bracket-col>span{font:900 11px var(--display);letter-spacing:.12em;color:var(--muted);padding:0 2px}.bracket-match{position:relative;padding:10px 11px;border:1px solid var(--line);background:#25180f;border-radius:12px;min-height:52px}.bracket-match:not(:last-child):after{content:"";position:absolute;right:-11px;top:50%;width:10px;height:1px;background:rgba(245,236,220,.18)}.bracket-match b,.bracket-match small{display:block}.bracket-match b{font-size:11.4px}.bracket-match small{font-size:11px;color:var(--muted);margin-top:2px}.bracket-match.hot{border-color:rgba(16,185,129,.3);background:rgba(10,157,106,.1)}.bracket-match.gold{border-color:rgba(245,165,36,.3);background:rgba(245,165,36,.08)}.final-lineup{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}.final-player{min-height:150px;padding:16px 10px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,#302015,#20140d);display:flex;flex-direction:column;justify-content:flex-end;text-align:center}.final-player>span{width:58px;height:58px;border-radius:18px;margin:auto auto 12px;display:grid;place-items:center;background:linear-gradient(135deg,#5d382a,#8b4e94);font:900 16px var(--display)}.final-player b{font-size:11.4px}.final-player small{font-size:11px;color:var(--muted);margin-top:3px}.bag-card{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin-bottom:9px;border-color:rgba(245,165,36,.24)!important;background:linear-gradient(135deg,rgba(184,120,15,.13),#25180f)!important}.bag-card b,.bag-card small{display:block}.bag-card b{font:800 13.4px var(--display);margin:3px 0}.bag-card small{font-size:11px;color:var(--muted)}
@media(max-width:820px){.tourney-bracket{grid-template-columns:1fr}.bracket-match:after{display:none}.final-lineup{grid-template-columns:repeat(2,1fr)}.final-player{min-height:125px}.bag-card{grid-template-columns:1fr}}
/* Keep world hotspots out from under the live-activity rail. */


/* R3 complete-product surfaces */
.games-pill{gap:6px}.game-shelf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.game-card{min-height:180px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(51,31,20,.96),rgba(24,15,10,.96));border-radius:22px;padding:18px;display:grid;grid-template-columns:88px 1fr;gap:14px;align-items:start}.game-card.live{border-color:rgba(16,185,129,.55)}.game-card.gold{border-color:rgba(245,165,36,.45)}.game-mark{width:82px;height:82px;border-radius:20px;display:grid;place-items:center;background:rgba(255,255,255,.055);border:1px solid var(--line);font:800 13.9px/1 var(--display);color:var(--cream);letter-spacing:.08em}.game-card.green .game-mark{background:linear-gradient(145deg,#10B981,#0A9D6A);color:#082118}.game-card.gold .game-mark{background:linear-gradient(145deg,#F5B83C,#B8780F);color:#271604}.game-card h3{font:800 22px/1 var(--display);margin:3px 0 7px}.game-card p{margin:0 0 8px;color:var(--muted)}
.activity-list{display:grid;gap:8px}.activity-row{width:100%;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:12px;border:1px solid var(--line);background:rgba(255,255,255,.035);color:var(--cream);padding:12px;border-radius:16px;text-align:left}.activity-row:hover{background:rgba(255,255,255,.055)}.activity-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:rgba(245,165,36,.12);color:var(--amber);font-weight:900}.activity-row span:nth-child(2){display:grid;gap:2px}.activity-row em{font:800 12.2px/1 var(--body);letter-spacing:.12em;color:var(--green);font-style:normal}.activity-row small{color:var(--muted)}
.street-name-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.street-name-grid .card{min-height:130px}.history-row{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.history-row:last-child{border-bottom:0}.history-place{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:rgba(245,165,36,.12);color:var(--amber);font-weight:900}.history-row.champion .history-place{background:linear-gradient(145deg,#F5B83C,#B8780F);color:#281703}.history-row small{display:block;color:var(--muted);margin-top:3px}.tourney-head{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bracket{margin-top:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bracket-player,.bracket-final{border:1px solid var(--line);background:rgba(255,255,255,.035);padding:11px;border-radius:15px;display:grid;gap:3px}.bracket-player span{font-size:12.2px;color:var(--amber);font-weight:800}.bracket-player small,.bracket-final small{color:var(--muted)}.bracket-final{grid-column:span 4;background:linear-gradient(145deg,rgba(16,185,129,.16),rgba(245,165,36,.1));text-align:center}.demo-offline .live-rail{opacity:.22;filter:saturate(.35);pointer-events:none}.demo-offline .live-dot{background:#888!important;box-shadow:none!important}.world-pulse[data-action]{cursor:pointer}
@media(max-width:720px){.game-shelf,.street-name-grid,.tourney-head,.bracket{grid-template-columns:1fr}.game-card{grid-template-columns:70px 1fr}.game-mark{width:64px;height:64px}.bracket-final{grid-column:auto}.games-pill{display:none}.activity-row{grid-template-columns:42px 1fr auto}.street-name-grid .card{min-height:auto}}

/* R4 — distinct placeholder venue worlds. These are intentionally replaceable by Marble assets later. */













.install-nudge{position:absolute;z-index:24;left:18px;top:151px;display:flex;align-items:center;gap:9px;min-width:280px;max-width:390px;padding:9px 10px;border:1px solid rgba(245,165,36,.26);border-radius:15px;background:rgba(31,18,9,.9);backdrop-filter:blur(14px);box-shadow:0 14px 34px rgba(0,0,0,.28);text-align:left}.install-nudge[hidden]{display:none}.install-nudge>span:first-child{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--green);color:#04251b;font-weight:900}.install-nudge b,.install-nudge small{display:block}.install-nudge b{font-size:11.7px;letter-spacing:.08em}.install-nudge small{font-size:11.2px;color:var(--muted);margin-top:2px}.install-nudge em{margin-left:auto;font:800 11.2px var(--display);color:var(--amber);font-style:normal}

.street-reveal-layer{position:absolute;z-index:70;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 50%,rgba(16,185,129,.13),rgba(10,6,4,.82) 55%);backdrop-filter:blur(12px);opacity:0;pointer-events:none;transition:.25s}.street-reveal-layer.open{opacity:1;pointer-events:auto}.street-reveal-card{position:relative;width:min(650px,calc(100% - 32px));padding:34px;border:1px solid rgba(245,165,36,.28);border-radius:28px;background:linear-gradient(160deg,#2a1c12,#120b06 72%);box-shadow:0 30px 90px rgba(0,0,0,.5);text-align:center}.street-reveal-card h2{font:900 clamp(46px,7vw,88px)/.92 var(--display);margin:8px 0;color:var(--cream)}.street-reveal-card p{color:var(--muted);font-size:14.5px}.street-reveal-card #streetRevealFrom{text-transform:uppercase;letter-spacing:.12em;font-size:11.7px;text-decoration:line-through;opacity:.75}.reveal-rings{position:relative;width:104px;height:104px;margin:8px auto 20px;display:grid;place-items:center}.reveal-rings i{position:absolute;inset:0;border:1px solid rgba(16,185,129,.35);border-radius:50%;animation:revealPulse 2.4s infinite ease-out}.reveal-rings i:nth-child(2){animation-delay:.55s}.reveal-rings i:nth-child(3){animation-delay:1.1s}.reveal-rings span{position:relative;z-index:2;width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,var(--green),#0a9d6a);color:#08241a;font:900 22px var(--display)}@keyframes revealPulse{0%{transform:scale(.55);opacity:.65}100%{transform:scale(1.35);opacity:0}}

.local-music-bar{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:13px;background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.18);margin-top:9px}.local-music-bar b,.local-music-bar small{display:block}.local-music-bar small{color:var(--muted);font-size:11.2px}.local-music-bar .btnrow{margin-left:auto}

@media(max-width:700px){.install-nudge{left:12px;right:12px;top:124px;min-width:0;max-width:none}.street-reveal-card{padding:28px 20px}.street-reveal-card h2{font-size:48px}}
.ticket-ledger{margin:12px 0;padding:12px 14px;border-top:1px dashed rgba(40,25,14,.28);border-bottom:1px dashed rgba(40,25,14,.28);color:#2a1c12}.ticket-ledger .eyebrow{color:#7d573a}.coin-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;font-size:12.2px;border-bottom:1px dotted rgba(42,28,18,.13)}.coin-line:last-child{border-bottom:0;font-size:13.4px}.coin-line b{font-family:var(--display)}


/* Round 0 v3 — premium Journey atlas, scalable Watch, national Shop */
.atlas-map{min-height:560px;background:radial-gradient(circle at 68% 44%,rgba(16,185,129,.08),transparent 26%),linear-gradient(155deg,#20150e,#081413 72%);box-shadow:inset 0 0 0 1px rgba(245,236,220,.03)}
.atlas-map .map-head{position:absolute;z-index:7;left:18px;right:18px;top:16px;display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.map-head b,.map-head small{display:block}.map-head b{font:800 15px var(--display);margin-top:3px}.map-head small{max-width:520px;color:var(--muted);font-size:11.4px;line-height:1.4;margin-top:3px}.map-legend{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.map-legend span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;font-weight:800}.map-legend i{width:14px;height:4px;border-radius:99px;background:var(--green)}.map-legend .lg-branch{background:var(--amber)}.map-legend .lg-current{width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 4px rgba(16,185,129,.12)}
.atlas-svg{position:absolute;left:12px;right:12px;top:82px;width:calc(100% - 24px);height:390px;overflow:visible}.atlas-land{stroke:rgba(245,236,220,.07);stroke-width:.35}.atlas-lagoon{stroke:rgba(125,211,220,.09);stroke-width:.25}.atlas-route-glow{stroke:rgba(16,185,129,.24);stroke-width:4.2;filter:url(#routeGlow);stroke-linecap:round;stroke-linejoin:round}.atlas-route{stroke:url(#atlasRouteGrad);stroke:var(--green);stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.6 1.1}.atlas-branch{stroke:var(--amber);stroke-width:.9;stroke-dasharray:2 1.5;opacity:.8}.atlas-region{fill:rgba(245,236,220,.28);font:700 2.2px var(--body);letter-spacing:.3px}.atlas-water-label{fill:rgba(148,214,220,.35);font:800 2.3px var(--display);letter-spacing:.28px}
.atlas-pin{position:absolute;z-index:8;left:var(--x);top:var(--y);transform:translate(-50%,-50%);min-width:80px;max-width:112px;padding:6px 7px 6px 27px;border:1px solid rgba(245,236,220,.16);border-radius:12px;background:rgba(18,11,6,.88);backdrop-filter:blur(10px);box-shadow:0 10px 28px rgba(0,0,0,.3);text-align:left}.atlas-pin>span{position:absolute;left:6px;top:50%;transform:translateY(-50%);width:16px;height:16px;border-radius:6px;display:grid;place-items:center;background:var(--surface2);color:var(--amber);font:900 11px var(--display)}.atlas-pin b,.atlas-pin small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.atlas-pin b{font:800 11px var(--display)}.atlas-pin small{font-size:11px;letter-spacing:.08em;color:var(--muted);margin-top:1px}.atlas-pin.active{border-color:rgba(16,185,129,.7);box-shadow:0 0 0 4px rgba(16,185,129,.08),0 14px 30px rgba(0,0,0,.4)}.atlas-pin.active>span{background:var(--green);color:#06271a}.atlas-pin.branch{border-color:rgba(245,165,36,.33)}.atlas-pin.future{opacity:.62}.atlas-pin:disabled{cursor:default}.atlas-final{position:absolute;z-index:9;right:18px;bottom:82px;display:flex;gap:8px;align-items:center;padding:9px 11px;border-radius:14px;border:1px solid rgba(245,165,36,.35);background:linear-gradient(135deg,rgba(245,165,36,.11),rgba(18,11,6,.88))}.atlas-final>span{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;background:var(--amber);color:#2a1704}.atlas-final b,.atlas-final small{display:block}.atlas-final b{font:800 11.7px var(--display)}.atlas-final small{font-size:11px;color:var(--muted);margin-top:2px}.atlas-note{position:absolute;z-index:9;left:16px;right:16px;bottom:14px;display:grid;grid-template-columns:150px 1fr;gap:12px;align-items:start;padding:11px 12px;border-top:1px solid rgba(245,236,220,.1);background:linear-gradient(90deg,rgba(18,11,6,.88),rgba(18,11,6,.55));backdrop-filter:blur(8px)}.atlas-note b{font:800 12.2px var(--display)}.atlas-note p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}.branch-card{border-style:dashed}
.premium-watch-head{border:1px solid rgba(16,185,129,.22);background:linear-gradient(135deg,rgba(16,185,129,.06),rgba(245,165,36,.025))}.watch-scale-strip{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:10px;align-items:center;margin:9px 0;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#17100b}.watch-scale-strip>span{color:var(--amber);font-weight:900}.watch-scale-strip b,.watch-scale-strip small{display:block}.watch-scale-strip b{font:800 11.6px var(--display)}.watch-scale-strip small{font-size:11px;color:var(--muted);margin-top:2px}.watch-section-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:6px 2px 8px;color:var(--muted);font-size:11px}.watch-section-head span{font-weight:800;color:var(--cream)}
.culture-filter{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.culture-filter-btn{border:1px solid var(--line);background:#1b120c;color:var(--muted);padding:8px 10px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.04em}.culture-filter-btn.on{background:var(--cream);color:#28170b;border-color:transparent}.culture-note{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:9px 11px;margin-bottom:8px;border-radius:12px;background:rgba(245,165,36,.055);border:1px solid rgba(245,165,36,.14)}.culture-note b{font:800 11.4px var(--display);color:var(--amber)}.culture-note span{font-size:11px;color:var(--muted);text-align:right}
@media(max-width:700px){.atlas-map{min-height:620px}.atlas-map .map-head{display:block}.map-legend{justify-content:flex-start;margin-top:8px}.atlas-svg{top:122px;height:350px}.atlas-pin{min-width:64px;max-width:86px;padding-left:24px}.atlas-pin b{font-size:11px}.atlas-pin small{font-size:11px}.atlas-final{right:10px;bottom:108px}.atlas-note{grid-template-columns:1fr;bottom:10px;gap:4px}.watch-scale-strip{grid-template-columns:1fr}.watch-scale-strip>span{display:none}.culture-note{display:block}.culture-note span{display:block;text-align:left;margin-top:3px}}

/* ROUND 0 v4 — Journey atlas redesign + persistent mobile navigation */
.journey-v4{display:grid;gap:12px}
.journey-command{display:grid;grid-template-columns:minmax(0,1.3fr) auto;gap:18px;align-items:end;padding:2px 2px 0}
.journey-command h3{font:800 clamp(22px,3vw,36px)/1 var(--display);letter-spacing:-.035em;margin:5px 0 6px}
.journey-command p{margin:0;max-width:690px;color:var(--muted);font-size:12.2px;line-height:1.5}
.journey-kpis{display:flex;gap:7px;align-items:stretch}
.journey-kpis span{min-width:92px;padding:9px 10px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));text-align:left}
.journey-kpis b,.journey-kpis small{display:block}.journey-kpis b{font:800 12.8px var(--display)}.journey-kpis small{margin-top:3px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em}
.journey-atlas-v4{position:relative;min-height:520px;overflow:hidden;border:1px solid rgba(245,236,220,.13);border-radius:26px;background:radial-gradient(circle at 67% 48%,rgba(16,185,129,.09),transparent 30%),linear-gradient(155deg,#17110c 0%,#0a1412 62%,#07100f 100%);box-shadow:inset 0 1px rgba(255,255,255,.03),0 18px 60px rgba(0,0,0,.28)}
.journey-atlas-v4:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(245,165,36,.035),transparent 24%,transparent 74%,rgba(16,185,129,.035)),radial-gradient(circle at 20% 20%,rgba(245,165,36,.06),transparent 24%)}
.atlas-v4-top{position:absolute;z-index:8;left:18px;right:18px;top:16px;display:flex;justify-content:space-between;align-items:center;gap:12px}.atlas-v4-top>div{display:flex;gap:6px;flex-wrap:wrap}.atlas-v4-top>small{color:var(--muted);font-size:11px;letter-spacing:.06em}
.atlas-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border-radius:999px;border:1px solid var(--line);font:900 11px var(--body);letter-spacing:.11em}.atlas-chip:before{content:"";width:18px;height:3px;border-radius:99px;background:currentColor}.atlas-chip.green{color:#4fd5a9;background:rgba(16,185,129,.07);border-color:rgba(16,185,129,.2)}.atlas-chip.amber{color:#f0ad42;background:rgba(245,165,36,.07);border-color:rgba(245,165,36,.2)}
.atlas-v4-svg{position:absolute;left:15px;right:15px;top:56px;width:calc(100% - 30px);height:385px;overflow:visible}.route-glow-v4{fill:none;stroke-width:3.8;filter:url(#glowV4);opacity:.24;stroke-linecap:round;stroke-linejoin:round}.route-line-v4{fill:none;stroke-width:1.05;stroke-linecap:round;stroke-linejoin:round}.route-glow-v4.core,.route-line-v4.core{stroke:#10B981}.route-glow-v4.mainland,.route-line-v4.mainland{stroke:#F5A524}.route-line-v4.mainland{stroke-dasharray:2 1.45}.atlas-label-v4{fill:rgba(245,236,220,.31);font:800 2.05px var(--body);letter-spacing:.33px}.atlas-water-v4{fill:rgba(128,215,224,.42);font:800 2.2px var(--display);letter-spacing:.28px}
.journey-stop{position:absolute;z-index:10;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:flex;align-items:center;gap:7px;max-width:132px;padding:6px 8px 6px 6px;border:1px solid rgba(245,236,220,.16);border-radius:13px;background:rgba(21,14,9,.91);backdrop-filter:blur(12px);box-shadow:0 10px 30px rgba(0,0,0,.28);text-align:left;touch-action:manipulation}.journey-stop .stop-dot{width:18px;height:18px;flex:0 0 auto;border-radius:7px;background:#3A261A;border:1px solid rgba(245,236,220,.16);box-shadow:inset 0 1px rgba(255,255,255,.05)}.journey-stop .stop-copy{min-width:0}.journey-stop small,.journey-stop b{display:block}.journey-stop small{font-size:11px;letter-spacing:.12em;color:var(--muted)}.journey-stop b{font:800 11px/1.05 var(--display);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.journey-stop em{font:900 11px var(--body);font-style:normal;letter-spacing:.11em;color:var(--green);margin-left:auto}.journey-stop.open{border-color:rgba(16,185,129,.28)}.journey-stop.open .stop-dot{background:var(--green);border-color:rgba(123,236,191,.65);box-shadow:0 0 0 5px rgba(16,185,129,.08)}.journey-stop.active{border-color:rgba(16,185,129,.72);box-shadow:0 0 0 4px rgba(16,185,129,.08),0 16px 34px rgba(0,0,0,.34)}.journey-stop.amber{border-color:rgba(245,165,36,.25)}.journey-stop.amber .stop-dot{background:#805213}.journey-stop.amber.open .stop-dot{background:var(--amber);box-shadow:0 0 0 5px rgba(245,165,36,.08)}.journey-stop.locked{opacity:.48}.journey-stop:disabled{cursor:default}
.journey-final-v4{position:absolute;z-index:9;right:18px;bottom:62px;display:flex;gap:9px;align-items:center;width:min(315px,44%);padding:10px 11px;border:1px solid rgba(245,165,36,.3);border-radius:16px;background:linear-gradient(135deg,rgba(245,165,36,.1),rgba(18,11,6,.9));box-shadow:0 16px 34px rgba(0,0,0,.3)}.journey-final-v4>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(145deg,#F5B83C,#B8780F);color:#2a1704;font-size:17px}.journey-final-v4 small,.journey-final-v4 b,.journey-final-v4 em{display:block}.journey-final-v4 small{font-size:11px;letter-spacing:.12em;color:var(--amber)}.journey-final-v4 b{font:800 12.8px var(--display);margin:2px 0}.journey-final-v4 em{font-style:normal;color:var(--muted);font-size:11px;line-height:1.3}
.journey-route-note{position:absolute;z-index:9;left:18px;right:18px;bottom:14px;display:grid;grid-template-columns:130px 1fr;gap:12px;align-items:start;padding-top:10px;border-top:1px solid rgba(245,236,220,.1)}.journey-route-note b{font:800 11.2px var(--display);color:var(--cream)}.journey-route-note span{color:var(--muted);font-size:11px;line-height:1.45}
.journey-rail-v4{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.journey-stage-v4{min-width:0;display:grid;grid-template-columns:32px 1fr auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.012));text-align:left;touch-action:manipulation}.journey-stage-v4>span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#24170f;border:1px solid var(--line);font:800 11.7px var(--display);color:var(--amber)}.journey-stage-v4 small,.journey-stage-v4 b,.journey-stage-v4 em{display:block}.journey-stage-v4 small{font:900 11px var(--body);letter-spacing:.11em;color:var(--green)}.journey-stage-v4 b{font:800 11.7px var(--display);margin:2px 0}.journey-stage-v4 em{font-style:normal;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.journey-stage-v4 strong{font:900 11px var(--body);color:var(--muted);letter-spacing:.08em}.journey-stage-v4.active{border-color:rgba(16,185,129,.5);background:linear-gradient(180deg,rgba(16,185,129,.1),rgba(255,255,255,.018))}.journey-stage-v4.open:not(.active) strong{color:var(--green)}.journey-stage-v4.locked{opacity:.55}.journey-stage-v4:disabled{cursor:default}

/* Round 0 mobile navigation is intentionally persistent while sheets are open. */
@media(max-width:820px){
  .nav-dock{position:fixed!important;z-index:90!important;left:10px!important;right:10px!important;bottom:max(8px,env(safe-area-inset-bottom))!important;transform:none!important;pointer-events:auto!important;touch-action:manipulation;background:rgba(18,11,6,.96);box-shadow:0 18px 50px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.04)}
  .nav-dock button{min-height:50px!important;pointer-events:auto!important;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
  .sheet-backdrop{z-index:70;bottom:72px!important;align-items:flex-end}
  .sheet{max-height:calc(100% - 10px)!important;margin-bottom:4px!important}
  .journey-command{grid-template-columns:1fr;gap:10px}.journey-kpis{overflow-x:auto;padding-bottom:2px}.journey-kpis span{flex:0 0 98px}
  .journey-atlas-v4{min-height:500px}.atlas-v4-svg{top:70px;height:330px}.atlas-v4-top{align-items:flex-start}.atlas-v4-top>small{display:none}
  .journey-stop{max-width:96px;padding-right:6px}.journey-stop b{font-size:11px}.journey-stop em{display:none}
  .journey-final-v4{left:12px;right:12px;bottom:72px;width:auto;max-width:none}
  .journey-route-note{left:12px;right:12px;bottom:12px;grid-template-columns:1fr;gap:3px}.journey-route-note span{font-size:11px}
  .journey-rail-v4{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:3px}.journey-stage-v4{flex:0 0 210px;scroll-snap-align:start}
}
@media(max-width:430px){
  .journey-command h3{font-size:24px}.journey-command p{font-size:11.7px}.journey-atlas-v4{min-height:500px;border-radius:20px}.atlas-v4-svg{top:76px;height:310px}.journey-stop{max-width:84px}.journey-stop .stop-copy small{display:none}.journey-stop b{font-size:11px}.journey-final-v4{bottom:76px}.journey-route-note span{font-size:11px}.sheet-backdrop{bottom:70px!important}
}

/* ======================= Round 0 v5 ======================= */
/* [hidden] must win over component display rules (the OFFLINE chip was showing while online). */
[hidden]{display:none!important}

/* Desktop: the dock stays usable while a sheet is open, as on phone. */
@media(min-width:821px){
  .nav-dock{z-index:90}
  .sheet-backdrop{bottom:84px}
  .sheet{max-height:calc(100% - 16px)}
}
/* Phone: GAMES stays reachable from the top bar (runbook 0F step 12). */
@media(max-width:720px){
  .games-pill{display:flex!important;padding:0 10px}
  .games-pill b{font-size:11.7px}
}
@media(max-width:430px){
  .topbar-actions{gap:5px}
  .top-pill.live-pill{display:none}
}

/* Shop: cultural collection tag sits on its own line, not glued to the item name. */
.culture-tag{display:inline-block;width:max-content;margin:0 0 4px;padding:3px 6px;border-radius:999px;border:1px solid rgba(245,165,36,.28);background:rgba(245,165,36,.08);color:var(--amber2);font:800 11.7px/1 var(--body);letter-spacing:.1em}
.shop-item .culture-tag+b{display:block}

/* Watch: styles for search, filters, rows and side panel (these classes had no CSS in v4). */
.watch-command{display:grid;grid-template-columns:1fr minmax(260px,380px);gap:14px;align-items:end;padding:16px;border-radius:18px}
.watch-command h3{margin:6px 0 4px;font:800 22px/1.05 var(--display);letter-spacing:-.02em}
.watch-command small{display:block;font-size:13.4px;line-height:1.4;color:var(--muted)}
.watch-search{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 12px;border:1px solid rgba(245,236,220,.18);border-radius:14px;background:#120b06}
.watch-search>span{font-size:16px;color:var(--amber)}
.watch-search input{flex:1;min-width:0;border:0;background:transparent;color:var(--cream);font:600 14.5px var(--body);padding:8px 0;outline:none}
.watch-search input::placeholder{color:#8f8070}
.watch-search kbd{padding:8px 10px;border-radius:10px;background:var(--green);color:#06271a;font:900 12.2px var(--body);letter-spacing:.08em;white-space:nowrap}
.watch-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.watch-tabs button{padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font:800 12.8px var(--body);letter-spacing:.08em}
.watch-tabs button.on{background:var(--cream);color:var(--ink);border-color:transparent}
.watch-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;align-items:start}
.watch-layout aside .card h3{font-size:17px}
.watch-results{display:grid;gap:8px}
.watch-row{display:grid;grid-template-columns:112px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.01))}
.watch-row.event{border-color:rgba(245,165,36,.4);background:linear-gradient(135deg,rgba(245,165,36,.12),rgba(255,255,255,.01))}
.watch-visual{position:relative;height:72px;border-radius:12px;background:radial-gradient(circle at 50% 40%,#3a261a,#1a110a);overflow:hidden}
.watch-board{position:absolute;left:50%;top:50%;width:46px;height:46px;transform:translate(-50%,-50%) rotate(45deg);display:grid;grid-template-columns:1fr 1fr;border:2px solid #2b1a10;border-radius:4px;overflow:hidden}
.watch-board i:nth-child(1){background:var(--red)}.watch-board i:nth-child(2){background:var(--ludo-green)}.watch-board i:nth-child(3){background:var(--blue)}.watch-board i:nth-child(4){background:var(--yellow)}
.watch-faces span{position:absolute;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:800 11.2px var(--body);color:var(--ink);background:var(--cream2);border:2px solid #1a110a}
.watch-faces .wf1{left:6px;top:6px}.watch-faces .wf2{right:6px;top:6px}.watch-faces .wf3{left:6px;bottom:6px}.watch-faces .wf4{right:6px;bottom:6px}
.live-badge{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);padding:2px 6px;border-radius:6px;background:var(--red);color:#fff;font:900 11.2px var(--body);letter-spacing:.1em}
.watch-copy{min-width:0}
.watch-code{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;margin-bottom:4px}
.watch-code span{font:800 13.4px var(--display);letter-spacing:.06em;color:var(--amber2)}
.watch-code small{font:700 12.2px var(--body);letter-spacing:.08em;color:var(--muted)}
.watch-copy b{display:block;font:800 14.5px/1.25 var(--body);overflow-wrap:anywhere}
.watch-copy b em{font-style:normal;color:var(--muted);font-weight:600}
.watch-copy>small{display:block;margin-top:3px;font-size:13.4px;color:var(--muted)}
.watch-row .mini{font-size:12.8px;padding:10px 14px}
.watch-empty{display:grid;gap:4px;padding:18px;border:1px dashed var(--line);border-radius:16px;text-align:center}
.watch-empty span{font-size:13.9px;color:var(--muted)}
.watch-section-head{display:flex;justify-content:space-between;gap:8px;margin:2px 0 8px;font-size:13.4px}
@media(max-width:820px){
  .watch-command{grid-template-columns:1fr}
  .watch-layout{grid-template-columns:1fr}
  .watch-row{grid-template-columns:84px minmax(0,1fr);grid-template-areas:"v c" "b b"}
  .watch-visual{grid-area:v;height:64px}.watch-copy{grid-area:c}.watch-row .mini{grid-area:b;width:100%}
  .watch-board{width:38px;height:38px}
}

/* Journey → LAGOS MAP: 3D city */
.journey-v5{gap:12px}
.lc-wrap{position:relative;border:1px solid rgba(245,236,220,.13);border-radius:22px;overflow:hidden;background:#0b0f0d}
.lc-bar{position:absolute;z-index:4;left:12px;right:12px;top:12px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;pointer-events:none}
.lc-bar>*{pointer-events:auto}
.lc-legend,.lc-live{display:flex;gap:6px;flex-wrap:wrap}
.lc-wrap .atlas-chip{font-size:12.2px;padding:7px 10px;background:rgba(18,11,6,.82);backdrop-filter:blur(10px)}
.atlas-chip.cream{color:var(--cream);border-color:rgba(245,236,220,.28)}
.lc-live-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border-radius:999px;background:rgba(18,11,6,.82);backdrop-filter:blur(10px);border:1px solid var(--line);font:600 12.8px var(--body);color:var(--muted)}
.lc-live-chip b{color:var(--cream);font-weight:800}
.lc-live-chip i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(16,185,129,.25)}
.lc-filters{position:absolute;z-index:4;left:12px;right:12px;bottom:12px;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.lc-filters::-webkit-scrollbar{display:none}
.lc-filter,.lc-tool{flex:0 0 auto;padding:9px 13px;border-radius:999px;border:1px solid var(--line);background:rgba(18,11,6,.86);backdrop-filter:blur(10px);font:800 12.8px var(--body);letter-spacing:.08em;color:var(--cream);touch-action:manipulation}
.lc-filter.on{background:var(--cream);color:var(--ink)}
.lc-tool{color:var(--amber2)}
.lc-sep{flex:0 0 1px;background:var(--line);margin:4px 2px}
.lagos3d{position:relative;height:clamp(380px,58vh,560px);background:radial-gradient(circle at 50% 40%,#1d2a26,#0b0f0d)}
.lc-root{position:absolute;inset:0;overflow:hidden}
.lc-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
.lc-canvas:active{cursor:grabbing}
.lc-loading{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:6px}
.lc-loading b{font:800 22px var(--display)}
.lc-loading small{font:600 13.4px var(--body);color:var(--muted)}
.lc-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.lc-lbl{position:absolute;left:0;top:0;white-space:nowrap;will-change:transform;pointer-events:auto;border:0;background:none;color:inherit;padding:0;font-family:var(--body)}
.lc-area{padding:5px 9px;border-radius:999px;background:rgba(18,11,6,.78);border:1px solid var(--line)!important;font:700 12.8px var(--body);color:var(--cream)}
.lc-mark{pointer-events:none;font:700 12.5px var(--body);color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.85),0 0 1px #000}
.lc-water{pointer-events:none;font:700 13.4px var(--display);letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.6);text-shadow:0 1px 6px rgba(0,40,60,.6)}
.lc-pin{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;background:rgba(18,11,6,.92);border:1px solid rgba(245,236,220,.2)!important;font:800 13.4px var(--body);color:var(--cream);box-shadow:0 8px 20px rgba(0,0,0,.35)}
.lc-pin b{display:grid;place-items:center;min-width:22px;height:22px;padding:0 4px;border-radius:999px;font:800 12.8px var(--display);color:#06271a;background:#7d857b}
.lc-pin small{font:900 11.7px var(--body);letter-spacing:.1em;color:var(--muted)}
.lc-pin.core.open b,.lc-pin.core.current b{background:var(--green)}
.lc-pin.mainland b{background:var(--amber);color:#2a1600}
.lc-pin.mainland.locked b,.lc-pin.core.locked b{background:#5d655c;color:#e8e3d6}
.lc-pin.hub{padding:4px 9px;font-size:12.8px;background:rgba(245,236,220,.92);color:var(--ink)}
.lc-pin.hub b{display:none}.lc-pin.hub small{color:#6b5a48}
.lc-pin.current{border-color:var(--green)!important;box-shadow:0 0 0 3px rgba(16,185,129,.28),0 8px 20px rgba(0,0,0,.35)}
.lc-pin.current small{color:#4fd5a9}
.lc-pin.sel{outline:2px solid var(--amber);outline-offset:2px}
.lc-card{position:absolute;z-index:5;right:12px;top:58px;width:min(320px,calc(100% - 24px));padding:14px;border-radius:18px;background:rgba(27,17,10,.95);border:1px solid rgba(245,236,220,.16);box-shadow:0 18px 40px rgba(0,0,0,.45)}
.lc-card h4{margin:6px 0 6px;font:800 22px/1.05 var(--display);letter-spacing:-.02em;padding-right:26px}
.lc-card p{margin:0 0 10px;font-size:13.9px;line-height:1.45;color:#e6dac6}
.lc-card .eyebrow{font-size:12.2px}
.lc-card-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.lc-card-head [class^="badge-"]{padding:3px 8px;border-radius:999px;font:900 11.7px var(--body);letter-spacing:.1em}
.badge-you{background:var(--green);color:#06271a}.badge-open{background:rgba(16,185,129,.18);color:#4fd5a9}.badge-locked{background:#3a3f39;color:#cfd3cb}.badge-hub{background:rgba(245,236,220,.14);color:var(--cream)}
.lc-card-meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-bottom:10px;font-size:13.4px;color:var(--muted)}
.lc-card-meta b{color:var(--cream)}
.lc-card .mini{font-size:12.8px;padding:10px 12px}
.lc-card-x{position:absolute;right:8px;top:8px;width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.06);font-size:16px}
.lc-perf{position:absolute;z-index:5;right:12px;bottom:58px;padding:6px 10px;border-radius:8px;background:rgba(0,0,0,.7);font:600 12.8px ui-monospace,Menlo,monospace;font-variant-numeric:tabular-nums}
.journey-final-v5{position:relative;inset:auto;width:auto;max-width:none;align-items:center}
.journey-final-v5 em{font-size:12.8px}
.journey-final-v5 .mini{margin-left:auto;font-size:12.2px}
.journey-stage-v4.amber>span{color:var(--amber)}
/* 2D fallback: markers and lines share one square plane so they line up. */
.atlas-fallback{min-height:0;padding:56px 12px 12px}
.atlas-plane{position:relative;width:min(100%,520px);aspect-ratio:1;margin:0 auto}
.atlas-plane .atlas-v4-svg{position:absolute;inset:0;width:100%;height:100%}
@media(max-width:820px){
  .lagos3d{height:clamp(340px,54vh,520px)}
  .lc-live{display:none}
  .lc-card{left:10px;right:10px;top:auto;bottom:56px;width:auto}
  .lc-wrap .atlas-chip{font-size:11.7px;padding:6px 8px}
  .journey-final-v5{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){.lc-lbl{transition:none}}
/* v5 phone polish found in the final runbook screenshots */
.watch-command>*{min-width:0}
@media(max-width:820px){.watch-command{grid-template-columns:minmax(0,1fr)}.watch-search kbd{padding:8px}}
.preview-caption b{display:block}

/* ===== v5.1: the live 3D Lagos is the Home world; Journey opens over it ===== */
.city-host{position:absolute;inset:0;z-index:7;opacity:0;transition:opacity 1s ease;pointer-events:none}
.app.city-ready .city-host{opacity:1;pointer-events:auto}
.city-host .lc-root{position:absolute;inset:0}




.app .world-vignette{background:linear-gradient(180deg,rgba(8,10,14,.55),transparent 18%,transparent 62%,rgba(8,10,14,.72) 100%)}
/* Home hero becomes a compact card so the city is the picture */
@media(min-width:821px){
  .app .hero{left:18px;bottom:92px;transform:none;width:min(430px,40vw);text-align:left;padding:18px 18px 14px;border-radius:22px;background:rgba(18,11,6,.74);border:1px solid var(--line);backdrop-filter:blur(14px);text-shadow:none}
  .app .hero h1{font-size:40px;letter-spacing:-.04em;margin:6px 0 8px}
  .app .hero p{margin:0 0 12px;font-size:13.6px}
  .app .hero-actions{justify-content:flex-start}
  .app .primary-cta{min-width:0;flex:1}
  .app .live-rail{width:300px}
  .app .world-pulse{display:none}
}
@media(max-width:820px){
  .app .hero{bottom:84px;padding:12px;border-radius:18px;background:rgba(18,11,6,.72);border:1px solid var(--line);backdrop-filter:blur(12px);width:calc(100% - 24px);left:12px;transform:none;text-shadow:none}
  .app .hero h1{font-size:30px;margin:4px 0 6px}
  .app .hero p{display:none}
  .app .live-rail .live-card:nth-child(n+2){display:none}
}
/* Home: tap a pin or an area on the city */
.city-card{position:absolute;z-index:19;left:18px;top:160px;right:auto;bottom:auto;width:320px}
@media(max-width:820px){.city-card{left:10px;right:10px;top:auto;bottom:84px;width:auto}}
/* Journey map mode: no blur, no dim — the panel sits beside (laptop) or under (phone) the live city */
.sheet-backdrop.map-mode{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}
.sheet-backdrop.map-mode .sheet{pointer-events:auto}
@media(min-width:821px){
  .sheet-backdrop.map-mode{justify-content:flex-end;align-items:stretch}
  .sheet-backdrop.map-mode .sheet{width:400px;max-height:none;margin:68px 16px 10px 0;border-radius:24px;background:rgba(27,17,10,.92);backdrop-filter:blur(16px)}
}
@media(max-width:820px){
  .sheet-backdrop.map-mode .sheet{max-height:48%!important;background:rgba(27,17,10,.94)}
}
.app.map-open .hero,.app.map-open .live-rail,.app.map-open .identity-card,.app.map-open .venue-chip,.app.map-open .world-pulse,.app.map-open .return-banner,.app.map-open .install-nudge,.app.map-open .city-card{opacity:0;pointer-events:none;transition:opacity .3s}
.lc-panel{display:grid;gap:10px}
.lc-panel .journey-kpis{display:flex;gap:6px}
.lc-panel .journey-kpis span{flex:1}
.lc-panel-row{display:flex;gap:6px;flex-wrap:wrap}
.lc-panel .atlas-chip{font-size:12.2px;padding:6px 9px}
.lc-panel .lc-filters{position:static;flex-wrap:wrap;overflow:visible}
.lc-panel .lc-filter,.lc-panel .lc-tool{background:rgba(255,255,255,.06)}
.lc-panel .lc-filter.on{background:var(--cream)}
.lc-panel .lc-card{position:relative;inset:auto;width:auto;top:auto;right:auto;left:auto;bottom:auto}
.lc-panel .lc-perf{position:static;width:max-content}
.lc-panel .lc-rail{display:grid;grid-template-columns:1fr;gap:6px}
.lc-panel .journey-stage-v4 small{font-size:11.7px}.lc-panel .journey-stage-v4 b{font-size:13.9px}.lc-panel .journey-stage-v4 em{font-size:12.5px}.lc-panel .journey-stage-v4 strong{font-size:12.2px}
.lc-wait{display:grid;gap:4px;padding:14px;border:1px dashed var(--line);border-radius:14px}
.lc-wait b{font:800 18px var(--display)}.lc-wait small{font-size:13.4px;color:var(--muted)}
@media(max-width:820px){.lc-panel .lc-rail{display:flex;overflow-x:auto}.lc-panel .lc-rail .journey-stage-v4{flex:0 0 220px}}
/* labels sit under the Home UI layers */
.city-host .lc-labels{z-index:1}

/* ---------------------------------------------------------------- v5.3 commute */
.venue-chip{cursor:pointer;color:var(--cream);font-family:var(--body);text-align:left;touch-action:manipulation}
.venue-chip strong{font-size:12.8px}
.venue-chip .where-to{font-style:normal;font:900 12.2px var(--display);letter-spacing:.06em;color:#06271a;background:var(--green);padding:4px 8px;border-radius:999px;margin-left:2px}
.app.away .venue-chip .pin-dot{background:var(--green);box-shadow:0 0 0 4px rgba(16,185,129,.18)}
@media(max-width:820px){.venue-chip{padding:6px 7px 6px 10px}.venue-chip strong{font-size:12.5px}.venue-chip .where-to{font-size:12px;padding:4px 7px}}
.app.trip-on .hero,.app.trip-on .live-rail,.app.trip-on .identity-card,.app.trip-on .venue-chip,.app.trip-on .world-pulse,.app.trip-on .return-banner,.app.trip-on .install-nudge,.app.trip-on .city-card,.app.trip-on .nav-dock{opacity:0;pointer-events:none;transition:opacity .3s}
.trip-hud{position:absolute;z-index:40;left:50%;top:64px;transform:translateX(-50%);width:min(460px,calc(100% - 24px));padding:12px 14px;border-radius:18px;background:rgba(18,11,6,.9);border:1px solid rgba(16,185,129,.45);box-shadow:0 18px 44px rgba(0,0,0,.45);backdrop-filter:blur(12px);color:var(--cream)}
.trip-hud-top{display:flex;align-items:center;gap:10px}.trip-hud-top>div{flex:1;min-width:0}
.trip-hud-top b{display:block;font:800 14.5px var(--display);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trip-hud-top small{display:block;font-size:13.4px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.trip-hud-icon{font-size:26px;line-height:1}
.trip-bar{height:6px;border-radius:99px;background:rgba(245,236,220,.12);margin:10px 0 8px;overflow:hidden}.trip-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--green2),var(--green));border-radius:99px;transition:width .25s linear}
.trip-hud-foot{display:flex;justify-content:space-between;gap:10px;font-size:13.4px;color:var(--cream2)}.trip-hud-foot span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trip-hud-foot b{color:var(--amber2);white-space:nowrap}
.trip-hud.arrived{border-color:rgba(245,165,36,.6)}.trip-hud.arrived .btnrow{margin-top:10px}
@media(max-width:820px){.trip-hud{top:56px}}
.trip-search input{width:100%;height:44px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--cream);padding:0 14px;font:600 14.5px var(--body)}
.trip-dest{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;margin-top:6px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--cream);text-align:left}
.trip-dest>span:nth-child(2){flex:1;min-width:0}.trip-dest b{display:block;font:800 14.5px var(--display)}.trip-dest small{display:block;font-size:13.1px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trip-dest-icon{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:rgba(16,185,129,.14);color:var(--green);font-size:15px}
.trip-dest>[class^="badge-"],.trip-dest .trip-tag,.trip-head [class^="badge-"],.trip-head .trip-tag{font:900 12px var(--body);letter-spacing:.06em;padding:4px 7px;border-radius:999px;white-space:nowrap}
.trip-tag{background:rgba(245,165,36,.16);color:var(--amber2)}
.trip-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.trip-modes{display:grid;gap:7px}
.trip-mode{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--cream);text-align:left;touch-action:manipulation}
.trip-mode.on{border-color:var(--green);background:rgba(16,185,129,.14);box-shadow:inset 0 0 0 1px var(--green)}
.trip-mode.off{opacity:.5}
.trip-mode-icon{font-size:26px;width:34px;text-align:center}
.trip-mode-copy{flex:1;min-width:0}.trip-mode-copy b{display:block;font:800 14.5px var(--display)}.trip-mode-copy b em{font:600 12.8px var(--body);color:var(--muted);font-style:normal;margin-left:4px}
.trip-mode-copy b i{font:900 11.7px var(--body);letter-spacing:.06em;font-style:normal;margin-left:6px;padding:2px 6px;border-radius:99px;vertical-align:2px}.trip-mode-copy b i.cheap{background:rgba(245,165,36,.18);color:var(--amber2)}.trip-mode-copy b i.fast{background:rgba(16,185,129,.18);color:#4fd5a9}
.trip-mode-copy small{display:block;font-size:13.1px;color:var(--muted);margin-top:2px}.trip-mode-copy small.need{color:#ff9b8f}
.trip-mode strong{font:900 17px var(--display);color:var(--amber2);text-align:right;white-space:nowrap}.trip-mode strong small{display:block;font:700 12px var(--body);color:var(--muted)}
.trip-cta{margin-top:12px}.trip-cta .primary-cta{width:100%;min-width:0;height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:16px}.trip-cta .primary-cta[disabled]{opacity:.5}
.trip-note{font-size:13.4px;color:var(--cream2);margin:0 0 10px;line-height:1.45}
.lc-tool.trip-tool{background:var(--green);color:#06271a;border-color:transparent}
.top-pill{position:relative}.coin-float{position:absolute;right:6px;top:-4px;font:900 13.9px var(--display);color:#ff9b8f;pointer-events:none;animation:coinFloat 1.6s ease-out forwards}
@keyframes coinFloat{0%{opacity:0;transform:translateY(6px)}15%{opacity:1}100%{opacity:0;transform:translateY(28px)}}
.sheet-backdrop.trip-sheet #tripCta{position:sticky;bottom:-16px;z-index:2;margin:0 -16px -16px;padding:2px 16px 14px;background:linear-gradient(180deg,rgba(27,17,10,0),rgba(27,17,10,.97) 22%)}
.sheet-backdrop.trip-sheet #tripCta .trip-cta{margin-top:10px}
@media(max-width:820px){.sheet-backdrop.map-mode.trip-sheet .sheet{max-height:56%!important}.trip-mode{padding:8px 10px}.trip-mode-icon{font-size:22px;width:28px}.trip-mode-copy b{font-size:13.9px}.trip-note{font-size:13.1px;margin-bottom:8px}.trip-cta .primary-cta{height:54px}}
/* v5.4 type scale: every size under 15px was raised (min 11px) for phone readability (Olu, 6 Oct) */
/* v5.4 journey legs: stages 1–5 mainland (green), 6–9 island (amber) */
.lc-pin.island b{background:var(--amber);color:#2a1600}
.lc-pin.island.locked b{background:#5d655c;color:#e8e3d6}
.journey-stage-v4.island>span{color:var(--amber)}

/* v5.4 Home is the 3D city only: a night-sky loader while Lagos builds, no 2D street */
.world-scene{background:radial-gradient(120% 80% at 50% 0%,#22325a 0%,#121a33 45%,#0b0f1d 100%)}
.city-loading{position:absolute;inset:0;z-index:9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;color:var(--cream);pointer-events:none;background:radial-gradient(90% 60% at 50% 30%,rgba(245,165,36,.10),transparent 60%),radial-gradient(120% 80% at 50% 0%,#22325a 0%,#121a33 45%,#0b0f1d 100%);transition:opacity .9s ease}
.city-loading .cl-mark{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,var(--green),var(--green2));color:#06261a;font:900 22px var(--display);box-shadow:0 14px 40px rgba(16,185,129,.28)}
.city-loading b{font:800 20px var(--display);letter-spacing:.01em}
.city-loading .cl-bar{width:min(260px,70vw);height:6px;border-radius:99px;background:rgba(245,236,220,.12);overflow:hidden}
.city-loading .cl-bar i{display:block;height:100%;width:6%;border-radius:99px;background:linear-gradient(90deg,var(--green2),var(--green));transition:width .4s ease}
.city-loading small{font:600 13.9px var(--body);color:var(--muted)}
.city-loading .cl-fallback{display:none;max-width:360px;font:600 14.5px/1.45 var(--body);color:var(--cream2);margin:4px 0 0}
.app.city-ready .city-loading{opacity:0}
.app.city-failed .city-loading .cl-bar,.app.city-failed .city-loading small{display:none}
.app.city-failed .city-loading .cl-fallback{display:block}
.app.city-failed .city-loading b:after{content:" · 2D mode"}
@media(max-width:820px){.city-loading{justify-content:flex-start;padding-top:28vh}}
/* v5.4 live world: table chat, spectator comments, stages live, padi, radio */
.table-chat{width:min(520px,92vw);margin-top:12px;border-radius:16px;background:rgba(18,11,6,.78);border:1px solid var(--line);backdrop-filter:blur(10px);padding:8px 10px}
.tc-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);margin-bottom:4px}.tc-head b{color:var(--cream);letter-spacing:.08em}
.tc-feed{max-height:96px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;font-size:13px;line-height:1.35;scrollbar-width:thin}
.tc-feed p{margin:0;color:var(--cream2)}.tc-feed p b{color:var(--amber2);font-weight:800;margin-right:4px}.tc-feed p.me b{color:#4fd5a9}
.tc-form{display:flex;gap:6px;margin-top:6px}.tc-form input{flex:1;min-width:0;height:36px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.06);color:var(--cream);padding:0 10px;font:600 13px var(--body)}
.seat-card.bot{opacity:.78}.seat-card.bot b:after{content:" · bot";font-weight:600;color:var(--muted)}
.spectate-chat{position:absolute;z-index:6;right:14px;bottom:92px;width:min(360px,calc(100% - 28px))}
@media(max-width:820px){.spectate-chat{left:10px;right:10px;width:auto;bottom:150px}.tc-feed{max-height:78px}}
.watch-stages,.watch-friends{margin:10px 0}.ws-row{display:flex;gap:6px;overflow-x:auto;padding:6px 0 4px;scrollbar-width:thin}
.ws-chip{flex:0 0 auto;text-align:left;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--cream);border-radius:12px;padding:8px 10px}.ws-chip b{display:block;font:800 13px var(--display)}.ws-chip small{font-size:11.5px;color:var(--muted)}
.radio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px}.radio-row{border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:rgba(255,255,255,.04)}.radio-row b{display:block;font:800 13px var(--display)}.radio-row span{display:block;color:var(--amber2);font-size:12.5px;margin-top:2px}.radio-row small{color:var(--muted);font-size:11.5px}
.radio-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-top:8px}.radio-admin label,.radio-broadcast label{display:flex;flex-direction:column;gap:4px;font:700 12px var(--body);color:var(--muted)}
.radio-admin select,.radio-broadcast select{height:36px;border-radius:10px;border:1px solid var(--line);background:#2a1c12;color:var(--cream);padding:0 8px;font:600 13px var(--body)}.radio-broadcast{margin-top:10px}
#lobbyLive{max-width:520px;margin:4px auto 0}
/* v5.4: the nav dock (z 90) covered the spectator cheer tray; lift it above the dock, and the comments above it. */
.spectate-layer .cheer-tray{bottom:calc(max(8px,env(safe-area-inset-bottom)) + 76px)}
.spectate-chat{bottom:150px}
@media(max-width:820px){.spectate-chat{bottom:144px}}
.venue-chip small{font-size:11px}
.watch-friends .person-row b,.watch-friends .person-row small{display:block}
.spectate-layer .sp4{bottom:17%}
@media(max-width:820px){.spectate-chat{bottom:158px}.spectate-layer .sp4{bottom:30%}}
/* ---- v5.5 daily loop: riddle and goal chips, riddle and goals sheets, flex at the table ---- */
.daily-strip{position:absolute;z-index:18;left:18px;top:152px;width:255px;display:grid;gap:6px}
.daily-chip{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border-radius:14px;border:1px solid var(--line);background:rgba(31,19,11,.82);backdrop-filter:blur(14px);color:var(--cream);text-align:left;font-family:var(--body);cursor:pointer;box-shadow:0 10px 26px rgba(0,0,0,.28);touch-action:manipulation}
.daily-chip .dc-icon{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-weight:900;font-size:15px;background:rgba(245,165,36,.16);color:var(--amber2);border:1px solid rgba(245,165,36,.4)}
.daily-chip.goal .dc-icon{background:rgba(16,185,129,.14);color:var(--green);border-color:rgba(16,185,129,.4)}
.daily-chip .dc-copy{display:grid;min-width:0}
.daily-chip b{font-size:12.6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.daily-chip small{font-size:11.2px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.daily-chip.riddle{border-color:rgba(245,165,36,.38);background:linear-gradient(100deg,rgba(74,45,12,.9),rgba(31,19,11,.84))}
.daily-chip .dc-icon{position:relative}
.daily-chip.riddle:not(.done) .dc-icon::after{content:'';position:absolute;inset:-1px;border-radius:50%;border:2px solid rgba(245,165,36,.55);animation:dcPulse 2.4s ease-out infinite;will-change:transform,opacity}
.daily-chip.riddle.done .dc-icon{background:rgba(16,185,129,.18);color:var(--green);border-color:rgba(16,185,129,.5)}
.daily-chip.pop{animation:dcPop .9s ease}
@keyframes dcPulse{0%{transform:scale(1);opacity:.9}70%,100%{transform:scale(1.6);opacity:0}}
@keyframes dcPop{0%{transform:scale(1)}35%{transform:scale(1.06);box-shadow:0 0 0 3px rgba(16,185,129,.5)}100%{transform:scale(1)}}
.app:has(#installNudge:not([hidden])) .daily-strip{top:214px}
.app.map-open .daily-strip,.app.trip-on .daily-strip{opacity:0;pointer-events:none;transition:opacity .3s}
@media(max-width:820px){
  .daily-strip{left:12px;top:138px;width:calc(53% - 30px);max-width:215px;gap:5px}
  .daily-chip{padding:6px 8px;gap:7px;border-radius:12px}
  .daily-chip .dc-icon{flex-basis:24px;height:24px;font-size:13px}
  .daily-chip b{font-size:11.8px}.daily-chip small{font-size:11px}
  .app:has(#returnBanner:not([hidden])) .daily-strip{top:166px}
  .app:has(#installNudge:not([hidden])) .daily-strip{top:184px}
}
.riddle-card{position:relative;padding:18px 18px 16px 50px;border-radius:18px;background:linear-gradient(135deg,#4a2d0c,#2a1c12 70%);border:1px solid rgba(245,165,36,.42);margin-bottom:10px}
.riddle-card p{margin:0;font-family:var(--display);font-size:19px;line-height:1.3;color:var(--cream2);font-weight:700}
.riddle-q{position:absolute;left:14px;top:6px;font-family:var(--display);font-size:52px;line-height:1;color:var(--amber)}
.riddle-hint{color:var(--amber2);font-weight:800}
.riddle-found h3{font-size:22px;margin:4px 0}
.riddle-ladder{margin:10px 0;padding:10px 14px;border-radius:16px;border:1px solid var(--line);background:var(--surface)}
.riddle-ladder .coin-line{border-bottom:1px dotted var(--line);font-size:12.6px}
.riddle-ladder .coin-line:last-child{font-size:12.6px}
.riddle-ladder .coin-line.on{color:var(--amber2);font-weight:900}
.riddle-ladder .coin-line.on span::before{content:'▸ '}
.goal-bar{height:8px;border-radius:99px;background:var(--surface2);overflow:hidden;margin-bottom:10px}
.goal-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--green2),var(--green));border-radius:99px}
.goal-list{display:grid;gap:7px}
.goal-row{display:grid;grid-template-columns:30px 1fr auto auto;gap:10px;align-items:center;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}
.goal-row small{display:block;color:var(--muted);font-size:11.6px}
.goal-row em{font-style:normal;font-family:var(--display);font-weight:800;color:var(--amber2);font-size:13px}
.goal-tick{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:900;background:var(--surface2);font-size:12.5px}
.goal-row.done{opacity:.62}.goal-row.done .goal-tick{background:var(--green2);color:#fff}
.goal-row.next{border-color:rgba(16,185,129,.5);box-shadow:inset 0 0 0 1px rgba(16,185,129,.25)}
.flex-action{background:linear-gradient(135deg,#b8780f,#f5b83c)!important;color:#1a0f05!important;border-color:transparent!important}
.cheer-tray .flex-cheer{background:linear-gradient(135deg,#b8780f,#f5b83c);color:#1a0f05;border-color:transparent;font-weight:900}
.flex-tray{position:absolute;z-index:91;left:50%;bottom:96px;transform:translateX(-50%);width:min(420px,calc(100% - 24px));padding:12px;border-radius:20px;background:rgba(27,17,10,.96);border:1px solid rgba(245,165,36,.4);box-shadow:var(--shadow);backdrop-filter:blur(16px);display:grid;gap:7px;animation:trayIn .25s ease}
.flex-tray[hidden]{display:none}
@keyframes trayIn{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
.flex-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.flex-head b{font-family:var(--display);letter-spacing:.04em;color:var(--amber2)}
.flex-head small{display:block;color:var(--muted);font-size:11.4px}
.flex-opt{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:9px 10px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--cream);text-align:left;font-family:var(--body);cursor:pointer}
.flex-opt:hover:not([disabled]){border-color:rgba(245,165,36,.55)}
.flex-opt .fx-ico{font-size:26px;text-align:center}
.flex-opt .fx-copy{display:grid}.flex-opt b{font-size:13.2px}.flex-opt small{font-size:11.4px;color:var(--muted)}
.flex-opt em{font-style:normal;font-family:var(--display);font-weight:900;color:var(--amber2);font-size:14px;white-space:nowrap}
.flex-opt.short{opacity:.55}.flex-opt[disabled]{opacity:.5;cursor:default}
.flex-bal{text-align:right;color:var(--muted);font-size:11.4px}
.flex-layer{position:absolute;z-index:89;inset:0;pointer-events:none;overflow:hidden}
.flex-note{position:absolute;top:-70px;will-change:transform;width:66px;height:34px;border-radius:5px;border:0;padding:0;background:linear-gradient(135deg,#0f7a52,#14b37a 45%,#0a6a45);box-shadow:0 6px 14px rgba(0,0,0,.35),inset 0 0 0 2px rgba(255,255,255,.18);display:flex;align-items:center;justify-content:space-between;padding:0 7px;color:#eafff5;font-family:var(--display);animation:noteFall var(--d,3.2s) cubic-bezier(.35,.1,.6,1) forwards;transform:translateY(0) rotate(var(--r,0deg))}
.flex-note i{font-style:normal;font-size:10px;font-weight:900;opacity:.85}
.flex-note b{font-size:16px;font-weight:900}
/* B-NOTE: the printed note flutters as it falls (it turns over in the air and catches the light) */
.flex-note{perspective:220px;background:none!important;box-shadow:none!important;width:72px;height:36px;padding:0!important}
.flex-note .nf{position:absolute;inset:0;border-radius:3px;background-size:100% 100%;box-shadow:0 6px 14px rgba(0,0,0,.35);animation:noteFlutter var(--fl,.7s) ease-in-out var(--fd,0s) infinite alternate;transform-origin:50% 40%;overflow:hidden}
.flex-note .nf::after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.38) 48%,transparent 62%);background-size:260% 100%;animation:noteSheen calc(var(--fl,.7s)*2) linear infinite}
.flex-note.catch .nf{box-shadow:0 0 0 2px rgba(255,236,170,.75),0 0 16px rgba(245,184,60,.55),0 8px 18px rgba(0,0,0,.4)}
@keyframes noteFlutter{0%{transform:rotateX(52deg) rotateY(-18deg) rotateZ(-6deg)}50%{transform:rotateX(-8deg) rotateY(12deg) rotateZ(3deg)}100%{transform:rotateX(-48deg) rotateY(-6deg) rotateZ(7deg)}}
@keyframes noteSheen{0%{background-position:120% 0}100%{background-position:-120% 0}}
.flex-note.catch{pointer-events:auto;cursor:pointer;background:linear-gradient(135deg,#a86a08,#f5b83c 45%,#b8780f);color:#2a1702;box-shadow:0 0 0 2px rgba(255,236,170,.65),0 8px 18px rgba(0,0,0,.4);touch-action:manipulation}
.flex-note.catch::after{content:'';position:absolute;inset:-12px}
@keyframes noteFall{0%{transform:translateY(0) rotate(var(--r,0deg))}85%{opacity:1}100%{opacity:.7;transform:translate(30px,calc(100vh + 90px)) rotate(calc(var(--r,0deg)*-1.5))}}
.flex-pop{position:absolute;font-family:var(--display);font-weight:900;font-size:22px;color:var(--amber2);text-shadow:0 3px 10px rgba(0,0,0,.6);animation:popUp .9s ease forwards}
@keyframes popUp{to{transform:translateY(-46px);opacity:0}}
.flex-banner{position:absolute;left:50%;top:30%;transform:translate(-50%,-50%);text-align:center;padding:14px 26px;border-radius:22px;background:rgba(18,11,6,.78);border:1px solid rgba(245,165,36,.55);box-shadow:0 0 60px rgba(245,165,36,.35);animation:bannerIn 2.6s ease forwards;max-width:calc(100% - 32px)}
.flex-banner b{display:block;font-family:var(--display);font-weight:900;font-size:clamp(26px,6vw,52px);letter-spacing:.02em;background:linear-gradient(180deg,#fff2c6,#f5b83c 55%,#b8780f);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.05}
.flex-banner small{display:block;margin-top:6px;color:var(--cream2);font-size:13px;font-weight:700}
.flex-banner.riddle,.flex-banner.takeover{animation-duration:3.4s}
.flex-banner.riddle{border-color:rgba(16,185,129,.6);box-shadow:0 0 60px rgba(16,185,129,.35)}
@keyframes bannerIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}12%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}20%{transform:translate(-50%,-50%) scale(1)}85%{opacity:1}100%{opacity:0;transform:translate(-50%,-60%) scale(1)}}
.flex-spark{position:absolute;width:10px;height:10px;transform:scale(var(--s,1));animation:spark 1.5s ease-out forwards;opacity:0}
.flex-spark::before,.flex-spark::after{content:'';position:absolute;left:4px;top:-6px;width:2px;height:22px;background:linear-gradient(transparent,#fff6cf,transparent)}
.flex-spark::after{transform:rotate(90deg)}
@keyframes spark{0%{opacity:0;transform:scale(0) rotate(0)}30%{opacity:1;transform:scale(var(--s,1)) rotate(45deg)}100%{opacity:0;transform:scale(calc(var(--s,1)*.4)) rotate(120deg)}}
.flex-bottle{position:absolute;left:50%;top:-80px;font-size:84px;transform:translateX(-50%);animation:bottle 2.4s cubic-bezier(.3,1.4,.5,1) forwards;filter:drop-shadow(0 0 22px rgba(245,184,60,.8))}
@keyframes bottle{0%{top:-90px}40%{top:46%}80%{top:46%;opacity:1}100%{top:46%;opacity:0}}
@media(max-width:820px){.flex-tray{bottom:150px}.flex-banner{top:34%}}
@media(prefers-reduced-motion:reduce){.flex-note .nf,.flex-note .nf::after{animation:none}.flex-note{animation:noteFade 4.4s linear forwards;top:var(--y,40%);transform:rotate(var(--r,0deg))}.flex-banner,.daily-chip.riddle .dc-icon::after,.flex-tray{animation:none}.flex-bottle,.flex-spark{display:none}}
@keyframes noteFade{0%,85%{opacity:1}100%{opacity:0}}
.riddle-ladder b,.flex-bal{color:var(--amber2)}
.app[data-phase="lobby"] .nav-dock{opacity:0!important;pointer-events:none!important}
/* v5.5: the lobby chat keeps a fixed height, so the seats and buttons never shift while you tap */
#lobbyChatFeed{height:96px}#lobbyChatFeed>:first-child{margin-top:auto}
#botsNow[hidden]{display:inline-block!important;visibility:hidden}
@media(max-width:820px){#lobbyChatFeed{height:78px}}
/* Round B: real-time ride toggle on the trip sheet */
.trip-rt{display:flex;gap:10px;align-items:center;margin:2px 0 10px;padding:8px 12px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);cursor:pointer}
.trip-rt input{width:20px;height:20px;accent-color:#10B981;flex:none;margin:0}
.trip-rt span{display:flex;flex-direction:column;gap:1px;min-width:0}.trip-rt b{font-size:13.5px}.trip-rt small{font-size:12px;opacity:.75;line-height:1.3}
@media(max-width:820px){.trip-rt{padding:6px 10px;margin-bottom:8px}.trip-rt small{font-size:11.5px}}
/* Round G tables run full-screen in the match frame with their own HUD */
.match-layer.table-mode .match-shell-top,.match-layer.table-mode .demo-end{display:none}
/* Life sheet (money, ladder, hustles, vibe, predictions) */
.life .life-tabs{margin-bottom:10px}.life .muted,.muted{color:var(--muted,rgba(245,236,220,.68));font-size:13px;line-height:1.45}
.life-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}.life-kpis span{padding:10px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}.life-kpis b{display:block;font-family:var(--display);font-size:17px}.life-kpis small{color:rgba(245,236,220,.65);font-size:11.5px}
.life-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);margin:6px 0}.life-item b{display:block;font-size:14px}.life-item small{display:block;color:rgba(245,236,220,.65);font-size:12px;margin-top:2px;line-height:1.35}
.life-item.fx{flex-wrap:wrap}.life-item .btnrow{display:flex;gap:6px}
.vibe-row{display:grid;grid-template-columns:86px 1fr 34px;align-items:center;gap:8px;margin:6px 0;font-weight:700;font-size:13px}.vibe-bar{height:10px;border-radius:6px;background:rgba(255,255,255,.08);overflow:hidden}.vibe-bar i{display:block;height:100%;border-radius:6px}
.skill-row{display:flex;flex-wrap:wrap;gap:6px}.skill-chip{padding:6px 10px;border-radius:10px;background:rgba(255,255,255,.05);font-size:12.5px}
.amber-card{border-color:rgba(245,165,36,.45)!important;background:rgba(245,165,36,.08)!important}.gig-card .btnrow{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.gig-card .btnrow .mini{min-width:110px}
.trip-tag.closed{background:rgba(217,72,43,.18);color:#ffb9a6}.now-note{color:#F5A524;font-weight:800}
/* v5.7: your home on the map (D-2) and a landmark named after you (D-9) */
.lc-home{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:999px;background:rgba(18,11,6,.94);border:1px solid #F5A524!important;font:800 13px var(--body);color:var(--cream)}
.lc-home b{display:grid;place-items:center;width:22px;height:22px;border-radius:999px;background:#F5A524;color:#241503;font-size:14px}
.lc-home small{font:700 11px var(--body);color:var(--muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lc-mark.lc-legend{font:900 14px var(--display);color:#ffd27a;letter-spacing:.02em}
/* v5.7 C-4: a street encounter on the way, inside the trip card */
.trip-enc{margin-top:10px;padding:10px 12px;border-radius:14px;background:rgba(245,165,36,.12);border:1px solid rgba(245,165,36,.4)}
.trip-enc b{display:block;font:800 14px var(--display);color:#ffd27a}.trip-enc p{margin:4px 0 8px;font-size:13.4px;line-height:1.4}
/* v5.7 C-15: the menu's tools grid and keyboard keys */
.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:6px}
.tools-grid .tool{position:relative;display:flex;align-items:center;gap:10px;min-height:52px;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--cream);font:700 14px var(--body);text-align:left;cursor:pointer}
.tools-grid .tool i{font-style:normal;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(245,165,36,.16);color:#ffd27a;font-size:15px}
.tools-grid .tool kbd,.keys-list kbd{margin-left:auto;padding:2px 7px;border-radius:7px;border:1px solid var(--line);background:rgba(0,0,0,.3);font:800 12px var(--display);color:var(--muted)}
@media (hover:none){.tools-grid .tool kbd{display:none}}
@media (hover:none){.tools-grid .tool[data-action="keys"]{display:none}}

/* v5.7: on desktop the WHILE YOU WERE AWAY banner sits under the WHERE TO? chip, never on top of it */
/* v5.8 Accounts the Lagos Life way (UX-3/UX-4): guest bar, gate, one-screen sign-up, log in, tour, email nudge */
.guest-bar{display:flex;align-items:center;gap:9px;margin-top:10px;padding:8px 8px 8px 10px;border:1px solid var(--line);border-radius:14px;background:rgba(10,6,3,.5);flex-wrap:wrap}
.guest-bar[hidden]{display:none}
.gb-faces{display:flex;flex:0 0 auto}.gb-faces i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:800 9.5px var(--body);font-style:normal;color:#fff;border:2px solid #1a110a;margin-left:-7px}.gb-faces i:first-child{margin-left:0}
.gb-copy{flex:1 1 140px;min-width:0;font-size:12px;line-height:1.3;color:var(--muted)}.gb-copy b{color:var(--cream)}
.gb-btns{display:flex;gap:6px;flex:0 0 auto}.gb-btns .mini{min-height:36px;padding:0 13px;font-size:12px}
.gate{display:grid;gap:10px}.gate-keep{margin:0;padding:10px 12px;border-radius:12px;background:rgba(245,165,36,.12);border:1px solid rgba(245,165,36,.3);font-size:13px}
.gate-proof{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted)}.gate-proof b{color:var(--cream)}
.gate .primary-cta,.gate .secondary-cta{width:100%;min-width:0;height:auto;min-height:56px;border-radius:16px;padding:10px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;font:800 15px var(--display)}
.gate .primary-cta small{font:700 11.5px var(--body);opacity:.8}
.link-btn{border:0;background:none;color:var(--amber2);font-weight:800;font-size:13px;padding:6px 2px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.acct-form{display:grid;gap:12px;max-width:520px}
.af{display:grid;gap:5px}.af label{font-weight:800;font-size:13px}.af label i{font-style:normal;font-weight:600;color:var(--muted)}
.af input,.af select{width:100%;min-height:46px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:#1d130c;color:var(--cream);font:600 16px var(--body)}
.af input:focus,.af select:focus{outline:2px solid var(--green);outline-offset:1px;border-color:transparent}
.af small{color:var(--muted);font-size:12px;line-height:1.35}.af.bad input,.af.bad select{border-color:#e0574a}
.pw-rules{list-style:none;margin:2px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:3px 10px;font-size:12px;line-height:1.3;color:var(--muted)}
.pw-rules li{display:flex;gap:6px;align-items:baseline}.pw-rules li i{font-style:normal;width:12px;flex:0 0 12px;text-align:center;color:#8a7a68}
.pw-rules li.ok{color:#9fe3c4}.pw-rules li.ok i{color:var(--green,#34d399);font-weight:900}
@media(max-width:360px){.pw-rules{grid-template-columns:1fr}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.af-err{color:#ff9a8f;font-style:normal;font-size:12.5px;font-weight:700;min-height:0}.af-err:empty{display:none}
.at-input{display:flex;align-items:center;border:1px solid var(--line);border-radius:12px;background:#1d130c}.at-input span{padding:0 0 0 12px;color:var(--muted);font-weight:800}.at-input input{border:0;background:none;padding-left:3px}
.af.bad .at-input{border-color:#e0574a}.avail{font-weight:800}.avail.ok{color:#6ee7b7}.avail.no{color:#ff9a8f}
.pw{display:flex;gap:6px}.pw input{flex:1}.pw-show{flex:0 0 auto;min-width:64px;border:1px solid var(--line);border-radius:12px;background:#2a1c12;color:var(--cream);font-weight:800;font-size:13px}
.dob{display:grid;grid-template-columns:.8fr 1.5fr 1fr;gap:6px}
.tick{display:flex;gap:10px;align-items:flex-start;font-weight:600!important;font-size:13px!important;line-height:1.4}.tick input{width:22px;height:22px;min-height:0;flex:0 0 auto;margin-top:1px;accent-color:var(--green)}
.acct-submit{width:100%;min-width:0;height:54px;border-radius:16px;font:800 16px var(--display)}.acct-submit:disabled{opacity:.6}
.acct-foot,.acct-note{font-size:12.5px;color:var(--muted);margin:0;line-height:1.45}.acct-note b{color:var(--cream)}.acct-switch{margin:0;font-size:13px;color:var(--muted)}
.code-in{letter-spacing:.5em;font:800 22px var(--display)!important;text-align:center}
.seg{display:flex;gap:4px;padding:4px;border-radius:14px;background:#1d130c;border:1px solid var(--line);margin-bottom:12px;max-width:520px}.seg button{flex:1;min-height:40px;border:0;border-radius:10px;background:none;color:var(--muted);font-weight:800;font-size:13px}.seg button.on{background:var(--cream);color:var(--ink)}
.tour-card{display:grid;gap:12px;justify-items:start;max-width:520px}.tour-icon{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;font-size:30px;background:linear-gradient(145deg,var(--green),var(--green2));color:#06271A}
.tour-card p{margin:0;font-size:15px;line-height:1.5}.tour-dots{display:flex;gap:6px}.tour-dots i{width:8px;height:8px;border-radius:50%;background:rgba(245,236,220,.2)}.tour-dots i.on{background:var(--amber);width:22px;border-radius:5px}
.acct-card{margin-bottom:10px}.guest-keep{margin-bottom:12px}.guest-keep h3{margin:4px 0}.guest-keep .btnrow{margin-top:9px}
.email-nudge{position:absolute;z-index:24;left:18px;top:151px;display:flex;align-items:stretch;max-width:390px;border:1px solid rgba(16,185,129,.35);border-radius:15px;background:rgba(9,24,17,.92);backdrop-filter:blur(14px);box-shadow:0 14px 34px rgba(0,0,0,.28)}
.email-nudge[hidden]{display:none}.en-main{display:flex;align-items:center;gap:9px;border:0;background:none;padding:9px 6px 9px 11px;text-align:left;color:var(--cream)}.en-main b{display:block;font-size:12.5px}.en-main small{display:block;font-size:11.5px;color:var(--muted)}.en-main em{font:900 11px var(--display);font-style:normal;color:#6ee7b7;white-space:nowrap;margin-left:6px}
.en-x{border:0;background:none;color:var(--muted);font-size:20px;padding:0 12px;min-width:40px}
.app.trip-on .email-nudge,.app[data-phase="lobby"] .email-nudge,.app[data-phase="match"] .email-nudge{opacity:0;pointer-events:none}
@media(max-width:760px){.email-nudge{left:12px;right:12px;top:124px;max-width:none}.en-main{flex:1}.gb-copy{flex-basis:100%;order:2}.gb-faces{order:1}.gb-btns{order:1;margin-left:auto}}
@media(max-width:760px){.sheet .grid2{grid-template-columns:1fr}.daily-chip .dc-copy small,.daily-chip .dc-copy b{white-space:normal;overflow:visible;text-overflow:clip}}
.tour-card .btnrow .mini{min-height:46px;padding:0 22px;font-size:13.5px;border-radius:14px}
@media(min-width:761px){.sheet[data-kind="gate"],.sheet[data-kind="signup"],.sheet[data-kind="login"],.sheet[data-kind="forgot"],.sheet[data-kind="addEmail"],.sheet[data-kind="tour"]{width:min(600px,calc(100% - 24px))}}
.street-reveal-layer{visibility:hidden;transition:opacity .25s,visibility 0s .25s}.street-reveal-layer.open{visibility:visible;transition:opacity .25s}
.help-list{display:grid;gap:8px}.help-q summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:10px}.help-q summary::after{content:"+";font-weight:900;color:var(--amber2)}.help-q[open] summary::after{content:"–"}.help-q p{margin:8px 0 0;font-size:13.5px;line-height:1.5;color:var(--cream)}
@media(max-width:760px){.trip-dest small{white-space:normal;overflow:visible;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.trip-dest>[class^="badge-"],.trip-dest .trip-tag{font-size:10.5px;max-width:96px;white-space:normal;text-align:center;line-height:1.2}}
/* v5.9 first-visit guide */
.coach{position:fixed;inset:0;z-index:300}
.coach-hole{position:fixed;border-radius:16px;box-shadow:0 0 0 9999px rgba(6,4,2,.72),0 0 0 3px var(--amber);transition:all .25s ease;pointer-events:none}
.coach-card{position:fixed;background:#1d130c;border:1px solid rgba(245,165,36,.4);border-radius:18px;padding:14px 16px;box-shadow:0 20px 50px rgba(0,0,0,.5);color:var(--cream)}
.coach-card b{display:block;font:800 17px var(--display);margin:2px 0 4px}.coach-card p{margin:0;font-size:14px;line-height:1.45;color:#e9dfcf}
.coach-step{font:800 11px var(--body);letter-spacing:.1em;color:var(--amber2);text-transform:uppercase}
.coach-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.coach-btns button{min-height:42px;padding:0 18px;border-radius:12px;font-weight:800;font-size:14px;border:1px solid var(--line);background:#2a1c12;color:var(--cream)}
.coach-btns .coach-next{background:linear-gradient(180deg,var(--green),var(--green2));color:#06271A;border:0}
.form-note{font-size:13px;color:var(--muted);margin:4px 0 8px;line-height:1.4}
/* v5.9 premium share cards */
.share-layout.v2{display:grid;grid-template-columns:minmax(0,360px) 1fr;gap:18px;align-items:start}
.share-preview{display:grid;gap:10px;justify-items:center}
.share-frame{position:relative;width:100%;max-width:340px;aspect-ratio:9/16;border-radius:18px;overflow:hidden;background:#120f22;box-shadow:0 18px 40px rgba(0,0,0,.45)}
.share-frame.sq{aspect-ratio:1/1}.share-frame img{width:100%;height:100%;object-fit:cover;display:block}
.share-wait{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-weight:700;font-size:14px;background:rgba(18,15,34,.6)}.share-wait[hidden]{display:none}
.share-fmt{width:100%;max-width:340px;margin:0}
.share-moments{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 14px}
.share-moment{min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:#24170f;color:var(--cream);font-weight:800;font-size:13px}
.share-moment.on{background:var(--amber);color:var(--ink);border-color:transparent}
@media(max-width:760px){.share-layout.v2{grid-template-columns:1fr}.share-frame{max-width:240px}}
.lobby-layer{overflow-y:auto;padding:64px 0 24px}
.lobby-back{position:fixed;z-index:60;left:12px;top:12px;min-height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:rgba(18,11,6,.88);color:var(--cream);font-weight:800;font-size:13px;backdrop-filter:blur(10px)}
.lobby-layer:not(.open) .lobby-back{display:none}
.pause-top{margin:0 0 12px}.pause-top .mini{min-height:44px;font-size:13px}
/* v5.9 phone Home: WHERE TO? gets its own full-width row under the top bar (it was hidden behind the identity card),
   and everything below moves down to make room. */
@media(max-width:760px){
  .app .venue-chip{left:12px;right:12px;top:58px;transform:none;justify-content:space-between;padding:7px 7px 7px 12px}
  .app .venue-chip .where-to{margin-left:auto}
  .app .identity-card{top:104px}
  .app .live-rail{top:104px}
  .app .daily-strip{top:184px}
  .app:has(#returnBanner:not([hidden])) .daily-strip{top:212px}
  .app:has(#installNudge:not([hidden])) .daily-strip,.app:has(#emailNudge:not([hidden])) .daily-strip{top:230px}
  .app .email-nudge,.app .install-nudge{top:166px}
  .app .return-banner{top:152px}
}
/* v5.9: during a game the sheet (PAUSE, sign-up) must sit above the game (it opened hidden behind it) */
.app[data-phase="match"] .sheet-backdrop,.app[data-phase="spectate"] .sheet-backdrop{z-index:95;bottom:0!important}
.wx-now{font-weight:800;font-size:12.5px;color:var(--cream);padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.08);white-space:nowrap}
.wx-now[hidden]{display:none}
.journey-mini{display:flex;gap:4px;margin:6px 0 4px}.journey-mini i{width:16px;height:6px;border-radius:3px;background:rgba(245,236,220,.15)}.journey-mini i.on{background:var(--green)}.journey-mini i.here{outline:2px solid var(--amber);outline-offset:1px}
.jgame-row{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}.jgame-row button{min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:#24170f;color:var(--cream);font-weight:800;font-size:12px}.jgame-row button.on{background:var(--green);color:#06271A;border-color:transparent}
/* UX-29 one flow for every game: the game's stage screen and the shared lobby */
.match-live[hidden]{display:none!important}
.lobby-layer[data-seats="2"] #seat2,.lobby-layer[data-seats="2"] #seat3{display:none}
.lobby-layer:not([data-game="ludo"]) .lobby-board .quadrant{display:none}
.lobby-layer[data-game="whot"] .lobby-board{background:radial-gradient(circle,#1d6b48,#0c3b27)}
.lobby-layer[data-game="ayo"] .lobby-board{background:radial-gradient(circle,#8a5a2b,#4b2c12)}
.lobby-layer[data-game="draughts"] .lobby-board{background:repeating-conic-gradient(#e9dcc0 0 25%,#3b2a1c 0 50%) 0 0/25% 25%}
.lobby-layer[data-game="quiz"] .lobby-board{background:radial-gradient(circle,#2a3c8f,#121a45)}
.gs-now{display:grid;gap:10px;margin-bottom:14px}
.gs-list{display:grid;gap:8px}
.gs-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.gs-row.here{border-color:#f5c518;background:rgba(245,197,24,.08)}
.gs-row.locked{opacity:.62}
.gs-n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:rgba(255,255,255,.08)}
.gs-row.open .gs-n{background:#16a36a;color:#fff}.gs-row.here .gs-n{background:#f5c518;color:#111}
.gs-row b{display:block;font-size:14px}.gs-row small{display:block;opacity:.75;font-size:12px;line-height:1.35}
.gs-lock{font-size:12px;opacity:.85;text-align:right;max-width:150px}
.gs-steps{display:flex;gap:6px;flex-wrap:wrap;font-size:12px;opacity:.85;margin:6px 0 0}.gs-steps span{padding:3px 8px;border-radius:999px;background:rgba(255,255,255,.07)}.gs-steps span.on{background:#f5c518;color:#111;font-weight:700}
/* FM-1/FM-2 Life FM globe */
.fm-globe{position:relative;height:min(48vh,420px);border-radius:18px;overflow:hidden;background:#050912;margin:4px 0 12px}
.fm-globe canvas{display:block;width:100%;height:100%;cursor:grab}
.fm-ring{position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;border:2.5px solid rgba(255,255,255,.92);border-radius:50%;pointer-events:none;box-shadow:0 0 0 1px rgba(0,0,0,.25),0 0 18px rgba(61,255,138,.25);z-index:2}
.fm-load{position:absolute;left:12px;bottom:10px;z-index:2;font-size:12px;padding:5px 10px;border-radius:999px;background:rgba(5,9,18,.72);color:#dfe8ff;transition:opacity .6s}.fm-load.fade{opacity:.0}
.fm-now h3{margin:4px 0}.fm-ctrl{flex-wrap:wrap}
.fm-pick{text-align:left;cursor:pointer;border:1px solid rgba(255,255,255,.08)}.fm-pick.lagostable b{color:#f5c518}
.fm-hint{opacity:.75;font-size:13px}.fm-credit{display:block;margin-top:12px;opacity:.6;font-size:11px;line-height:1.4}
/* Round H: Next up, story, give */
.next-list{display:grid;gap:8px;margin-bottom:14px}
.next-row{display:grid;gap:6px;text-align:left;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);color:inherit;cursor:pointer}
.next-row b{font-size:13.5px;font-weight:600}.next-bar{height:6px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}.next-bar i{display:block;height:100%;background:linear-gradient(90deg,#16a36a,#f5c518)}
.story-pick{display:grid;gap:12px}.story-card small{display:block;margin-top:6px;opacity:.8;line-height:1.4}
.give-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.give-form label{display:grid;gap:4px;font-size:12px;opacity:.9}.give-form label:last-child{grid-column:1/-1}
.give-form select,.give-form input{padding:9px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:rgba(0,0,0,.25);color:inherit}
.radio-row.on b{color:#f5c518}
.flex-big{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:8px 0 2px}.flex-big b{font-size:11px;letter-spacing:.08em;opacity:.8}.flex-big .short{opacity:.45}
/* UX-35: TAP TO PLAY → your next game: the game, the stage, the real place, where you are, the trip */
.ng-chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:none}.ng-chips::-webkit-scrollbar{display:none}
.ng-chip{flex:0 0 auto;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:var(--cream,#f6efe1);border-radius:999px;padding:8px 14px;font:700 13px var(--body,system-ui);cursor:pointer}
.ng-chip.on{background:#f5c518;color:#111;border-color:#f5c518}
.ng-where{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);margin-bottom:10px}
.ng-where .ng-pin{font-size:22px;text-align:center}.ng-where small{display:block;font:800 10px/1.2 var(--body,system-ui);letter-spacing:.12em;color:var(--muted,#9aa6a0)}.ng-where b{display:block;font-size:15px}.ng-where span{font-size:12px;color:var(--muted,#9aa6a0)}
.ng-table{padding:14px;border-radius:16px;background:linear-gradient(160deg,rgba(245,197,24,.12),rgba(255,255,255,.03));border:1px solid rgba(245,197,24,.35)}
.ng-table.here{background:linear-gradient(160deg,rgba(22,163,106,.18),rgba(255,255,255,.03));border-color:rgba(22,163,106,.6)}
.ng-table h3{margin:6px 0 2px;font-size:20px}.ng-street{margin:0 0 10px;color:var(--muted,#9aa6a0);font-size:13px}
.ng-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}.ng-facts span{padding:8px;border-radius:10px;background:rgba(0,0,0,.22);font-size:11px;color:var(--muted,#9aa6a0);text-align:center}.ng-facts b{display:block;font-size:15px;color:var(--cream,#f6efe1)}
.ng-trip{font-size:13px;line-height:1.45}.ng-note{margin:8px 0 0;font-size:12px;color:#f5c518}
.ng-actions{display:grid;gap:8px;margin-top:12px}.ng-actions .ng-go{width:100%}
@media (max-width:420px){.ng-facts b{font-size:13px}.ng-table h3{font-size:18px}}
/* AVATAR-1: Build your Lagosian */
.av-layout{display:grid;grid-template-columns:minmax(220px,1fr) 1.2fr;gap:14px;align-items:start}
@media (max-width:640px){.av-layout{grid-template-columns:1fr}}
.av-stage{position:relative;border-radius:16px;background:radial-gradient(ellipse at 50% 30%,#3a4a52,#151c20 70%);min-height:300px;overflow:hidden}
.av-canvas{display:block;width:100%;height:340px}@media (max-width:640px){.av-canvas{height:280px}}
.av-stage small{position:absolute;left:0;right:0;bottom:10px;text-align:center;color:var(--muted,#9aa6a0);font-size:12px}
.av-sec{margin-bottom:12px}.av-sec .eyebrow{display:block;margin-bottom:6px}
.av-bases{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}
.av-base{text-align:left;padding:8px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:inherit;cursor:pointer}.av-base b{display:block;font-size:14px}.av-base small{font-size:11px;color:var(--muted,#9aa6a0)}
.av-base.on{border-color:#f5c518;background:rgba(245,197,24,.12)}
.av-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:6px}
.av-sw{width:32px;height:32px;border-radius:50%;border:2px solid rgba(255,255,255,.18);cursor:pointer;padding:0}.av-sw.on{border-color:#f5c518;box-shadow:0 0 0 3px rgba(245,197,24,.35)}
.av-chip{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:inherit;border-radius:999px;padding:7px 12px;font:700 12px var(--body,system-ui);cursor:pointer}.av-chip.on{background:#f5c518;color:#111;border-color:#f5c518}
.av-height b{min-width:70px;text-align:center}.av-line{font-size:12px;color:var(--muted,#9aa6a0);margin:4px 0 0}
.av-actions{display:grid;grid-template-columns:auto 1fr;gap:10px;margin-top:12px;align-items:center}.av-actions .av-save{width:100%}

/* UX-38 (8 Oct): on phones the identity card and the live cards share the row without overlapping (left half / right half). */
@media(max-width:760px){.app .identity-card,.app .daily-strip{max-width:calc(50vw - 18px)}.app .live-rail{width:calc(50vw - 18px)}}
@media(max-width:760px){.app .identity-copy{min-width:0}.app .identity-copy b,.app .identity-copy span,.app .identity-copy em{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
@media(min-width:821px){.app .daily-strip{top:168px}.app:has(#installNudge:not([hidden])) .daily-strip{top:230px}}
/* AVATAR-3: match my skin tone from a selfie (optional; the photo stays on the phone) */
.av-selfie{display:grid;gap:6px;justify-items:start;margin:10px 0 2px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.03)}.av-selfie small{color:var(--muted);font-size:11.6px;line-height:1.4}
.av-sf-note{margin:0;color:var(--green);font-size:12.4px;font-weight:700}.av-sf-frame{justify-self:center}.av-sf-frame canvas{width:min(300px,72vw);aspect-ratio:300/360;border-radius:16px;touch-action:none;cursor:grab;background:#120c08;display:block}
.av-sf-zoom{display:flex;align-items:center;gap:8px;font-size:11.6px;font-weight:800;letter-spacing:.08em;color:var(--muted);justify-self:stretch}.av-sf-zoom input{flex:1}.av-sf-tip{margin:0;font-size:12px;color:#d8c8b2;line-height:1.4}

/* ---------- UX-3 (Olu's guest audit, 9 Oct) ---------- */
/* First visit: one headline, one line, one Play button. Coins, ☰ and the city stay; everything else waits for the first game. */
.app.first-visit .identity-card,.app.first-visit .daily-strip,.app.first-visit .live-rail,.app.first-visit .world-pulse,.app.first-visit .venue-chip,
.app.first-visit .secondary-cta,.app.first-visit .guest-bar,.app.first-visit .nav-dock,.app.first-visit .topbar-actions>*:not([data-action="coins"]):not([data-action="settings"]):not(.live-pill),
.app.first-visit .return-banner,.app.first-visit .install-nudge,.app.first-visit .email-nudge{display:none!important}
.app.first-visit .hero{left:50%!important;transform:translateX(-50%)!important;bottom:max(40px,8vh)!important;width:min(560px,calc(100% - 32px))!important;text-align:center!important}
.app.first-visit .hero .hero-actions{justify-content:center}.app.first-visit .hero .primary-cta{min-width:min(340px,100%)}
/* The three notices (Watch, Wall, Gist) duplicated the bottom tabs; their news lives in Gist. */
.app .live-rail{display:none!important}
/* Desktop: the daily riddle and goals sit top right, where the notices were, so nothing covers the headline. */
@media(min-width:761px){.app .daily-strip{left:auto!important;right:18px;top:70px!important;width:min(300px,30vw)}}
/* Short windows (a laptop at 1000×525, a phone in landscape): a compact hero that fits under the identity card. */
@media(min-width:761px) and (max-height:700px){.app .hero{bottom:84px;padding:12px 14px}.app .hero h1{font-size:30px!important;line-height:.95;margin:4px 0 6px}.app .hero #heroCopy{display:none}.app .hero .primary-cta,.app .hero .secondary-cta{height:52px}.app .hero .primary-cta small,.app .hero .secondary-cta small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;display:block}
  .app .hero .guest-bar{display:none!important}.app .hero .hero-micro{display:none}.app .identity-card{top:62px}}
@media(min-width:761px) and (max-height:560px){.app .hero h1 br{display:none}.app .hero h1 span{display:inline;margin-left:.22em}.app .hero h1{font-size:26px!important}.app .hero-kicker{display:none}} /* V1-0: the whole headline on one line in short windows */
/* UX3: the lobby buttons stay in view (the audit found START below the fold at 1000×525) on a solid footer. */
.lobby-layer.open .lobby-actions{position:sticky;bottom:0;z-index:3;padding:10px 12px calc(10px + env(safe-area-inset-bottom));margin-top:8px;background:rgba(18,11,6,.94);border-top:1px solid rgba(255,255,255,.08);border-radius:16px 16px 0 0;width:min(720px,100%);justify-content:center}
.lobby-layer.open #botsNow:not([hidden]){order:-1;background:linear-gradient(180deg,#16c47f,#0e9a62);color:#04140c;border-color:transparent;font-weight:800}
@media(max-height:700px){.lobby-layer{padding-top:52px}.lobby-copy{margin-bottom:8px}.lobby-copy h2{font-size:22px}.lobby-table-wrap{transform:scale(.78);margin:-40px 0}.lobby-layer .table-chat{max-height:96px}}
/* UX3-8 (audit bug 6): the ride footer is solid, so the transport list scrolls above it and never under painted text. */
.sheet-backdrop.trip-sheet #tripCta{background:#1B110A!important;border-top:1px solid rgba(255,255,255,.10);box-shadow:0 -14px 22px -8px rgba(0,0,0,.55);padding-top:12px!important}
@media(max-height:700px){.lobby-layer{align-content:start}.lobby-layer .lobby-copy p{font-size:12px;margin:2px 0 0}}
@media(max-height:600px){.lobby-layer .table-chat{display:none}.lobby-table-wrap{transform:scale(.7);margin:-56px 0 -40px}}
/* UX3-15: one door to Gist (the tab, with a dot for today's news); the streak lives inside Gist */
.topbar .streak-pill{display:none!important}
.nav-dock [data-action="gist"]{position:relative}.nav-dock [data-action="gist"].has-new::after{content:"";position:absolute;top:6px;right:calc(50% - 16px);width:9px;height:9px;border-radius:50%;background:#ff6b3d;box-shadow:0 0 0 2px #1B110A}
/* UX3-16 (audit bug 12): after you pick an item, Buy stays in view on a solid bar at the bottom of the panel */
#shopBuyBar{position:sticky;bottom:-16px;z-index:3;background:#2a1c0e!important;border:1px solid rgba(245,181,60,.55);box-shadow:0 -14px 22px -8px rgba(0,0,0,.6)}
/* UX3-2: the lobby's little board matches the table: your red corner is nearest you, then green, yellow and blue clockwise */
.lobby-board .quadrant.yellow{order:1}.lobby-board .quadrant.blue{order:2}.lobby-board .quadrant.green{order:3}.lobby-board .quadrant.red{order:4}
.game-mark svg{display:block;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}
/* UX3-11: Watch shows the real 3D table (game/v313.html?watch=1) under the spectator controls */
.spectate-frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:none;background:#0d0a07}
.spectate-layer.real-watch .spectate-frame{display:block}
.spectate-layer.real-watch .spectate-table-3d,.spectate-layer.real-watch .spectate-player,.spectate-layer.real-watch .spectate-crowd,.spectate-layer.real-watch .spectate-rival{display:none!important}
/* UX3-23 (Olu's audit, measured with an automated scan): every tap target at least 44 px on touch screens, never squeezed */
.sheet-close{flex:0 0 44px;width:44px!important;height:44px!important}
.icon-button,.brand-mark{width:44px!important;height:44px!important}.top-pill{min-height:44px}
@media (pointer:coarse),(max-width:760px){.mini,.av-chip,.chip-action,.tab-btn,.culture-filter-btn{min-height:44px}.av-sw{width:44px!important;height:44px!important}.mini[data-action="avSet"]{min-width:44px}}
.lc-lbl{position:absolute}.lc-lbl::after{content:"";position:absolute;inset:-10px -6px} /* map pins: the finger area is larger than the drawn pin */
.live-badge{background:#b8322a!important} /* white on this red: 5.3:1 */
/* UX3-15: the games strip under Play */
.game-strip{display:flex;gap:7px;margin-top:10px;overflow-x:auto;scrollbar-width:none;justify-content:flex-start}.game-strip::-webkit-scrollbar{display:none}
.gs-tile{flex:0 0 auto;width:66px;min-height:66px;border:1px solid var(--line);border-radius:14px;background:rgba(27,17,10,.82);backdrop-filter:blur(10px);display:grid;justify-items:center;align-content:center;gap:2px;padding:6px 2px;color:var(--cream)}
.gs-tile span svg{width:32px;height:32px;display:block}.gs-tile small{font-size:10.5px;font-weight:800;line-height:1.1;text-align:center}
.gs-tile:hover{border-color:rgba(245,165,36,.5)}
.app.first-visit .game-strip{display:none!important}
@media(min-width:761px) and (max-height:700px){.app .game-strip{display:none}}
/* R1-01: the Play button's line is one line, always Naija Ludo */
.hero .primary-cta small{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* R1-03 (Olu's audit Rev1, bug 20): green buttons carry near-black text at full strength (7:1 on the green), never grey */
.primary-cta,.primary-cta span,.primary-cta small,.mini.primary,.ticket-actions .primary,.ng-go,button.primary{color:#03140D!important;opacity:1!important;text-shadow:none!important}
.primary-cta small{font-weight:700}
/* R1-19: the coin pill glows while the balance counts up */
.top-pill.counting{box-shadow:0 0 0 2px rgba(245,194,27,.55),0 0 22px rgba(245,194,27,.45);transition:box-shadow .2s}
/* B-AVATAR / R1-10: the 3D Lagosian portrait replaces the blob */
#homeAvatar.has-3d{background-size:cover;background-position:center 18%;background-repeat:no-repeat;background-color:#2a1c12}
#homeAvatar.has-3d>span{display:none}
.preview-character.has-3d{display:flex;align-items:flex-end;justify-content:center;background:none!important}
.preview-character.has-3d .pc-3d{height:100%;max-height:260px;width:auto;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.35))}
.person-face.has-3d{background-size:cover!important;background-position:center 20%!important;background-color:#2a1c12!important}
.person-face.has-3d::before,.person-face.has-3d::after{display:none!important}
.shop-preview .preview-character.has-3d,.identity-stage .preview-character.has-3d{width:min(230px,90%);height:min(340px,86%);top:6%;transform:translateX(-50%)!important}
.preview-character.has-3d .pc-3d{max-height:none;height:100%}
/* V1-1: coin rain on a win */
.coin-rain{position:fixed;inset:0;z-index:90;pointer-events:auto;overflow:hidden;background:radial-gradient(circle at 50% 40%,rgba(245,165,36,.18),transparent 60%)}
.coin-rain i{position:absolute;top:-40px;width:26px;height:26px;border-radius:50%;transform:scale(var(--s));background:radial-gradient(circle at 35% 30%,#fff3b0,#f5c21b 45%,#b8860b 80%);box-shadow:inset 0 0 0 2px rgba(120,80,0,.45),0 4px 10px rgba(0,0,0,.35);animation:crFall linear forwards}
.coin-rain i::after{content:'S';position:absolute;inset:0;display:grid;place-items:center;font:900 9px/1 var(--display,system-ui);color:rgba(110,70,0,.75)}
@keyframes crFall{0%{transform:translateY(0) rotateY(0) scale(var(--s))}100%{transform:translateY(calc(100vh + 80px)) rotateY(1080deg) scale(var(--s))}}
.cr-title{position:absolute;left:50%;top:34%;transform:translateX(-50%);text-align:center;color:#fff3d6;text-shadow:0 4px 18px rgba(0,0,0,.6);animation:crPop .5s cubic-bezier(.2,1.4,.4,1) both}
.cr-title b{display:block;font:900 clamp(34px,7vw,64px)/1 var(--display,system-ui);letter-spacing:.02em;color:#f5c21b}
.cr-title span{display:block;margin-top:8px;font:800 clamp(16px,3vw,22px)/1.2 var(--body,system-ui)}
@keyframes crPop{0%{transform:translateX(-50%) scale(.6);opacity:0}100%{transform:translateX(-50%) scale(1);opacity:1}}
.seat-avatar.has-3d{background-size:cover!important;background-position:center 20%!important;background-color:#2a1c12!important;color:transparent}
/* R1-17 (Olu's audit Rev1: header clutter): the top bar keeps coins and ☰; GAMES lives in the strip under Play; the radio
   is a small player in the corner of the map */
.topbar .games-pill{display:none!important}
.app[data-phase="home"] .topbar .live-pill{position:fixed;right:18px;bottom:22px;z-index:21;height:40px;box-shadow:0 10px 26px rgba(0,0,0,.35)}
.app:not([data-phase="home"]) .topbar .live-pill{display:none!important}
.app.map-open .topbar .live-pill,.app.trip-on .topbar .live-pill{display:none!important}
@media(max-width:760px){.app[data-phase="home"] .topbar .live-pill{position:static;box-shadow:none;height:36px}}
.watch-faces .person-face.has-3d{color:transparent}
.watch-faces [data-face].has-3d{background-size:cover!important;background-position:center 20%!important;background-color:#2a1c12!important;color:transparent}

/* Sign in with Google or X (Olu, 10 Oct): one tap, first in every account sheet */
.social-row{display:grid;gap:10px;max-width:520px;margin:4px 0 2px}
.social-btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;border-radius:14px;border:1px solid rgba(255,255,255,.22);font:800 15px/1 inherit;font-family:inherit;cursor:pointer;padding:0 16px}
.social-btn b{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:14px}
.sb-google{background:#fff;color:#1f1f1f}.sb-google b{background:#f1f3f4;color:#1f1f1f}
.sb-x{background:#000;color:#fff;border-color:#333}.sb-x b{background:#fff;color:#000}
.social-note{margin:2px 0 0;font-size:12px;color:var(--muted,#b7a68c)}
.social-or{display:flex;align-items:center;gap:10px;margin:10px 0 2px;font-size:12px;color:var(--muted,#b7a68c);text-transform:uppercase;letter-spacing:.08em;max-width:520px}
.social-or::before,.social-or::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.14)}

/* Privacy and Terms on the home page (Google's sign-in rules: the homepage links the privacy policy) */
.about-line{margin:8px 0 0;max-width:460px;font-size:11.5px;line-height:1.45;color:var(--muted,#b7a68c)}
.legal-links{margin-top:6px;font-size:12px;color:var(--muted,#b7a68c)}.legal-links a{color:inherit;text-decoration:underline}

/* Olu's logo (10 Oct): the round mark replaces the 'S' tile everywhere */
.brand-mark.logo,.cl-mark.logo,.reveal-rings span.logo{background:none;box-shadow:0 0 0 1px rgba(245,165,36,.35);border-radius:50%;padding:0;overflow:hidden}.brand-mark.logo img,.cl-mark.logo img,.reveal-rings span.logo img{width:100%;height:100%;display:block;object-fit:contain}
.av-sex{display:grid;grid-template-columns:1fr 1fr;gap:8px}.av-sexb{padding:12px 10px;font-size:14px;font-weight:900;letter-spacing:.06em}
.av-sf-btns{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}.av-sf-live{position:relative;width:300px;max-width:100%;aspect-ratio:5/6}.av-sf-live video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1);border-radius:14px;background:#000}.av-sf-live canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;background:transparent;border-radius:14px}
/* Olu (11 Oct): "after approving everything is black". Root cause: the framing canvas rule above (.av-sf-frame canvas) gives
   every canvas in the frame a solid dark background, so the oval overlay painted over the live camera. The overlay is see-through now. */
/* GL-PROFILE: signed-in face at the top right */
.profile-btn{display:flex;align-items:center;gap:7px;height:40px;padding:0 10px 0 4px;border-radius:999px;border:1px solid rgba(245,165,36,.45);background:rgba(18,11,6,.72);color:var(--ink,#f5ecdc);cursor:pointer;backdrop-filter:blur(10px)}
.profile-btn[hidden],.signin-pill[hidden]{display:none!important}
.pb-face{width:32px;height:32px;border-radius:50%;background-size:cover;background-position:50% 18%;display:grid;place-items:center;font:900 14px var(--display);color:#120B06;flex:none}
.profile-btn b{font-size:12.5px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.signin-pill b{color:var(--amber2,#F5B83C)}
.pm-list{display:grid;gap:8px}.pm-item{width:100%;text-align:left;padding:14px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:inherit;font-weight:900;letter-spacing:.04em;cursor:pointer}.pm-out{color:#ff8a7a;border-color:rgba(255,138,122,.35)}
@media (max-width:640px){.profile-btn{padding:0 4px;height:36px}.profile-btn b{display:none}.pb-face{width:28px;height:28px}}
/* GL-ONLINE-LUDO: who are you playing, friends tables */
.lm-list{display:grid;gap:10px}.lm-item{display:grid;gap:3px;text-align:left;padding:14px 16px;border-radius:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:inherit;cursor:pointer}
.lm-item b{font-size:15px;letter-spacing:.04em}.lm-item small{color:var(--muted,#b7a68c);font-size:12px}.lm-hot{border-color:rgba(245,165,36,.55);background:rgba(245,165,36,.1)}
.lm-players{display:flex;align-items:center;gap:8px;margin-top:14px}.lm-players .mini.on{background:var(--amber,#F5A524);color:#120B06}
.ow-status{font-weight:800;margin:6px 0 14px}
.fr-code{font:900 42px/1 var(--display,system-ui);letter-spacing:.18em;text-align:center;padding:14px;border-radius:16px;background:rgba(245,165,36,.12);color:var(--amber2,#F5B83C);border:1px dashed rgba(245,165,36,.55)}
.fr-link{width:100%;margin:10px 0;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.25);color:inherit;font-size:13px}
.fr-share{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.fr-seats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0 10px}
.fr-seat{padding:10px 12px;border-radius:12px;border:1px dashed rgba(255,255,255,.18)}.fr-seat.in{border-style:solid;border-color:rgba(16,185,129,.55);background:rgba(16,185,129,.08)}.fr-seat b{display:block;font-size:13px}.fr-seat small{color:var(--muted,#b7a68c);font-size:11px}
.fj-form{display:flex;gap:8px}.fj-form input{flex:1;font:900 24px var(--display,system-ui);letter-spacing:.2em;text-transform:uppercase;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.25);color:inherit}
.fr-share .mini:disabled,#frStart:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.6)}
.share-prompt{position:fixed;left:50%;bottom:96px;z-index:60;display:flex;align-items:center;gap:10px;padding:10px 10px 10px 16px;border-radius:999px;background:rgba(18,11,6,.94);border:1px solid rgba(245,165,36,.55);box-shadow:0 14px 40px rgba(0,0,0,.45);color:var(--ink,#f5ecdc);font-weight:800;font-size:13px;transform:translate(-50%,30px);opacity:0;transition:transform .35s ease,opacity .35s ease;max-width:calc(100vw - 32px)}
.share-prompt.in{transform:translate(-50%,0);opacity:1}.share-prompt .sp-x{background:none;border:0;color:var(--muted,#b7a68c);font-size:20px;cursor:pointer;padding:0 6px}
/* 11 Oct: the recovery code shown once after a password sign-up (the live server cannot send email yet) */
.recovery code{display:block;font:900 24px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:2px;text-align:center;padding:16px 10px;border-radius:14px;background:rgba(245,182,63,.12);border:1px dashed rgba(245,182,63,.6);color:#ffd27a;user-select:all;-webkit-user-select:all;margin:6px 0 10px;word-break:break-all}
.recovery .acct-note{margin:10px 0 14px}
/* 11 Oct (Olu: "Life FM radio is not showing on the app"): phones hid the Radio pill entirely (it lived only in the ☰ menu).
   On the home screen it now sits on the right just under the Where to? bar, clear of the cards on the left. The very first
   visit keeps its bare top bar (coins and the menu only, Olu's guest audit, UX3). */
@media(max-width:430px){.app[data-phase="home"] .topbar .top-pill.live-pill{display:flex!important;position:fixed;right:12px;bottom:auto;top:calc(106px + env(safe-area-inset-top,0px));height:36px;z-index:21;box-shadow:0 8px 20px rgba(0,0,0,.35)}
  .app[data-phase="home"] .topbar .top-pill.live-pill{flex-direction:column;align-items:flex-start;justify-content:center;gap:0;height:auto;min-height:40px;padding:4px 12px 4px 22px}
  .app[data-phase="home"] .topbar .top-pill.live-pill .live-dot{position:absolute;left:9px;top:50%;margin-top:-4px}
  .app[data-phase="home"] .topbar .top-pill.live-pill b::before{content:'♪ ';color:var(--green,#34d399)}
  .app[data-phase="home"] .topbar .top-pill.live-pill small{display:block;font-size:10.5px;line-height:1.1;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Olu (11 Oct): "the page that loads on the phone to select how to get there does not really show the options... should be
   extended to show more than 3 options before even scrolling". Measured before: one option on a 390x844 phone, none on a
   375x667. On phones the ride sheet is taller (the route still shows above it), every way to go is one compact row, and the
   pay button area is tighter, so at least four ways show with no scrolling, and the chosen one is always in view. */
@media(max-width:820px){
  .sheet-backdrop.map-mode.trip-sheet .sheet{max-height:min(76%,calc(100% - 150px))!important;padding-top:12px}
  /* while you choose a ride the bottom menu steps aside, so the ways to go get its space */
  .app:has(.sheet-backdrop.open.trip-sheet) .nav-dock{display:none!important}.sheet-backdrop.trip-sheet{bottom:0!important}.sheet-backdrop.map-mode.trip-sheet .sheet{margin-bottom:max(10px,env(safe-area-inset-bottom,0px))!important}
  .sheet-backdrop.trip-sheet .sheet-header{margin-bottom:6px}
  .sheet-backdrop.trip-sheet #sheetTitle{font-size:22px;line-height:1.1}
  .sheet-backdrop.trip-sheet #sheetSubtitle{font-size:12.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sheet-backdrop.trip-sheet .trip-head{margin-bottom:6px}.sheet-backdrop.trip-sheet .trip-head .mini{min-height:30px;height:30px;padding:0 10px;font-size:11.5px}
  .trip-modes{gap:5px}
  .trip-mode{padding:6px 10px;gap:9px;border-radius:12px;min-height:46px}
  .trip-mode-icon{font-size:20px;width:26px}
  .trip-mode-copy b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trip-mode-copy b i{font-size:10.5px;padding:1px 5px;margin-left:4px}
  .trip-mode-copy small{font-size:12px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trip-mode-copy small.need{white-space:normal}
  .trip-mode strong{font-size:15px}.trip-mode strong small{font-size:10.5px}
  .sheet-backdrop.trip-sheet #tripCta{padding-top:8px!important}
  .sheet-backdrop.trip-sheet .trip-note{font-size:12px;line-height:1.35;margin:0 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .sheet-backdrop.trip-sheet .trip-rt{padding:5px 10px;margin:0 0 6px}.sheet-backdrop.trip-sheet .trip-rt span{flex-direction:row;align-items:baseline;gap:6px}.sheet-backdrop.trip-sheet .trip-rt b{flex:none}.sheet-backdrop.trip-sheet .trip-rt small{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sheet-backdrop.trip-sheet .trip-cta{margin-top:4px}.sheet-backdrop.trip-sheet .trip-cta .primary-cta{height:50px}
}
@media(max-width:820px) and (max-height:760px){.sheet-backdrop.trip-sheet .trip-note{-webkit-line-clamp:1}.sheet-backdrop.map-mode.trip-sheet .sheet{max-height:calc(100% - 128px)!important}}
/* Olu (11 Oct, iPhone 11): ← and BACK TO LAGOS in Ayo did nothing. Every iPhone browser is WebKit, which handles taps and
   messages inside an embedded game page differently from the Chrome engine the tests used. The way out of a table game now
   lives in the app itself, above the game, so it never depends on the embedded page: same place, same look as before. */
.table-exit{display:none}
.match-layer.table-mode .table-exit{display:grid;place-items:center;position:absolute;z-index:6;left:12px;top:calc(10px + env(safe-area-inset-top,0px));width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:rgba(14,9,6,.82);color:#f5ecdc;font-size:20px;line-height:1;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
/* GL-DIRECTOR beats on the ride (12 Oct): who is speaking, the moment, and your choice; after SKIP the rest plays as a short cut */
.trip-enc.beat b{display:block;font:900 11.5px var(--body);letter-spacing:.08em;color:var(--amber2);text-transform:uppercase;margin-bottom:3px}
.trip-enc.beat p{margin:0 0 8px;line-height:1.4}.trip-enc.beat .beat-msg{margin:6px 0 0;color:#9fe3c4;font-weight:700}
.trip-enc.beat.cut{border-style:dashed}
.fm-pick.on{border-color:var(--green);background:rgba(16,185,129,.14)}.btn.busy,.mini.busy{opacity:.75;animation:fmPulse 1.1s ease-in-out infinite}@keyframes fmPulse{50%{opacity:.45}}
/* 12 Oct: on a short phone (iPhone SE/8, 667 px) the "go-slow · rush-hour fare" note made every row three lines, so only
   three ways to go showed without scrolling; under 720 px tall the note stays on the one line with the time and distance */
@media(max-width:820px) and (max-height:720px){.trip-mode-copy small b.now-note{display:inline;font-size:inherit}.trip-mode{min-height:42px;padding:5px 10px}.trip-modes{gap:4px}.sheet-backdrop.trip-sheet #sheetSubtitle{display:none}}
