/* WeightClass — app.css
   Broadcast direction. Plain CSS, no build. Dark default; light via
   prefers-color-scheme or [data-theme] on <html> (set by js/ui.js). */

/* Optional self-hosted display face. Drop a condensed bold woff2 (e.g. Barlow Condensed 800, OFL)
   at public/fonts/arena-display.woff2. Falls back to system fonts when absent. */
@font-face{font-family:"Arena Display";src:url("fonts/arena-display.woff2") format("woff2");font-weight:600 900;font-display:swap}
@font-face{font-family:"Twemoji Country Flags";src:url("fonts/twemoji-country-flags.woff2") format("woff2");unicode-range:U+1F1E6-1F1FF,U+1F3F4,U+E0062-E0063,U+E0065,U+E0067,U+E006C,U+E006E,U+E0073-E0074,U+E0077,U+E007F;font-display:swap}

:root{
  --bg:#080b14;--panel:#111827;--panel-strong:#182238;--text:#eef2ff;--muted:#9ba8c7;
  --line:#293653;--accent:#54e1ff;--accent-strong:#20b8dc;--live:#ff4d77;
  --wolf:#ff657a;--seer:#b891ff;--doctor:#63dfa4;--warning:#ffd166;
  --bubble:#1b2943;--dead:#687087;--track:#26324a;
  /* additions */
  --blue:#5aa9ff;--orange:#ff9d4d;--opt-a:var(--accent);--opt-b:var(--seer);--opt-c:var(--warning);
  --on-accent:#03141b;--on-live:#1c0610;--side-a:var(--accent);--side-b:var(--warning);-\-team-red:#ff5d5d;-\-team-blue:#5da8ff;
  --shadow:0 18px 40px -20px rgb(0 0 0 / .7);
  --f-display:"Twemoji Country Flags","Arena Display","Barlow Condensed","Roboto Condensed","Arial Narrow",ui-sans-serif,system-ui,sans-serif;
  --f-body:"Twemoji Country Flags",ui-sans-serif,system-ui,"Segoe UI",Roboto,sans-serif;
  --f-mono:"Twemoji Country Flags",ui-monospace,"SFMono-Regular","Cascadia Mono","Segoe UI Mono",Menlo,Consolas,monospace;
  --r:14px;--r-sm:8px;
  color-scheme:dark;
}
@media (prefers-color-scheme:light){
  :root:not([data-theme=dark]){
    --bg:#f4f6fb;--panel:#ffffff;--panel-strong:#eaf0fa;--text:#111827;--muted:#5d6880;
    --line:#ced6e5;--accent:#007b9d;--accent-strong:#00627d;--live:#c61d4c;
    --wolf:#c92d46;--seer:#7043ba;--doctor:#087747;--warning:#946900;
    --bubble:#e7effb;--dead:#7b8290;--track:#d8dfeb;
    --blue:#1f66d1;--orange:#b85400;--on-accent:#ffffff;--on-live:#ffffff;-\-team-red:#b42331;-\-team-blue:#1859a9;--shadow:0 18px 40px -24px rgb(17 24 39 / .35);color-scheme:light;
  }
}
:root[data-theme=light]{
  --bg:#f4f6fb;--panel:#ffffff;--panel-strong:#eaf0fa;--text:#111827;--muted:#5d6880;
  --line:#ced6e5;--accent:#007b9d;--accent-strong:#00627d;--live:#c61d4c;
  --wolf:#c92d46;--seer:#7043ba;--doctor:#087747;--warning:#946900;
  --bubble:#e7effb;--dead:#7b8290;--track:#d8dfeb;
  --blue:#1f66d1;--orange:#b85400;--on-accent:#ffffff;--on-live:#ffffff;-\-team-red:#b42331;-\-team-blue:#1859a9;--shadow:0 18px 40px -24px rgb(17 24 39 / .35);color-scheme:light;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%;scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 var(--f-body);min-height:100vh;overflow-x:hidden;position:relative}
body::before{content:"";position:absolute;inset:0 0 auto;height:520px;pointer-events:none;z-index:-1;
  background:radial-gradient(50% 80% at 50% 0%,color-mix(in oklab,var(--accent) 10%,transparent),transparent 70%)}
a{color:var(--accent);text-underline-offset:3px}
a:hover{color:var(--text)}
h1,h2,h3,h4,p{margin:0}
p,li{text-wrap:pretty}
img,svg{display:block;max-width:100%}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
table,.num{font-variant-numeric:tabular-nums}
.mono{font-family:var(--f-mono)}
.muted{color:var(--muted)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:1320px;margin:0 auto;padding:0 24px}
@media (max-width:640px){.wrap{padding:0 14px}}
.display{font-family:var(--f-display);font-weight:800;text-transform:uppercase;letter-spacing:.005em;line-height:.9;font-stretch:condensed}
.eyebrow{font:700 11px/1.2 var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.stack{display:flex;flex-direction:column;gap:12px}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.spacer{flex:1}

/* ---------- top bar ---------- */
.topbar{position:sticky;top:0;z-index:30;background:color-mix(in oklab,var(--bg) 84%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.topbar .wrap{display:flex;align-items:center;gap:22px;height:58px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);font:800 20px/1 var(--f-display);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.brand:hover{color:var(--text)}
.brand-mark{width:30px;height:26px;background:var(--accent);color:var(--on-accent);clip-path:polygon(22% 0,100% 0,78% 100%,0 100%);display:grid;place-items:center;font-size:15px;letter-spacing:0}
.nav{display:flex;gap:2px}
.nav a{color:var(--muted);text-decoration:none;padding:8px 11px;border-radius:8px;font-weight:500;font-size:14px;position:relative;white-space:nowrap}
.nav a:hover{color:var(--text);background:var(--panel)}
.nav a[aria-current=page]{color:var(--text)}
.nav a[aria-current=page]::after{content:"";position:absolute;left:11px;right:11px;bottom:-12px;height:2px;background:var(--accent);border-radius:2px}
.topbar-end{margin-left:auto;display:flex;align-items:center;gap:8px}
.live-count{white-space:nowrap;display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--text);font-size:13px;padding:4px 10px 4px 4px;border:1px solid var(--line);border-radius:999px;background:var(--panel)}
.menu{display:none;position:relative}
.menu summary{list-style:none}
.menu summary::-webkit-details-marker{display:none}
.menu nav{position:absolute;right:0;top:44px;min-width:220px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:6px;display:flex;flex-direction:column;box-shadow:var(--shadow)}
.menu nav a{padding:10px 12px;border-radius:8px;color:var(--text);text-decoration:none}
.menu nav a:hover{background:var(--panel-strong)}
@media (max-width:960px){.nav{display:none}.menu{display:block}}
@media (max-width:420px){.live-count span:last-child{display:none}.live-count{padding:4px}}

/* ---------- atoms ---------- */
.live{display:inline-flex;align-items:center;gap:6px;padding:4px 9px 4px 8px;border-radius:999px;background:var(--live);color:var(--on-live);font:800 10.5px/1.2 var(--f-body);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.live::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}
.status{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;border:1px solid var(--line);font:700 10.5px/1.2 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-weight:600;font-size:14px;text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--panel-strong);color:var(--text);border-color:color-mix(in oklab,var(--accent) 40%,var(--line))}
.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn--primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:var(--on-accent)}
.btn--sm{min-height:32px;padding:0 11px;font-size:13px;border-radius:8px}
.icon-btn{width:40px;height:40px;display:inline-grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;font-size:16px}
.icon-btn:hover{background:var(--panel-strong)}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;text-decoration:none}
.chip:hover{color:var(--text);border-color:color-mix(in oklab,var(--accent) 40%,var(--line))}
.chip[aria-pressed=true],.chip[aria-current=page]{background:var(--text);border-color:var(--text);color:var(--bg)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.gbadge{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:6px;border:1px solid var(--line);background:var(--panel-strong);font:800 10.5px/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;color:var(--text)}
.tag{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;font:700 10.5px/1.3 var(--f-body);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid color-mix(in oklab,var(--tc,var(--muted)) 45%,transparent);color:var(--tc,var(--muted));background:color-mix(in oklab,var(--tc,var(--muted)) 10%,transparent)}
.tag--accent{--tc:var(--accent)}.tag--warn{--tc:var(--warning)}.tag--wolf{--tc:var(--wolf)}.tag--seer{--tc:var(--seer)}.tag--doctor{--tc:var(--doctor)}.tag--live{--tc:var(--live)}
.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--muted);user-select:none;white-space:nowrap}
.switch input{appearance:none;-webkit-appearance:none;width:34px;height:20px;border-radius:999px;background:var(--track);position:relative;cursor:pointer;margin:0;flex:none;transition:background .15s}
.switch input::after{content:"";position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}
.switch input:checked{background:var(--accent-strong)}
.switch input:checked::after{transform:translateX(14px);background:#fff}
.switch:hover{color:var(--text)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r)}
.panel-pad{padding:18px}
.bar{height:6px;background:var(--track);border-radius:3px;overflow:hidden;min-width:40px}
.bar>i{display:block;height:100%;width:var(--v,0%);background:var(--bc,var(--accent));border-radius:3px}
.av{width:32px;height:32px;flex:none;border-radius:50%;display:grid;place-items:center;font:800 13px/1 var(--f-body);background:var(--panel-strong);border:2px solid var(--ac,var(--line));color:var(--text)}
.av--lg{width:88px;height:88px;font:800 40px/1 var(--f-display);border-width:3px}
.flag{font-size:14px}

/* ---------- rig chip system ---------- */
.rig{display:inline-flex;flex-wrap:wrap;flex:none;align-items:stretch;max-width:100%;font:500 11.5px/1 var(--f-mono);border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--panel);vertical-align:middle}
.rig>span{padding:5px 7px;border-left:1px solid var(--line);color:var(--muted);display:flex;align-items:center;gap:5px;white-space:nowrap}
.rig>span:first-child{border-left:0}
.rig .rig-gpu{color:var(--text);font-weight:700;background:var(--panel-strong)}
.rig .rig-gpu::before{content:"";width:6px;height:6px;border-radius:1px;background:var(--gc,var(--accent))}
.rig .rig-state{font:700 9.5px/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase}
.rig .rig-state.is-verified{color:var(--doctor)}
.rig--sm{font-size:10.5px}.rig--sm>span{padding:3px 6px}
.gpu-spark{--gc:var(--accent)}.gpu-laptop{--gc:var(--warning)}
@media (max-width:480px){.rig>span{white-space:normal;overflow-wrap:anywhere}}
.rigcard{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--panel)}
.rigcard>div{padding:12px 14px;border-right:1px solid var(--line);min-width:0}
.rigcard>div:last-child{border-right:0}
.rigcard dt{font:700 10px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.rigcard dd{margin:0;font:600 13px/1.3 var(--f-mono);overflow-wrap:anywhere}
.rigcard dl{margin:0}
.rig-banner{min-width:0;max-width:100%;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
.rig-banner b{font-size:13px;white-space:nowrap}
@media (max-width:1180px){.match-tools .rig-banner{flex-basis:100%}}

/* ---------- section heads ---------- */
.sec{margin-top:56px}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.sec-title{font:800 30px/1 var(--f-display);text-transform:uppercase;letter-spacing:.01em}
.sec-sub{color:var(--muted);font-size:14px;margin-top:6px;max-width:62ch}
.page-head{padding:36px 0 8px}
.page-title{font:800 clamp(44px,7vw,84px)/.9 var(--f-display);text-transform:uppercase}
.page-lede{color:var(--muted);font-size:16px;margin-top:12px;max-width:64ch}

/* ---------- scorebug (match header) ---------- */
.bug{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);margin:18px 0 14px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow)}
.bug-side{padding:16px 22px;display:flex;flex-direction:column;gap:8px;min-width:0;border-top:3px solid var(--sc,var(--line))}
.bug-side--a{--sc:var(--side-a)}.bug-side--b{--sc:var(--side-b);align-items:flex-end;text-align:right}
.bug-side--wolf{--sc:var(--wolf)}.bug-side--village{--sc:var(--doctor)}
.bug-kicker{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bug-side--b .bug-kicker{justify-content:flex-end}
.bug-name{font:800 clamp(28px,3.6vw,48px)/.92 var(--f-display);text-transform:uppercase;overflow-wrap:anywhere}
.bug-line{display:flex;align-items:center;gap:14px}
.bug-side--b .bug-line{flex-direction:row-reverse}
.bug-score{font:800 clamp(40px,5vw,64px)/.85 var(--f-display);font-variant-numeric:tabular-nums}
.bug-score.is-win{color:var(--sc)}
.bug-mid{background:var(--panel-strong);padding:14px 34px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;clip-path:polygon(18px 0,calc(100% - 18px) 0,100% 100%,0 100%);min-width:220px}
.bug-phase{font:800 34px/.9 var(--f-display);text-transform:uppercase}
.bug-sub{font-size:13px;color:var(--muted)}
.bug-clock{font:600 13px/1 var(--f-mono);color:var(--muted)}
@media (max-width:760px){
  .bug{grid-template-columns:1fr 1fr}
  .bug-mid{grid-column:1/-1;grid-row:1;clip-path:none;padding:12px;min-width:0;flex-direction:row;flex-wrap:wrap;gap:6px 12px}
  .bug-phase{font-size:24px}
  .bug-side{padding:12px 14px;border-top-width:3px}
  .bug-name{font-size:26px}
}
.match-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}

