@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/atkinson-hyperlegible-next-latin-ext-wght-normal-C6vrW8VD.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/atkinson-hyperlegible-next-latin-wght-normal-BcXVPD7q.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--prim-white: #ffffff;--prim-ink: #17171f;--prim-ink-soft: #50505e;--prim-ink-faint: #6b6b78;--prim-line: #e4e4ea;--prim-line-strong: #c9c9d3;--prim-tomato: #e5483b;--prim-tomato-text: #b8301f;--prim-tomato-soft: #fde4e0;--prim-cobalt: #2350d8;--prim-cobalt-text: #1f3fbf;--prim-cobalt-soft: #dde5ff;--prim-sun: #ffc233;--prim-sun-text: #7a5600;--prim-sun-soft: #fff0bf;--prim-mint: #18a074;--prim-mint-soft: #d8f3e8;--prim-mist: #f1f1f4;--surface-page: var(--prim-white);--surface-sheet: var(--prim-white);--surface-sunken: var(--prim-mist);--text: var(--prim-ink);--text-muted: var(--prim-ink-soft);--text-faint: var(--prim-ink-faint);--border: var(--prim-line);--border-strong: var(--prim-line-strong);--action: var(--prim-ink);--action-text: var(--prim-white);--action-play: var(--prim-cobalt);--action-play-text: var(--prim-white);--mod-app: var(--prim-cobalt-text);--mod-app-mark: var(--prim-cobalt);--mod-app-soft: var(--prim-cobalt-soft);--mod-assist: var(--prim-sun-text);--mod-assist-mark: var(--prim-sun);--mod-assist-soft: var(--prim-sun-soft);--mod-info: var(--prim-ink-soft);--mod-info-mark: var(--prim-ink);--mod-info-soft: var(--prim-mist);--warn: var(--prim-tomato-text);--warn-soft: var(--prim-tomato-soft);--ok: #0e7a57;--focus-ring: var(--prim-sun);--focus-ink: var(--prim-ink);--token-fill: #b9c6f4;--token-best: var(--prim-cobalt);--token-empty: var(--prim-white);--chip-1-bg: var(--prim-tomato);--chip-1-fg: var(--prim-white);--chip-2-bg: var(--prim-cobalt);--chip-2-fg: var(--prim-white);--chip-3-bg: var(--prim-sun);--chip-3-fg: var(--prim-ink);--chip-4-bg: var(--prim-ink);--chip-4-fg: var(--prim-white);--font-display: "Bricolage Grotesque Variable", "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--font-text: "Atkinson Hyperlegible Next Variable", ui-sans-serif, system-ui, sans-serif;--display-weight: 800;--display-tracking: -.03em;--step--1: .875rem;--step-0: 1.0625rem;--step-1: 1.275rem;--step-2: 1.6rem;--step-3: 2.1rem;--step-4: clamp(2.2rem, 1.6rem + 3vw, 3rem);--step-5: clamp(2.8rem, 1.8rem + 5vw, 5.2rem);--step-hero: clamp(3.6rem, 2rem + 8vw, 7.5rem);--leading-text: 1.55;--leading-tight: 1;--measure: 66ch;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4.5rem;--gutter: clamp(1rem, .4rem + 3vw, 4rem);--page-max: 80rem;--radius-token: 999px;--radius-tile: 20px;--radius-sheet: 14px;--radius-control: 999px;--shadow-cover: 0 10px 24px rgb(23 23 31 / .22);--shadow-token: 0 4px 0 rgb(23 23 31 / .22);--tap: 2.75rem;--dur: .16s;--ease: cubic-bezier(.2, .7, .2, 1)}@media(prefers-reduced-motion:reduce){:root{--dur: 0ms}}@media(forced-colors:active){:root{--focus-ring: Highlight}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--surface-page);color:var(--text);font-family:var(--font-text);font-size:var(--step-0);line-height:var(--leading-text)}img,svg{display:block;max-width:100%}a{color:var(--prim-cobalt-text);text-decoration-thickness:.08em;text-underline-offset:.18em}a:hover{text-decoration-thickness:.14em}h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-tracking);line-height:var(--leading-tight);margin:0;text-wrap:balance}h1{font-size:var(--step-5)}h2{font-size:var(--step-3)}h3{font-size:var(--step-1);font-weight:700;letter-spacing:-.01em}p{margin:0;max-width:var(--measure);text-wrap:pretty}ul,ol{margin:0;padding:0}:focus-visible{outline:3px solid var(--focus-ink);outline-offset:2px;box-shadow:0 0 0 6px var(--focus-ring);border-radius:6px}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;left:var(--space-3);top:-4rem;background:var(--surface-sheet);padding:var(--space-2) var(--space-3);z-index:10;color:var(--text)}.skip-link:focus{top:var(--space-3)}.wrap{width:100%;max-width:var(--page-max);margin-inline:auto;padding-inline:var(--gutter)}.demo-banner{background:var(--prim-ink);color:var(--prim-white);font-size:var(--step--1);padding:var(--space-2) 0}.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-6);padding-block:var(--space-5)}.brand{font-family:var(--font-display);font-weight:800;letter-spacing:-.02em;font-size:var(--step-2);text-decoration:none;color:var(--text);display:inline-flex;align-items:center;gap:var(--space-2)}.brand-mark{display:inline-flex;gap:3px}.brand-mark i{width:.85rem;height:.85rem;border-radius:50%;display:block}.brand-mark i:nth-child(1){background:var(--prim-tomato)}.brand-mark i:nth-child(2){background:var(--prim-cobalt)}.brand-mark i:nth-child(3){background:var(--prim-sun)}.site-nav{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-5);margin-left:auto;font-weight:600}.site-nav a{color:var(--text);text-decoration:none;padding:var(--space-2) 0;min-height:var(--tap);display:inline-flex;align-items:center}.site-nav a:hover,.site-nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:.14em}.site-nav a[lang]{color:var(--text-muted)}main{padding-block:var(--space-4) var(--space-8)}.site-footer{border-top:1px solid var(--border);padding-block:var(--space-6);color:var(--text-muted);font-size:var(--step--1)}.site-footer p+p{margin-top:var(--space-2)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap);padding:var(--space-2) var(--space-5);border-radius:var(--radius-control);border:2px solid var(--action);background:var(--action);color:var(--action-text);font:inherit;font-weight:700;text-decoration:none;cursor:pointer;transition:transform var(--dur) var(--ease)}.button:active{transform:translateY(1px)}.button--quiet{background:transparent;color:var(--action)}.button--play{background:var(--action-play);border-color:var(--action-play);color:var(--action-play-text)}.button[aria-pressed=true]{background:var(--mod-app-soft);color:var(--mod-app);border-color:var(--mod-app-mark)}.button:disabled{opacity:.55;cursor:not-allowed}.field{display:grid;gap:var(--space-1)}.field label{font-weight:700}input[type=search],select{font:inherit;color:var(--text);min-height:var(--tap);padding:var(--space-2) var(--space-4);border:2px solid var(--border-strong);border-radius:12px;background:var(--surface-sheet);width:100%}input[type=checkbox]{width:1.25rem;height:1.25rem;accent-color:var(--prim-cobalt);margin:.15rem 0 0;flex:none}.check{display:flex;gap:var(--space-2);align-items:flex-start;min-height:2rem;padding-block:var(--space-1);cursor:pointer}.check .count{color:var(--text-faint);margin-left:auto;padding-left:var(--space-2);font-variant-numeric:tabular-nums}.chip{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:0 var(--space-4);border-radius:var(--radius-token);background:var(--surface-sunken);color:var(--text);text-decoration:none;font-weight:700}.chip:hover{background:var(--border)}.pill{display:inline-flex;align-items:center;gap:var(--space-1);padding:.45rem .95rem;border-radius:var(--radius-token);font-weight:700;background:var(--surface-sunken)}.pill--players{background:var(--prim-sun-soft)}.pill--time{background:var(--prim-cobalt-soft)}.pill--warn{background:var(--warn-soft);color:var(--warn)}.meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-4);color:var(--text-muted);font-size:var(--step--1)}.meta span{display:inline-flex;align-items:center;gap:.35rem}.meta svg{width:1.05rem;height:1.05rem;flex:none}.mode{font-weight:700}.mode--app_engine{color:var(--mod-app)}.mode--in_person_assist{color:var(--mod-assist)}.mode--info_commerce,.mode--external_link{color:var(--mod-info)}.modalities{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;padding:0}.modality{font-size:var(--step--1);font-weight:700;padding:.35rem .85rem;border-radius:var(--radius-token)}.modality--app_engine{color:var(--mod-app);background:var(--mod-app-soft)}.modality--in_person_assist{color:var(--mod-assist);background:var(--mod-assist-soft)}.modality--info_commerce,.modality--external_link{color:var(--mod-info);background:var(--mod-info-soft)}.tile{position:relative;border-radius:var(--radius-tile);background:var(--mod-info-soft);aspect-ratio:4 / 3.4;overflow:hidden}.tile>*{position:absolute;inset:0;margin:auto}.tile--app_engine{background:var(--mod-app-soft)}.tile--in_person_assist{background:var(--mod-assist-soft)}.tile img{width:auto;height:82%;max-width:86%;object-fit:contain;border-radius:6px;box-shadow:var(--shadow-cover)}.cover-fallback{width:auto;height:82%;aspect-ratio:3 / 4;background:var(--prim-white);border-radius:10px;box-shadow:var(--shadow-cover);display:flex;flex-direction:column;justify-content:space-between;padding:8%;text-align:left;container-type:inline-size}.cover-fallback strong{font-family:var(--font-display);font-weight:800;letter-spacing:-.03em;line-height:.95;font-size:clamp(.95rem,15cqi,2.2rem);hyphens:auto;overflow-wrap:break-word}.cover-fallback .dots{display:flex;gap:4px}.cover-fallback .dots i{width:.7rem;height:.7rem;border-radius:50%;display:block}.cover-fallback .dots i:nth-child(1){background:var(--prim-tomato)}.cover-fallback .dots i:nth-child(2){background:var(--prim-cobalt)}.cover-fallback .dots i:nth-child(3){background:var(--prim-sun)}.game-grid{list-style:none;padding:0;display:grid;gap:var(--space-6) var(--space-5);grid-template-columns:repeat(auto-fill,minmax(min(100%,17rem),1fr))}.game-card{position:relative;display:flex;flex-direction:column;gap:var(--space-3)}.game-card h3{font-size:var(--step-2)}.game-card h3 a{color:var(--text);text-decoration:none}.game-card h3 a:after{content:"";position:absolute;inset:0;border-radius:var(--radius-tile)}.game-card:hover h3 a{text-decoration:underline}.game-card:has(a:focus-visible){outline:3px solid var(--focus-ink);outline-offset:6px;border-radius:var(--radius-tile)}.game-card .body{display:grid;gap:var(--space-2);padding-inline:var(--space-1)}.game-card .original{color:var(--text-faint);font-size:var(--step--1)}.game-card .why{font-size:var(--step--1);color:var(--mod-app);font-weight:700}.game-card .advisory{color:var(--warn);font-size:var(--step--1);font-weight:700}.game-card .extra{position:relative;z-index:1;display:grid;gap:var(--space-1);font-size:var(--step--1)}.ruler{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.ruler .t{width:clamp(.85rem,4vw,1.3rem);height:clamp(.85rem,4vw,1.3rem);border-radius:50%;border:2px solid var(--border-strong);background:var(--token-empty);flex:none}.ruler .t.on{background:var(--token-fill);border-color:var(--token-fill)}.ruler .t.best{background:var(--token-best);border-color:var(--token-best)}.ruler .t.unknown{border-style:dashed;border-color:var(--text-faint)}.ruler .more{font-family:var(--font-display);font-weight:800;color:var(--text-faint);margin-left:2px}.ruler .more.on{color:var(--token-best)}.players-line{display:grid;gap:var(--space-1)}.players-line .label{font-size:var(--step--1);color:var(--text-muted)}.timebar{display:flex;height:.7rem;border-radius:var(--radius-token);overflow:hidden;background:var(--surface-sunken);max-width:20rem}.timebar span{display:block;height:100%}.timebar .explanation{background:var(--prim-sun)}.timebar .setup{background:var(--prim-line-strong)}.timebar .play{background:var(--prim-cobalt)}.timelegend{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);font-size:var(--step--1);color:var(--text-muted);margin:var(--space-2) 0 0;padding:0;list-style:none}.timelegend li{display:inline-flex;align-items:center;gap:var(--space-1)}.timelegend i{width:.65rem;height:.65rem;border-radius:50%;display:inline-block}.hero{display:grid;gap:var(--space-5);padding-block:var(--space-6) var(--space-7)}.hero h1{font-size:var(--step-hero);line-height:.92;letter-spacing:-.04em}.hero .lead{font-size:var(--step-1);color:var(--text-muted)}.token-picker{display:flex;flex-wrap:wrap;gap:var(--space-3);list-style:none;padding:0}.token-picker a{width:4rem;height:4rem;border-radius:50%;display:grid;place-items:center;text-decoration:none;font-family:var(--font-display);font-weight:800;font-size:var(--step-2);box-shadow:var(--shadow-token);transition:transform var(--dur) var(--ease)}.token-picker a:hover{transform:translateY(-3px)}.token-picker li:nth-child(4n+1) a{background:var(--chip-1-bg);color:var(--chip-1-fg)}.token-picker li:nth-child(4n+2) a{background:var(--chip-2-bg);color:var(--chip-2-fg)}.token-picker li:nth-child(4n+3) a{background:var(--chip-3-bg);color:var(--chip-3-fg)}.token-picker li:nth-child(4n) a{background:var(--chip-4-bg);color:var(--chip-4-fg)}.chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;padding:0}.section{display:grid;gap:var(--space-5);margin-top:var(--space-8)}.section>header{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-5)}.section>header p{color:var(--text-muted);flex-basis:100%}.idea-list{list-style:none;padding:0;display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr))}.idea{border-radius:var(--radius-tile);padding:var(--space-6) var(--space-5);display:grid;gap:var(--space-2);align-content:start;background:var(--prim-tomato-soft)}.idea:nth-child(3n+2){background:var(--prim-cobalt-soft)}.idea:nth-child(3n){background:var(--prim-sun-soft)}.idea h3{font-size:var(--step-2);font-weight:800}.idea h3 a{color:var(--text);text-decoration:none}.idea h3 a:hover{text-decoration:underline}.idea .count{color:var(--text-muted);font-size:var(--step--1);font-weight:700}.explore{display:grid;gap:var(--space-5)}.explore-head h1{font-size:var(--step-4)}.explore-body{display:grid;gap:var(--space-6)}@media(min-width:64rem){.explore-body{grid-template-columns:18rem minmax(0,1fr);align-items:start}}.filters{display:grid;gap:var(--space-5);padding:var(--space-5);border-radius:var(--radius-tile);background:var(--surface-sunken)}.filters fieldset{border:0;padding:0;margin:0;display:grid;gap:var(--space-1);min-width:0}.filters legend,details.family>summary{font-family:var(--font-display);font-size:var(--step-1);font-weight:800;letter-spacing:-.01em;margin-bottom:var(--space-2);padding:0}.filters>summary{list-style:none}.filters>summary::-webkit-details-marker{display:none}@media(min-width:64rem){.filters>summary{display:none}}details.family>summary{cursor:pointer;min-height:var(--tap);display:flex;align-items:center;margin-bottom:0}details.family[open]>summary{margin-bottom:var(--space-2)}@media(max-width:63.99rem){.explore-body>section{order:-1}}.number-tokens{display:flex;flex-wrap:wrap;gap:var(--space-1);list-style:none;padding:0}.number-tokens button{min-width:var(--tap);min-height:var(--tap);border-radius:50%;border:2px solid var(--border-strong);background:var(--surface-sheet);color:var(--text);font:inherit;font-family:var(--font-display);font-weight:800;cursor:pointer}.number-tokens button:first-child{border-radius:var(--radius-token);padding-inline:var(--space-3)}.number-tokens [aria-pressed=true]{background:var(--prim-ink);border-color:var(--prim-ink);color:var(--prim-white)}.results-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-3)}.results-head h2{font-size:var(--step-3)}.criteria{font-size:var(--step--1);color:var(--text-muted);margin-bottom:var(--space-5)}.applied{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;padding:0;margin-bottom:var(--space-3)}.applied .chip{background:var(--prim-sun-soft);min-height:2.25rem}.empty{padding:var(--space-7) var(--space-5);display:grid;gap:var(--space-3);border-radius:var(--radius-tile);background:var(--surface-sunken)}.empty ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.pagination{display:flex;gap:var(--space-3);align-items:center;justify-content:space-between;margin-top:var(--space-6)}.note{font-size:var(--step--1);color:var(--text-muted)}.loading{opacity:.55;transition:opacity var(--dur) var(--ease)}.game{display:grid;gap:var(--space-7)}.crumbs ol{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;padding:0;font-size:var(--step--1);color:var(--text-muted)}.crumbs a{color:var(--text-muted)}.crumbs li+li:before{content:"/";margin-right:var(--space-2);color:var(--text-faint)}.game-hero{display:grid;gap:var(--space-6);align-items:center}@media(min-width:56rem){.game-hero{grid-template-columns:minmax(0,26rem) minmax(0,1fr);gap:var(--space-7)}}.game-hero .tile{aspect-ratio:4 / 5;border-radius:28px}.game-hero .tile img{height:84%;transform:rotate(-3deg)}.game-hero .cover-fallback{height:80%;transform:rotate(-3deg)}.game-hero .info{display:grid;gap:var(--space-4);align-content:start}.game-hero h1{font-size:var(--step-5);line-height:.95}.game-hero .sub{color:var(--text-muted)}.game-hero .summary{font-size:var(--step-1)}.game-hero .pills{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.game-hero .pills .modality{font-size:var(--step-0);padding:.45rem .95rem}.game-hero .actions{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.box-photo{display:grid;gap:var(--space-2)}.box-photo img{max-height:16rem;width:auto;border-radius:8px;box-shadow:var(--shadow-cover)}.game-layout{display:grid;gap:var(--space-7)}@media(min-width:62rem){.game-layout{grid-template-columns:minmax(0,1fr) 22rem;align-items:start}}.game-layout>*,.game-main>*,.essentials dl>*{min-width:0}.game-main{display:grid;gap:var(--space-7)}.essentials{padding:var(--space-6);border-radius:var(--radius-tile);background:var(--surface-sunken);display:grid;gap:var(--space-5)}.essentials dl{display:grid;gap:var(--space-5);margin:0}.essentials dt{font-weight:700;margin-bottom:var(--space-2)}.essentials dd{margin:0}@media(min-width:40rem){.essentials dl{grid-template-columns:1fr 1fr}}.materials{list-style:none;padding:0;display:grid;gap:var(--space-1)}.materials .app{color:var(--mod-app);font-size:var(--step--1);font-weight:700}.play-actions{display:grid;gap:var(--space-3)}.play-actions h2{margin-bottom:var(--space-2)}.capability{display:grid;gap:var(--space-1);padding:var(--space-4) var(--space-5);border-radius:var(--radius-sheet);background:var(--mod-info-soft)}.capability--app_engine{background:var(--mod-app-soft)}.capability--in_person_assist{background:var(--mod-assist-soft)}.capability strong{font-size:var(--step-1);font-family:var(--font-display);font-weight:800;letter-spacing:-.01em}.capability .state{font-size:var(--step--1);color:var(--text-muted)}.advisory-box{background:var(--warn-soft);border-radius:var(--radius-sheet);padding:var(--space-3) var(--space-4)}.advisory-box strong{color:var(--warn)}.rules{display:grid;gap:var(--space-5)}.rules section{display:grid;gap:var(--space-2)}.rules h3{font-size:var(--step-2)}.rules ol,.rules ul{padding-left:1.4rem;display:grid;gap:var(--space-2);max-width:var(--measure)}.rules .rules-brief{background:var(--prim-sun-soft);border-radius:var(--radius-tile);padding:var(--space-5) var(--space-6);gap:var(--space-3)}.rules .rules-summary{font-size:var(--step-1)}.rules h4{font-family:var(--font-display);font-size:var(--step-1);font-weight:800;margin:var(--space-2) 0 0}.rules .rules-brief ol{counter-reset:q;list-style:none;padding-left:0}.rules .rules-brief li{counter-increment:q;display:grid;grid-template-columns:2.25rem 1fr;gap:var(--space-2);align-items:start}.rules .rules-brief li:before{content:counter(q);font-family:var(--font-display);font-weight:800;width:1.9rem;height:1.9rem;border-radius:50%;display:grid;place-items:center;font-size:var(--step--1);background:var(--prim-ink);color:var(--prim-white)}.rules .rules-brief li:nth-child(4n+1):before{background:var(--prim-tomato)}.rules .rules-brief li:nth-child(4n+2):before{background:var(--prim-cobalt)}.rules .rules-brief li:nth-child(4n+3):before{background:var(--prim-sun);color:var(--prim-ink)}.rules .example{border-left:4px solid var(--prim-cobalt);padding-left:var(--space-4);display:grid;gap:var(--space-3)}.rules-toc{border:2px solid var(--border);border-radius:var(--radius-sheet);padding:var(--space-4) var(--space-5)}.rules .rules-toc ol{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);list-style:none;padding:0;max-width:none}.rules .rules-toc a{font-weight:700}.rules section[id]{scroll-margin-top:var(--space-5)}.rules .steps li::marker{font-family:var(--font-display);font-weight:800;color:var(--mod-app)}.components{display:grid;gap:var(--space-2);margin:0;max-width:var(--measure)}.components>div{display:grid;grid-template-columns:minmax(8rem,14rem) 1fr;gap:var(--space-3);padding-block:var(--space-2);border-bottom:1px solid var(--border)}.components dt{font-weight:700}.components dd{margin:0}@media(max-width:34rem){.components>div{grid-template-columns:1fr;gap:var(--space-1)}}.faq details{border-bottom:1px solid var(--border);max-width:var(--measure)}.faq summary{cursor:pointer;font-weight:700;min-height:var(--tap);display:flex;align-items:center;padding-block:var(--space-2)}.faq details p{padding-bottom:var(--space-3)}.variant-tag{font-size:var(--step--1);color:var(--text-muted)}details.variant{border-top:1px solid var(--border);padding-top:var(--space-4)}details.variant summary{cursor:pointer;font-family:var(--font-display);font-size:var(--step-2);font-weight:800;min-height:var(--tap)}.aside{display:grid;gap:var(--space-5)}.aside section{display:grid;gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-tile);border:2px solid var(--border)}.aside h2{font-size:var(--step-2)}.link-list{list-style:none;padding:0;display:grid;gap:var(--space-4)}.link-list li{display:grid;gap:var(--space-1)}.link-list .meta-line{font-size:var(--step--1);color:var(--text-muted)}.kind{font-size:var(--step--1);font-weight:700}.kind--official_online{color:var(--mod-app)}.kind--fan_implementation,.kind--similar_game{color:var(--mod-assist)}.kind--platform{color:var(--mod-info)}.sources{font-size:var(--step--1);color:var(--text-muted)}.sources ul{list-style:none;padding:0;display:grid;gap:var(--space-1)}.badge-unverified{color:var(--mod-assist);font-weight:700}.badge-verified{color:var(--ok);font-weight:700}.collection-head{display:grid;gap:var(--space-3)}.collection-head h1{font-size:var(--step-4)}.collection-head .intent{font-size:var(--step-1)}.collection-items .reason{font-weight:700}.collection-items .limit{color:var(--warn)}.state-page{padding:var(--space-7) 0;display:grid;gap:var(--space-4);justify-items:start}.error-box{background:var(--warn-soft);padding:var(--space-4);border-radius:var(--radius-sheet)}.hero-grid{display:grid;gap:var(--space-6);align-items:center}@media(min-width:60rem){.hero-grid{grid-template-columns:1.05fr 1fr}}.hero-art{margin:0;border-radius:var(--radius-tile);overflow:hidden;background:var(--surface-sunken)}.hero-art img{width:100%;height:auto;display:block}.sentence-filter{display:grid;gap:var(--space-4);padding:var(--space-5);border:2px solid var(--border);border-radius:var(--radius-tile);background:var(--surface-sheet);max-width:40rem}.sentence-filter p{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);font-family:var(--font-display);font-weight:800;font-size:var(--step-1);max-width:none}.stepper{display:inline-flex;align-items:center;gap:var(--space-1);padding:.2rem;border-radius:999px;background:var(--surface-sunken)}.stepper button{width:2.5rem;height:2.5rem;border-radius:50%;border:0;background:var(--surface-sheet);font:inherit;font-size:var(--step-1);cursor:pointer;box-shadow:0 1px 2px #17171f26}.stepper button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:1px}.stepper input{width:3.2rem;border:0;background:transparent;text-align:center;font:inherit;font-variant-numeric:tabular-nums;-moz-appearance:textfield}.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.sf-check{display:inline-flex;align-items:center;gap:var(--space-2);padding:.35rem .9rem;border:2px dashed var(--prim-cobalt);border-radius:999px;color:var(--mod-app)}.sf-check input{width:1.2rem;height:1.2rem;accent-color:var(--prim-cobalt)}.sf-check:has(input:checked){border-style:solid;background:var(--mod-app-soft)}.sentence-filter .button{justify-self:stretch;min-height:3.25rem}.hero-shortcuts{margin-top:var(--space-1)}.mode-blocks{list-style:none;padding:0;display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}.mode-block a{display:grid;gap:var(--space-2);height:100%;padding:var(--space-5);border:2px solid var(--border);border-radius:var(--radius-tile);color:var(--text);text-decoration:none}.mode-block a:before{content:"";width:3rem;height:.4rem;border-radius:999px;background:var(--bar)}.mode-block strong{font-family:var(--font-display);font-size:var(--step-2);font-weight:800;letter-spacing:-.02em}.mode-block span{color:var(--text-muted)}.mode-block a:hover{border-color:var(--bar)}.mode-block--app{--bar: var(--prim-cobalt)}.mode-block--assist{--bar: var(--prim-mint)}.mode-block--box{--bar: var(--prim-tomato)}.fact-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:var(--space-2)}.fact-tiles>div{display:grid;gap:.15rem;padding:var(--space-3) var(--space-4);border-radius:12px;background:var(--surface-sunken)}.fact-tiles span{font-size:var(--step--1);color:var(--text-muted)}.fact-tiles strong{font-weight:700}.action-box{display:grid;gap:var(--space-3);padding:var(--space-4);border:2px solid var(--border);border-radius:var(--radius-tile);background:var(--surface-sheet);max-width:28rem}.action-box .button{justify-content:center}.button--wide{width:100%;min-height:3.25rem}.hero-text{display:grid;gap:var(--space-5);min-width:0}@media(min-width:60rem){.hero-grid h1{font-size:clamp(3.4rem,1.5rem + 4.6vw,6rem)}}:root[data-immersive] .site-header,:root[data-immersive] .site-footer,:root[data-immersive] .demo-banner{display:none}:root[data-immersive] main{padding-block:var(--space-4)}.play-page{display:grid;gap:var(--space-6);max-width:46rem}.play-page .lead{font-size:var(--step-1);color:var(--text-muted)}.play-form{display:grid;gap:var(--space-5)}.play-form fieldset,.config-group{border:0;padding:0;margin:0;display:grid;gap:var(--space-3)}.play-form legend,.config-group legend{font-family:var(--font-display);font-weight:800;font-size:var(--step-2);letter-spacing:-.02em;margin-bottom:var(--space-2)}.input{font:inherit;color:var(--text);min-height:var(--tap);padding:var(--space-2) var(--space-4);border:2px solid var(--border-strong);border-radius:12px;background:var(--surface-sheet);width:100%}.input:focus-visible{outline:3px solid var(--focus-ring);outline-offset:1px;border-color:var(--focus-ink)}.input--num{max-width:8rem}.code-input{font-family:var(--font-display);font-weight:800;font-size:var(--step-3);letter-spacing:.18em;text-transform:uppercase;max-width:14rem}.engine-pick{grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr))}.engine-option,.mode-option{position:relative;display:grid;gap:var(--space-1);align-content:start;padding:var(--space-4) var(--space-4) var(--space-4) 3rem;border:2px solid var(--border);border-radius:var(--radius-sheet);cursor:pointer;background:var(--surface-sheet)}.engine-option input,.mode-option input{position:absolute;left:var(--space-4);top:calc(var(--space-4) + .2rem);width:1.25rem;height:1.25rem;accent-color:var(--prim-cobalt)}.engine-option strong,.mode-option strong{font-family:var(--font-display);font-size:var(--step-1);letter-spacing:-.01em}.engine-option.is-on,.mode-option.is-on{border-color:var(--prim-cobalt);background:var(--mod-app-soft)}.engine-option:has(input:focus-visible),.mode-option:has(input:focus-visible){outline:3px solid var(--focus-ink);outline-offset:3px}.mode-option.is-off{cursor:not-allowed;opacity:.7}.button--huge{min-height:4rem;font-size:var(--step-1);padding-inline:var(--space-6)}.button--small{min-height:2rem;padding:.2rem .8rem;font-size:var(--step--1)}.lobby{display:grid;gap:var(--space-6);max-width:46rem}.lobby-code{display:grid;gap:var(--space-3);justify-items:start}.room-code{font-family:var(--font-display);font-weight:800;font-size:var(--step-hero);letter-spacing:.12em;line-height:1}.qr{width:min(15rem,60vw);height:auto;border-radius:12px;border:2px solid var(--border)}.eyebrow{font-weight:700;color:var(--mod-app);text-transform:uppercase;letter-spacing:.06em;font-size:var(--step--1)}.people{list-style:none;padding:0;display:grid;gap:var(--space-2)}.people li{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:var(--space-1) var(--space-3);border-radius:12px;background:var(--surface-sunken)}.people li .button{margin-left:auto}.people--out li{text-decoration:line-through;color:var(--text-muted)}.dot{width:.7rem;height:.7rem;border-radius:50%;background:var(--border-strong);flex:none}.dot--on{background:var(--prim-mint)}.tag{font-size:var(--step--1);font-weight:700;padding:.1rem .6rem;border-radius:999px;background:var(--prim-sun-soft);color:var(--prim-sun-text)}.tag--warn{background:var(--warn-soft);color:var(--warn)}.inline-form{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-2);margin-top:var(--space-3)}.inline-form label{flex-basis:100%;font-weight:700}.inline-form .input{flex:1 1 12rem;width:auto}.config{display:grid;gap:var(--space-4);margin-block:var(--space-3) var(--space-5)}.teams{display:grid;gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(min(100%,12rem),1fr))}.team{display:grid;gap:var(--space-1);padding:var(--space-3);border-radius:12px;background:var(--mod-app-soft)}.note-list{margin:0 0 var(--space-4);padding-left:1.2rem;color:var(--warn)}.status-banner{position:sticky;top:0;z-index:5;background:var(--prim-sun);color:var(--prim-ink);font-weight:700;padding:var(--space-2) var(--space-4);border-radius:12px}.room{display:grid;gap:var(--space-4)}.play-stack{display:grid;gap:var(--space-4);justify-items:start;max-width:46rem}.room--table .play-stack,.room--shared .table-area .play-stack{max-width:none;justify-items:center;text-align:center}.play-actions-row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}.big{font-family:var(--font-display);font-weight:800;font-size:var(--step-3);letter-spacing:-.02em;line-height:1.1;max-width:24ch}.room--table .big{font-size:var(--step-5);max-width:20ch}.big--app{color:var(--mod-app)}.big--warn{color:var(--warn)}.big--ok{color:var(--ok)}.big--sun{background:var(--prim-sun);padding:.1em .35em;border-radius:12px}.countdown{font-family:var(--font-display);font-weight:800;font-size:clamp(3.5rem,2rem + 10vw,9rem);line-height:1;font-variant-numeric:tabular-nums}.countdown--low{color:var(--warn)}.paper{font-family:var(--font-display);font-weight:800;font-size:clamp(2.2rem,1.4rem + 5vw,4.5rem);letter-spacing:-.02em;line-height:1.05;background:var(--prim-sun-soft);padding:var(--space-6) var(--space-5);border-radius:6px;transform:rotate(-1.5deg);box-shadow:0 10px 24px #17171f1f;width:100%;text-align:center;overflow-wrap:anywhere}.scoreboard{width:100%}.scoreboard ol{list-style:none;padding:0;display:grid;gap:var(--space-2)}.scoreboard li{display:grid;grid-template-columns:minmax(6rem,auto) 1fr auto;gap:var(--space-3);align-items:center}.scoreboard .bar{height:.9rem;border-radius:999px;background:var(--surface-sunken);position:relative;overflow:hidden}.scoreboard .bar:after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:var(--prim-cobalt);border-radius:inherit;transition:width .4s ease}.scoreboard li.is-active .who{font-weight:800}.scoreboard li.is-active .bar:after{background:var(--prim-tomato)}.scoreboard strong{font-family:var(--font-display);font-size:var(--step-2);font-variant-numeric:tabular-nums}.room--table .scoreboard{max-width:50rem;font-size:var(--step-1)}.choice-list{border:0;padding:0;margin:0;display:grid;gap:var(--space-2);width:100%;grid-template-columns:repeat(auto-fill,minmax(min(100%,10rem),1fr))}.choice-list legend{font-family:var(--font-display);font-weight:800;font-size:var(--step-2);margin-bottom:var(--space-3)}.button.choice{justify-content:center;min-height:3.5rem;font-size:var(--step-1)}.people-columns{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));width:100%;text-align:start}.role-card{width:100%;border-radius:var(--radius-sheet);padding:var(--space-4);background:var(--surface-sunken);border:2px solid var(--border)}.role-card summary{cursor:pointer;font-weight:700;min-height:var(--tap);display:flex;align-items:center}.role-card[open]{display:grid;gap:var(--space-2)}.role-name{font-family:var(--font-display);font-weight:800;font-size:var(--step-4)}.role-card--mafia{background:var(--prim-ink);color:var(--prim-white);border-color:var(--prim-ink)}.role-card--doctor{background:var(--prim-mint-soft)}.role-card--detective{background:var(--mod-app-soft)}.holder-bar{position:sticky;top:0;z-index:4;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:12px;background:var(--prim-ink);color:var(--prim-white)}.holder-bar .button{color:var(--prim-white);border-color:var(--prim-white)}.handoff{display:grid;gap:var(--space-3);width:100%;padding:var(--space-5);border-radius:var(--radius-tile);background:var(--mod-app-soft)}.table-area{width:100%;border-top:2px dashed var(--border);padding-top:var(--space-5)}.guess-form{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.guess-form .note{flex-basis:100%}.guesses{list-style:none;padding:0;display:grid;gap:var(--space-2)}.guesses li{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.code-display{font-family:var(--font-display);font-weight:800;font-size:var(--step-2);letter-spacing:.15em;font-variant-numeric:tabular-nums}.black-card,.white-card{border-radius:14px;padding:var(--space-5);font-weight:700;font-size:var(--step-1);line-height:1.3;text-align:start}.black-card{background:var(--prim-ink);color:var(--prim-white);width:min(100%,26rem);min-height:10rem;font-size:var(--step-2)}.hand,.submissions{list-style:none;padding:0;display:grid;gap:var(--space-3);width:100%;grid-template-columns:repeat(auto-fill,minmax(min(100%,11rem),1fr))}.white-card{position:relative;display:block;width:100%;min-height:8rem;background:var(--surface-sheet);color:var(--text);border:2px solid var(--border-strong);cursor:pointer;font:inherit;font-weight:700}.white-card[aria-pressed=true]{border-color:var(--prim-cobalt);background:var(--mod-app-soft)}.white-card:disabled{cursor:default}.white-card .order{position:absolute;top:var(--space-2);right:var(--space-2);width:1.6rem;height:1.6rem;border-radius:50%;display:grid;place-items:center;background:var(--prim-cobalt);color:#fff;font-size:var(--step--1)}.white-card .author{display:block;margin-top:var(--space-3);font-weight:400;color:var(--text-muted)}.picker{justify-items:center}.wheel-wrap{position:relative;width:min(24rem,80vw);aspect-ratio:1}.picker--table .wheel-wrap{width:min(40rem,82vmin)}.wheel{width:100%;height:100%}.wheel-label{font-family:var(--font-display);font-weight:800;font-size:11px}.wheel-arrow{position:absolute;left:50%;top:-.6rem;translate:-50% 0;z-index:1;width:0;height:0;border-left:1.1rem solid transparent;border-right:1.1rem solid transparent;border-top:2.2rem solid var(--prim-ink);filter:drop-shadow(0 3px 2px rgb(0 0 0 / .2))}@media(prefers-reduced-motion:reduce){.wheel{transition:none!important}}.buzzer-table{display:grid;grid-template-rows:1fr 1fr;gap:var(--space-2);height:calc(100dvh - 2 * var(--space-4));width:100%}@media(orientation:landscape){.buzzer-table{grid-template-rows:none;grid-template-columns:1fr 1fr}}.buzz{display:grid;place-content:center;gap:var(--space-2);border:0;border-radius:var(--radius-tile);font:inherit;color:#fff;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;transition:transform 80ms ease,filter .15s ease}.buzz--a{background:var(--prim-tomato)}.buzz--b{background:var(--prim-cobalt)}@media(orientation:portrait){.buzz--a{transform:rotate(180deg)}}.buzz:disabled{filter:saturate(.35) brightness(.9);cursor:default}.buzz.is-first{filter:none;outline:.6rem solid var(--prim-sun);outline-offset:-.6rem}.buzz:active:not(:disabled){scale:.98}.buzz-name{font-family:var(--font-display);font-weight:800;font-size:var(--step-4)}.buzz-score{font-family:var(--font-display);font-weight:800;font-size:clamp(3rem,2rem + 8vw,8rem);line-height:1}.buzz-state{font-weight:700;font-size:var(--step-2);min-height:1.5em}.code-card{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4) var(--space-5);padding:var(--space-4);border:2px solid var(--border);border-radius:var(--radius-tile);background:var(--surface-sheet)}.code-card .qr{width:min(9.5rem,40vw)}.code-card .room-code{font-size:clamp(3rem,2rem + 6vw,5.5rem)}.seat-count{color:var(--text-faint);font-size:.7em}.people li.seat-empty{background:transparent;border:2px dashed var(--border);color:var(--text-faint)}
