/* RiverWorks guest app — RiverUp deep-space look, single dark theme by design.
   Layout: phone-first stack, sticky top bar, bottom tab bar; on desktop a centered 1100px column. */
:root{
  --space:#03050c; --band:#070b16; --panel:#0b1222; --panel2:#101a30; --line:rgba(125,170,255,.18);
  --ink:#eaf2ff; --ink2:#a9b8d6; --ink3:#6f7f9f;
  --cyan:#22d3ee; --violet:#a78bfa; --pink:#f472b6; --gold:#facc15; --ice:#bfe9ff; --green:#4ade80; --red:#fb7185; --orange:#fb923c;
  --display:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --r:18px; --tabh:64px;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{background:var(--space);color:var(--ink)}
body{font:15px/1.5 var(--body);min-height:100%;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--cyan)}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:8px}
#stars{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}
.wrap{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding-inline:16px;padding-block:0 calc(var(--tabh) + 28px + env(safe-area-inset-bottom,0px))}

/* top bar */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;display:flex;align-items:center;gap:10px;padding:10px 16px;background:color-mix(in srgb,var(--band) 92%,transparent);border-bottom:1px solid var(--line)}
.top .logo{height:40px;width:auto;flex:none;cursor:pointer}
.top .tt{display:flex;flex-direction:column;line-height:1.1;min-width:0}
.top .tt b{font:800 15px var(--display);letter-spacing:.02em;white-space:nowrap}
.top .tt small{font:600 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cyan);white-space:nowrap}
.top .grow{flex:1}
.cartbtn{position:relative;display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:var(--panel);cursor:pointer;font-weight:700;font-size:13.5px}
.cartbtn b{min-width:22px;height:22px;padding:0 6px;border-radius:11px;display:inline-grid;place-items:center;background:var(--pink);color:#1a0612;font:800 12px var(--mono)}
.cartbtn b[data-n="0"]{background:var(--panel2);color:var(--ink3)}
.staffbtn{height:42px;padding:0 12px;border-radius:12px;border:1px dashed rgba(250,204,21,.5);background:transparent;color:var(--gold);font:700 12px var(--mono);letter-spacing:.06em;cursor:pointer}

/* neon spinning ring (RiverUp signature) */
.ring{position:relative;isolation:isolate;overflow:hidden;border:0!important}
.ring::before{content:"";position:absolute;left:50%;top:50%;width:170%;aspect-ratio:1;translate:-50% -50%;background:conic-gradient(from 0deg,transparent 0 50%,var(--c1,var(--cyan)) 68%,var(--c2,var(--violet)) 82%,var(--c1,var(--cyan)) 90%,transparent 100%);z-index:-2;animation:spin var(--spd,5s) linear infinite}
.ring::after{content:"";position:absolute;inset:1.5px;border-radius:inherit;background:var(--rbg,var(--panel));z-index:-1}
@keyframes spin{to{rotate:360deg}}

/* hero */
.hero{margin-top:16px;border-radius:24px;padding:22px 20px 26px;--rbg:linear-gradient(125deg,#082f49 0%,#14123d 60%,#2a0f2e 100%);--c1:var(--cyan);--c2:var(--pink);--spd:7s}
.hero .eyebrow{font:700 11px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--cyan)}
.hero h1{margin:6px 0 4px;font:900 clamp(26px,6vw,46px)/1.05 var(--display);letter-spacing:-.02em;text-wrap:balance}
.hero h1 em{font-style:normal;background:linear-gradient(90deg,var(--ice),var(--cyan) 40%,var(--violet) 70%,var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p{margin:0;color:var(--ink2);max-width:52ch}
.hero .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid var(--line);font:600 12px var(--body);color:var(--ink2)}
.chip i{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}
.chip.warn i{background:var(--gold);box-shadow:0 0 10px var(--gold)}
.puck{position:absolute;bottom:10px;left:-30px;width:22px;height:9px;border-radius:50%;background:#05070d;box-shadow:inset 0 -2px 0 #1d2433,0 0 0 1px #2a3550;animation:slap 6s cubic-bezier(.3,.1,.2,1) infinite;z-index:1}
.hero .trail{position:absolute;bottom:14px;left:0;height:2px;width:100%;background:linear-gradient(90deg,transparent,rgba(191,233,255,.35),transparent);transform-origin:left;animation:trail 6s cubic-bezier(.3,.1,.2,1) infinite;z-index:0;opacity:0}
@keyframes slap{0%,55%{transform:translateX(0) rotate(0)}85%{transform:translateX(calc(100vw + 40px)) rotate(720deg)}100%{transform:translateX(calc(100vw + 40px))}}
@keyframes trail{0%,55%{opacity:0;transform:scaleX(0)}70%{opacity:1;transform:scaleX(.6)}90%,100%{opacity:0;transform:scaleX(1)}}

/* section heads */
.sec{margin-top:26px}
.sh{display:flex;align-items:baseline;gap:10px;margin:0 0 12px}
.sh h2{margin:0;font:800 20px var(--display);letter-spacing:-.01em}
.sh small{color:var(--ink3);font:600 11px var(--mono);letter-spacing:.12em;text-transform:uppercase}
.sh .grow{flex:1}

/* home tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.tile{position:relative;display:flex;flex-direction:column;gap:10px;align-items:flex-start;text-align:left;padding:14px;border-radius:var(--r);min-height:132px;cursor:pointer;background:var(--panel);border:1px solid var(--line);overflow:hidden;transition:transform .18s ease,border-color .15s}
.tile::after{content:"";position:absolute;inset:0 auto 0 0;width:60%;background:linear-gradient(100deg,transparent 20%,color-mix(in srgb,var(--c1) 14%,transparent) 50%,transparent 80%);animation:sweep 9s ease-in-out infinite;animation-delay:var(--d,0ms);pointer-events:none}
@keyframes sweep{0%{translate:-110% 0}60%,100%{translate:260% 0}}
.tile b{font:800 15px/1.2 var(--display)}
.tile small{color:var(--ink2);font-size:12.5px;line-height:1.35}
.tile.big{grid-column:span 2;min-height:150px}
@media (hover:hover){.tile:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c1) 60%,transparent)}}
.ic{width:46px;height:46px;border-radius:14px;flex:none;display:grid;place-items:center;color:#fff;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.14),transparent 60%),linear-gradient(135deg,color-mix(in srgb,var(--c1) 40%,#0b1222),color-mix(in srgb,var(--c2) 34%,#0b1222));box-shadow:0 0 22px -4px var(--c1),inset 0 0 0 1px rgba(255,255,255,.08);animation:bob 3.2s ease-in-out infinite}
.tile:nth-child(3n+2) .ic{animation-duration:3.8s;animation-delay:-1.2s}
.tile:nth-child(3n) .ic{animation-name:tilt;animation-duration:4.4s;animation-delay:-2s}
@keyframes bob{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.06)}}
@keyframes tilt{0%,100%{transform:rotate(0)}25%{transform:rotate(-7deg) scale(1.05)}75%{transform:rotate(7deg) scale(1.05)}}
.ic svg{width:24px;height:24px}
.badge{position:absolute;top:10px;right:10px;font:800 10px var(--mono);letter-spacing:.1em;padding:3px 7px;border-radius:6px;background:rgba(251,113,133,.16);color:var(--red);border:1px solid rgba(251,113,133,.4)}
.badge.live::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--red);margin-right:5px;vertical-align:1px;animation:pulse 1.4s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(251,113,133,.7)}100%{box-shadow:0 0 0 8px rgba(251,113,133,0)}}

/* generic panels */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.note{font-size:12.5px;color:var(--ink3);margin-top:10px}
.note b{color:var(--ink2)}
.pill{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;font:700 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;background:rgba(250,204,21,.12);color:var(--gold);border:1px solid rgba(250,204,21,.35)}
.pill.c{background:rgba(34,211,238,.1);color:var(--cyan);border-color:rgba(34,211,238,.35)}
.pill.p{background:rgba(244,114,182,.1);color:var(--pink);border-color:rgba(244,114,182,.35)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 18px;border-radius:13px;border:1px solid var(--line);background:var(--panel2);font-weight:700;font-size:14px;cursor:pointer;text-decoration:none;color:var(--ink)}
.btn.pri{border:0;background:linear-gradient(120deg,var(--cyan),var(--violet));color:#06101e}
.btn.hot{border:0;background:linear-gradient(120deg,var(--orange),var(--pink));color:#1a0612}
.btn.sm{height:36px;padding:0 12px;font-size:13px;border-radius:10px}
.btn.block{width:100%}
.btn:disabled{opacity:.45;cursor:not-allowed}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.back{display:inline-flex;align-items:center;gap:6px;margin-top:16px;background:none;border:0;color:var(--ink2);font:700 13px var(--body);cursor:pointer;padding:6px 0}
.pageh{margin:6px 0 14px}
.pageh h1{margin:0;font:900 clamp(26px,6vw,38px)/1.05 var(--display);letter-spacing:-.02em;text-wrap:balance}
.pageh p{margin:6px 0 0;color:var(--ink2);max-width:60ch}

/* segmented */
.seg{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;scrollbar-width:none}
.seg button{flex:none;height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--panel);font-weight:700;font-size:13px;cursor:pointer;color:var(--ink2)}
.seg button[aria-pressed=true]{background:linear-gradient(120deg,rgba(34,211,238,.22),rgba(167,139,250,.22));color:var(--ink);border-color:rgba(34,211,238,.6)}

/* menu */
.menu{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.item{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.item .pic{aspect-ratio:4/3;max-width:100%;display:block;background:radial-gradient(circle at 50% 40%,var(--panel2),#070c18)}
.item .pic svg{width:100%;height:100%;display:block}
.item .meta{padding:12px 14px 14px;display:flex;flex-direction:column;gap:4px;flex:1}
.item .meta .nm{display:flex;gap:8px;align-items:baseline}
.item .meta b{font:800 15px/1.25 var(--display);flex:1;min-width:0}
.item .meta .pr{font:800 15px var(--mono);color:var(--gold);font-variant-numeric:tabular-nums}
.item .meta small{color:var(--ink2);font-size:12.5px;flex:1}
.qty{display:flex;align-items:center;gap:8px;margin-top:8px}
.qty button{width:38px;height:38px;border-radius:11px;border:1px solid var(--line);background:var(--panel2);font-weight:800;font-size:18px;cursor:pointer}
.qty span{min-width:22px;text-align:center;font:800 15px var(--mono)}
.qty .add{flex:1;width:auto;font-size:14px;background:linear-gradient(120deg,var(--cyan),var(--violet));color:#06101e;border:0}

/* lockers */
.teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.teambtn{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--panel);cursor:pointer;text-align:left}
.teambtn .lr{flex:none;width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(34,211,238,.2),rgba(167,139,250,.2));font:800 18px var(--mono);color:var(--ice)}
.teambtn b{display:block;font:800 14px/1.2 var(--display)}
.teambtn small{color:var(--ink2);font-size:12px}
.lockcard{margin-top:12px;border-radius:22px;padding:20px;--rbg:linear-gradient(135deg,#071d33,#160f35);--c1:var(--cyan);--c2:var(--violet)}
.bigroom{font:900 64px/1 var(--mono);letter-spacing:-.04em;background:linear-gradient(180deg,#fff,var(--ice) 50%,var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:14px}
.kv div{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.kv small{display:block;font:700 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink3)}
.kv b{font:800 16px var(--display);font-variant-numeric:tabular-nums}
.search{width:100%;height:46px;border-radius:13px;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:0 14px;font:500 15px var(--body);margin-bottom:12px}

/* events */
.evs{display:grid;gap:10px}
.ev{display:flex;gap:14px;align-items:center;padding:12px 14px;border-radius:16px;background:var(--panel);border:1px solid var(--line);text-decoration:none;color:var(--ink)}
.ev .dt{flex:none;width:58px;text-align:center;border-radius:12px;padding:6px 0;background:linear-gradient(160deg,rgba(244,114,182,.18),rgba(167,139,250,.14));border:1px solid rgba(244,114,182,.3)}
.ev .dt small{display:block;font:800 10.5px var(--mono);letter-spacing:.14em;color:var(--pink)}
.ev .dt b{font:900 24px/1.05 var(--display)}
.ev .tx{min-width:0;flex:1}
.ev .tx b{display:block;font:800 15px/1.25 var(--display)}
.ev .tx small{color:var(--ink2);font-size:12.5px}
.ev.today{border-color:rgba(74,222,128,.5)}

/* map */
.mapbox{background:linear-gradient(180deg,#081022,#060a16);border:1px solid var(--line);border-radius:var(--r);padding:8px;overflow-x:auto}
.mapbox svg{display:block;width:100%;min-width:620px;height:auto}
.pin{cursor:pointer;transition:opacity .2s}
.pin.dim{opacity:.18}
.pin .halo{animation:halo 2.2s ease-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes halo{0%{transform:scale(.6);opacity:.8}100%{transform:scale(1.8);opacity:0}}
.mapinfo{margin-top:12px;display:flex;gap:12px;align-items:center}

/* standings */
.tblw{overflow-x:auto;border-radius:var(--r);border:1px solid var(--line);background:var(--panel)}
table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
th,td{padding:11px 12px;text-align:right;white-space:nowrap}
th{font:700 10.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);border-bottom:1px solid var(--line)}
td{font:600 14px var(--mono);border-bottom:1px solid rgba(125,170,255,.08)}
th:nth-child(2),td:nth-child(2){text-align:left;font-family:var(--body);font-weight:700}
td:first-child{color:var(--ink3)}
tr.lead td{background:linear-gradient(90deg,rgba(250,204,21,.1),transparent)}
tr.lead td:first-child{color:var(--gold)}
td.pts{color:var(--cyan);font-weight:800}

/* live */
.cams{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.cam{border-radius:var(--r);overflow:hidden;background:var(--panel);border:1px solid var(--line)}
.cam .scr{position:relative;aspect-ratio:16/9;max-width:100%;background:#050912}
.cam .scr canvas{position:absolute;inset:0;width:100%;height:100%}
.cam .scr .badge{top:12px;left:12px;right:auto}
.cam .bd{padding:12px 14px;display:flex;gap:10px;align-items:center}
.cam .bd b{flex:1;font:800 15px var(--display)}

/* ledge */
.ledge{border-radius:24px;padding:20px;--rbg:linear-gradient(135deg,#2a1406,#1b0f2e);--c1:var(--gold);--c2:var(--orange);--spd:6s}
.qrwrap{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.qr{background:#fff;padding:12px;border-radius:16px;width:172px;height:172px;flex:none;display:grid;place-items:center}
.qr img,.qr canvas{width:148px!important;height:148px!important}

/* forms */
label.f{display:flex;flex-direction:column;gap:6px;font:700 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}
.f input,.f select,.f textarea{height:46px;border-radius:12px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);padding:0 12px;font:500 15px var(--body);text-transform:none;letter-spacing:0}
.f textarea{height:110px;padding:10px 12px;resize:vertical}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.issues{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.iss{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border-radius:14px;border:1px solid var(--line);background:var(--panel2);cursor:pointer;font-weight:700;font-size:13px;text-align:center}
.iss svg{width:28px;height:28px;color:var(--cyan)}
.iss[aria-pressed=true]{border-color:var(--orange);background:rgba(251,146,60,.12)}
.iss[aria-pressed=true] svg{color:var(--orange)}
.outbox{margin-top:12px;padding:14px;border-radius:14px;border:1px solid rgba(251,146,60,.4);background:rgba(251,146,60,.07)}
.outbox pre{white-space:pre-wrap;font:500 13px/1.5 var(--mono);margin:8px 0 12px;color:var(--ink)}
.phone{font:900 28px var(--mono);letter-spacing:-.01em;user-select:all}

/* cart drawer */
.drawer{position:fixed;inset:0;z-index:50;display:flex;justify-content:flex-end;background:rgba(2,4,10,.7)}
.drawer .dp{width:min(440px,100%);height:100%;background:var(--band);border-left:1px solid var(--line);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.dp .dh{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}
.dp .dh h2{flex:1;margin:0;font:800 18px var(--display)}
.dp .db{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.dp .df{padding:14px 16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.cl{display:flex;gap:10px;align-items:center}
.cl .th{width:56px;height:42px;border-radius:9px;overflow:hidden;flex:none;background:var(--panel2)}
.cl .th svg{width:100%;height:100%}
.cl .tx{flex:1;min-width:0}
.cl .tx b{display:block;font-size:14px}
.cl .tx small{color:var(--ink3);font:600 12px var(--mono)}
.tot{display:flex;font:800 17px var(--display)}
.tot span{flex:1}
.tot b{font-family:var(--mono);color:var(--gold)}
.x{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--panel);cursor:pointer;font-size:18px}

/* bottom tabs */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:center;background:color-mix(in srgb,var(--band) 95%,transparent);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.tabs nav{display:flex;width:100%;max-width:640px}
.tabs button{flex:1;height:var(--tabh);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:none;color:var(--ink3);font:700 10.5px var(--body);cursor:pointer}
.tabs button svg{width:22px;height:22px}
.tabs button[aria-current=true]{color:var(--cyan)}
.tabs button[aria-current=true] svg{filter:drop-shadow(0 0 6px var(--cyan))}

.toast{position:fixed;left:50%;bottom:calc(var(--tabh) + 18px + env(safe-area-inset-bottom,0px));translate:-50% 0;z-index:60;background:var(--panel2);border:1px solid rgba(34,211,238,.5);padding:10px 16px;border-radius:12px;font-weight:700;font-size:13.5px;max-width:calc(100% - 32px)}
.staffp textarea{width:100%;min-height:150px;border-radius:12px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);padding:10px;font:500 12.5px/1.5 var(--mono)}
.foot{margin-top:30px;color:var(--ink3);font-size:12px;text-align:center}

@media (max-width:520px){
  .top .logo{height:34px}
  .top .tt small{display:none}
  .tile{min-height:120px}
  .tile.big{grid-column:span 2}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cartbtn span{display:none}
  .menu{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .item .meta{padding:10px}
  .item .meta .nm{flex-direction:column;gap:2px}
  .item .meta b{font-size:14px}
  .qty .add{font-size:12.5px}
}
@media (hover:none),(pointer:coarse){.tile::after{display:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* 3D map */
.m3-stage{position:relative;height:min(68vh,620px);min-height:380px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:radial-gradient(ellipse at 50% 30%,#0c1a33,#050916 70%);touch-action:none}
.m3-stage canvas{display:block;width:100%!important;height:100%!important}
.m3-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.m3-pin{position:absolute;left:0;top:0;pointer-events:auto;display:inline-flex;align-items:center;gap:6px;padding:4px 9px 4px 5px;border-radius:999px;border:1px solid color-mix(in srgb,var(--pc) 55%,transparent);background:rgba(5,9,22,.82);color:var(--ink);font:700 11.5px/1.2 var(--body);white-space:nowrap;cursor:pointer;translate:-50% -100%;transition:opacity .2s;will-change:transform}
.m3-pin i{width:12px;height:12px;border-radius:50%;background:var(--pc);box-shadow:0 0 10px var(--pc);flex:none}
.m3-pin.dim{opacity:.22}
.m3-pin.hit,.m3-pin.sel{border-color:var(--pc);box-shadow:0 0 0 2px color-mix(in srgb,var(--pc) 35%,transparent),0 0 18px -2px var(--pc);z-index:2}
.m3-pin.sel{background:color-mix(in srgb,var(--pc) 22%,#050916)}
.m3-views{position:absolute;right:10px;bottom:10px;display:flex;flex-direction:column;gap:6px;z-index:3}
.m3-views button{height:34px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:rgba(5,9,22,.85);color:var(--ink2);font:700 12px var(--body);cursor:pointer;text-align:left}
.m3-views button:hover{color:var(--ink);border-color:rgba(34,211,238,.6)}
.m3-load{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;color:var(--ink2);font-weight:700;z-index:4;text-align:center;padding:16px}
.m3-spin{width:34px;height:34px;border-radius:50%;border:3px solid rgba(34,211,238,.2);border-top-color:var(--cyan);animation:spin 1s linear infinite}
.m3-flat{position:absolute;inset:0;overflow:auto;padding:8px;background:#050916}
.m3-flat svg{min-width:620px;width:100%;height:auto}
.m3-bar .seg{margin-bottom:10px}
@media (max-width:520px){.m3-views{flex-direction:row;flex-wrap:wrap;left:8px;right:8px;bottom:8px}.m3-views button{height:30px;padding:0 9px;font-size:11px}.m3-pin{font-size:10.5px;padding:3px 7px 3px 4px}}

.m3-pin[hidden],.teambtn[hidden]{display:none}

/* ===== guest extras: offer, pass, deals, kids, rewards, games ===== */
.staffbtn{display:inline-flex;align-items:center;gap:6px}
.staffbtn svg{width:14px;height:14px}
@media (max-width:520px){.staffbtn span{display:none}.staffbtn{width:42px;padding:0;justify-content:center}}
.badge.soon{background:rgba(250,204,21,.14);color:var(--gold);border-color:rgba(250,204,21,.45);display:inline-flex;align-items:center;gap:3px}
.badge.soon svg{width:11px;height:11px}
.offer{margin-top:12px;border-radius:22px;padding:18px;--rbg:linear-gradient(135deg,#3a1a06,#2a0f2e);--c1:var(--orange);--c2:var(--gold);--spd:6s}
.offer .k{font:700 11px var(--mono);letter-spacing:.16em;color:var(--orange);text-transform:uppercase}
.offer h2{margin:6px 0 4px;font:900 clamp(22px,5.5vw,30px)/1.05 var(--display);letter-spacing:-.01em}
.offer p{margin:0 0 12px;color:var(--ink2)}
.strip{margin-top:12px;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;width:100%;text-align:left}
.strip .ic{width:42px;height:42px;border-radius:12px}
.strip .st{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.strip b{font:800 14.5px/1.25 var(--display)}
.strip small{color:var(--ink2);font-size:12.5px}
.bar{display:block;height:8px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:6px}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--pink),var(--violet),var(--cyan));border-radius:4px}
.flash{margin-top:12px;border-radius:22px;padding:18px;--rbg:linear-gradient(135deg,#1d1040,#2a0f2e);--c1:var(--violet);--c2:var(--pink)}
.flash h2{margin:10px 0 4px;font:900 clamp(22px,5.5vw,28px)/1.05 var(--display)}
.flash p{margin:0 0 12px;color:var(--ink2)}
.flash .pill svg{width:12px;height:12px;margin-right:4px}
.cd{font:800 12px var(--mono);padding:4px 8px;border-radius:8px;background:rgba(0,0,0,.35);color:#ddd2ff}
.deals{display:grid;gap:10px}
.deal{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:16px;background:var(--panel);border:1px solid var(--line)}
.deal .ic{width:42px;height:42px;border-radius:12px;animation:none}
.deal .ic svg{width:20px;height:20px}
.deal .tx{flex:1;min-width:0}
.deal .tx b{display:block;font:800 15px/1.25 var(--display)}
.deal .tx small{color:var(--ink2);font-size:12.5px}
.deal .pill svg{width:12px;height:12px;margin-right:3px}
.punch,.dots{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.punch span,.dots span{width:40px;height:40px;border-radius:50%;border:2px dashed rgba(34,211,238,.4);display:grid;place-items:center;font:800 10px var(--mono)}
.punch span.on,.dots span.on{border:0;background:var(--cyan);color:#06101e}
.punch span.free{border:0;background:var(--gold);color:#1a1405}
.punch svg,.dots svg{width:18px;height:18px}
.steps{list-style:none;padding:0;margin-bottom:0;display:grid;gap:10px}
.steps li{display:flex;align-items:center;gap:12px;font-weight:600}
.steps span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--cyan);color:#06101e;font:800 14px var(--mono);flex:none}
.pass{text-align:center}
.pass .qr,.passb .qr{margin:14px auto}
.kk{font:700 11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cyan)}
.codebig{font:900 clamp(30px,9vw,44px)/1 var(--mono);letter-spacing:.04em;text-align:center}
.clock{text-align:center;margin-top:8px;font:700 13px var(--mono);color:var(--green)}
.passb{align-items:center;text-align:center}
.passb h2{margin:4px 0;font:900 24px/1.1 var(--display)}
.passb p{margin:0;color:var(--ink2)}
.kidhead{display:flex;align-items:center;gap:14px;padding:16px;border-radius:20px;background:linear-gradient(135deg,rgba(244,114,182,.18),rgba(167,139,250,.14));border:1px solid rgba(244,114,182,.4)}
.kidhead b{font:900 22px/1.1 var(--display)}
.kidhead .sub{color:var(--ink2);font-size:13px}
.av{width:58px;height:58px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--pink);color:#2a0a1e;font:900 26px var(--display)}
.stamps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 4px}
.stamp{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font:700 11px/1.2 var(--body);color:var(--ink2)}
.stamp i{width:56px;height:56px;border-radius:50%;border:2px dashed rgba(244,114,182,.45);display:grid;place-items:center;color:var(--ink3)}
.stamp.on i{border:0;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.35),transparent 60%),var(--gold);color:#1a1405;box-shadow:0 0 18px -4px var(--gold)}
.stamp.on{color:var(--ink)}
.stamp i svg{width:24px;height:24px}
.hrow{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid rgba(125,170,255,.1);font-size:14px}
.hrow b{color:var(--gold);font-family:var(--mono);font-size:13px}
.pwrow{display:flex;gap:10px;align-items:center}
.pwrow input{flex:1;min-width:0}
.lockbox{max-width:460px}
.lockbox input{height:46px;border-radius:12px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);padding:0 12px;font:500 16px var(--body)}
.lockbox .f{gap:8px}
.pwerr{color:var(--red);font-weight:700;font-size:13px;min-height:20px;margin-top:8px}
.ptsbig{font:900 clamp(48px,14vw,72px)/1 var(--mono);background:linear-gradient(180deg,#fff,var(--ice) 50%,var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent;margin:6px 0 8px}
.peek{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.peek>div{padding:14px;border-radius:16px;background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.peek svg{width:16px;height:16px;color:var(--ink3)}
.peek b{font:800 14px/1.25 var(--display)}
/* game zone */
.rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.rcard{padding:16px;border-radius:20px;background:var(--panel);border:1px solid var(--line)}
.rcard.ready{border-color:var(--orange);box-shadow:0 0 0 1px rgba(251,146,60,.4),0 0 28px -8px var(--orange)}
.rcard h3{margin:10px 0 2px;font:900 20px/1.15 var(--display)}
.rcard p{margin:0;color:var(--ink2);font-size:13.5px}
.rcard .pill svg{width:12px;height:12px;margin-right:4px}
.note svg{width:14px;height:14px;vertical-align:-2px}
.tile .best{margin-top:auto;color:var(--gold);font:700 11px var(--mono)}
.wheelwrap{position:relative;width:min(260px,80vw);aspect-ratio:1;margin:4px auto 0}
.wheel{width:100%;height:100%;border-radius:50%;transition:transform 3s cubic-bezier(.15,.85,.2,1);box-shadow:0 0 0 4px var(--panel2),0 0 30px -6px var(--violet)}
.wheel svg{width:100%;height:100%;display:block}
.wptr{position:absolute;top:-6px;left:50%;translate:-50% 0;width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:22px solid #fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.6))}
.eggs{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.egg{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.egg .ic{width:38px;height:38px;border-radius:11px;animation:none}
.egg .ic svg{width:18px;height:18px}
.egg b{display:block;font:800 14px var(--display)}
.egg small{color:var(--ink2);font-size:12px}
.egg.on{border-color:rgba(250,204,21,.5)}
.ghost{display:flex;justify-content:center}
.gcv{display:block;border-radius:18px;border:1px solid var(--line);touch-action:none;user-select:none;-webkit-user-select:none;max-width:100%}
.result{text-align:center}
b.big{display:block;font:900 22px/1.2 var(--display);margin:6px 0}
.tix{font:900 28px var(--mono);color:var(--gold)}
.hclue{margin-top:4px}
.hmsg{margin-top:8px;color:var(--ink2)}
.hmsg svg{width:14px;height:14px;vertical-align:-2px}
/* memory match */
.mm{width:100%;max-width:440px}
.mmh{display:flex;justify-content:space-between;margin-bottom:10px;color:var(--ink2)}
.mmg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.mmc{position:relative;aspect-ratio:1;border:0;padding:0;border-radius:14px;cursor:pointer;background:none;perspective:600px}
.mmc span{position:absolute;inset:0;border-radius:14px;display:grid;place-items:center;backface-visibility:hidden;transition:transform .35s}
.mmc .b{background:linear-gradient(135deg,#1e3a8a,#5b21b6);border:1px solid var(--line);font:900 16px var(--mono);color:rgba(255,255,255,.55)}
.mmc .f{background:#e8f4ff;transform:rotateY(180deg)}
.mmc .f svg{width:70%;height:70%}
.mmc.up .b{transform:rotateY(180deg)}
.mmc.up .f{transform:rotateY(0)}
.mmc.ok .f{box-shadow:0 0 0 3px var(--green)}
/* trivia */
.tv{width:100%;max-width:520px}
.tvh{display:flex;justify-content:space-between;color:var(--ink2);font:700 12px var(--mono);letter-spacing:.08em;text-transform:uppercase}
.tv h3{font:900 22px/1.2 var(--display);margin:12px 0 14px}
.tvo{display:grid;gap:10px}
.tvo button{min-height:52px;border-radius:14px;border:1px solid var(--line);background:var(--panel);font:700 16px var(--body);color:var(--ink);cursor:pointer;text-align:left;padding:0 16px}
.tvo button.ok{border-color:var(--green);background:rgba(74,222,128,.15)}
.tvo button.no{border-color:var(--red);background:rgba(251,113,133,.15)}
/* effects */
.celebrate{position:fixed;left:50%;top:calc(76px + env(safe-area-inset-top,0px));translate:-50% 0;z-index:70;display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 22px;border-radius:18px;background:linear-gradient(120deg,#2a1406,#2a0f2e);border:1px solid var(--gold);box-shadow:0 10px 40px -10px var(--gold);text-align:center;max-width:calc(100% - 32px);animation:pop .4s cubic-bezier(.2,1.4,.4,1)}
.celebrate b{font:900 18px var(--display);color:var(--gold)}
.celebrate small{color:var(--ink2);font-size:13px}
@keyframes pop{from{transform:scale(.6);opacity:0}}
.rain{position:fixed;top:-20px;width:16px;height:7px;border-radius:50%;z-index:65;pointer-events:none;animation:fall 1.8s ease-in forwards}
@keyframes fall{to{transform:translateY(105vh) rotate(540deg)}}
.zamdrive{position:fixed;left:-120px;bottom:calc(var(--tabh) + 10px);width:110px;z-index:65;pointer-events:none;animation:drive 5s linear forwards}
.zamdrive svg{width:100%;height:auto}
@keyframes drive{to{transform:translateX(calc(100vw + 140px))}}
.finlane{position:relative;height:34px;margin-top:20px;overflow:hidden}
.fin{position:absolute;bottom:0;left:0;width:44px;height:30px;border:0;background:none;padding:0;cursor:pointer;animation:swim 14s linear infinite}
.fin svg{width:100%;height:100%}
@keyframes swim{0%{left:-50px}100%{left:100%}}
/* kids mode */
body.kids .tabs [data-go=order],body.kids #cartBtn{display:none}
/* printable signs */
.qrs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.qrs figure{margin:0;padding:12px;border-radius:14px;background:#fff;color:#05070d;text-align:center}
.qrs .q{display:grid;place-items:center;min-height:120px;margin-bottom:8px}
.qrs .q img,.qrs .q canvas{width:120px!important;height:120px!important}
.qrs figcaption b{display:block;font:800 13px var(--body)}
.qrs figcaption small{color:#475569;font-size:11px}
@media print{body *{visibility:hidden}.printq,.printq *{visibility:visible}.printq{position:absolute;left:0;top:0;width:100%;background:#fff;border:0}.printq .btn,.printq .note{display:none}.qrs figure{break-inside:avoid;border:1px solid #ccc}}

/* map hunt clue card lives inside the full-screen map */
.huntov{position:absolute;left:10px;right:10px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:30;max-width:480px;margin:0 auto;padding:12px 14px;border-radius:16px;background:rgba(5,9,22,.93);border:1px solid rgba(74,222,128,.55);box-shadow:0 10px 30px -10px #000;color:#eaf2ff;font:500 14px/1.4 Inter,system-ui,sans-serif}
.huntov b.big{font-size:17px;margin:6px 0 2px}
.huntov .btn{height:38px}
.hunting .m3-views{bottom:170px!important}
.hunting .m3-card{display:none!important}
.toast{z-index:2147483600}
.celebrate,.rain,.zamdrive{z-index:2147483601}
/* keep inline icons small inside buttons, labels and headings */
.btn svg{width:18px;height:18px;flex:none}
.btn.sm svg{width:16px;height:16px}
.panel b>svg,label svg,.pill svg,.kidhead svg{width:16px;height:16px;vertical-align:-3px;flex:none}

/* Deals & Rewards tab + its sub-menu */
.tabs button .tl2{display:block;white-space:normal;line-height:1.1;text-align:center;max-width:58px}
@media (max-width:400px){.tabs button{font-size:9.5px;padding:0 1px}.tabs button svg{width:20px;height:20px}}
.drnav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:5px;margin:4px 0 16px;border-radius:16px;background:var(--panel);border:1px solid var(--line);position:sticky;top:calc(64px + env(safe-area-inset-top,0px));z-index:15}
.drnav button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:0;border-radius:12px;background:none;color:var(--ink2);font:800 13.5px var(--body);cursor:pointer}
.drnav button svg{width:17px;height:17px;flex:none}
.drnav button[aria-current=page]{background:linear-gradient(120deg,rgba(34,211,238,.25),rgba(167,139,250,.25));color:var(--ink);box-shadow:inset 0 0 0 1px rgba(34,211,238,.55)}
.sh .pill{margin-left:4px}

/* ===================================================================
   BUFFALO RIVERWORKS BRAND LAYER (Oct 2026)
   Built from the new logos: silo blue, riveted steel, Ferris-wheel copper,
   gondola red and cream. One dark theme on purpose (matches the night map).
   Layout: phone-first stack, photo-led home, quiet cards, bottom tab bar.
   =================================================================== */
:root{
  --space:#0b1322; --band:#0e192b; --panel:#142238; --panel2:#1b2c46; --line:rgba(150,175,210,.18); --line2:rgba(150,175,210,.32);
  --ink:#eef2f7; --ink2:#b8c3d3; --ink3:#8d9bb0;
  --silo:#3d6fae; --silo-hi:#4f84c8; --copper:#c8894a; --copper-hi:#d99c5d; --steel:#7d8a9c; --cream:#f1e6d0; --gondola:#c8473d;
  --cyan:#86b5e8; --violet:#9db1cf; --pink:#e58b7c; --gold:#e2b36b; --ice:#dce8f6; --green:#72d29b; --red:#e2705f; --orange:#d39250;
  --display:"Big Shoulders Display","Arial Narrow","Roboto Condensed",Impact,sans-serif;
  --body:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
  --r:14px; --tabh:66px; color-scheme:dark;
}
html,body{background:var(--space);color:var(--ink)}
body{font:16px/1.5 var(--body);background:var(--space) radial-gradient(1200px 500px at 50% -200px,#16294a,transparent 70%) no-repeat}
#stars{display:none}
h1,h2,h3,.pageh h1,.sh h2{text-wrap:balance}
:focus-visible{outline:2px solid var(--gold)}

/* quiet the old neon effects */
.ring::before{display:none!important}
.ring::after{inset:0!important;background:var(--rbg,var(--panel))!important}
.ring{box-shadow:inset 0 0 0 1px var(--line)}
.tile::after{display:none}
.ic,.tile .ic{animation:none!important;width:44px;height:44px;border-radius:12px;color:var(--cyan);background:rgba(134,181,232,.12);box-shadow:inset 0 0 0 1px rgba(134,181,232,.22)}
.ic svg{width:22px;height:22px}
.badge,.badge.live{box-shadow:none}

/* top bar */
.top{background:rgba(11,19,34,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:8px 14px;gap:10px}
.top .logo{width:44px;height:44px;border-radius:50%;object-fit:contain}
.top .tt b{font:800 21px/1 var(--display);letter-spacing:.02em;text-transform:uppercase}
.top .tt small{font:600 11px var(--body);letter-spacing:.14em;color:var(--copper-hi)}
.cartbtn{border-radius:10px;background:var(--panel);font-family:var(--body)}
.cartbtn b{background:var(--copper);color:#1c1006}
.staffbtn{border-radius:10px;border:1px solid var(--line);color:var(--ink2)}

/* page heads + type */
.back{font:700 14px var(--body);color:var(--ink2)}
.pageh h1{font:800 clamp(34px,9vw,48px)/.98 var(--display);letter-spacing:.01em;text-transform:uppercase}
.pageh p{color:var(--ink2);font-size:16px}
.sh h2{font:800 25px/1 var(--display);text-transform:uppercase;letter-spacing:.02em}
.sh small,.kk{color:var(--copper-hi);font:700 11px var(--body);letter-spacing:.14em;text-transform:uppercase}
.note{font-size:13.5px}
.pbanner{margin-top:10px;aspect-ratio:16/7;max-width:100%;border-radius:var(--r);background:var(--panel2) var(--ph) center/cover no-repeat;box-shadow:inset 0 -60px 60px -30px rgba(11,19,34,.65),inset 0 0 0 1px var(--line)}

/* home hero: wordmark over a facility photo */
.hero2{margin-top:14px;border-radius:18px;overflow:hidden;position:relative;background:linear-gradient(180deg,rgba(11,19,34,.25),rgba(11,19,34,.92) 62%),var(--ph,linear-gradient(160deg,#1d3557,#0e192b)) center/cover no-repeat,#13233b;box-shadow:inset 0 0 0 1px var(--line)}
.hero2-in{padding:18px 18px 20px;display:flex;flex-direction:column;gap:8px}
.hero2 .wordmark{width:min(300px,78%);height:auto;align-self:center;filter:drop-shadow(0 8px 18px rgba(0,0,0,.55));margin-bottom:4px}
.hero2 .eyebrow{font:700 12px var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--copper-hi)}
.hero2 h1{margin:0;font:800 clamp(30px,8vw,44px)/1 var(--display);text-transform:uppercase;letter-spacing:.01em}
.hero2 p{margin:0;color:var(--ink2);max-width:52ch}
.hero2 .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.chip{background:rgba(11,19,34,.7);border:1px solid var(--line2);font:600 13px var(--body);color:var(--ink)}
.chip i{background:var(--green);box-shadow:none}

/* welcome */
.welcome{margin-top:12px;padding:18px;border-radius:18px;background:linear-gradient(180deg,#152741,#0e192b);box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;gap:8px}
.welcome .sticker{width:min(280px,80%);height:auto;align-self:center;filter:drop-shadow(0 10px 20px rgba(0,0,0,.5))}
.welcome .eyebrow{font:700 12px var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--copper-hi)}
.welcome h1{margin:0;font:800 clamp(34px,9vw,48px)/.98 var(--display);text-transform:uppercase}
.welcome h1 em{font-style:normal;color:var(--cream);background:none;-webkit-text-fill-color:currentColor}
.welcome p{margin:0;color:var(--ink2)}

/* tiles */
.tiles{gap:12px}
.tile{border-radius:var(--r);background:var(--panel);border:1px solid var(--line);min-height:128px;padding:14px;transition:border-color .15s,transform .15s}
.tile b{font:800 19px/1.05 var(--display);text-transform:uppercase;letter-spacing:.02em}
.tile small{color:var(--ink2);font-size:13.5px}
@media (hover:hover){.tile:hover{transform:translateY(-2px);border-color:var(--line2)}}
.tile.photo{padding:0;overflow:hidden;gap:0}
.tile.photo .tph{display:block;width:100%;aspect-ratio:16/10;background:var(--panel2) var(--ph) center/cover no-repeat}
.tile.photo .ic{position:absolute;top:10px;left:10px;width:36px;height:36px;border-radius:10px;background:rgba(11,19,34,.82);backdrop-filter:blur(6px)}
.tile.photo .ic svg{width:19px;height:19px}
.tile.photo b{padding:12px 14px 0}
.tile.photo small{padding:4px 14px 14px}
.tile.big.photo .tph{aspect-ratio:16/7}
.badge{font:800 10.5px var(--body);letter-spacing:.08em;border-radius:6px}
.badge.live{background:var(--gondola);color:#fff;border:0}
.badge.live::before{background:#fff}
.badge.soon{background:var(--copper);color:#1c1006;border:0}
.tile .best{color:var(--gold);font:700 12px var(--body)}

/* panels, cards, strips */
.panel,.deal,.egg,.rcard,.strip,.ev,.teambtn,.item,.cam,.peek>div{background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}
.strip .ic,.deal .ic,.egg .ic{color:var(--copper-hi);background:rgba(200,137,74,.14);box-shadow:inset 0 0 0 1px rgba(200,137,74,.28)}
.strip b,.deal .tx b,.egg b,.ev .tx b,.teambtn b{font:700 16px/1.25 var(--body)}
.bar{background:rgba(255,255,255,.08)}
.bar i{background:linear-gradient(90deg,var(--silo),var(--cyan))}
.rcard.ready{border-color:var(--copper);box-shadow:0 0 0 1px rgba(200,137,74,.45)}
.rcard h3{font:800 24px/1.05 var(--display);text-transform:uppercase}
.dots span,.punch span{border-color:var(--line2)}
.dots span.on,.punch span.on{background:var(--silo-hi);color:#fff}
.punch span.free{background:var(--copper);color:#1c1006}
.lockcard{--rbg:linear-gradient(160deg,#18304f,#101d31)}
.offer{--rbg:linear-gradient(150deg,#3a2614,#1c1a24)}
.offer .k,.flash .pill{color:var(--copper-hi)}
.offer h2,.flash h2{font:800 clamp(26px,7vw,34px)/1 var(--display);text-transform:uppercase}
.flash{--rbg:linear-gradient(150deg,#3b1714,#1a1726)}
.ledge{--rbg:linear-gradient(150deg,#2f2310,#151b2a)}
.bigroom,.ptsbig{background:none;-webkit-text-fill-color:currentColor;color:var(--cream);font-family:var(--display);font-weight:900}
.codebig{font-family:var(--mono);color:var(--cream)}
.clock{color:var(--green)}
.kidhead{background:linear-gradient(135deg,rgba(200,71,61,.18),rgba(61,111,174,.18));border-color:rgba(200,71,61,.35)}
.av{background:var(--gondola);color:#fff}
.stamp.on i{background:var(--gold);box-shadow:none}
.stamp i{border-color:var(--line2)}
.pill{border-radius:6px;font:700 11px var(--body);letter-spacing:.08em;background:rgba(226,179,107,.12);color:var(--gold);border-color:rgba(226,179,107,.35)}
.pill.c{background:rgba(134,181,232,.12);color:var(--cyan);border-color:rgba(134,181,232,.35)}
.pill.p{background:rgba(229,139,124,.12);color:var(--pink);border-color:rgba(229,139,124,.35)}
.ev .dt{background:rgba(200,137,74,.14);border-color:rgba(200,137,74,.35)}
.ev .dt small{color:var(--copper-hi)}
.ev .dt b{font-family:var(--display)}
.teambtn .lr{background:rgba(61,111,174,.25);color:var(--cream);font-family:var(--display);font-size:22px}
.item .meta b{font:700 16px/1.25 var(--body)}
.item .meta .pr{color:var(--gold)}
td.pts{color:var(--cyan)}
tr.lead td{background:linear-gradient(90deg,rgba(226,179,107,.12),transparent)}

/* buttons: solid, no gradients */
.btn{border-radius:10px;font:700 15px var(--body);background:var(--panel2);border:1px solid var(--line2)}
.btn.pri,.qty .add{background:var(--silo);color:#fff;border:0}
.btn.pri:hover,.qty .add:hover{background:var(--silo-hi)}
.btn.hot{background:var(--copper);color:#1c1006;border:0}
.btn.hot:hover{background:var(--copper-hi)}
.seg button{font:700 14px var(--body);border-radius:10px}
.seg button[aria-pressed=true]{background:var(--silo);border-color:var(--silo);color:#fff}
.drnav{border-radius:12px}
.drnav button{font:700 14px var(--body);border-radius:9px}
.drnav button[aria-current=page]{background:var(--silo);color:#fff;box-shadow:none}

/* bottom tabs */
.tabs{background:rgba(11,19,34,.97);border-top:1px solid var(--line)}
.tabs button{font:700 11px var(--body);color:var(--ink3);position:relative}
.tabs button[aria-current=true]{color:var(--cream)}
.tabs button[aria-current=true] svg{filter:none;color:var(--copper-hi)}
.tabs button[aria-current=true]::before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;border-radius:0 0 3px 3px;background:var(--copper)}

/* footer */
.foot2{margin-top:30px;display:flex;align-items:center;gap:14px;padding:16px;border-top:1px solid var(--line)}
.foot2 img{width:56px;height:auto;flex:none}
.foot2 div{display:flex;flex-direction:column;color:var(--ink2);font-size:14px}
.foot2 b{color:var(--ink);font:800 18px var(--display);text-transform:uppercase;letter-spacing:.03em}
.foot2 .tnum{font:700 14px var(--body);color:var(--cream);font-variant-numeric:tabular-nums}

/* pop-ups */
.toast{background:var(--panel2);border:1px solid var(--line2);font-family:var(--body)}
.celebrate{background:#16253c;border:1px solid var(--copper);box-shadow:0 14px 40px -12px rgba(0,0,0,.7)}
.celebrate b{font:800 22px var(--display);text-transform:uppercase;color:var(--cream)}
.drawer .dp{background:var(--band)}
.dp .dh h2{font:800 22px var(--display);text-transform:uppercase}
.passb h2{font:800 28px/1.05 var(--display);text-transform:uppercase}
.huntov{border-color:var(--line2);font-family:var(--body)}
.mmc .b{background:linear-gradient(135deg,#1f3556,#2b4c7a);font-family:var(--display);font-size:20px}
.tvo button{font:600 17px var(--body)}
.tv h3,b.big{font-family:var(--display);text-transform:uppercase;letter-spacing:.01em}
.tix{color:var(--gold)}
.wheel{box-shadow:0 0 0 4px var(--panel2),0 10px 30px -10px rgba(0,0,0,.7)}
@media (max-width:520px){.top .tt b{font-size:19px}.tile.photo b{font-size:18px}}

/* header fit on phones */
.top .tt{min-width:0;flex:0 1 auto}
.top .tt b{white-space:normal;line-height:.95}
.top .grow{flex:1 1 0;min-width:4px}
.tile.big{flex-direction:column;align-items:flex-start}
@media (max-width:420px){.top{gap:8px}.top .logo{width:40px;height:40px}.top .tt b{font-size:18px}.cartbtn{padding:0 10px}}

/* ===== Home v2: eat · drink · play, winter on ice ===== */
:root{--led:#ffb347;--led-glow:rgba(255,179,71,.55);--ice2:#e8f2fc}
.wrap{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.audsw{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:14px;padding:4px;border-radius:999px;background:var(--panel);border:1px solid var(--line)}
.audsw button{min-height:40px;border:0;border-radius:999px;background:none;color:var(--ink2);font:800 15px var(--display);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.audsw button[aria-pressed=true]{background:var(--ice2);color:#0b1322}
.notice{margin-top:12px;border-color:rgba(226,179,107,.5)}
.notice b{color:var(--gold)}

/* shared art layer: photo when we have it, illustration otherwise */
.art{position:absolute;inset:0;display:block;background:var(--ph) center/cover no-repeat}
.art.svg svg{width:100%;height:100%;display:block}
.shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,19,34,.05) 20%,rgba(11,19,34,.88) 78%)}

/* hockey hero */
.icehero{position:relative;margin-top:12px;border-radius:20px;overflow:hidden;min-height:440px;display:flex;align-items:flex-end;isolation:isolate;box-shadow:0 18px 40px -22px #000,inset 0 0 0 1px var(--line)}
.icehero .shade{background:linear-gradient(180deg,rgba(11,19,34,0) 10%,rgba(11,19,34,.55) 42%,rgba(11,19,34,.96) 80%)}
.ih-in{position:relative;z-index:1;padding:16px;display:flex;flex-direction:column;gap:10px;width:100%}
.ih-top{display:flex;justify-content:space-between;align-items:center;position:absolute;top:14px;left:14px;right:14px}
.ih-logo{width:58px;height:58px;filter:drop-shadow(0 6px 12px rgba(0,0,0,.6))}
.icehero h1{margin:0;font:900 clamp(38px,11vw,58px)/.92 var(--display);text-transform:uppercase;letter-spacing:.01em;text-shadow:0 2px 18px rgba(0,0,0,.5)}
.icehero p{margin:0;color:var(--ink2);font-size:15px;max-width:44ch}
.board{border-radius:14px;background:#06090f;border:1px solid #2a3446;box-shadow:inset 0 0 0 3px #0e1420,0 10px 24px -12px #000;padding:10px 12px;display:grid;gap:6px}
.board .bt{display:flex;justify-content:space-between;align-items:center;gap:10px}
.board small{font:700 11px var(--body);letter-spacing:.14em;text-transform:uppercase;color:#8d9bb0}
.led{font:800 30px/1 var(--mono);color:var(--led);text-shadow:0 0 12px var(--led-glow);font-variant-numeric:tabular-nums;letter-spacing:.04em}
.board .bm{display:flex;align-items:center;gap:8px;font:800 20px/1.05 var(--display);text-transform:uppercase;flex-wrap:wrap}
.board .bm i{font:700 12px var(--body);font-style:normal;color:#8d9bb0;text-transform:lowercase}
.board .bf{display:flex;gap:6px;flex-wrap:wrap}
.board .bf span{font:700 12px var(--body);padding:3px 8px;border-radius:6px;background:#121a28;color:#c9d4e3}
.btn.glass{background:rgba(232,242,252,.12);border:1px solid rgba(232,242,252,.35);color:#fff;backdrop-filter:blur(6px)}

/* badges on art */
.pb{display:inline-flex;align-items:center;gap:6px;font:800 12px var(--display);letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border-radius:7px;background:rgba(11,19,34,.82);color:#fff;backdrop-filter:blur(6px)}
.pb.live{background:var(--gondola)}
.pb.live::before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;animation:pulse 1.4s ease-out infinite}
.pb.hot{background:var(--copper);color:#1c1006}
.pb.gold{background:var(--gold);color:#1c1406}

/* Play Pass card */
.ppass{margin-top:14px;width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;border:0;cursor:pointer;color:#fff;text-align:left;background:linear-gradient(115deg,#1d3d6b 0%,#2c5a96 45%,#8a5a2e 100%);box-shadow:0 14px 30px -16px #000,inset 0 1px 0 rgba(255,255,255,.25),inset 0 0 0 1px rgba(255,255,255,.12);position:relative;overflow:hidden}
.ppass::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,rgba(255,255,255,.05) 0 2px,transparent 2px 14px);pointer-events:none}
.pp-l{display:flex;align-items:center;gap:12px;min-width:0}
.pp-l img{width:46px;height:auto;flex:none;filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}
.pp-l>span{display:flex;flex-direction:column;min-width:0}
.pp-l small{font:700 11px var(--body);letter-spacing:.14em;text-transform:uppercase;color:#f3d9b5}
.pp-l b{font:900 22px/1 var(--display);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-l em{font:600 13px var(--mono);font-style:normal;color:#dbe7f5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-r{display:flex;align-items:center;gap:12px;flex:none}
.pts{display:flex;flex-direction:column;align-items:flex-end;padding:6px 8px;border-radius:10px;background:#06090f;box-shadow:inset 0 0 0 1px #2a3446}
.pts .led{font-size:22px}
.pts small,.ring2 small{font:700 10px var(--body);letter-spacing:.12em;text-transform:uppercase;color:#c9d4e3}
.ring2{width:58px;height:58px;border-radius:50%;display:grid;place-content:center;text-align:center;background:conic-gradient(var(--gold) calc(var(--p)*360deg),rgba(255,255,255,.18) 0);position:relative}
.ring2::before{content:"";position:absolute;inset:5px;border-radius:50%;background:#1b3156}
.ring2 b,.ring2 small{position:relative;line-height:1}
.ring2 b{font:900 18px var(--display)}
.pp-note{margin:8px 2px 0;color:var(--ink2);font-size:14px}
.pp-note b{color:var(--gold)}
.offerstrip{border-color:rgba(200,137,74,.45)}
@media (max-width:380px){.ring2{display:none}}

/* rails: swipeable rows of picture cards */
.rail{margin-top:26px}
.rh{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.rh h2{margin:0;font:900 28px/1 var(--display);text-transform:uppercase;letter-spacing:.02em}
.rh p{margin:4px 0 0;color:var(--ink2);font-size:14px}
.seeall{flex:none;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line2);background:none;color:var(--ink);font:700 13px var(--body);cursor:pointer}
.rtrack{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,62%);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 10px;margin:0 -2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rtrack::-webkit-scrollbar{display:none}
@media (min-width:700px){.rtrack{grid-auto-columns:minmax(220px,32%)}}
.pcard{position:relative;isolation:isolate;scroll-snap-align:start;display:flex;flex-direction:column;justify-content:flex-end;min-height:230px;border-radius:16px;overflow:hidden;border:0;padding:0;cursor:pointer;text-align:left;color:#fff;text-decoration:none;background:var(--panel2);box-shadow:inset 0 0 0 1px var(--line),0 12px 24px -18px #000;transition:transform .15s}
.pcard .art,.pcard .shade{z-index:-1}
.pcard .pb{position:absolute;top:10px;left:10px}
.pcard .pt{display:flex;flex-direction:column;gap:3px;padding:12px 14px 14px}
.pcard .pt b{font:900 24px/1 var(--display);text-transform:uppercase;letter-spacing:.01em}
.pcard .pt small{color:#d4dde9;font-size:13.5px;line-height:1.3}
.pcard .cta{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;gap:4px;font:800 12px var(--display);letter-spacing:.08em;text-transform:uppercase;padding:5px 8px;border-radius:7px;background:var(--ice2);color:#0b1322}
.pcard .cta svg{width:14px;height:14px;transform:rotate(180deg)}
.pcard.wide{grid-column:span 1}
@media (hover:hover){.pcard:hover{transform:translateY(-3px)}}
.pcard:active{transform:scale(.98)}

/* quick links */
.quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.quick button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:700 13px var(--body);cursor:pointer}
.quick svg{width:22px;height:22px;color:var(--cyan)}
@media (prefers-reduced-motion:reduce){.pcard,.pcard:hover{transform:none}}

/* hero fixes */
.icehero{min-height:0;display:block}
.icehero .art{height:230px;bottom:auto}
.icehero .shade{background:linear-gradient(180deg,rgba(11,19,34,0) 0,rgba(11,19,34,.15) 120px,rgba(11,19,34,1) 230px)}
.icehero{background:#0b1322}
.ih-in{padding:14px 16px 16px}
.ih-top{position:static;margin-bottom:96px}
.board .led{font-size:24px;white-space:nowrap}
.board .bt{align-items:flex-start}
.pp-l b{white-space:normal;font-size:20px}

.riverband{margin-top:26px;border-radius:18px;overflow:hidden;min-height:230px;display:flex;align-items:flex-end;background:linear-gradient(180deg,rgba(11,19,34,.1),rgba(11,19,34,.9) 75%),var(--ph) center/cover no-repeat,#13233b;box-shadow:inset 0 0 0 1px var(--line)}
.riverband>div{padding:16px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.riverband small{font:700 11px var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--copper-hi)}
.riverband b{font:900 34px/1 var(--display);text-transform:uppercase}
.riverband span{color:var(--ink2);font-size:15px;max-width:40ch}
.icehero .art{background-position:center 35%}

/* ===== AR Explorer + Find anything ===== */
.findbtn{width:42px;height:42px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);display:grid;place-items:center;cursor:pointer;flex:none}
.armodes{margin:2px 0 10px}
.arstage{position:relative;width:100%;max-width:520px;margin:0 auto;aspect-ratio:3/4;max-height:68vh;border-radius:18px;overflow:hidden;background:#06090f;box-shadow:inset 0 0 0 1px var(--line),0 18px 40px -20px #000;touch-action:manipulation;user-select:none;-webkit-user-select:none}
.arstage>img,.arstage>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.arempty{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center}
.arempty svg{position:absolute;inset:0;width:100%;height:100%;opacity:.35}
.arempty span{position:relative;margin:0 18px 120px;text-align:center;color:var(--ink);font-size:15px;background:rgba(11,19,34,.75);padding:10px 14px;border-radius:12px}
.arov{position:absolute;inset:0}
.arlab{position:absolute;translate:-50% -50%;display:inline-flex;align-items:center;gap:6px;max-width:46%;padding:5px 9px 5px 6px;border-radius:999px;border:1px solid color-mix(in srgb,var(--pc) 60%,transparent);background:rgba(6,9,15,.78);color:#fff;font:700 12.5px/1.15 var(--body);cursor:pointer;backdrop-filter:blur(6px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arlab i{width:10px;height:10px;border-radius:50%;background:var(--pc);flex:none;box-shadow:0 0 8px var(--pc)}
.arlab small{font:700 10.5px var(--body);color:#c9d4e3;margin-left:2px}
.arlab.tgt{border-color:var(--copper);box-shadow:0 0 0 2px rgba(200,137,74,.5);z-index:2}
.arbar{position:absolute;left:10px;right:10px;top:10px;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:14px;background:rgba(6,9,15,.86);backdrop-filter:blur(8px);color:#fff;z-index:3}
.arbar b{font:900 22px/1 var(--display);text-transform:uppercase}
.arbar span{font-size:14px;color:#d4dde9}
.arbar .fw{color:var(--gold);font-weight:700}
.arbar .hint{display:flex;gap:6px;align-items:center;color:var(--cyan)}
.arbar .hint svg{width:14px;height:14px;flex:none}
.ararrow{position:absolute;left:50%;bottom:14px;width:104px;height:104px;transform-origin:50% 50%;filter:drop-shadow(0 8px 16px rgba(0,0,0,.6));transition:transform .35s ease;z-index:2}
.arprompt{position:absolute;left:12px;right:12px;bottom:14px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;border-radius:16px;background:rgba(6,9,15,.88);backdrop-filter:blur(8px);color:#fff;z-index:3}
.arprompt b{font:900 26px/1 var(--display);text-transform:uppercase}
.arprompt span{color:#d4dde9;font-size:14.5px}
.arctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}
.face{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;flex:1 1 220px}
.face button{height:48px;padding:0 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;font:900 16px var(--display)}
.face button small{font:600 10px var(--body);color:inherit;opacity:.8;margin-top:2px;white-space:nowrap}
.arwhere b{display:block;font:800 20px/1.1 var(--display);text-transform:uppercase;margin-top:2px}
.guess{margin-top:10px;display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:12px;background:var(--panel2)}
.guess small{color:var(--ink2)}
.artgts{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
.artgts button{display:flex;flex-direction:column;align-items:center;gap:6px;min-height:72px;padding:10px 6px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:700 13px/1.15 var(--body);cursor:pointer;text-align:center}
.artgts button svg{width:22px;height:22px;color:var(--cyan)}
.artgts button[aria-pressed=true]{border-color:var(--copper);background:rgba(200,137,74,.16)}
.lchip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:rgba(114,210,155,.12);border:1px solid rgba(114,210,155,.35);color:#bfeed3;font:600 12.5px var(--body);white-space:nowrap}
.lchip svg{width:14px;height:14px;color:var(--green)}
.lchip b{color:#fff}
.spr{position:absolute;translate:-50% -50%;width:62px;height:62px;padding:0;border:0;background:none;cursor:pointer;filter:drop-shadow(0 6px 10px rgba(0,0,0,.55));z-index:4}
.spr svg{width:100%;height:100%}
.spr.pop{animation:popin .25s cubic-bezier(.2,1.6,.4,1)}
.spr.egg{animation:bobble 2.2s ease-in-out infinite}
@keyframes popin{from{scale:.2;opacity:0}}
@keyframes bobble{50%{translate:-50% -62%}}
.snaphud{position:absolute;top:10px;left:10px;right:10px;display:flex;justify-content:space-between;z-index:5;pointer-events:none}
.snaphud b,.snaphud span{padding:6px 12px;border-radius:10px;background:rgba(6,9,15,.82);font:900 26px var(--mono);color:var(--led);text-shadow:0 0 10px var(--led-glow)}
.trivcard{position:absolute;left:10px;right:10px;bottom:10px;padding:14px;border-radius:16px;background:rgba(6,9,15,.9);backdrop-filter:blur(8px);color:#fff;display:flex;flex-direction:column;gap:8px;z-index:3}
.trivcard small{font:700 11px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--copper-hi)}
.trivcard b{font:800 19px/1.2 var(--body)}
.trivcard .tvo button{min-height:46px;font-size:15px}
.search.big{height:54px;font-size:17px}
.wl{margin:12px 0 4px;font:800 14px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--copper-hi)}
.wbtn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);text-align:left;cursor:pointer;margin-bottom:6px}
.wbtn b{font:700 15px var(--body)}
.wbtn small{color:var(--ink2);font-size:12.5px}
.wbtn[hidden],.wl[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.ararrow{transition:none}.spr{animation:none!important}}

.sh{flex-wrap:wrap}
#teach .lchip{white-space:normal}

/* ===== AR tab + AR screen ===== */
.tabs .artab{position:relative}
.tabs .artab svg{width:30px;height:30px;padding:7px;margin-top:-20px;border-radius:50%;background:var(--silo);color:#fff;border:3px solid var(--space);box-shadow:0 6px 18px -4px rgba(79,132,200,.8);box-sizing:content-box}
.tabs .artab[aria-current=true] svg{filter:none;background:var(--silo-hi)}
body.in-ar .tabs,body.in-ar .top{display:none}
body.in-ar{overflow:hidden}
.arhost{position:fixed;inset:0;z-index:60;background:#0b1322}
.arload{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;color:var(--cream);font:800 22px var(--display);text-transform:uppercase;letter-spacing:.04em}
.arload img{animation:arspin 2.4s linear infinite}@keyframes arspin{to{transform:rotate(360deg)}}

/* ===== lean home: quick actions ===== */
.qa{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}
.qa button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:84px;padding:10px 4px;border-radius:14px;border:1px solid var(--line2);background:var(--panel);color:var(--ink);cursor:pointer;text-align:center}
.qa button svg{width:26px;height:26px;color:var(--cyan)}
.qa button b{font:700 12.5px/1.15 var(--body)}
.qa .hot{background:linear-gradient(160deg,rgba(200,137,74,.28),var(--panel));border-color:rgba(217,156,93,.5)}.qa .hot svg{color:var(--copper-hi)}
.qa .cy{background:linear-gradient(160deg,rgba(61,111,174,.4),var(--panel));border-color:rgba(79,132,200,.6)}.qa .cy svg{color:#fff}
@media (max-width:360px){.qa{grid-template-columns:repeat(2,1fr)}}

/* ===== ordering ===== */
.ohero{position:relative;margin:6px -16px 14px;padding:22px 16px 18px;background:linear-gradient(180deg,rgba(11,19,34,.35),rgba(11,19,34,.96) 78%),var(--ph) center/cover;border-bottom:1px solid var(--line)}
@media (min-width:700px){.ohero{margin:6px 0 14px;border-radius:var(--r);border:1px solid var(--line)}}
.ohero h1{margin:4px 0 2px;font:900 clamp(34px,9vw,48px)/.95 var(--display);text-transform:uppercase;letter-spacing:.01em;color:var(--cream)}
.ohero p{margin:0 0 14px;color:var(--ink2)}
.dchip{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border-radius:14px;border:1px solid rgba(217,156,93,.55);background:rgba(20,34,56,.92);color:var(--ink);cursor:pointer;text-align:left}
.dchip svg{width:22px;height:22px;color:var(--copper-hi);flex:none}.dchip span{flex:1;min-width:0}.dchip small{display:block;font:700 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--copper-hi)}.dchip b{display:block;font:700 16px var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ometa{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;color:var(--ink2);font:600 13px var(--body)}.ometa span{display:inline-flex;align-items:center;gap:6px}.ometa svg{width:16px;height:16px;color:var(--cyan)}
.otrack{display:flex;align-items:center;gap:12px;width:100%;margin:0 0 12px;padding:12px 14px;border-radius:14px;border:1px solid rgba(74,222,128,.45);background:rgba(74,222,128,.08);color:var(--ink);cursor:pointer;text-align:left}
.otrack span:nth-child(2){flex:1}.otrack b{display:block}.otrack small{color:var(--ink2)}.otrack svg{width:18px;height:18px}
.pulse{width:12px;height:12px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(74,222,128,.6);animation:pulse 1.6s infinite;flex:none}@keyframes pulse{70%{box-shadow:0 0 0 12px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}
.ocats{display:flex;gap:8px;overflow-x:auto;margin:0 -16px 14px;padding:2px 16px 6px;scrollbar-width:none}.ocats::-webkit-scrollbar{display:none}
.ocats button{flex:none;display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px;border-radius:20px;border:1px solid var(--line2);background:var(--panel);color:var(--ink2);font:700 14px var(--body);cursor:pointer;white-space:nowrap}
.ocats button svg{width:17px;height:17px}.ocats button[aria-pressed=true]{background:var(--cream);color:#0b1322;border-color:var(--cream)}
.menu2{display:grid;grid-template-columns:1fr;gap:10px}@media (min-width:640px){.menu2{grid-template-columns:1fr 1fr}}@media (min-width:980px){.menu2{grid-template-columns:1fr 1fr 1fr}}
.mi{display:flex;gap:12px;padding:10px;border-radius:16px;background:var(--panel);border:1px solid var(--line);transition:border-color .15s}
.mi.in{border-color:rgba(217,156,93,.6);background:linear-gradient(160deg,rgba(200,137,74,.12),var(--panel) 55%)}
.mpic{position:relative;width:108px;height:108px;flex:none;border-radius:12px;overflow:hidden;background:#0e192b}.mpic svg{width:100%;height:100%;display:block}
.mtag{position:absolute;left:6px;top:6px;padding:2px 7px;border-radius:6px;background:var(--copper);color:#1c1006;font:800 10.5px var(--body)}
.mbody{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.mbody b{font:700 16px/1.2 var(--body)}.mbody small{color:var(--ink2);font-size:13px;line-height:1.35}
.mfoot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:6px}
.mpr{font:800 18px var(--display);letter-spacing:.02em;color:var(--cream)}
.madd{display:inline-flex;align-items:center;gap:5px;height:38px;padding:0 14px;border-radius:19px;border:0;background:var(--silo);color:#fff;font:700 14px var(--body);cursor:pointer}.madd svg{width:16px;height:16px}
.step{display:inline-flex;align-items:center;height:38px;border-radius:19px;background:var(--copper);color:#1c1006}
.step button{width:38px;height:38px;border:0;background:none;color:inherit;font:800 20px var(--body);cursor:pointer}.step span{min-width:22px;text-align:center;font:800 15px var(--body)}
.step.sm{height:32px}.step.sm button{width:32px;height:32px;font-size:17px}
.obar{position:fixed;left:0;right:0;bottom:calc(var(--tabh) + env(safe-area-inset-bottom,0px) + 8px);z-index:25;display:flex;justify-content:center;padding:0 16px;pointer-events:none}
.obar button{pointer-events:auto;display:flex;align-items:center;gap:12px;width:100%;max-width:560px;height:56px;padding:0 10px 0 10px;border-radius:16px;border:0;background:var(--copper);color:#1c1006;font:800 16px var(--body);cursor:pointer;box-shadow:0 14px 30px -10px rgba(0,0,0,.7)}
.obar .on{min-width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(0,0,0,.18);font:800 15px var(--body)}.obar b{flex:1;text-align:left}.obar .ot{font:900 19px var(--display);letter-spacing:.02em}
.ck{margin:0 0 14px;padding:16px;border-radius:var(--r);background:var(--panel);border:1px solid var(--line)}
.ckh{display:flex;align-items:center;gap:10px;margin-bottom:12px}.ckh h2{margin:0;font:800 22px var(--display);text-transform:uppercase;letter-spacing:.03em}
.ckh .n{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--silo);color:#fff;font:800 14px var(--body)}
.lnk{border:0;background:none;color:var(--cyan);font:700 14px var(--body);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:4px}.lnk svg{width:14px;height:14px}
.cl2{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.cl2 .th{width:48px;height:48px;border-radius:10px;overflow:hidden;flex:none;background:#0e192b}.cl2 .th svg{width:100%;height:100%}
.cl2 .tx{flex:1;min-width:0}.cl2 .tx b{display:block;font-size:14.5px}.cl2 .tx small{color:var(--ink2)}.cl2 .lt{min-width:58px;text-align:right}
.rooms{display:grid;grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:8px}
.rbtn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:64px;border-radius:12px;border:1px solid var(--line2);background:var(--panel2);color:var(--ink);cursor:pointer}
.rbtn small{font:700 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink3)}.rbtn b{font:900 26px/1 var(--display)}
.rbtn em{position:absolute;bottom:-7px;padding:1px 6px;border-radius:6px;background:var(--copper);color:#1c1006;font:800 9.5px var(--body);font-style:normal;white-space:nowrap}
.rbtn.on{background:var(--cream);color:#0b1322;border-color:var(--cream)}.rbtn.on small{color:#4b5568}
.pick2{display:grid;gap:8px;margin:12px 0}@media (min-width:560px){.pick2{grid-template-columns:1fr 1fr}}
.rbtn.wide{flex-direction:row;justify-content:flex-start;gap:10px;min-height:52px;padding:0 14px}.rbtn.wide b{font:700 14.5px var(--body)}.rbtn.wide svg{width:20px;height:20px}
.ck .f em{color:var(--ink3);font-weight:500}
.whens{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.wbtn2{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px;border-radius:12px;border:1px solid var(--line2);background:var(--panel2);color:var(--ink);cursor:pointer;text-align:left}
.wbtn2 b{font-size:14.5px}.wbtn2 small{color:var(--ink2);font-size:12.5px}.wbtn2.on{border-color:var(--silo-hi);background:rgba(61,111,174,.3);box-shadow:inset 0 0 0 1px var(--silo-hi)}
.tot2{display:flex;justify-content:space-between;align-items:baseline;font-size:16px}.tot2 b{font:900 28px var(--display);color:var(--cream)}
.btn.big{height:56px;font-size:17px;border-radius:14px}
.err{color:var(--red)}
.trk{padding:18px 16px;border-radius:var(--r);background:linear-gradient(170deg,#18304f,#101d31);border:1px solid var(--line2)}
.trk h1{margin:4px 0;font:900 clamp(30px,8vw,44px)/1 var(--display);text-transform:uppercase;color:var(--cream)}.trk>p{color:var(--ink2);margin:0 0 14px}
.steps{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:0}
.steps li{position:relative;display:grid;grid-template-columns:34px 1fr;column-gap:12px;padding:0 0 18px;color:var(--ink3)}
.steps li::before{content:"";position:absolute;left:16px;top:30px;bottom:0;width:2px;background:var(--line2)}.steps li:last-child::before{display:none}
.steps .dot2{grid-row:span 2;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--line2);font:800 14px var(--body)}.steps .dot2 svg{width:16px;height:16px}
.steps b{font:800 18px var(--display);text-transform:uppercase;letter-spacing:.03em}.steps small{color:var(--ink2)}
.steps li.done{color:var(--ink)}.steps li.done .dot2{background:var(--green);border-color:var(--green);color:#06210f}.steps li.done::before{background:var(--green)}
.steps li.now{color:var(--cream)}.steps li.now .dot2{border-color:var(--copper-hi);background:var(--copper);color:#1c1006;box-shadow:0 0 0 6px rgba(200,137,74,.2)}
.tl{padding:12px;border-radius:12px;background:rgba(0,0,0,.18);margin-bottom:10px}.tl div{display:flex;justify-content:space-between;padding:3px 0}.tl .tt{border-top:1px solid var(--line);margin-top:6px;padding-top:8px}
.board2{display:grid;gap:12px;grid-template-columns:1fr}@media (min-width:760px){.board2{grid-template-columns:repeat(4,1fr)}}
.bcol h3{margin:0 0 8px;font:800 18px var(--display);text-transform:uppercase;letter-spacing:.04em;display:flex;gap:8px;align-items:center}.bcol h3 span{padding:0 8px;border-radius:8px;background:var(--panel2);font:700 13px var(--body)}
.ocard{padding:12px;border-radius:14px;background:var(--panel);border:1px solid var(--line);margin-bottom:8px}.ocard.late{border-color:var(--red);box-shadow:0 0 0 1px var(--red)}
.oc1{display:flex;justify-content:space-between;align-items:baseline}.oc1 b{font:900 24px var(--display);color:var(--cream)}.oc1 span{color:var(--ink3);font:700 12px var(--mono)}
.oc2{color:var(--ink2);font-size:13px}.ocard ul{margin:8px 0;padding-left:18px}.onote{margin:0 0 8px;padding:6px 8px;border-radius:8px;background:rgba(250,204,21,.1);color:var(--gold);font-size:13px}
.oc3{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--ink3)}.oc3 span{flex:1 1 100%}
.empty{text-align:center}

/* ===== Map Lab ===== */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:12px}
.kpi{padding:12px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}.kpi b{display:block;font:900 30px/1 var(--display);color:var(--cream)}.kpi b i{font-style:normal;font-size:16px;color:var(--ink3)}.kpi small{display:block;margin-top:4px;color:var(--ink2);font-weight:600}.kpi em{font-style:normal;font-size:12px;color:var(--ink3)}
.labmap{display:block;width:100%;height:340px;border-radius:12px;margin:4px 0 8px;background:#07101f}
.labrows{display:grid;gap:6px}.labrow{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}.labrow.sug{border-color:rgba(217,156,93,.6)}
.labrow .tx{flex:1;min-width:0}.labrow .tx b{display:block}.labrow .tx small{color:var(--ink2)}
.cf{min-width:46px;padding:4px 0;border-radius:8px;text-align:center;font:800 13px var(--body);color:#0b1322;background:var(--c)}
.labq{display:flex;gap:12px;margin-top:12px;padding:10px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}
.labq img,.labq .ph{width:96px;height:96px;flex:none;border-radius:10px;object-fit:cover;background:#07101f;display:grid;place-items:center;color:var(--ink3);font-size:12px}
.lqb{flex:1;min-width:0;display:grid;gap:6px}.lqb small{color:var(--ink2)}.lqb select,.lqb input{height:38px;border-radius:9px;border:1px solid var(--line2);background:var(--panel);color:var(--ink);padding:0 8px;font:500 14px var(--body)}
.labmedia{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-top:12px}.labmedia a{display:block;color:var(--ink2);text-decoration:none;font-size:11.5px}.labmedia img,.labmedia span{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:#07101f}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:5px 10px;border-radius:14px;background:var(--panel2);border:1px solid var(--line2);font-size:13px}.chip b{color:var(--gold)}

/* ===== Explore ===== */
.srch2{display:flex;align-items:center;gap:10px;height:50px;padding:0 14px;margin-bottom:14px;border-radius:14px;background:var(--panel);border:1px solid var(--line2)}
.srch2 svg{width:20px;height:20px;color:var(--ink3)}.srch2 input{flex:1;min-width:0;height:100%;border:0;background:none;color:var(--ink);font:500 16px var(--body);outline:none}
.xtop{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.xbig{position:relative;min-height:112px;padding:14px;border-radius:16px;border:1px solid var(--line2);background:linear-gradient(180deg,rgba(11,19,34,.15),rgba(11,19,34,.92)),var(--ph) center/cover;color:var(--ink);text-align:left;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer}
.xbig b{font:900 24px/1 var(--display);text-transform:uppercase;color:var(--cream)}.xbig small{color:var(--ink2)}
.xgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media (min-width:700px){.xgrid{grid-template-columns:repeat(3,1fr)}}@media (min-width:980px){.xgrid{grid-template-columns:repeat(4,1fr)}}
.xc{display:flex;flex-direction:column;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--panel);color:var(--ink);text-align:left;cursor:pointer;padding:0}
.xph{display:block;aspect-ratio:16/10;background:#0e192b center/cover}.xph.xart{display:grid;place-items:center;background:linear-gradient(150deg,#1d3d66,#0e192b)}.xph.xart svg{width:36px;height:36px;color:var(--cream);opacity:.85}
.xb{display:flex;flex-direction:column;gap:2px;padding:10px 12px 12px}.xb b{font:700 15px/1.2 var(--body)}.xb small{color:var(--ink2);font-size:12.5px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.xs{margin-top:4px;font-style:normal;font:700 12px var(--body);color:var(--gold)}.xs.off{color:var(--ink3)}
.xev{display:grid;gap:8px}.xe{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--panel);border:1px solid var(--line);color:var(--ink);text-decoration:none}
.xd{width:48px;flex:none;text-align:center;padding:6px 0;border-radius:10px;background:rgba(200,137,74,.14);border:1px solid rgba(200,137,74,.35)}.xd small{display:block;font:700 10px var(--mono);text-transform:uppercase;color:var(--copper-hi)}.xd b{font:900 22px/1 var(--display)}
.xe>span:last-child b{display:block;font-size:14.5px}.xe>span:last-child small{color:var(--ink2)}
.legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px}
.legend button{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:600 13.5px var(--body);text-align:left;cursor:pointer}
.legend span{width:24px;height:24px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--silo);color:#fff;font:800 12px var(--body)}
.visit .vrow{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.visit .vrow>svg{width:20px;height:20px;color:var(--cyan);flex:none}.visit .vrow>span{flex:1;min-width:0}.visit .vrow b{display:block}.visit .vrow small{color:var(--ink2)}
.xfaq{border-bottom:1px solid var(--line);padding:2px 0}.xfaq summary{cursor:pointer;padding:12px 4px;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:10px}.xfaq summary::after{content:"+";color:var(--cyan);font-weight:800}.xfaq[open] summary::after{content:"–"}.xfaq summary::-webkit-details-marker{display:none}.xfaq p,.xfaq ul{margin:0 4px 12px;color:var(--ink2)}
.fh{margin:16px 0 2px;font:800 15px var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--copper-hi)}
.social{display:flex;gap:16px;margin:18px 0 6px}.social a{color:var(--cyan);font-weight:700}
.xhero{margin:6px -16px 12px;min-height:220px;display:flex;align-items:flex-end;padding:18px 16px;background:linear-gradient(180deg,rgba(11,19,34,.1),rgba(11,19,34,.95) 85%),var(--ph,linear-gradient(150deg,#1d3d66,#0e192b)) center/cover}
@media (min-width:700px){.xhero{margin:6px 0 12px;border-radius:var(--r)}}
.xhero h1{margin:4px 0;font:900 clamp(32px,8vw,46px)/.98 var(--display);text-transform:uppercase;color:var(--cream)}.xhero p{margin:0 0 6px;color:var(--ink2)}
.xact{margin-bottom:12px}.xdesc{font-size:16px;line-height:1.55;max-width:70ch}
.plist{list-style:none;margin:0;padding:0}.plist li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.plist li:last-child{border:0}.plist b{color:var(--cream);white-space:nowrap}
.xpl{display:grid;gap:6px;margin-bottom:12px}.xpl button{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);text-align:left;cursor:pointer}.xpl svg{width:20px;height:20px;color:var(--cyan)}.xpl b{display:block}.xpl small{color:var(--ink2)}
/* ===== Map Lab: log, media log, knowledge ===== */
.logl{display:grid;gap:4px}
.logr{display:grid;grid-template-columns:78px 112px 1fr;gap:8px;align-items:start;padding:8px 10px;border-radius:10px;background:var(--panel);border:1px solid var(--line);font-size:13px}
.logr .lt{font:600 11.5px var(--mono);color:var(--ink3);padding-top:2px}
.logr .ty{font:700 11px var(--body);padding:2px 7px;border-radius:6px;background:var(--panel2);color:var(--ink2);justify-self:start;white-space:nowrap}
.logr .ty.t-media{background:rgba(200,137,74,.2);color:var(--copper-hi)}.logr .ty.t-staff{background:rgba(250,204,21,.15);color:var(--gold)}.logr .ty.t-trail{background:rgba(96,165,250,.15);color:#93c5fd}.logr .ty.t-spot,.logr .ty.t-gpsfix{background:rgba(167,139,250,.18);color:#c4b5fd}.logr .ty.t-miss{background:rgba(251,113,133,.15);color:var(--red)}
.logr .lx{min-width:0}.logr .lx b{display:block;font-size:13.5px}.logr .lx small{display:block;color:var(--ink2);overflow-wrap:anywhere}
@media (max-width:520px){.logr{grid-template-columns:1fr auto}.logr .lt{grid-column:2;grid-row:1;text-align:right}.logr .ty{grid-column:1;grid-row:1}.logr .lx{grid-column:1/-1}}
.mrec{display:flex;gap:12px;padding:10px;margin-bottom:8px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.mrec>img,.mrec>.ph{width:92px;height:92px;flex:none;border-radius:10px;object-fit:cover;background:#07101f;display:grid;place-items:center;color:var(--ink3);font-size:12px}
.mrb{flex:1;min-width:0;display:grid;gap:3px}.mrb small{color:var(--ink2);overflow-wrap:anywhere}.mrb small.gps{color:var(--cyan);font-weight:600}
.mrb .row{gap:6px;align-items:center}.mlink,.mrb select{flex:1;min-width:140px;height:36px;border-radius:9px;border:1px solid var(--line2);background:var(--panel2);color:var(--ink);padding:0 8px;font:500 13.5px var(--body)}
.kbr{padding:10px 12px;margin-bottom:8px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}.kbr small{color:var(--copper-hi);font:700 11px var(--body);letter-spacing:.06em;text-transform:uppercase}.kbr b{display:block;margin:2px 0}.kbr p{margin:0;color:var(--ink2);font-size:14px}
.kbans{white-space:normal;line-height:1.55;margin-bottom:12px;border-color:rgba(79,132,200,.6)}
.in2,#kbnx{width:100%;margin-bottom:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--line2);background:var(--panel2);color:var(--ink);font:500 15px var(--body)}

/* ===== phone polish: portrait, no zoom-on-focus, comfy tap targets ===== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}
button,a,[role=button],.tabs button{touch-action:manipulation}
input,select,textarea{font-size:16px!important}
.back{min-height:44px;padding:8px 4px 8px 0}
.lnk{min-height:40px}
.social a{display:inline-flex;align-items:center;min-height:44px;padding:0 6px}
@media (max-width:480px){.tblw th,.tblw td{padding:9px 6px;font-size:13.5px}.tblw td:first-child,.tblw th:first-child{white-space:normal;min-width:120px}}
.wrap{min-height:100dvh}
.rotate{display:none}
@media (orientation:landscape) and (max-height:500px) and (pointer:coarse){.rotate{display:grid;place-content:center;justify-items:center;gap:8px;position:fixed;inset:0;z-index:999;background:#0b1322;color:var(--ink);text-align:center;padding:20px}.rotate img{width:84px;height:84px;margin-bottom:6px}.rotate b{font:900 32px var(--display);text-transform:uppercase;letter-spacing:.03em}.rotate span{color:var(--ink2)}body{overflow:hidden}}

.ev>svg{width:18px;height:18px;flex:none;color:var(--ink3)}
@media (max-width:480px){.tblw .xs{display:none}}

/* RW-TOURNEY */
/* Game Schedule: time rail on the left, games stacked; locker room numbers sit in square badges like the door plates. */
.tg-list{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.tg-slot{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:start}
.tg-slot.next .tg-when b{color:var(--cyan)}
.tg-when{position:sticky;top:calc(64px + env(safe-area-inset-top,0px));display:flex;flex-direction:column;align-items:flex-start;padding-top:10px}
.tg-when b{font:800 22px/1 var(--mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.tg-when small{font:700 11px var(--mono);color:var(--ink3);letter-spacing:.08em;margin-top:3px}
.tg-when em{font:800 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--space);background:var(--cyan);border-radius:4px;padding:1px 5px;margin-top:6px;font-style:normal}
.tg-games{display:flex;flex-direction:column;gap:8px;min-width:0}
.tg-game{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.tg-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--ink3)}
.tg-meta b{color:var(--ink2)}
.tg-rk{font:800 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:2px 6px;border-radius:5px;color:var(--space)}
.tg-rk.r1{background:var(--cyan)}.tg-rk.r2{background:var(--violet)}
.tg-team{display:flex;align-items:center;gap:10px;min-width:0}
.tg-lr{flex:none;width:40px;height:34px;border-radius:8px;display:grid;place-items:center;font:900 19px/1 var(--mono);background:var(--panel2);border:1px solid var(--line);color:var(--ice)}
.tg-nm{display:flex;flex-direction:column;min-width:0;flex:1}
.tg-nm b,.tg-link{font:700 15px var(--body);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.tg-link{background:none;border:0;padding:0;cursor:pointer}
.tg-link:hover{color:var(--cyan)}
.tg-nm small{font-size:11.5px;color:var(--ink3)}
.tg-team.tbd .tg-nm b{font-style:italic;color:var(--ink2)}
.tg-team.tbd .tg-nm small{color:var(--gold)}
.tg-sc{flex:none;font:800 18px var(--mono);color:var(--ink3);min-width:22px;text-align:right}
.tg-sc.win{color:var(--ink)}
@media (max-width:420px){.tg-slot{grid-template-columns:52px minmax(0,1fr);gap:8px}.tg-when b{font-size:18px}}

/* Oct 22: 5-tab bar with the 3D Map in the middle; sub-tab rows for Lockers & Schedule and Play & Rewards */
.tabs nav{max-width:560px}
.tabs .maptab svg{width:32px;height:32px;padding:8px;margin-top:-24px;background:linear-gradient(150deg,#4f84c8,#2b4f86);box-shadow:0 8px 22px -6px rgba(79,132,200,.9),inset 0 1px 0 rgba(255,255,255,.35)}
.tabs .maptab{font-weight:800;color:var(--cream)}
.drnav.dr4{grid-template-columns:repeat(4,minmax(0,1fr))}
.drnav.dr4 button{font-size:13px;gap:5px;padding:0 4px}
@media (max-width:420px){.drnav.dr4 button{flex-direction:column;gap:2px;font-size:11.5px;min-height:50px}.drnav.ls button{font-size:12.5px;gap:4px}}
/* 60 fps: the header and tab bar are solid, so scrolling never re-blurs the page under them */
.top,.tabs{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.top{background:rgba(11,19,34,.97)!important}