/* ---------- match layout ---------- */
.match{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:16px;align-items:start}
.match-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.feed-col{position:sticky;top:72px;height:calc(100vh - 88px);min-height:520px;display:flex;flex-direction:column;min-width:0}
@media (max-width:1100px){.match{grid-template-columns:minmax(0,1fr)}.feed-col{position:static;height:auto;min-height:0}}

/* ---------- werewolf ring ---------- */
.stage{position:relative;padding:14px;overflow:hidden}
.ring{position:relative;aspect-ratio:16/10;min-height:460px}
.ring::before{content:"";position:absolute;inset:11% 13%;border:1px dashed var(--line);border-radius:50%}
.ring::after{content:"";position:absolute;inset:30% 32%;border-radius:50%;background:radial-gradient(closest-side,color-mix(in oklab,var(--ph,var(--accent)) 14%,transparent),transparent)}
.seat{--a:0deg;position:absolute;z-index:1;left:calc(50% + cos(var(--a)) * 37%);top:calc(50% + sin(var(--a)) * 38%);transform:translate(-50%,-50%);width:162px;padding:10px 12px 11px;border-radius:12px;background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column;gap:7px}
.seat-top{display:flex;align-items:baseline;gap:6px;min-width:0}
.seat-n{font:600 11px/1 var(--f-mono);color:var(--muted)}
.seat-name{font-weight:700;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seat-meta{font:500 10.5px/1.2 var(--f-mono);color:var(--muted);display:flex;gap:8px;white-space:nowrap}
.seat.is-dead{background:transparent;border-style:dashed}
.seat.is-dead .seat-name{text-decoration:line-through;color:var(--muted)}
.seat.is-dead .role{filter:grayscale(1);opacity:.8}
.seat.is-turn{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 22%,transparent),0 12px 30px -10px color-mix(in oklab,var(--accent) 40%,transparent)}
.seat .timer{display:flex;align-items:center;gap:8px;font:700 11px/1 var(--f-mono);color:var(--accent)}
.seat .timer .bar{flex:1;height:4px}
.ring-center{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;width:min(300px,40%)}
.ring-phase{font:800 clamp(40px,5vw,64px)/.85 var(--f-display);text-transform:uppercase}
.ring-sub{font-size:14px;color:var(--muted)}
.role{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;padding:3px 8px;border-radius:999px;font:800 10.5px/1.3 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--rc,var(--muted));border:1px solid color-mix(in oklab,var(--rc,var(--muted)) 45%,transparent);background:color-mix(in oklab,var(--rc,var(--muted)) 10%,transparent);white-space:nowrap}
.role--wolf{--rc:var(--wolf)}.role--seer{--rc:var(--seer)}.role--doctor{--rc:var(--doctor)}.role--villager{--rc:var(--muted)}.role--hidden{--rc:var(--muted);display:none;border-style:dashed}
.spoiler-free [data-secret]{display:none !important}
.spoiler-free [data-secret]+.role--hidden{display:inline-flex}
@media (max-width:720px){
  .stage{padding:10px}
  .ring{aspect-ratio:auto;min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .ring::before,.ring::after{display:none}
  .seat{position:static;transform:none;width:auto;padding:8px;gap:5px;border-radius:10px}
  .seat-name{font-size:13px}
  .seat-meta{display:none}
  .seat .role{font-size:9px;padding:2px 6px;letter-spacing:.06em}
  .ring-center{position:static;transform:none;width:auto;grid-column:1/-1;order:-1;flex-direction:row;flex-wrap:wrap;justify-content:space-between;text-align:left;padding:2px 2px 6px}
  .ring-phase{font-size:30px}
}

/* ---------- feed ---------- */
.feed{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden}
.feed-head{display:flex;flex-direction:column;gap:10px;padding:14px 14px 10px;border-bottom:1px solid var(--line)}
.feed-title{display:flex;align-items:center;gap:10px}
.feed-title h2{font:800 20px/1 var(--f-display);text-transform:uppercase;letter-spacing:.02em}
.feed-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain}
.feed-foot{padding:10px 14px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted)}
@media (max-width:1100px){.feed-body{max-height:none;overflow:visible}}
.ev{display:flex;gap:10px;align-items:flex-start;min-width:0}
.ev-body{flex:1;min-width:0}
.ev-who{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-bottom:4px}
.ev-who b{color:var(--text);font-size:13px}
.ev-time{font:500 10.5px/1 var(--f-mono);color:var(--muted);margin-left:auto}
.bubble{background:var(--bubble);padding:9px 12px;border-radius:4px 14px 14px 14px;font-size:14.5px;line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap}
.ev-phase{display:flex;align-items:center;gap:10px;margin:8px 0 0}
.ev-phase::before,.ev-phase::after{content:"";flex:1;height:1px;background:var(--line)}
.ev-phase span{font:800 15px/1 var(--f-display);letter-spacing:.14em;text-transform:uppercase;color:var(--text);white-space:nowrap}
.ev-phase small{font-size:12px;color:var(--muted);white-space:nowrap}
.ev-thought{margin-left:42px;padding:8px 12px 9px;border:1px dashed color-mix(in oklab,var(--muted) 45%,transparent);border-radius:14px;min-width:0}
.ev-thought .t-head{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:11.5px;color:var(--muted)}
.ev-thought .t-head b{color:var(--muted);font-weight:700}
.ev-thought p{margin-top:4px;font-style:italic;color:var(--muted);font-size:13.5px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.ev-thought.open p{display:block}
.ev-thought .more{background:none;border:0;padding:0;margin-top:4px;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer}
.cut{display:inline-flex;align-items:center;gap:4px;font:700 9.5px/1.3 var(--f-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--warning);border:1px dashed color-mix(in oklab,var(--warning) 55%,transparent);border-radius:4px;padding:1px 5px;white-space:nowrap}
.hide-thoughts .ev-thought:not(.demo-thought),.hide-thoughts .typing-thought{display:none}
.ev-private{--ch:var(--muted);padding:9px 12px 10px;border-radius:12px;background:color-mix(in oklab,var(--ch) 10%,var(--panel));border:1px solid color-mix(in oklab,var(--ch) 38%,transparent);min-width:0;flex:1}
.ev-private .ch>*,.ev-thought .t-head>*,.ev-who>*{flex:none;white-space:nowrap}
.ev-private .ch{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--muted);margin-bottom:4px}
.ev-private .ch strong{font:800 10.5px/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--ch)}
.ev-private p{font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.ch-wolf{--ch:var(--wolf)}.ch-seer{--ch:var(--seer)}.ch-doctor{--ch:var(--doctor)}
.ev-announce{justify-content:center;text-align:center;flex-direction:column;align-items:center;gap:4px;padding:12px;border-radius:12px;background:var(--panel-strong)}
.ev-announce .eyebrow{color:var(--text)}
.ev-announce p{font-weight:700;font-size:15px}
.ev-announce small{color:var(--muted);font-size:13px}
.ev-moment{padding:12px 14px;border-radius:12px;background:color-mix(in oklab,var(--warning) 12%,var(--panel));border:1px solid color-mix(in oklab,var(--warning) 50%,transparent);flex-direction:column;gap:6px}
.ev-moment .eyebrow{color:var(--warning)}
.ev-moment p{font-weight:600;font-size:15px}
.ev-typing .bubble{background:transparent;border:1px dashed color-mix(in oklab,var(--accent) 55%,transparent);color:var(--muted);font-style:italic}
.caret{display:inline-block;width:7px;height:1.05em;vertical-align:-2px;background:var(--accent);margin-left:2px;animation:pulse 1s steps(2) infinite}
.ev-sealed{justify-content:center;font-size:12.5px;color:var(--muted);padding:8px;border:1px dashed var(--line);border-radius:10px;display:none}
.spoiler-free .ev-sealed{display:flex}
.spoiler-free [data-private]{display:none !important}
.ev-action{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:12.5px;color:var(--muted)}
.act{font:800 10.5px/1.3 var(--f-body);letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:5px;background:var(--text);color:var(--bg)}
.act--accept{background:var(--doctor);color:var(--on-accent)}
.act--pass{background:var(--track);color:var(--text)}
/* duel feeds (2-player) */
.ev[data-side=b]{flex-direction:row-reverse}
.ev[data-side=b] .ev-who{flex-direction:row-reverse}
.ev[data-side=b] .ev-time{margin-left:0;margin-right:auto}
.ev[data-side=b] .bubble{border-radius:14px 4px 14px 14px;background:color-mix(in oklab,var(--side-b) 12%,var(--bubble))}
.ev[data-side=a] .bubble{background:color-mix(in oklab,var(--side-a) 10%,var(--bubble))}
.ev-thought[data-side=b]{margin-left:0;margin-right:42px}
.ev[data-side=b] .ev-action{justify-content:flex-end}
.feed[data-show=public] [data-ch]:not([data-ch=public]){display:none}
.feed[data-show=thoughts] [data-ch]:not([data-ch=thought]){display:none}
.feed[data-show=wolf] [data-ch]:not([data-ch=wolf]),.feed[data-show=seer] [data-ch]:not([data-ch=seer]),.feed[data-show=doctor] [data-ch]:not([data-ch=doctor]),.feed[data-show=moments] [data-ch]:not([data-ch=moment]){display:none}
.jump{position:sticky;bottom:0;align-self:center;margin-top:auto}

/* ---------- vote table ---------- */
.votes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.vote{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:var(--panel-strong);font-size:13px;min-width:0}
.vote .arrow{color:var(--muted)}
.vote b{white-space:nowrap}
.vote.is-abstain{opacity:.7}
.tally{margin:8px 0 0;font-size:12px}
.vote-day{margin:12px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}

/* ---------- tabs ---------- */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs [role=tab]{background:none;border:0;padding:12px 14px;color:var(--muted);font-weight:600;font-size:14px;cursor:pointer;position:relative;white-space:nowrap}
.tabs [role=tab][aria-selected=true]{color:var(--text)}
.tabs [role=tab][aria-selected=true]::after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--accent)}
[role=tabpanel]{padding:16px}
[role=tabpanel][hidden]{display:none}

/* ---------- transport / timeline ---------- */
.transport{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);flex-wrap:wrap}
.transport .icon-btn{width:38px;height:38px}
.live-pip{display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 12px;border-radius:10px;background:var(--red,#e53e3e);color:#fff;font:700 12px/1 var(--f-mono);letter-spacing:.06em;animation:live-pulse 1.4s ease-in-out infinite;white-space:nowrap;user-select:none}
@keyframes live-pulse{0%,100%{opacity:1}50%{opacity:.55}}
.transport select{height:38px;border-radius:10px;border:1px solid var(--line);background:var(--panel);padding:0 8px}
.tl{flex:1;min-width:220px;position:relative;padding:4px 0 18px}
.tl-track{display:flex;gap:3px;height:10px}
.tl-seg{flex:var(--w,1);background:var(--track);border-radius:3px;position:relative;overflow:hidden}
.tl-seg.is-night{background:color-mix(in oklab,var(--seer) 22%,var(--track))}
.tl-seg>i{position:absolute;inset:0 auto 0 0;width:var(--p,100%);background:var(--accent)}
.tl-seg.is-night>i{background:color-mix(in oklab,var(--accent) 70%,var(--seer))}
.tl-labels{display:flex;gap:3px;margin-top:5px}
.tl-labels span{flex:var(--w,1);font:600 10px/1 var(--f-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;overflow:hidden}
.tl-mark{position:absolute;top:-3px;left:var(--x);transform:translateX(-50%);font-size:12px;line-height:1;color:var(--warning);text-shadow:0 0 0 var(--bg)}
.tl-mark--death{color:var(--text)}
.tl-head{position:absolute;top:0;left:var(--x);width:3px;height:18px;border-radius:2px;background:var(--text);transform:translateX(-50%);box-shadow:0 0 0 3px var(--panel)}
.tl-count{font:600 12px/1 var(--f-mono);color:var(--muted);white-space:nowrap}
@media (max-width:720px){
  .transport{position:sticky;bottom:8px;z-index:10;box-shadow:var(--shadow)}
  .transport .hide-sm{display:none}
  .tl{order:-1;flex-basis:100%}
}

/* ---------- tables ---------- */
.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
table.t{width:100%;border-collapse:collapse;font-size:14px}
.t th{font:700 10.5px/1.2 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:11px 12px;background:var(--panel-strong);white-space:nowrap;position:sticky;top:0}
.t td{padding:11px 12px;border-top:1px solid var(--line);white-space:nowrap;vertical-align:middle}
.t .r{text-align:right}
.t tbody tr:hover td{background:color-mix(in oklab,var(--panel-strong) 60%,transparent)}
.t .measured{color:var(--doctor)}
.t td.is-best{color:var(--accent);font-weight:700}
.t .rank{font:800 20px/1 var(--f-display);width:48px}
.t .name{display:flex;flex-direction:column;gap:5px;min-width:180px}
.t .name a{color:var(--text);font-weight:700;text-decoration:none}
.t .name a:hover{color:var(--accent)}
.t .cell-bar{display:flex;align-items:center;gap:10px;min-width:130px}
.t .cell-bar .bar{flex:1}
.t th .th-inner{display:inline-flex;align-items:center;gap:4px}
.t th .sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:0;padding:0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}
.t th .sort-btn:hover{color:var(--text)}
.t th .sort-arrow{display:inline-block;width:1em;font-size:9px;text-align:center;color:var(--accent)}
.t th[aria-sort="ascending"] .sort-btn,.t th[aria-sort="descending"] .sort-btn{color:var(--text)}
.lb .xcol{display:none}
.lb.show-all .xcol{display:table-cell}
.claim-note{font-size:12.5px;color:var(--muted);margin-top:10px;max-width:90ch}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.sw{width:10px;height:10px;border-radius:2px;background:var(--c)}
.sw--round{border-radius:50%}

/* ---------- split ---------- */
.split-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) minmax(0,1fr);gap:12px}
.values h3{font:800 20px/1 var(--f-display);text-transform:uppercase}
.values .vrow{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:14px}
.values .vrow:first-of-type{border-top:0}
.values .pips{display:flex;gap:3px}
.values .pips i{width:10px;height:10px;border-radius:2px;background:var(--track)}
.values .pips i.on{background:var(--vc,var(--accent))}
.values .v{font:700 15px/1 var(--f-mono)}
.values .note{font-size:12px;color:var(--muted);margin-top:10px}
.pool{display:flex;flex-direction:column;gap:14px}
.offer-item{display:grid;grid-template-columns:92px 1fr;gap:10px;align-items:center}
.offer-item .lbl{font-size:13px;display:flex;gap:6px;align-items:center}
.units{display:flex;gap:4px}
.unit{flex:1;height:34px;border-radius:6px;display:grid;place-items:center;font:800 11px/1 var(--f-mono);border:1px solid var(--line)}
.unit.to-a{background:color-mix(in oklab,var(--side-a) 22%,var(--panel));border-color:color-mix(in oklab,var(--side-a) 60%,transparent);color:var(--text)}
.unit.to-b{background:color-mix(in oklab,var(--side-b) 22%,var(--panel));border-color:color-mix(in oklab,var(--side-b) 60%,transparent);color:var(--text);background-image:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in oklab,var(--side-b) 18%,transparent) 6px 8px)}
.ifaccept{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ifaccept>div{padding:10px 12px;border-radius:10px;background:var(--panel-strong)}
.ifaccept b{font:800 30px/1 var(--f-display)}
.turns{display:flex;gap:4px}
.turns i{flex:1;height:8px;border-radius:2px;background:var(--track)}
.turns i.a{background:var(--side-a)}.turns i.b{background:var(--side-b)}
.turns i.unused{background:transparent;border:1px dashed var(--line)}
@media (max-width:900px){.split-board{grid-template-columns:1fr 1fr}.split-board .pool{grid-column:1/-1;order:-1}}
@media (max-width:480px){.split-board{grid-template-columns:1fr}.offer-item{grid-template-columns:78px 1fr}}

/* ---------- tic tac toe ---------- */
.ttt{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}
.board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;aspect-ratio:1;max-width:520px;width:100%;margin:0 auto;position:relative}
.cell{position:relative;border-radius:14px;background:var(--panel-strong);border:1px solid var(--line);display:grid;place-items:center;font:900 clamp(56px,10vw,120px)/1 var(--f-display);color:var(--text)}
.cell.x{color:var(--side-a)}.cell.o{color:var(--side-b)}
.cell .mv{position:absolute;top:8px;left:10px;font:600 11px/1 var(--f-mono);color:var(--muted)}
.cell .idx{position:absolute;bottom:8px;right:10px;font:500 10px/1 var(--f-mono);color:var(--muted);opacity:.7}
.cell.win{background:color-mix(in oklab,var(--side-a) 16%,var(--panel-strong));border-color:var(--side-a);box-shadow:0 0 0 3px color-mix(in oklab,var(--side-a) 22%,transparent)}
.cell.missed{border:2px dashed var(--warning)}
.cell.missed::after{content:"missed block";position:absolute;bottom:10px;left:50%;transform:translateX(-50%);font:700 10px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--warning);white-space:nowrap}
.movelist{display:flex;flex-direction:column;gap:6px}
.mv-row{display:grid;grid-template-columns:28px 28px 1fr auto;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:var(--panel-strong);font-size:13px}
.mv-row .mk{font:900 18px/1 var(--f-display)}
.mv-row.x .mk{color:var(--side-a)}.mv-row.o .mk{color:var(--side-b)}
.mv-row.flag-bad{outline:1px dashed var(--warning)}
.mini{display:grid;grid-template-columns:repeat(3,8px);gap:2px}
.mini i{width:8px;height:8px;border-radius:1px;background:var(--track)}
.mini i.x{background:var(--side-a)}.mini i.o{background:var(--side-b)}.mini i.now{outline:1px solid var(--text)}
@media (max-width:900px){.ttt{grid-template-columns:1fr}}

/* ---------- connect four ---------- */
.c4-wrap{width:100%;max-width:560px;margin:0 auto}
.c4-board{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,1fr);gap:6px;aspect-ratio:7/6;padding:10px;border-radius:16px;background:color-mix(in oklab,var(--side-a) 9%,var(--panel-strong));border:1px solid var(--line)}
.c4-cell{position:relative;border-radius:50%;background:var(--bg);border:1px solid var(--line)}
.c4-cell .disc{position:absolute;inset:0;z-index:1;display:grid;place-items:center;border-radius:50%;background:var(--side-a);color:var(--on-accent);font:800 clamp(12px,2.6vw,22px)/1 var(--f-display);box-shadow:inset 0 -4px 0 rgba(0,0,0,.2)}
.c4-cell .disc.o{background:var(--side-b)}
.c4-cell.win{box-shadow:0 0 0 3px var(--text)}
.c4-cell.win .disc{z-index:2}
.c4-cell.missed{border:2px dashed var(--warning)}
.c4-cols{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:6px 10px 0;text-align:center;font:500 11px/1 var(--f-mono);color:var(--muted)}
.c4-moves{max-height:420px;overflow:auto}
.c4-cell .disc.now{z-index:3;animation:c4drop .45s cubic-bezier(.3,.1,.5,1) both}
.c4-cell .disc.now.r0{--fall:1}.c4-cell .disc.now.r1{--fall:2}.c4-cell .disc.now.r2{--fall:3}
.c4-cell .disc.now.r3{--fall:4}.c4-cell .disc.now.r4{--fall:5}.c4-cell .disc.now.r5{--fall:6}
@keyframes c4drop{from{transform:translateY(calc(var(--fall,1) * -1 * (100% + 6px)))}to{transform:translateY(0)}}

/* connect four: power play */
.c4x-badges{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.c4x-badge{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--panel-strong);border:1px solid var(--line);min-width:0}
.c4x-badge .mk{font:900 22px/1 var(--f-display);flex:none}
.c4x-badge.x .mk{color:var(--side-a)}.c4x-badge.o .mk{color:var(--side-b)}
.c4x-badge .stack{min-width:0;gap:4px}
.c4x-badge b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c4x-badge .power-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.c4x-badge .power-line small{color:var(--muted);font-size:12px}
.c4x-badge.is-played{border-color:color-mix(in oklab,var(--warning) 55%,transparent)}
.c4x-badge.is-played .tag{--tc:var(--warning)}
.c4-cell.locked{background:repeating-linear-gradient(45deg,var(--bg) 0 5px,color-mix(in oklab,var(--warning) 45%,var(--bg)) 5px 8px);border-color:var(--warning)}
.c4-cols span.locked{color:var(--warning);font-weight:700}
.c4x-lockline{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;color:var(--muted)}
.c4-cell .disc.slide{z-index:3;animation:c4slide .5s cubic-bezier(.3,.1,.5,1) both}
.c4-cell .disc.ghost{z-index:4;pointer-events:none;animation:c4out .6s ease-in both}
@keyframes c4slide{from{transform:translateY(calc(-100% - 6px))}to{transform:translateY(0)}}
@keyframes c4out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(130%) scale(.55)}}
.mv-row.is-power{border:1px solid color-mix(in oklab,var(--warning) 50%,transparent)}
@media (max-width:560px){.c4x-badges{grid-template-columns:1fr}}
/* ---------- steady hands ---------- */
.sh-wrap{width:100%;max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.sh-head{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center}
.sh-lives{display:flex;flex-direction:column;gap:2px;min-width:0}
.sh-lives b{font:700 11px/1.2 var(--f-mono);letter-spacing:.06em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.sh-lives .hearts{font-size:20px;line-height:1;letter-spacing:2px}
.sh-lives.s0{color:var(--side-a)}.sh-lives.s1{color:var(--side-b);align-items:flex-end;text-align:right}
.sh-lives.buzzed .hearts{animation:shbuzz .4s steps(2) 3}
.sh-shift{padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--panel-strong);font:600 11.5px/1.25 var(--f-mono);text-align:center}
.sh-shift.now{border-color:var(--warning);color:var(--warning)}
.sh-grid{display:grid;grid-template-columns:repeat(var(--n,11),minmax(0,1fr));gap:2px;aspect-ratio:1;padding:6px;border-radius:14px;background:color-mix(in oklab,var(--side-a) 7%,var(--panel-strong));border:1px solid var(--line)}
.sh-cell{position:relative;border-radius:4px;background:var(--bg);min-width:0}
.sh-cell.wall{background:color-mix(in oklab,var(--text) 34%,var(--panel-strong))}
.sh-cell.start{box-shadow:inset 0 0 0 1px var(--line)}
.sh-cell.goal{background:color-mix(in oklab,var(--doctor) 30%,var(--bg));box-shadow:inset 0 0 0 2px var(--doctor)}
.sh-cell .sh-g{position:absolute;inset:0;display:grid;place-items:center;font:900 clamp(10px,2.4vw,18px)/1 var(--f-display);color:var(--doctor)}
.sh-cell.shift-open{box-shadow:inset 0 0 0 2px var(--doctor);animation:shflash 1.2s ease-out}
.sh-cell.shift-close{box-shadow:inset 0 0 0 2px var(--wolf);animation:shflash 1.2s ease-out}
.sh-trail{position:absolute;width:26%;height:26%;border-radius:50%;opacity:.85}
.sh-trail.s0{left:12%;top:12%;background:var(--side-a)}
.sh-trail.s1{right:12%;bottom:12%;background:var(--side-b)}
.sh-hit{position:absolute;inset:0;z-index:3;display:grid;place-items:center;font:900 clamp(11px,2.6vw,20px)/1 var(--f-display);color:var(--live);animation:shflash .5s ease-out 3}
.sh-pucks{position:absolute;inset:10%;z-index:2;display:flex;gap:3%;align-items:center;justify-content:center}
.sh-puck{flex:1 1 0;min-width:0;aspect-ratio:1;max-height:100%;border-radius:50%;display:grid;place-items:center;font:800 clamp(8px,1.9vw,14px)/1 var(--f-display);color:var(--on-accent);box-shadow:inset 0 -3px 0 rgba(0,0,0,.2)}
.sh-puck.s0{background:var(--side-a)}.sh-puck.s1{background:var(--side-b)}
.sh-log{max-height:420px;overflow:auto}
.sh-row{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:10px;background:var(--panel-strong);font-size:13px}
.sh-row.flag-bad{outline:1px dashed var(--warning)}
.sh-line{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px}
.sh-line .mk{font:800 12px/1 var(--f-mono)}
.sh-line.s0 .mk{color:var(--side-a)}.sh-line.s1 .mk{color:var(--side-b)}
.sh-line.bad b{color:var(--live)}
.sh-note{color:var(--muted)}
@media (max-width:640px){.sh-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.sh-shift{grid-column:1/-1;order:3}}
@keyframes shflash{from{filter:brightness(2.2)}to{filter:none}}
@keyframes shbuzz{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.sh-cell.shift-open,.sh-cell.shift-close,.sh-hit,.sh-lives.buzzed .hearts{animation:none}}
/* ---------- hex ---------- */
.hx-wrap{width:100%;max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.hx-svg{display:block;width:100%;height:auto}
.hx-cell polygon{fill:var(--panel-strong);stroke:var(--line);stroke-width:1.2}
.hx-cell.r polygon{fill:var(--wolf)}
.hx-cell.b polygon{fill:var(--blue)}
.hx-cell text{font:800 14px/1 var(--f-display);fill:var(--on-accent);text-anchor:middle;dominant-baseline:central;pointer-events:none}
.hx-cell circle{fill:none;stroke:var(--on-accent);stroke-width:2}
.hx-cell.swapstone polygon{stroke:var(--warning);stroke-width:3;stroke-dasharray:4 3}
.hx-cell.win polygon{stroke:var(--text);stroke-width:3.2;stroke-dasharray:none}
.hx-edge{fill:none;stroke-width:5;stroke-linejoin:round;stroke-linecap:round}
.hx-edge.r{stroke:var(--wolf)}.hx-edge.b{stroke:var(--blue)}
.hx-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:13px}
.hx-seat{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;background:var(--panel-strong);border-left:4px solid var(--wolf);min-width:0}
.hx-seat.b{border-left-color:var(--blue)}
.hx-seat small{color:var(--muted)}
.hx-mk.r{color:var(--wolf)}.hx-mk.b{color:var(--blue)}
@media (max-width:480px){.hx-legend{grid-template-columns:1fr}}
/* ---------- two truths and a lie ---------- */
.tt-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.tt-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:14px;background:var(--panel-strong);border:1px solid var(--line);min-width:0}
.tt-card p{font-size:15px;line-height:1.45;overflow-wrap:anywhere}
.tt-top{display:flex;align-items:center;gap:8px}
.tt-label{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--side-a);color:var(--on-accent);font:800 16px/1 var(--f-display)}
.tt-verdict{margin-left:auto;font:700 10.5px/1.3 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.tt-card.is-lie{border:2px solid var(--live);background:color-mix(in oklab,var(--live) 10%,var(--panel-strong))}
.tt-card.is-lie .tt-label{background:var(--live);color:var(--on-live)}
.tt-card.is-lie .tt-verdict{color:var(--live)}
.tt-card.is-true .tt-verdict{color:var(--doctor)}
.tt-picks{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}
.tt-pick{padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--line);background:var(--bg)}
.tt-pick.hit{border-color:var(--doctor);color:var(--doctor)}
.tt-pick.miss{border-color:var(--warning);color:var(--warning)}
.tt-patter,.tt-say{font-size:14px;color:var(--muted);font-style:italic;overflow-wrap:anywhere}
.tt-say b{font-style:normal;color:var(--text)}
.tt-score{font-size:13px;color:var(--muted)}
@media (max-width:900px){.tt-cards{grid-template-columns:1fr}}
/* ---------- mindhunt ---------- */
.mh-stage{display:flex;flex-direction:column;gap:14px;min-width:0}
.mh-stage>*{min-width:0}
.mh-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.mh-head .count{font:800 clamp(28px,4vw,44px)/1 var(--f-display)}
.mh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.mh-card{position:relative;display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:58px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--panel-strong);font:700 15px/1.2 var(--f-body);text-transform:capitalize;overflow-wrap:anywhere;transition:opacity .25s,background .25s}
.mh-card small{font:600 11px/1.2 var(--f-body);text-transform:none;color:var(--muted)}
.mh-card.is-out{opacity:.38;background:transparent;border-style:dashed;text-decoration:line-through;text-decoration-thickness:1px}
.mh-card.is-just-out{opacity:.55;border-color:var(--warning)}
.mh-card.is-wrong{opacity:.55;background:transparent;border-style:dashed;border-color:var(--live)}
.mh-card.is-wrong .nm{text-decoration:line-through}
.mh-card.is-secret{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 28%,transparent);opacity:1}
.mh-log{display:flex;flex-direction:column;gap:6px;max-height:420px;overflow:auto}
.mh-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:var(--panel-strong);font-size:13px}
.mh-row.flag-bad{outline:1px dashed var(--warning)}
.mh-row .yn{font:800 12px/1 var(--f-display);letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:999px;border:1px solid var(--line)}
.mh-row .yn.yes{border-color:var(--accent);color:var(--accent)}
.mh-row .q{display:flex;flex-direction:column;gap:2px;min-width:0}
.mh-row .q small{color:var(--muted);font-size:12px}
.mh-round{display:flex;flex-direction:column;gap:4px}
.mh-window{display:flex;flex-direction:column;gap:6px;margin:0 0 4px 28px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);font-size:12px}
.mh-window small{color:var(--muted)}
.mh-window.is-open{border-style:dashed;border-color:var(--accent)}
.mh-chips{display:flex;flex-wrap:wrap;gap:6px}
.mh-g{padding:3px 8px;border-radius:999px;border:1px solid var(--line);font-size:12px;overflow-wrap:anywhere}
.mh-g.ok{border-color:var(--accent);color:var(--accent);font-weight:700}
.mh-g.bad{border-color:var(--live);text-decoration:line-through;text-decoration-thickness:1px}
.mh-g.pass{color:var(--muted)}
.mh-seats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.mh-seat{padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--panel-strong);display:flex;flex-direction:column;gap:4px;min-width:0;font-size:13px}
.mh-seat.is-turn{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 22%,transparent)}
.mh-seat.is-out{opacity:.6;border-style:dashed}
.mh-seat.is-winner{border-color:var(--accent)}

/* ---------- end card ---------- */
.endcard{padding:26px;border-radius:var(--r);border:1px solid color-mix(in oklab,var(--ec,var(--accent)) 55%,transparent);background:linear-gradient(180deg,color-mix(in oklab,var(--ec,var(--accent)) 12%,var(--panel)),var(--panel));display:flex;flex-direction:column;gap:14px;align-items:center;text-align:center}
.endcard h2{font:800 clamp(40px,6vw,72px)/.88 var(--f-display);text-transform:uppercase}
.endcard .roles{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.endcard--wolf{--ec:var(--wolf)}

/* ---------- home ---------- */
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px;align-items:center;padding:56px 0 20px}
.hero h1{font:800 clamp(56px,8.2vw,120px)/.86 var(--f-display);text-transform:uppercase;letter-spacing:-.005em}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero .lede{color:var(--muted);font-size:17px;margin-top:18px;max-width:46ch}
.hero .ctas{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}
@media (max-width:980px){.hero{grid-template-columns:1fr;padding-top:32px;gap:24px}}
.feature{position:relative;overflow:hidden;padding:0}
.feature-top{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.duel{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;padding:20px 16px}
.duel-side{display:flex;flex-direction:column;gap:8px;min-width:0}
.duel-side--b{align-items:flex-end;text-align:right}
.duel-name{font:800 30px/.9 var(--f-display);text-transform:uppercase;overflow-wrap:anywhere}
.duel-score{font:800 64px/.8 var(--f-display);font-variant-numeric:tabular-nums}
.duel-score.win{color:var(--side-a)}
.duel-vs{font:800 16px/1 var(--f-display);color:var(--muted);padding:8px;border:1px solid var(--line);border-radius:8px}
.feature-quote{margin:0 16px 16px;padding:12px 14px;border-radius:12px;background:color-mix(in oklab,var(--warning) 11%,var(--panel-strong));border:1px solid color-mix(in oklab,var(--warning) 45%,transparent)}
.feature-quote .eyebrow{color:var(--warning);margin-bottom:6px}
.feature-foot{display:flex;align-items:center;gap:10px;padding:0 16px 16px;flex-wrap:wrap}
@media (max-width:480px){.duel{grid-template-columns:1fr 1fr}.duel-vs{display:none}.duel-name{font-size:24px}.duel-score{font-size:48px}}
.livegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
@media (max-width:400px){.livegrid{grid-template-columns:1fr}}
.livecard{display:flex;flex-direction:column;gap:12px;padding:16px;text-decoration:none;color:var(--text);border-color:color-mix(in oklab,var(--live) 45%,var(--line))}
.livecard:hover{color:var(--text);background:var(--panel-strong)}
.livecard .phase{font:800 26px/1 var(--f-display);text-transform:uppercase}
.dots{display:flex;gap:4px;flex-wrap:wrap}
.dots i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:700 10px/1 var(--f-body);font-style:normal;background:var(--panel-strong);border:1.5px solid var(--line)}
.dots i.dead{opacity:.45;text-decoration:line-through}
.dots i.turn{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in oklab,var(--accent) 25%,transparent)}
.empty{display:flex;align-items:center;gap:18px;padding:22px;border:1px dashed var(--line);border-radius:var(--r);flex-wrap:wrap}
.empty .big{font:800 24px/1 var(--f-display);text-transform:uppercase}
.vs{display:grid;grid-template-columns:minmax(0,1fr) 170px minmax(0,1fr);gap:0;overflow:hidden}
.vs-head{padding:18px;display:flex;flex-direction:column;gap:8px;min-width:0}
.vs-head--b{align-items:flex-end;text-align:right}
.vs-head h3{font:800 32px/.9 var(--f-display);text-transform:uppercase}
.vs-mid{display:flex;align-items:center;justify-content:center;font:800 18px/1 var(--f-display);color:var(--muted)}
.vs-row{display:contents}
.vs-row>*{padding:10px 18px;border-top:1px solid var(--line)}
.vs-cell{display:flex;align-items:center;gap:10px;min-width:0}
.vs-cell--a{flex-direction:row-reverse}
.vs-cell .bar{flex:1;height:8px}
.vs-cell--a .bar{transform:scaleX(-1)}
.vs-cell b{font:700 14px/1 var(--f-mono);white-space:nowrap}
.vs-cell.win b{color:var(--accent)}
.vs-cell.win b::after{content:" ▲";font-size:9px}
.vs-cell--a.win b::after{content:""}
.vs-cell--a.win b::before{content:"▲ ";font-size:9px}
.vs-label{text-align:center;font:700 11px/1.2 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;justify-content:center;background:var(--panel-strong)}
.vs-foot{grid-column:1/-1;padding:14px 18px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
@media (max-width:640px){.vs{grid-template-columns:minmax(0,1fr) 84px minmax(0,1fr)}.vs-row>*{padding:9px 8px}.vs-head{padding:14px 10px}.vs-head h3{font-size:22px}.vs-label{font-size:9.5px;letter-spacing:.04em}.vs-cell .bar{display:none}.vs-cell{justify-content:center}}
.mlist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--panel)}
.mrow{display:grid;grid-template-columns:120px minmax(0,1.6fr) minmax(0,1fr) 90px 100px;align-items:center;gap:14px;padding:12px 16px;border-top:1px solid var(--line);color:var(--text);text-decoration:none}
.mrow:first-child{border-top:0}
.mrow:hover{background:var(--panel-strong);color:var(--text)}
.mrow .players{display:flex;flex-direction:column;gap:4px;min-width:0}
.mrow .vsline{font-weight:700;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.mrow .vsline i{font-style:normal;color:var(--muted);font-weight:500;font-size:12px}
.mrow .res{font-size:14px}
.mrow .side-red,.mrow .side-red:hover{color:var(-\-team-red)}
.mrow .side-blue,.mrow .side-blue:hover{color:var(-\-team-blue)}
.side-tag{display:inline-block;font:800 10px/1 var(--f-mono);margin-right:4px}
.mrow .when{font:500 12px/1 var(--f-mono);color:var(--muted);text-align:right}
.mrow .go{color:var(--accent);font-weight:600;font-size:13px;text-align:right}
@media (max-width:860px){.mrow{grid-template-columns:1fr auto;gap:6px 12px}.mrow .players{grid-column:1/-1;order:-1}.mrow .go{display:none}.mrow .when{order:3}}
.top3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:1100px){.top3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.top3{grid-template-columns:minmax(0,1fr)}}
.ranklist .rig>span:not(.rig-gpu){display:none}
.ranklist .rig{align-self:flex-start}
.ranklist{list-style:none;margin:0;padding:0}
.ranklist li{display:grid;grid-template-columns:26px minmax(0,1fr) 110px 44px;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:14px}
.ranklist li:first-child{border-top:0}
.ranklist .n{font:800 18px/1 var(--f-display);color:var(--muted)}
.ranklist li:first-child .n{color:var(--accent)}
.ranklist .nm{display:flex;flex-direction:column;gap:3px;min-width:0}
.ranklist .nm a{color:var(--text);font-weight:700;text-decoration:none}
.ranklist .val{font:700 14px/1 var(--f-mono);text-align:right}
.ranklist.verdict-ratings li{grid-template-columns:86px minmax(60px,1fr) 44px}
.ranklist.verdict-ratings .nm{flex-direction:row}
.foot{margin-top:80px;border-top:1px solid var(--line);padding:28px 0 40px;color:var(--muted);font-size:13px}
.foot .wrap{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.foot a{color:var(--muted)}
.foot a:hover{color:var(--text)}

/* ---------- leaderboard ---------- */
.seg{display:inline-flex;padding:3px;border-radius:12px;border:1px solid var(--line);background:var(--panel);overflow-x:auto;max-width:100%;scrollbar-width:none}
.seg a,.seg button{border:0;background:none;padding:8px 14px;border-radius:9px;color:var(--muted);font-weight:600;font-size:14px;text-decoration:none;white-space:nowrap;cursor:pointer}
.seg [aria-current=page],.seg [aria-pressed=true]{background:var(--panel-strong);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}
.gametabs{display:flex;gap:6px;flex-wrap:wrap}
.gametab{white-space:nowrap;display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--muted);text-decoration:none;font:800 20px/1 var(--f-display);text-transform:uppercase}
.gametab[aria-current=page]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.gametab:hover{color:var(--text)}
.gametab[aria-current=page]:hover{color:var(--on-accent)}
.leaders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:900px){.leaders{grid-template-columns:1fr}}
.leader{padding:16px 18px;display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden}
.leader .big{font:800 52px/.85 var(--f-display);font-variant-numeric:tabular-nums}
.leader .big small{font-size:18px;color:var(--muted);margin-left:4px}
.leader .who{font-weight:700}
.leader .runner{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px}
.leader .ico{position:absolute;right:16px;top:14px;font:800 12px/1 var(--f-body);letter-spacing:.14em;color:var(--muted)}
.chart{position:relative;padding:18px 18px 40px 52px}
.plot{position:relative;height:320px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:
  linear-gradient(var(--line),var(--line)) 50% 0/1px 100% no-repeat,
  linear-gradient(90deg,var(--line),var(--line)) 0 50%/100% 1px no-repeat}
.plot .q{position:absolute;font:700 10.5px/1.2 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);opacity:.85;padding:8px}
.plot .q1{right:0;top:0;text-align:right;color:var(--accent);opacity:1}.plot .q2{left:0;top:0}.plot .q3{left:0;bottom:0}.plot .q4{right:0;bottom:0;text-align:right}
.pt{position:absolute;left:var(--x);bottom:var(--y);transform:translate(-50%,50%);display:flex;align-items:center;gap:6px;white-space:nowrap;z-index:1}
.pt i{width:var(--s,12px);height:var(--s,12px);border-radius:50%;background:color-mix(in oklab,var(--c) 70%,transparent);border:2px solid var(--c);flex:none}
.pt.sq i{border-radius:3px}
.pt span{font-size:11.5px;font-weight:600}
.pt.l{flex-direction:row-reverse}
.axis-x{position:absolute;left:52px;right:18px;bottom:12px;display:flex;justify-content:space-between;font:500 10.5px/1 var(--f-mono);color:var(--muted)}
.axis-y{position:absolute;left:10px;top:18px;bottom:40px;display:flex;flex-direction:column;justify-content:space-between;font:500 10.5px/1 var(--f-mono);color:var(--muted)}
.axis-title{font:700 10.5px/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
@media (max-width:640px){.plot{height:260px}.pt span{display:none}.pt.keep span{display:inline}}
.sigma{position:relative;height:6px;width:90px;background:var(--track);border-radius:3px}
.sigma i{position:absolute;top:0;bottom:0;left:var(--l);width:var(--w);background:color-mix(in oklab,var(--accent) 45%,transparent);border-radius:3px}
.sigma b{position:absolute;top:-3px;width:2px;height:12px;left:var(--m);background:var(--text)}

/* ---------- profile / rig ---------- */
.prof{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:center;padding:36px 0 24px}
.prof h1{font:800 clamp(48px,7vw,88px)/.86 var(--f-display);text-transform:uppercase;overflow-wrap:anywhere}
.persona{font-size:17px;color:var(--muted);margin-top:8px}
.persona q{color:var(--text);font-style:italic}
@media (max-width:760px){.prof{grid-template-columns:auto minmax(0,1fr)}.prof>:last-child{grid-column:1/-1}.av--lg{width:64px;height:64px;font-size:30px}}
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.stat{padding:16px;display:flex;flex-direction:column;gap:6px}
.stat .k{font:700 10.5px/1.2 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;gap:6px;align-items:center}
.stat .v{font:800 40px/.9 var(--f-display);font-variant-numeric:tabular-nums}
.stat .v small{font-size:16px;color:var(--muted);margin-left:3px}
.stat .d{font-size:12.5px;color:var(--muted)}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.grid-main{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:900px){.grid2{grid-template-columns:minmax(0,1fr)}}
@media (max-width:1100px){.grid-main{grid-template-columns:minmax(0,1fr)}}
.grid2>*,.grid-main>*,.day>*,.files>*,.file>*{min-width:0}
.spark{width:100%;height:120px}
.spark .ln{fill:none;stroke:var(--accent);stroke-width:2.5;vector-effect:non-scaling-stroke}
.spark .ar{fill:color-mix(in oklab,var(--accent) 14%,transparent)}
.spark .gd{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.momentcard{aspect-ratio:1200/630;border-radius:var(--r);overflow:hidden;position:relative;padding:22px;display:flex;flex-direction:column;justify-content:space-between;gap:10px;background:
  linear-gradient(135deg,color-mix(in oklab,var(--warning) 14%,var(--panel)),var(--panel) 60%);border:1px solid color-mix(in oklab,var(--warning) 45%,var(--line))}
.momentcard .eyebrow{color:var(--warning)}
.momentcard .quote{font:800 clamp(20px,2.4vw,30px)/1 var(--f-display);text-transform:uppercase}
.momentcard .fine{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.cmp{display:flex;flex-direction:column;gap:14px}
.cmp-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:12px;align-items:center}
.cmp-row .k{font-size:13px;color:var(--muted)}
.cmp-bars{display:flex;flex-direction:column;gap:5px}
.cmp-bar{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:8px;align-items:center}
.cmp-bar .bar{height:10px}
.cmp-bar b{font:600 12.5px/1 var(--f-mono);text-align:right}
@media (max-width:520px){.cmp-row{grid-template-columns:1fr}}
.verify{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1px dashed var(--line);border-radius:var(--r)}
.verify .ic{font-size:22px}

/* ---------- data / docs ---------- */
.day{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;padding:18px;border-top:1px solid var(--line)}
.day:first-child{border-top:0}
.day-date{display:flex;flex-direction:column;gap:6px}
.day-date b{font:800 26px/.9 var(--f-display);text-transform:uppercase}
.files{display:flex;flex-direction:column;gap:8px}
.file{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:10px 12px;border-radius:10px;background:var(--panel-strong)}
.file .fn{font:600 13px/1.2 var(--f-mono);overflow-wrap:anywhere}
.file .desc{font-size:13px;color:var(--muted);grid-column:1/-1;order:3}
.file .sz{font:500 12px/1 var(--f-mono);color:var(--muted);white-space:nowrap;text-align:right}
@media (max-width:760px){.day{grid-template-columns:minmax(0,1fr)}.day{gap:10px}}
pre.code{margin:0;padding:14px 16px;border-radius:10px;background:var(--bg);border:1px solid var(--line);font:12.5px/1.6 var(--f-mono);overflow-x:auto;color:var(--text)}
pre.code .c{color:var(--muted)}pre.code .k{color:var(--accent)}pre.code .s{color:var(--doctor)}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;counter-reset:s}
@media (max-width:900px){.steps{grid-template-columns:minmax(0,1fr)}}
.step{padding:18px;display:flex;flex-direction:column;gap:10px;counter-increment:s}
.step::before{content:counter(s,decimal-leading-zero);font:800 44px/.8 var(--f-display);color:var(--accent)}
.step h3{font:800 24px/1 var(--f-display);text-transform:uppercase}
.step p{color:var(--muted);font-size:14px}
.games3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:900px){.games3{grid-template-columns:minmax(0,1fr)}}
.game{padding:18px;display:flex;flex-direction:column;gap:10px}
.game h3{font:800 28px/1 var(--f-display);text-transform:uppercase}
.game ul{margin:0;padding-left:18px;color:var(--muted);font-size:14px;display:flex;flex-direction:column;gap:4px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:14px}
.kv dt{color:var(--muted)}.kv dd{margin:0;font-family:var(--f-mono);font-size:13px}
.faq details{border-top:1px solid var(--line);padding:14px 0}
.faq summary{cursor:pointer;font-weight:700}
.faq p{color:var(--muted);margin-top:8px;font-size:14px;max-width:72ch}

.secret-alt{display:none}
.spoiler-free [data-secret]+.secret-alt{display:revert}
.spoiler-free [data-secret-color]{--ac:var(--line)}
.stats-note{font-size:12px;color:var(--muted);margin-top:10px}
.moments{display:flex;flex-direction:column;gap:8px}
.moment-row{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border-radius:10px;background:var(--panel-strong);color:var(--text);text-decoration:none}
.moment-row:hover{color:var(--text);outline:1px solid var(--warning)}
.moment-row .when{font:700 11px/1 var(--f-mono);color:var(--warning)}
.fates{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;width:100%}
.fate{display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:var(--panel-strong);text-align:left}
.fate b{font-size:14px}
.fate small{color:var(--muted);font-size:12px}
.fate.alive{outline:1px solid color-mix(in oklab,var(--wolf) 55%,transparent)}
/* ---------- seat rig chip (mixed tables) ---------- */
.seat .rig{align-self:flex-start}
.seat .rig>span{padding:3px 6px}
.rig-split{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.rig-count{font:700 12px/1 var(--f-mono);color:var(--text)}

/* ---------- Marry, Date, Ditch ---------- */
.race{display:flex;flex-direction:column;gap:6px;min-width:0}
.race-row{display:grid;grid-template-columns:120px minmax(0,1fr) 34px;gap:10px;align-items:center;font-size:13px}
.race-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.race-pips{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:3px}
.race-pips i{height:12px;border-radius:2px;background:var(--track)}
.race-pips i:nth-child(3n){margin-right:5px}
.race-pips i.r1{background:color-mix(in oklab,var(--accent) 45%,var(--track))}
.race-pips i.r2{background:color-mix(in oklab,var(--accent) 72%,var(--track))}
.race-pips i.r3{background:var(--accent)}
.race-row .tot{font:800 22px/1 var(--f-display);text-align:right}
.race-row.is-lead .tot{color:var(--accent)}
/* Buzzer v2: cards on the table and answer timing bars */
.cards-table{display:flex;flex-direction:column;gap:8px}
.card-row{display:grid;grid-template-columns:minmax(0,140px) minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13px}
.card-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timing{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.tm-row{display:grid;grid-template-columns:34px minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:end;font-size:12px}
.tm-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.tm-col{display:flex;flex-direction:column;align-items:center;gap:2px}
.tm-track{width:100%;height:30px;display:flex;align-items:flex-end;background:var(--track);border-radius:3px;overflow:hidden}
.tm-track i{display:block;width:100%;background:var(--muted);opacity:.55}
.tm-col.ok .tm-track i{background:var(--blue);opacity:.9}
.tm-col.win .tm-track i{background:var(--accent);opacity:1}
.tm-col.win small{color:var(--accent);font-weight:800}
.tm-col.frozen .tm-track i{background:repeating-linear-gradient(45deg,var(--accent),var(--accent) 3px,var(--track) 3px,var(--track) 6px);opacity:.9}
.tm-col small{font:600 10.5px/1 var(--f-mono);color:var(--muted)}
.tm-cards{display:flex;flex-wrap:wrap;gap:4px;align-items:center;color:var(--muted);font-size:11px}
@media (max-width:640px){.tm-row{grid-template-columns:30px minmax(0,1fr)}.tm-cards{grid-column:1 / -1}.card-row{grid-template-columns:minmax(0,100px) minmax(0,1fr)}.card-row small{grid-column:1 / -1}}
.mdd-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:24px;align-items:center;padding:20px 22px;margin:18px 0 14px;border-radius:var(--r);border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-top:3px solid var(--accent)}
.mdd-head h1{font:800 clamp(34px,4.4vw,58px)/.9 var(--f-display);text-transform:uppercase;margin-top:10px}
@media (max-width:860px){.mdd-head{grid-template-columns:1fr;padding:16px}.race-row{grid-template-columns:84px minmax(0,1fr) 28px}}
.opts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.opt{--oc:var(--opt-a);position:relative;padding:14px 14px 12px;border-radius:12px;background:var(--panel-strong);border:1px solid var(--line);border-top:4px solid var(--oc);display:flex;flex-direction:column;gap:10px;min-width:0}
.opt[data-o=b]{--oc:var(--opt-b)}.opt[data-o=c]{--oc:var(--opt-c)}
.opt .letter{font:800 13px/1 var(--f-mono);color:var(--oc)}
.opt p{font:800 clamp(20px,2vw,26px)/1 var(--f-display);text-transform:uppercase;overflow-wrap:anywhere}
.opt .crowd{font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.opt .crowd b{color:var(--text)}
@media (max-width:640px){.opts{grid-template-columns:1fr}.opt{flex-direction:row;align-items:center;gap:12px}.opt p{flex:1;font-size:19px}}
.olet{--oc:var(--opt-a);display:inline-grid;place-items:center;width:20px;height:20px;border-radius:5px;font:800 11px/1 var(--f-mono);background:var(--oc);color:var(--on-accent);flex:none}
.olet[data-o=b]{--oc:var(--opt-b)}.olet[data-o=c]{--oc:var(--opt-c)}
.reveal{display:flex;flex-direction:column;gap:6px}
.rv-head,.rv-row{display:grid;grid-template-columns:minmax(110px,1fr) repeat(3,minmax(0,1.2fr)) 48px;gap:8px;align-items:center}
.rv-head{font:700 10.5px/1.2 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:0 10px}
.rv-head span:last-child{text-align:right}
.rv{padding:10px;border-radius:12px;background:var(--panel-strong);display:flex;flex-direction:column;gap:8px}
.rv.is-rogue{background:color-mix(in oklab,var(--warning) 10%,var(--panel-strong));outline:1px dashed color-mix(in oklab,var(--warning) 70%,transparent)}
.rv-name{display:flex;flex-direction:column;gap:3px;min-width:0}
.rv-name b{font-size:14px}
.rv-name .state{display:none}
.pick{position:relative;height:40px;perspective:600px}
.pick>span{position:absolute;inset:0;display:flex;align-items:center;gap:7px;padding:0 9px;border-radius:9px;backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .55s cubic-bezier(.3,.7,.2,1);transition-delay:calc(var(--i,0) * 70ms);font-size:13px;font-weight:600;overflow:hidden;white-space:nowrap}
.pick .front{background:var(--panel);border:1px solid var(--line)}
.pick.hit .front{border-color:color-mix(in oklab,var(--accent) 60%,transparent)}
.pick.miss .front{border:1.5px dashed var(--warning);color:var(--text)}
.pick .front em{font-style:normal;overflow:hidden;text-overflow:ellipsis}
.pick .back{opacity:0;background:repeating-linear-gradient(135deg,var(--panel) 0 8px,var(--bubble) 8px 16px);border:1px solid var(--line);transform:rotateY(180deg);justify-content:center;color:var(--muted);font:700 11px/1 var(--f-body);letter-spacing:.1em;text-transform:uppercase}
.is-sealed .pick .front{transform:rotateY(-180deg)}
.is-sealed .pick .back{transform:rotateY(0);opacity:1}
.is-sealed .pick .front{opacity:0}
.pick .front,.pick .back{transition-property:transform,opacity}
.rv-name .tag{align-self:flex-start}
.is-sealed .rv-pts,.is-sealed .rv-say,.is-sealed .crowdbars,.is-sealed .opt .crowd,.is-sealed .rv .tag--warn{visibility:hidden}
.is-sealed .rv-name .state{display:inline-flex}
.is-sealed .rv.is-rogue{background:var(--panel-strong);outline:0}
.rv-pts{font:800 26px/1 var(--f-display);text-align:right}
.rv-pts.zero{color:var(--warning)}
.rv-say{font-size:14px;line-height:1.45;padding:2px 2px 0;overflow-wrap:anywhere;display:flex;gap:8px}
.rv-say::before{content:"“";font:800 26px/.8 var(--f-display);color:var(--muted)}
@media (max-width:640px){
  .rv-head{display:none}
  .rv-row{grid-template-columns:repeat(3,minmax(0,1fr)) 36px}
  .rv-name{grid-column:1/-1;flex-direction:row;align-items:center;gap:8px}
  .pick{height:36px}.pick>span{padding:0 6px;font-size:12px;gap:5px}
  .pick .front em{display:none}
}
.crowdbars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:640px){.crowdbars{grid-template-columns:1fr}}
.cb{display:flex;flex-direction:column;gap:6px}
.cb-bar{display:flex;gap:3px;height:26px}
.cb-bar i{flex:1;border-radius:5px;display:grid;place-items:center;font:800 10.5px/1 var(--f-mono);font-style:normal;color:var(--on-accent);background:var(--opt-a)}
.cb-bar i[data-o=b]{background:var(--opt-b)}.cb-bar i[data-o=c]{background:var(--opt-c)}
.cb small{color:var(--muted);font-size:12px}

/* ---------- Capture the Cones ---------- */
.team-blue{--tc:var(--blue)}.team-orange{--tc:var(--orange)}.team-neutral{--tc:var(--warning)}
.bug-side--blue{--sc:var(--blue)}.bug-side--orange{--sc:var(--orange)}
.cones{display:grid;grid-template-columns:290px minmax(0,1fr) 290px;gap:14px;align-items:start}
.cones-center{display:flex;flex-direction:column;gap:12px;min-width:0}
@media (max-width:1180px){.cones{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cones-center{grid-column:1/-1;order:-1}}
@media (max-width:720px){.cones{grid-template-columns:minmax(0,1fr)}.cones[data-chat=blue] .chat.team-orange,.cones[data-chat=orange] .chat.team-blue{display:none}}
.chat-switch{display:none}
@media (max-width:720px){.chat-switch{display:flex}}
.map-wrap{padding:12px 12px 10px 30px;position:relative;width:100%;max-width:880px;margin:0 auto}
.map-x{display:grid;grid-template-columns:repeat(var(--cols,12),1fr);font:500 10px/1 var(--f-mono);color:var(--muted);text-align:center;margin-bottom:5px}
.map-box{position:relative}
.map-y{position:absolute;left:-22px;top:0;bottom:0;display:grid;grid-template-rows:repeat(9,1fr);font:500 10px/1 var(--f-mono);color:var(--muted);align-items:center}
.map{position:relative;aspect-ratio:var(--cols,12)/9;display:grid;grid-template-columns:repeat(var(--cols,12),1fr);grid-template-rows:repeat(9,1fr);border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.map .c{border-right:1px solid color-mix(in oklab,var(--line) 55%,transparent);border-bottom:1px solid color-mix(in oklab,var(--line) 55%,transparent);position:relative}
.map .c.w{background:color-mix(in oklab,var(--blue) 9%,var(--panel))}
.map .c.e{background:color-mix(in oklab,var(--orange) 9%,var(--panel))}
.map .c.mid{border-right:3px solid var(--text)}
.map .c.ctr{background:color-mix(in oklab,var(--text) 10%,var(--panel));border-left:2px solid var(--text);border-right:2px solid var(--text)}
.map .c.home::after{content:"";position:absolute;inset:30%;border-radius:50%;border:1.5px dotted color-mix(in oklab,var(--hc) 70%,transparent)}
.map .c.wait{background:repeating-linear-gradient(135deg,transparent 0 5px,color-mix(in oklab,var(--wc) 22%,transparent) 5px 7px);outline:2px dashed var(--wc);outline-offset:-3px}
.map .c.wait.occupied b{display:none}
.map .c.wait b{position:absolute;left:0;right:0;bottom:3px;text-align:center;font:800 8.5px/1 var(--f-body);letter-spacing:.08em;color:var(--wc);text-transform:uppercase}
.map-half{position:absolute;top:8px;font:800 11px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;pointer-events:none;z-index:1}
.map-half.w{left:10px;color:var(--blue)}.map-half.e{right:10px;color:var(--orange)}.map-half.mid-label{left:50%;transform:translateX(-50%);color:var(--muted)}
.cone,.tok{position:absolute;left:calc((var(--x) + .5) / var(--cols,12) * 100%);top:calc((var(--y) + .5) / 9 * 100%);transition:left .6s cubic-bezier(.4,.1,.2,1),top .6s cubic-bezier(.4,.1,.2,1),opacity .3s}
.cone{width:3.2%;aspect-ratio:1/1.15;transform:translate(-95%,-35%);z-index:4}
.cone::before{content:"";position:absolute;inset:0;clip-path:polygon(50% 0,92% 88%,100% 100%,0 100%,8% 88%);background:linear-gradient(transparent 38%,rgb(255 255 255 / .85) 38% 50%,transparent 50%),var(--tc)}
.cone[hidden]{display:none}
.cone .cid{position:absolute;top:100%;left:50%;transform:translateX(-50%);font:600 9px/1.3 var(--f-mono);color:var(--muted);white-space:nowrap}
.tok{width:5.8%;aspect-ratio:1;transform:translate(-50%,-50%);z-index:3;border-radius:50%;background:var(--tc);color:#08101c;display:grid;place-items:center;font:800 clamp(10px,1.2vw,15px)/1 var(--f-body);box-shadow:0 0 0 2px var(--panel),0 6px 14px -4px rgb(0 0 0 / .6)}
.tok .carry{position:absolute;right:-22%;top:-22%;width:52%;aspect-ratio:1/1.15;display:none}
.tok .carry::before{content:"";position:absolute;inset:0;clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(transparent 38%,#fff 38% 52%,transparent 52%),var(--cc);filter:drop-shadow(0 0 1px #000)}
.tok.has-carry .carry{display:block}
.tok.is-waiting{background:transparent;color:var(--tc);box-shadow:none;border:2px dashed var(--tc)}
.tok.is-missed{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--warning)}
.tok .miss{position:absolute;top:108%;left:50%;transform:translateX(-50%);font:800 8.5px/1.2 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:var(--warning);white-space:nowrap;display:none;background:var(--panel);padding:1px 4px;border-radius:3px}
.tok.is-missed .miss{display:block}
.tok.is-tagged{animation:tagflash .9s ease-out 1}
@keyframes tagflash{0%{box-shadow:0 0 0 2px var(--panel),0 0 0 14px color-mix(in oklab,var(--live) 60%,transparent)}100%{box-shadow:0 0 0 2px var(--panel),0 0 0 0 transparent}}
@media (max-width:720px){.map-wrap{padding:8px 8px 8px 20px}.map-y{left:-15px}.cone .cid,.map .c.wait b{display:none}.map-half{font-size:9px}}
.ticker{display:flex;flex-direction:column;gap:6px}
.tk{display:grid;grid-template-columns:44px auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 12px;border-radius:10px;background:var(--panel-strong);font-size:13.5px}
.tk .t{font:700 11px/1 var(--f-mono);color:var(--muted)}
.tk .k{font:800 10px/1.2 var(--f-body);letter-spacing:.12em;text-transform:uppercase;padding:3px 7px;border-radius:5px;color:var(--on-accent);background:var(--kc,var(--muted))}
.tk.tag-ev{--kc:var(--live)}.tk.cap-ev{--kc:var(--doctor)}.tk.pick-ev{--kc:var(--warning)}.tk.res-ev{--kc:var(--seer)}.tk.miss-ev{--kc:var(--track)}
.tk.miss-ev .k{color:var(--text)}
.tk .sc{font:700 12px/1 var(--f-mono);white-space:nowrap}
@media (max-width:520px){.tk{grid-template-columns:36px minmax(0,1fr) auto}.tk .k{display:none}}
.chat{display:flex;flex-direction:column;min-width:0;border-top:3px solid var(--tc)}
.chat-head{padding:14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.chat-head h2{font:800 22px/1 var(--f-display);text-transform:uppercase;color:var(--tc)}
.roster{display:flex;flex-direction:column;gap:5px}
.ro{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center;font-size:13px}
.ro .dot{width:22px;height:22px;border-radius:50%;background:var(--tc);color:#08101c;display:grid;place-items:center;font:800 10px/1 var(--f-body)}
.ro .dot.w{background:transparent;border:1.5px dashed var(--tc);color:var(--tc)}
.ro .st{font:600 11px/1 var(--f-mono);color:var(--muted);white-space:nowrap}
.ro .st.warn{color:var(--warning)}
.chat-body{padding:12px 14px;display:flex;flex-direction:column;gap:10px;max-height:560px;overflow-y:auto}
.msg{display:flex;flex-direction:column;gap:4px}
.msg .mh{display:flex;gap:6px;align-items:baseline;font-size:12px;color:var(--muted)}
.msg .mh b{color:var(--text)}
.msg .mh .ev-time{margin-left:auto}
.msg .bubble{background:color-mix(in oklab,var(--tc) 12%,var(--bubble))}
.msg-sys{font-size:12px;color:var(--warning);border:1px dashed color-mix(in oklab,var(--warning) 50%,transparent);border-radius:8px;padding:6px 9px}
.irony{font-size:12px;color:var(--muted);border-left:0;padding:8px 10px;border-radius:8px;background:color-mix(in oklab,var(--warning) 10%,transparent);border:1px solid color-mix(in oklab,var(--warning) 35%,transparent)}
.ticks{display:grid;grid-template-columns:repeat(40,minmax(0,1fr));gap:2px;height:14px}
.ticks i{background:var(--track);border-radius:2px;position:relative}
.ticks i.done{background:color-mix(in oklab,var(--accent) 55%,var(--track))}
.ticks i.now{background:var(--text)}
.ticks i[data-m]::after{content:attr(data-m);position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-size:10px;line-height:1.2;margin-bottom:2px}
/* ---------- divisions ---------- */
.rig .rig-div{font:800 9.5px/1 var(--f-body);letter-spacing:.08em;color:var(--on-accent);background:var(--dc,var(--muted));padding-inline:6px}
.rig.gpu-spark .rig-div{--dc:var(--accent)}.rig.gpu-laptop .rig-div{--dc:var(--warning)}
.division{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:4px;font:800 10.5px/1.2 var(--f-body);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;color:var(--on-accent);background:var(--dc,var(--muted));clip-path:polygon(6px 0,100% 0,calc(100% - 6px) 100%,0 100%);padding-inline:12px}
.division[data-d=hw]{--dc:var(--accent)}.division[data-d=mw]{--dc:var(--warning)}.division[data-d=cw]{--dc:var(--seer)}.division[data-d=fw]{--dc:var(--doctor)}.division[data-d=open]{--dc:var(--muted)}
.claimed-note{font:600 10px/1 var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* ---------- walk-out / tale of the tape ---------- */
.walkout{--sig:var(--accent);position:relative;overflow:hidden;border-radius:var(--r);border:1px solid var(--line);background:linear-gradient(120deg,color-mix(in oklab,var(--sig) 22%,var(--panel)) 0,var(--panel) 55%);padding:22px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center}
.walkout::after{content:"";position:absolute;right:-40px;top:0;bottom:0;width:180px;background:var(--sig);opacity:.12;transform:skewX(-14deg)}
.walkout .emo{font-size:56px;line-height:1;width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:3px solid var(--sig)}
.walkout h3{font:800 clamp(36px,4.6vw,60px)/.88 var(--f-display);text-transform:uppercase;overflow-wrap:anywhere}
.walkout .song{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:14px}
.walkout .song b{font-weight:700}
.walkout .song a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.walkout .song a:hover{color:var(--accent)}
.walkout .catch{font:700 17px/1.3 var(--f-body);font-style:italic}
@media (max-width:560px){.walkout{grid-template-columns:1fr;padding:16px}.walkout .emo{width:64px;height:64px;font-size:38px}}
.tape{display:grid;grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--panel)}
.tape>div{padding:10px 16px;border-top:1px solid var(--line);min-width:0;overflow-wrap:anywhere}
.tape .l{text-align:right}.tape .k{text-align:center;background:var(--panel-strong);font:700 10.5px/1.3 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;justify-content:center}
.tape .hd{border-top:0;padding:18px 16px}
.tape .hd h4{font:800 34px/.9 var(--f-display);text-transform:uppercase;margin-top:8px}
.tape .win{color:var(--accent);font-weight:700}
@media (max-width:640px){.tape{grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr)}.tape>div{padding:9px 8px;font-size:13px}.tape .k{font-size:9px;letter-spacing:.04em}.tape .hd h4{font-size:22px}}
.lineup{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:stretch}
.lineup .team{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--r);border:1px solid var(--line);background:var(--panel);border-top:3px solid var(--tc)}
.lineup .vs{font:800 28px/1 var(--f-display);color:var(--muted);align-self:center}
.lu{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:center;padding:8px;border-radius:10px;background:var(--panel-strong)}
.lu .e{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:20px;background:var(--bg);border:2px solid var(--sig,var(--line))}
.lu b{display:block}
.lu small{color:var(--muted);font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:760px){.lineup{grid-template-columns:1fr}.lineup .vs{justify-self:center}}
.titles{display:flex;gap:6px;flex-wrap:wrap}
.title-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:color-mix(in oklab,var(--warning) 14%,var(--panel-strong));border:1px solid color-mix(in oklab,var(--warning) 50%,transparent);font:700 12px/1.2 var(--f-body)}
.upset{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--panel-strong);color:var(--text);text-decoration:none}
.upset:hover{color:var(--text);outline:1px solid var(--warning)}
.upset .arrow{font:800 13px/1 var(--f-display);color:var(--warning);white-space:nowrap}
@media (max-width:560px){.upset{grid-template-columns:1fr}}

/* ---------- Liar's Dice ---------- */
.dtable{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto auto;gap:12px;position:relative}
.dseat{padding:14px;border-radius:14px;background:var(--panel-strong);border:1px solid var(--line);display:flex;flex-direction:column;gap:10px;min-width:0}
.dseat.is-out{background:transparent;border-style:dashed;opacity:.65}
.dseat.is-turn{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 22%,transparent)}
.dseat.is-loser{border-color:var(--live);box-shadow:0 0 0 3px color-mix(in oklab,var(--live) 22%,transparent)}
.dseat .top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dseat .top b{font-size:15px}
.dice{display:flex;gap:6px;flex-wrap:wrap}
.die{width:38px;height:38px;border-radius:8px;background:var(--text);color:var(--bg);display:grid;place-items:center;font:800 20px/1 var(--f-display);position:relative}
.die.hit{background:var(--accent);color:var(--on-accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 30%,transparent)}
.die.lost{background:transparent;border:2px dashed var(--live);color:var(--live)}
.die.gone{background:transparent;border:1.5px dashed var(--line);color:transparent}
.dcount{display:flex;gap:3px}
.dcount i{width:10px;height:10px;border-radius:2px;background:var(--text)}
.dcount i.off{background:var(--track)}
.bidbox{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 18px;border-radius:14px;background:var(--panel);border:1px solid var(--line)}
.bid-big{font:800 clamp(40px,6vw,72px)/.85 var(--f-display);text-transform:uppercase;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.bid-big .die{width:56px;height:56px;font-size:30px;border-radius:12px}
.truth{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 16px;border-radius:12px;text-align:center;border:1.5px solid var(--tc);background:color-mix(in oklab,var(--tc) 12%,transparent)}
.truth b{font:800 28px/1 var(--f-display);text-transform:uppercase;color:var(--tc)}
.truth small{font-size:12px;color:var(--muted)}
.truth--true{--tc:var(--doctor)}.truth--false{--tc:var(--live)}
@media (max-width:640px){.dtable{grid-template-columns:minmax(0,1fr)}.bidbox{grid-template-columns:1fr}.die{width:32px;height:32px;font-size:17px}}
.ladder{display:flex;flex-direction:column;gap:6px}
.rung{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--panel-strong);font-size:13.5px}
.rung .q{font:800 18px/1 var(--f-display)}
.rung.bluff{outline:1px dashed var(--live)}
.dicestrip{display:grid;grid-template-columns:110px repeat(16,minmax(0,1fr));gap:3px;font:600 11px/1 var(--f-mono);align-items:center}
.dicestrip span{text-align:center;padding:6px 0;border-radius:3px;background:color-mix(in oklab,var(--accent) calc(var(--n,0) * 18%),var(--track))}
.dicestrip span.lose{outline:1.5px solid var(--live);outline-offset:-1.5px}
.dicestrip span.z{background:transparent;color:var(--muted)}
.dicestrip b{font:700 12px/1.2 var(--f-body);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dicestrip .h{background:none;color:var(--muted)}

/* ---------- Clue Crew ---------- */
.cc{--red:var(--wolf);--blu:var(--blue)}
.clue-banner{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 18px;border-radius:14px;border:1px solid var(--line);background:var(--panel);border-left:6px solid var(--tc)}
.clue-banner .word{font:800 clamp(38px,5vw,64px)/.85 var(--f-display);text-transform:uppercase}
.clue-banner .num{font:800 clamp(38px,5vw,64px)/.85 var(--f-display);color:var(--tc)}
.words{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.word-card{--kc:var(--muted);position:relative;aspect-ratio:1.55;border-radius:10px;display:grid;place-items:center;text-align:center;padding:6px;font:700 clamp(11px,1.25vw,15px)/1.1 var(--f-body);text-transform:uppercase;letter-spacing:.04em;background:var(--panel-strong);border:1px solid var(--line);box-shadow:inset 0 -5px 0 color-mix(in oklab,var(--kc) 65%,transparent);overflow-wrap:anywhere}
.word-card[data-k=red]{--kc:var(--red)}.word-card[data-k=blue]{--kc:var(--blu)}.word-card[data-k=neutral]{--kc:var(--dead)}.word-card[data-k=assassin]{--kc:var(--text)}
.word-card.found{background:var(--kc);color:var(--on-accent);box-shadow:none;border-color:var(--kc)}
.word-card.found[data-k=neutral]{background:var(--track);color:var(--muted);border-color:var(--track)}
.word-card.found[data-k=assassin]{background:var(--text);color:var(--bg)}
.word-card .i{position:absolute;top:5px;left:7px;font:500 9px/1 var(--f-mono);opacity:.6}
.word-card .mk{position:absolute;top:4px;right:6px;font-size:11px}
.word-card.last{outline:3px solid var(--warning);outline-offset:2px}
.word-card.intent::after{content:"clue target";position:absolute;bottom:8px;left:50%;transform:translateX(-50%);font:700 8.5px/1 var(--f-body);letter-spacing:.08em;color:var(--warning);white-space:nowrap}
.spoiler-free .word-card:not(.found){box-shadow:none}
@media (max-width:560px){.words{gap:4px}.word-card{aspect-ratio:1.1;font-size:9.5px;border-radius:7px;letter-spacing:0;padding:3px}.word-card .i,.word-card.intent::after{display:none}}
.found-race{display:grid;grid-template-columns:70px minmax(0,1fr) 48px;gap:10px;align-items:center;font-size:13px}
.found-race .pips{display:flex;gap:3px}
.found-race .pips i{flex:1;height:14px;border-radius:3px;background:var(--track)}
.found-race .pips i.on{background:var(--tc)}

/* ---------- Trust Fall ---------- */
.strip{display:grid;grid-template-columns:120px repeat(10,minmax(0,1fr));gap:6px;align-items:center}
.strip .rn{text-align:center;font:600 11px/1 var(--f-mono);color:var(--muted)}
.strip .nm{font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chc{aspect-ratio:1;border-radius:10px;display:grid;place-items:center;font:800 13px/1 var(--f-body);position:relative;border:1.5px solid transparent}
.chc.t{background:color-mix(in oklab,var(--doctor) 22%,var(--panel-strong));border-color:color-mix(in oklab,var(--doctor) 60%,transparent);color:var(--doctor)}
.chc.b{background:var(--live);color:var(--on-live)}
.chc.broken::after{content:"💔";position:absolute;top:-9px;right:-7px;font-size:14px}
.chc small{position:absolute;bottom:3px;font:600 9px/1 var(--f-mono);opacity:.8}
.strip .pts{text-align:center;font:700 12px/1 var(--f-mono)}
@media (max-width:640px){.strip{grid-template-columns:62px repeat(10,minmax(0,1fr));gap:3px}.chc{border-radius:6px;font-size:10px}.chc small{display:none}.strip .nm{font-size:12px}}
.totals-line{width:100%;height:140px}
.totals-line .a{fill:none;stroke:var(--side-a);stroke-width:3;vector-effect:non-scaling-stroke}
.totals-line .b{fill:none;stroke:var(--side-b);stroke-width:3;vector-effect:non-scaling-stroke;stroke-dasharray:6 4}
.totals-line .g{stroke:var(--line);vector-effect:non-scaling-stroke}
.promise{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px 14px;border-radius:12px;background:var(--panel-strong)}
.promise .r{font:800 22px/1 var(--f-display);color:var(--muted)}
.promise q{font-size:15px;line-height:1.45}
.promise.is-broken{background:color-mix(in oklab,var(--live) 10%,var(--panel-strong));outline:1px solid color-mix(in oklab,var(--live) 50%,transparent)}
@media (max-width:560px){.promise{grid-template-columns:28px minmax(0,1fr)}.promise>:last-child{grid-column:2}}

/* ---------- Cones additions ---------- */
.tok{left:calc((var(--x) + .5 + var(--dx,0)) / var(--cols,12) * 100%);top:calc((var(--y) + .5 + var(--dy,0)) / 9 * 100%)}
.tok.is-stacked{width:3.9%;font-size:clamp(8px,.9vw,11px)}
.map{overflow:visible !important}
.map-wrap[style*="--cols:13"] .map .c:nth-child(12){border-top-right-radius:0}.map-wrap[style*="--cols:13"] .map .c:nth-child(13){border-top-right-radius:9px}.map-wrap[style*="--cols:13"] .map .c:nth-child(97){border-bottom-left-radius:0}.map-wrap[style*="--cols:13"] .map .c:nth-child(105){border-bottom-left-radius:9px}.map-wrap[style*="--cols:13"] .map .c:nth-child(108){border-bottom-right-radius:0}.map-wrap[style*="--cols:13"] .map .c:nth-child(117){border-bottom-right-radius:9px}
.map .c:nth-child(1){border-top-left-radius:9px}.map .c:nth-child(12){border-top-right-radius:9px}.map .c:nth-child(97){border-bottom-left-radius:9px}.map .c:nth-child(108){border-bottom-right-radius:9px}
.map-moment{position:absolute;z-index:6;left:50%;top:auto;bottom:3%;transform:translate(-50%,0);padding:12px 22px;border-radius:12px;background:var(--bg);border:2px solid var(--mc,var(--doctor));text-align:center;box-shadow:var(--shadow);pointer-events:none;animation:pop .5s cubic-bezier(.3,1.4,.5,1) 1}
.map-moment b{display:block;font:800 clamp(24px,3.4vw,40px)/.9 var(--f-display);text-transform:uppercase;color:var(--mc,var(--doctor))}
.map-moment small{font-size:12.5px;color:var(--muted)}
@keyframes pop{from{transform:translate(-50%,0) scale(.7);opacity:0}}
.map .c.wait.flash{animation:waitflash 1.2s ease-out 2}
@keyframes waitflash{50%{background:color-mix(in oklab,var(--wc) 55%,transparent)}}
.scorestrip{width:100%;height:90px;display:block}
.scorestrip .bl{fill:none;stroke:var(--blue);stroke-width:2.5;vector-effect:non-scaling-stroke}
.scorestrip .or{fill:none;stroke:var(--orange);stroke-width:2.5;vector-effect:non-scaling-stroke;stroke-dasharray:5 3}
.scorestrip .gd{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.scorestrip .now{stroke:var(--text);stroke-width:2;vector-effect:non-scaling-stroke}
.chat-body.compact .msg{flex-direction:row;gap:8px;align-items:baseline}
.chat-body.compact .msg .mh{flex:none}
.chat-body.compact .msg .mh .ev-time{display:none}
.chat-body.compact .msg .bubble{background:none;padding:0;font-size:13px}
.chat-body.big-only .msg:not([data-big]),.chat-body.big-only .ev-thought{display:none}
/* ---------- why page ---------- */
.why-hero{padding:64px 0 24px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px;align-items:end}
.why-hero h1{font:800 clamp(64px,10vw,148px)/.84 var(--f-display);text-transform:uppercase}
.why-hero h1 em{font-style:normal;color:var(--accent);display:block}
.why-hero .lede{font-size:clamp(17px,1.6vw,20px);line-height:1.55;color:var(--text);max-width:44ch}
@media (max-width:900px){.why-hero{grid-template-columns:1fr;gap:20px;padding-top:36px}}
.why-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:32px;align-items:center}
@media (max-width:1100px){.why-split{grid-template-columns:minmax(0,1fr)}}
.prose{font-size:17px;line-height:1.65;max-width:64ch;display:flex;flex-direction:column;gap:14px}
.prose p{color:var(--text)}
.vs-cards{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:16px;align-items:stretch}
.vs-cards .arrow{align-self:center;font:800 28px/1 var(--f-display);color:var(--muted)}
.exam,.arena{padding:20px;border-radius:var(--r);display:flex;flex-direction:column;gap:12px}
.exam{background:var(--panel);border:1px dashed var(--line)}
.exam .q{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;background:var(--panel-strong);font-size:14px;color:var(--muted)}
.exam .q b{font:700 12px/1 var(--f-mono);color:var(--muted)}
.exam .q .k{font:700 12px/1 var(--f-mono);color:var(--doctor)}
.arena{background:linear-gradient(160deg,color-mix(in oklab,var(--accent) 14%,var(--panel)),var(--panel) 65%);border:1px solid color-mix(in oklab,var(--accent) 45%,var(--line))}
@media (max-width:760px){.vs-cards{grid-template-columns:1fr}.vs-cards .arrow{justify-self:center;transform:rotate(90deg)}}
.reasons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;counter-reset:r}
.reason{padding:20px;display:flex;flex-direction:column;gap:10px;counter-increment:r}
.reason::before{content:counter(r,decimal-leading-zero);font:800 40px/.8 var(--f-display);color:var(--accent)}
.reason h3{font:800 24px/1 var(--f-display);text-transform:uppercase}
.reason p{color:var(--muted);font-size:15px;line-height:1.55}
@media (max-width:900px){.reasons{grid-template-columns:1fr}}
.aside-note{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--panel-strong);font-size:15px;line-height:1.55;max-width:80ch}
.aside-note .i{font:800 12px/1.6 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:var(--warning);white-space:nowrap}
.see{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:1000px){.see{grid-template-columns:1fr}}
.see-card{padding:20px;display:flex;flex-direction:column;gap:14px}
.see-card h3{font:800 28px/1 var(--f-display);text-transform:uppercase}
.see-card p{font-size:15px;line-height:1.6}
.see-demo{padding:12px;border-radius:12px;background:var(--bg);border:1px solid var(--line);display:flex;flex-direction:column;gap:8px;margin-top:auto}
.ladder-div{display:flex;flex-direction:column;gap:8px}
.ld-row{display:grid;grid-template-columns:150px minmax(0,1fr) 170px;gap:14px;align-items:center}
.ld-bar{height:18px;border-radius:4px;background:var(--dc);width:var(--w);min-width:18px;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 100%,0 100%)}
.ld-row .sz{font:600 13px/1.2 var(--f-mono);color:var(--muted)}
.ld-row.open .ld-bar{background:repeating-linear-gradient(135deg,var(--track) 0 6px,transparent 6px 12px);border:1px dashed var(--line)}
@media (max-width:640px){.ld-row{grid-template-columns:118px minmax(0,1fr)}.ld-row .sz{grid-column:1/-1;margin-top:-4px}}
.gamegrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:1000px){.gamegrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.gamegrid{grid-template-columns:minmax(0,1fr)}}
.gcard{padding:20px;display:flex;flex-direction:column;gap:12px;color:var(--text);text-decoration:none;position:relative}
a.gcard:hover{background:var(--panel-strong);color:var(--text);border-color:color-mix(in oklab,var(--accent) 45%,var(--line))}
.gcard .top{display:flex;align-items:center;gap:10px}
.gcard .ico{font-size:28px;line-height:1}
.gcard h3{font:800 28px/1 var(--f-display);text-transform:uppercase}
.gcard p{font-size:15px;line-height:1.55;color:var(--muted)}
.gcard .tests{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);font-size:14px;display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}
.gcard .tests b{font:700 11px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.gcard .go{font-size:13px;color:var(--accent);font-weight:600}
.stow-ports{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.stow-transcript,.stow-speeches{display:grid;gap:10px}
.stow-exchange,.stow-speech{padding:12px;border:1px solid var(--line);border-radius:10px}
.stow-exchange p,.stow-speech p{margin:6px 0}
.stow-reveal{text-align:center}
.gcard.is-check{border-style:dashed}
.why-faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:800px){.why-faq{grid-template-columns:1fr}}
.qa{padding:20px;display:flex;flex-direction:column;gap:8px}
.qa h3{font:700 18px/1.3 var(--f-body)}
.qa p{font-size:15px;line-height:1.6;color:var(--muted)}
.cta-band{margin-top:56px;padding:32px;border-radius:var(--r);display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:linear-gradient(120deg,color-mix(in oklab,var(--accent) 18%,var(--panel)),var(--panel));border:1px solid color-mix(in oklab,var(--accent) 40%,var(--line))}
.cta-band h2{font:800 clamp(34px,4.4vw,56px)/.9 var(--f-display);text-transform:uppercase}
.toss{display:flex;flex-direction:column;gap:12px}
.toss-details{display:flex;flex-direction:column;gap:12px}
.toss-collapsed{padding:10px 14px;min-width:0}
.toss-collapsed-line{display:flex;align-items:center;gap:10px;min-width:0}
.toss-collapsed .toss-status{min-width:0;overflow-wrap:anywhere}
.toss-collapsed .btn{flex:none}
.toss-grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:14px;align-items:center}
.toss-side{display:flex;flex-direction:column;gap:6px;align-items:flex-start;min-width:0}
.toss-side:last-child{align-items:flex-end;text-align:right}
.toss-coin{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;font:800 15px/1 var(--f-display);letter-spacing:.08em;text-transform:uppercase;color:var(--on-accent);background:radial-gradient(circle at 35% 30%,#fff3b0,var(--warning) 55%,#b8872a);border:3px solid color-mix(in oklab,var(--warning) 60%,#000)}
.toss-coin.coin-tails{background:radial-gradient(circle at 35% 30%,#e6edff,var(--muted) 60%,#5d6884)}
.toss-coin.coin-spin{animation:toss-spin 1.2s linear infinite}
.toss-coin-small{width:28px;height:28px;flex:none;border-width:2px;font-size:11px}
@keyframes toss-spin{to{transform:rotateY(360deg)}}
.toss-status{font-weight:600}
@media (max-width:560px){.toss-grid{grid-template-columns:1fr;justify-items:center}.toss-side,.toss-side:last-child{align-items:center;text-align:center}.toss-collapsed-line{align-items:flex-start;flex-wrap:wrap}.toss-collapsed .toss-status{flex:1 1 calc(100% - 38px)}.toss-collapsed .btn{margin-left:38px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none !important;transition:none !important}}

.intrigue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.intrigue-seat.active{outline:2px solid var(--accent)}.intrigue-cards{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.intrigue-card{display:grid;place-items:center;min-width:52px;height:70px;border:1px solid var(--line);border-radius:8px;background:var(--ink);color:var(--paper);font-weight:800}.intrigue-card-open{padding:0 8px;background:var(--paper);color:var(--ink)}@media(max-width:650px){.intrigue-grid{grid-template-columns:1fr}}
.five-seat-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.four-seat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 800px) { .five-seat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) { .four-seat-grid { grid-template-columns: 1fr; } }
