@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jost-latin-400-normal-q-RKOgPK.woff2) format("woff2"),url(/assets/jost-latin-400-normal-C7S-3Ky6.woff) format("woff")}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jost-latin-500-normal-41lBe9I9.woff2) format("woff2"),url(/assets/jost-latin-500-normal-B-AtzreL.woff) format("woff")}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jost-latin-600-normal-C497H-z9.woff2) format("woff2"),url(/assets/jost-latin-600-normal-Bv_M0d15.woff) format("woff")}:root{--color-paper: #f4f1ea;--color-paper-raised: #ebe6db;--color-ink: #1c1a17;--color-ink-muted: #5f5a52;--color-rule: #1c1a17;--color-rule-soft: #c9c2b4;--color-suns: #c8321d;--color-moons: #1c1a17;--color-crowns: #e2a900;--color-arms: #1f4c9e;--diagram-card: #fbfaf6;--color-on-suns: #ffffff;--color-on-moons: #f4f1ea;--color-on-crowns: #ffffff;--color-on-arms: #ffffff;--color-action: #1c1a17;--color-on-action: #f4f1ea;--color-focus: #1f4c9e;--font-sans: "Jost", "Futura", "Century Gothic", sans-serif;--text-xs: .8125rem;--text-sm: .9375rem;--text-md: 1.0625rem;--text-lg: 1.3125rem;--text-xl: 1.75rem;--text-2xl: 2.25rem;--leading-tight: 1.15;--leading-body: 1.5;--weight-regular: 400;--weight-medium: 500;--weight-bold: 600;--space-1: 4px;--space-2: 8px;--space-3: 16px;--space-4: 32px;--space-5: 64px;--rule-thin: 1px;--rule-thick: 2px;--radius-sm: 8px;--radius: 12px;--radius-lg: 24px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgb(28 26 23 / .06), 0 2px 8px rgb(28 26 23 / .06);--shadow-md: 0 4px 12px rgb(28 26 23 / .1), 0 12px 32px rgb(28 26 23 / .1);--shadow-sheet: 0 -8px 40px rgb(28 26 23 / .16);--tap-target: 48px;--safe-bottom: max(env(safe-area-inset-bottom), var(--space-3));--content-width: 40rem;--nav-height: 64px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-paper: #1b1916;--color-paper-raised: #26231f;--color-ink: #ece6da;--color-ink-muted: #bdb6a9;--color-rule: #ece6da;--color-rule-soft: #423d36;--color-suns: #e5533c;--color-moons: #ece6da;--color-crowns: #f0bd2a;--color-arms: #5d8be0;--color-on-moons: #1b1916;--diagram-card: #2e2a25;--color-action: #ece6da;--color-on-action: #1b1916;--color-focus: #5d8be0;--shadow-sm: 0 1px 2px rgb(0 0 0 / .3), 0 2px 8px rgb(0 0 0 / .25);--shadow-md: 0 4px 12px rgb(0 0 0 / .35), 0 12px 32px rgb(0 0 0 / .35);--shadow-sheet: 0 -8px 40px rgb(0 0 0 / .5)}}:root[data-theme=dark]{--color-paper: #1b1916;--color-paper-raised: #26231f;--color-ink: #ece6da;--color-ink-muted: #bdb6a9;--color-rule: #ece6da;--color-rule-soft: #423d36;--color-suns: #e5533c;--color-moons: #ece6da;--color-crowns: #f0bd2a;--color-arms: #5d8be0;--color-on-moons: #1b1916;--diagram-card: #2e2a25;--color-action: #ece6da;--color-on-action: #1b1916;--color-focus: #5d8be0;--shadow-sm: 0 1px 2px rgb(0 0 0 / .3), 0 2px 8px rgb(0 0 0 / .25);--shadow-md: 0 4px 12px rgb(0 0 0 / .35), 0 12px 32px rgb(0 0 0 / .35);--shadow-sheet: 0 -8px 40px rgb(0 0 0 / .5)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;color-scheme:light dark;scrollbar-width:none;overflow-x:hidden}html::-webkit-scrollbar{display:none}html:has(dialog[open]){overflow:hidden}body{margin:0;min-height:100dvh;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-md);line-height:var(--leading-body);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.prose,input,textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}h1,h2,h3{margin:0;line-height:var(--leading-tight);font-weight:var(--weight-bold);text-wrap:balance}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-md)}p{margin:0}a{color:inherit}button,input{font:inherit;color:inherit}input[type=search]::-webkit-search-cancel-button{display:none}:focus-visible{outline:var(--rule-thick) solid var(--color-focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.app{min-height:100dvh;padding-bottom:var(--safe-bottom);overflow-x:clip}.app.has-nav{padding-bottom:calc(var(--nav-height) + var(--safe-bottom))}.screen{max-width:var(--content-width);margin-inline:auto;padding:var(--space-4) var(--space-3) var(--space-5);padding-top:calc(var(--space-3) + env(safe-area-inset-top));display:flex;flex-direction:column;gap:var(--space-4)}.screen-dense{gap:var(--space-3)}.section-spaced{margin-top:var(--space-3)}.screen-with-float{padding-bottom:calc(var(--space-5) + var(--tap-target) + var(--space-4))}.screen-header{display:flex;flex-direction:column;gap:var(--space-2)}.favorites-header{flex-direction:row;align-items:center;justify-content:space-between}.results-count{font-size:var(--text-md);font-weight:var(--weight-medium)}.list-head{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:calc(var(--space-3) * -1)}.list-head .results-count{display:flex;align-items:center;gap:var(--space-2);margin:0}.list-head .results-count:after{content:"";flex:1;height:var(--rule-thin);background:var(--color-rule-soft)}.list-head p{margin:calc(var(--space-3) * -1) 0 0;font-size:var(--text-sm)}.filter-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-ink-muted)}.muted{color:var(--color-ink-muted)}.lead{font-size:var(--text-lg);line-height:1.4}.display{font-size:var(--text-xl)}.top-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:var(--tap-target);margin-top:calc(var(--space-2) * -1)}.top-bar-title{position:relative;display:inline-flex;align-items:center;font-weight:var(--weight-bold)}.top-bar-title-button{display:inline-flex;align-items:center;gap:var(--space-1);min-height:var(--tap-target);padding:0 var(--space-2);border:0;background:none;color:inherit;font:inherit;cursor:pointer}.top-bar-action{grid-column:3;justify-self:end;margin-right:calc(var(--space-2) * -1)}.back-link{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--tap-target);justify-self:start;text-decoration:none;font-weight:var(--weight-medium)}.wordmark{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3)}.wordmark-text{margin:0;font-size:3.5rem;line-height:.85;letter-spacing:-.02em}.wordmark-logo{display:block;width:auto;height:32px;overflow:visible;cursor:pointer;-webkit-tap-highlight-color:transparent}.wordmark-letters [class^=wm-]{transform-box:fill-box;transform-origin:center bottom}.wordmark-letters .wm-d{transform-origin:right bottom}.wordmark-letters.is-wiggle [class^=wm-]{animation-delay:calc(var(--wm-order) * 80ms)}.wordmark-letters.is-wiggle .wm-t{animation-name:wm-hop;animation-duration:.52s;animation-timing-function:cubic-bezier(.3,.7,.4,1)}.wordmark-letters.is-wiggle .wm-u{animation-name:wm-rock;animation-duration:.64s;animation-timing-function:ease-in-out}.wordmark-letters.is-wiggle .wm-d{animation-name:wm-tip;animation-duration:.6s;animation-timing-function:ease-in-out}.wordmark-letters.is-wiggle .wm-o{animation-name:wm-bounce;animation-duration:.56s;animation-timing-function:cubic-bezier(.3,.7,.4,1)}@keyframes wm-hop{30%{transform:translateY(-14px) scaleY(1.05)}60%{transform:translateY(0) scaleY(.9)}80%{transform:translateY(-3px)}}@keyframes wm-rock{25%{transform:rotate(-18deg)}55%{transform:rotate(14deg)}80%{transform:rotate(-5deg)}}@keyframes wm-tip{35%{transform:rotate(14deg)}70%{transform:rotate(-4deg)}}@keyframes wm-bounce{30%{transform:translateY(-16px) scale(.95,1.05)}60%{transform:translateY(0) scale(1.15,.85)}80%{transform:translateY(-4px)}}.wordmark-letters.is-roll-in [class^=wm-]{animation-duration:.52s;animation-timing-function:ease-out;animation-delay:calc(.52s + var(--wm-chain) * .1s)}.wordmark-letters.is-roll-in .wm-d{animation-name:wm-bumped}.wordmark-letters.is-roll-in .wm-u,.wordmark-letters.is-roll-in .wm-o{animation-name:wm-pushed}.wordmark-letters.is-roll-in .wm-t{animation-name:wm-knocked}.wordmark-letters.is-roll-in .wm-roller{animation:wm-roll-in 1.1s cubic-bezier(.25,.1,.3,1)}@keyframes wm-roll-in{0%{transform:translate(900px)}56%{transform:translate(-6px) scale(.9,1.06)}68%{transform:translate(18px) translateY(-6px)}82%{transform:translate(-2px) scale(1.04,.96)}to{transform:none}}@keyframes wm-bumped{25%{transform:rotate(-12deg)}55%{transform:rotate(6deg)}80%{transform:rotate(-2deg)}}@keyframes wm-pushed{25%{transform:translate(-7px) rotate(-10deg)}55%{transform:translate(1px) rotate(4deg)}80%{transform:rotate(-1deg)}}@keyframes wm-knocked{25%{transform:translate(-6px,-5px) rotate(-7deg)}55%{transform:translate(1px) rotate(2deg)}80%{transform:none}}@media(prefers-reduced-motion:reduce){.wordmark-letters.is-wiggle [class^=wm-],.wordmark-letters.is-roll-in [class^=wm-]{animation:none}}.game-tile{position:relative;display:block;flex-shrink:0;overflow:hidden}.game-tile:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:var(--rule-thick) solid var(--tile-color);border-radius:inherit;pointer-events:none}.game-tile svg{display:block}.game-hero{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}.game-hero h1{font-size:var(--text-2xl)}.game-hero-compact{flex-direction:row;align-items:center;gap:var(--space-3)}.game-hero-compact h1{font-size:var(--text-xl)}.bottom-nav{position:fixed;inset:auto 0 0 0;z-index:20;display:flex;height:calc(var(--nav-height) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--color-paper);border-top:var(--rule-thin) solid var(--color-rule-soft)}.scroll-indicator{position:fixed;top:calc(env(safe-area-inset-top) + var(--space-2));right:2px;bottom:calc(var(--safe-bottom) + var(--space-2));z-index:30;width:3px;pointer-events:none}.app.has-nav .scroll-indicator{bottom:calc(var(--nav-height) + var(--safe-bottom) + var(--space-2))}.scroll-thumb{position:absolute;top:0;right:0;width:3px;border-radius:2px;background:var(--color-ink);opacity:0;transition:opacity .3s ease-out}.scroll-indicator.is-visible .scroll-thumb{opacity:.3;transition-duration:.12s}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);text-decoration:none;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-ink-muted)}.bottom-nav a[aria-current=page]{color:var(--color-ink);font-weight:var(--weight-bold)}.nav-icon{display:grid;place-items:center;width:56px;height:32px;border-radius:var(--radius-pill);transition:background-color .16s ease-out}.bottom-nav a[aria-current=page] .nav-icon{--nav-icon-bg: var(--color-ink);background:var(--color-ink);color:var(--color-paper);animation:pop .32s cubic-bezier(.34,1.56,.64,1)}.pop-in{animation:pop .42s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(var(--i, 0) * 50ms)}.app[data-entrance=off] .pop-in{animation:none}@keyframes pop{0%{opacity:0;transform:translateY(6px) scale(.92)}}.favorite-button[aria-pressed=true]{color:var(--color-suns)}.heart{display:inline-flex}.heart.is-pop{animation:heart .36s cubic-bezier(.34,1.56,.64,1)}@keyframes heart{0%{transform:scale(.6)}60%{transform:scale(1.25)}}.game-row{position:relative}.game-row .row-favorite{position:absolute;top:var(--space-2);right:calc(var(--space-2) * -1)}.game-row .title{padding-right:var(--space-4)}.kit-list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.kit-list li{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-2);border-radius:var(--radius);background:var(--color-paper-raised);font-size:var(--text-sm);line-height:var(--leading-tight)}.kit-text{white-space:nowrap}.kit-icon{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-pill);background:var(--color-paper);color:var(--color-action)}.kit-guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);margin:0 0 var(--space-4);padding:0;list-style:none}.kit-guide li{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius);background:var(--color-paper-raised);line-height:var(--leading-tight)}.kit-guide-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-pill);background:var(--color-paper);color:var(--kit-color)}.kit-guide-count{justify-self:end;font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--kit-color)}.kit-guide strong,.kit-guide .muted{grid-column:1 / -1}.kit-guide strong{margin-top:var(--space-2)}.kit-guide .muted{margin-top:2px;font-size:var(--text-sm)}.feature-grid{margin:0}.feature-grid li{align-content:start}.feature-grid .kit-guide-icon{grid-column:1 / -1;width:40px;height:40px}.finder-progress{display:flex;gap:var(--space-1);margin-bottom:var(--space-3)}.finder-progress span{flex:1;height:4px;border-radius:var(--radius-pill);background:var(--color-rule-soft);transition:background-color .2s ease-out}.finder-progress .is-done{background:var(--color-ink)}.finder-segments{display:flex;flex-direction:column}.finder-segments .filter-label{margin:0 0 var(--space-2)}.finder-segment{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.finder-segment .toggle{min-width:0;padding-inline:var(--space-1);white-space:nowrap}.finder-parts{margin:var(--space-3) 0 var(--space-2)}.finder-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);margin:0;padding:0;list-style:none}.finder-option{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:64px;padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius);background:var(--color-paper-raised);color:inherit;font:inherit;font-weight:var(--weight-medium);text-align:left;cursor:pointer}.finder-option:active{transform:scale(.97)}.finder-option[aria-pressed=true]{background:var(--color-ink);color:var(--color-paper)}.finder-check{display:grid;margin-left:auto;animation:pop .2s ease-out}.finder-options.is-parts .finder-option{padding-inline:var(--space-2)}.finder-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:var(--radius-pill);background:var(--color-paper);color:var(--color-ink)}.finder-results{margin:0}.finder-actions{position:sticky;bottom:0;display:flex;gap:var(--space-2);margin-bottom:calc(-1 * (var(--space-3) + var(--safe-bottom)));padding:var(--space-3) 0 calc(var(--space-3) + var(--safe-bottom));background:var(--color-paper)}.finder-actions:empty{display:none}.kit-pop{animation:pop .42s cubic-bezier(.34,1.56,.64,1) both;animation-delay:calc(var(--i, 0) * 45ms)}@media(prefers-reduced-motion:reduce){.kit-pop{animation:none}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-3);text-align:center}.empty-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:var(--radius-pill);background:var(--color-paper-raised);color:var(--color-suns)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:48px;padding:0 var(--space-4);border:1.5px solid var(--color-action);border-radius:var(--radius);background:transparent;font-weight:var(--weight-medium);text-decoration:none;cursor:pointer;transition:transform 80ms ease-out}.button:not(.button-primary){color:var(--color-action)}.button-primary{background:var(--color-action);color:var(--color-on-action);font-weight:var(--weight-bold)}.button-wide{width:100%;justify-content:flex-start;padding-inline:var(--space-3)}.split-button{display:flex}.split-button>.button:first-child{flex:1;border-top-right-radius:0;border-bottom-right-radius:0}.split-button-side{gap:var(--space-2);padding-inline:var(--space-3);border-left-color:color-mix(in srgb,var(--color-on-action) 45%,var(--color-action));border-top-left-radius:0;border-bottom-left-radius:0;font-weight:var(--weight-medium)}.button:active,.icon-button:active,.float-button:active,.type-chip:active{transform:scale(.97)}.button:disabled{opacity:.4;cursor:default}.button-row{display:flex;flex-wrap:wrap;gap:var(--space-3)}.action-list{display:flex;flex-direction:column;gap:var(--space-2)}.icon-button{position:relative;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--tap-target);height:var(--tap-target);padding:0;border:0;border-radius:var(--radius-pill);background:transparent;cursor:pointer}.icon-button-framed{width:48px;height:48px;border:var(--rule-thin) solid var(--color-rule-soft);background:var(--color-paper);box-shadow:var(--shadow-sm)}.badge{position:absolute;top:-4px;right:-4px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 var(--space-1);border-radius:var(--radius-pill);background:var(--color-suns);color:var(--color-on-suns);font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:1}.catalog-header-actions{display:inline-flex;flex:none}.catalog-header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);overflow-x:clip;padding-top:var(--space-2)}.sticky-marker{position:absolute;bottom:0;width:1px;height:1px}.catalog-sticky{position:sticky;top:0;z-index:10;display:flex;flex-direction:column;gap:var(--space-3);margin:calc(var(--space-2) * -1) calc(var(--space-3) * -1) calc((var(--space-3) + var(--space-1)) * -1);padding:calc(var(--space-2) + env(safe-area-inset-top)) var(--space-3) calc(var(--space-3) + var(--space-1));border-radius:0 0 var(--radius-lg) var(--radius-lg);background:var(--color-paper);transition:box-shadow .16s ease-out}.catalog-sticky.is-stuck{box-shadow:var(--shadow-md)}.search-row{display:flex;gap:var(--space-3)}.search-field{flex:1;display:flex;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-3);border:var(--rule-thin) solid var(--color-rule-soft);border-radius:var(--radius-pill);background:var(--color-paper);box-shadow:var(--shadow-sm)}.search-field:focus-within{outline:var(--rule-thick) solid var(--color-focus);outline-offset:2px}.search-field input,.float-bar input{flex:1;min-width:0;height:100%;min-height:40px;padding:0;border:0;background:transparent;outline:none}.search-field input::placeholder,.float-bar input::placeholder{color:var(--color-ink-muted);opacity:1}.float-bar input::placeholder{color:inherit;opacity:.7}.type-bar{display:flex;gap:var(--space-2);margin-inline:calc(var(--space-3) * -1);padding:var(--space-1) var(--space-3);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;cursor:grab;-webkit-user-select:none;user-select:none}.type-bar:active{cursor:grabbing}.type-bar::-webkit-scrollbar{display:none}.type-chip{display:inline-flex;align-items:center;gap:var(--space-2);flex-shrink:0;min-height:40px;padding:0 var(--space-3);border:var(--rule-thin) solid var(--color-rule-soft);border-radius:var(--radius-pill);background:transparent;font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer;transition:transform 80ms ease-out}.type-chip[aria-pressed=true]{border-color:var(--color-ink);background:var(--color-ink);color:var(--color-paper)}.chip-row{display:flex;flex-wrap:wrap;gap:var(--space-1);margin:0;padding:0;list-style:none}.chip{display:inline-flex;align-items:center;gap:var(--space-1);min-height:32px;padding:0 var(--space-3);border:0;border-radius:var(--radius-pill);background:var(--color-paper-raised);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:1;white-space:nowrap}.chip-removable{min-height:32px;padding:0 var(--space-3);background:var(--color-ink);color:var(--color-paper);cursor:pointer}.filter{display:flex;flex-direction:column;gap:var(--space-2)}.toggle-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.toggle{min-height:40px;min-width:48px;padding:0 var(--space-3);border:var(--rule-thin) solid var(--color-rule-soft);border-radius:var(--radius-pill);background:transparent;cursor:pointer}.filter .toggle-row{flex-wrap:nowrap}.filter .toggle{flex:1 1 0;min-width:0;padding:0 var(--space-1);white-space:nowrap}.toggle[aria-pressed=true]{border-color:var(--color-ink);background:var(--color-ink);color:var(--color-paper)}.section{display:flex;flex-direction:column;gap:var(--space-3)}.game-list{list-style:none;margin:0;padding:0}.game-list>li+li{border-top:var(--rule-thin) solid var(--color-rule-soft)}.game-link{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) 0;text-decoration:none}.game-row .game-link{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2) var(--space-3);align-items:center}.game-row .summary{grid-column:1 / -1}.game-link-head,.game-link-body{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.game-link .title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:var(--weight-bold);line-height:var(--leading-tight)}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3) var(--space-2);margin:0;padding:var(--space-3) 0 0;list-style:none}.game-cell{display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none}.game-cell-tile{position:relative;margin-bottom:var(--space-2)}.game-cell-tile .new-badge{position:absolute;top:calc(var(--space-1) * -1);right:calc(var(--space-2) * -1)}.game-cell-title{max-width:100%;font-size:var(--text-sm);font-weight:var(--weight-bold);line-height:var(--leading-tight);overflow-wrap:anywhere}.game-cell-info{margin-top:2px;color:var(--color-ink-muted);font-size:var(--text-xs);line-height:var(--leading-tight)}.new-badge{flex:none;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--color-action);color:var(--color-on-action);font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:1.3}.game-link .summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:var(--text-sm);color:var(--color-ink-muted)}.chip-row-compact{flex-wrap:nowrap;gap:var(--space-1);overflow:hidden}.chip-row-compact .chip{min-height:24px;padding:0 var(--space-2);font-size:.75rem}.empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-4) 0;color:var(--color-ink-muted)}.plain-list{margin:0;padding-left:var(--space-4)}.rules-section{margin-top:var(--space-3);scroll-margin-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.rules-heading{display:flex;align-items:center;gap:var(--space-3)}.prose{display:flex;flex-direction:column;gap:var(--space-3)}.prose h3{margin-top:var(--space-2)}.prose ul,.prose ol{margin:0;padding-left:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.suit-word{display:inline-flex;align-items:center;gap:.3em;padding:0 .45em 0 .35em;border-radius:var(--radius-pill);background:var(--color-paper-raised);line-height:1.35;white-space:nowrap}.suit-word svg{flex:none;width:.8em;height:.8em}.prose strong{font-weight:var(--weight-bold)}.prose em{font-style:normal;font-weight:var(--weight-medium)}.diagram{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:var(--space-3);border-radius:var(--radius);background:var(--color-paper-raised)}.diagram svg{display:block;max-width:100%;height:auto;margin-inline:auto;font-family:var(--font-sans)}.prose li>.diagram{margin:var(--space-3) 0 var(--space-2)}.step-card .diagram{background:var(--color-paper)}.diagram figcaption{font-size:var(--text-sm);color:var(--color-ink-muted)}.float-bar{position:fixed;z-index:15;right:max(var(--space-3),calc((100vw - var(--content-width)) / 2 + var(--space-3)));bottom:calc(var(--nav-height) + var(--safe-bottom) + var(--space-3));display:flex;align-items:center;padding:0 var(--space-1);border-radius:var(--radius-pill);background:var(--color-action);color:var(--color-on-action);box-shadow:var(--shadow-md);animation:snap-in .14s cubic-bezier(.2,0,0,1)}.finder-button{padding:0}.finder-button .float-button{gap:0;min-height:52px;padding:0 var(--space-3)}.finder-button-label{display:inline-block;max-width:12em;overflow:hidden;white-space:nowrap;padding-left:var(--space-2);transition:max-width .24s ease-out,opacity .16s ease-out,padding .24s ease-out}.finder-button.is-folded .finder-button-label{max-width:0;padding-left:0;opacity:0}.float-bar-top{top:max(env(safe-area-inset-top),var(--space-2));bottom:auto}@media(pointer:coarse){body:has(input:focus) .bottom-nav{display:none}}.float-bar-wide{left:max(var(--space-3),calc((100vw - var(--content-width)) / 2 + var(--space-3)));gap:var(--space-2);padding-left:var(--space-3)}.float-button{display:inline-flex;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-3);border:0;background:transparent;color:inherit;font-weight:var(--weight-medium);cursor:pointer}.float-divider{width:1px;height:24px;background:currentColor;opacity:.3}.float-bar .icon-button{color:inherit}.sheet{width:100%;max-width:var(--content-width);max-height:calc(100dvh - var(--space-4));margin:auto auto 0;padding:0;border:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--color-paper);color:var(--color-ink);box-shadow:var(--shadow-sheet);scrollbar-width:none;overscroll-behavior:contain}.sheet::-webkit-scrollbar{display:none}.sheet[open]{animation:sheet-in .2s cubic-bezier(.2,0,0,1)}.sheet::backdrop{background:#14120f66}.sheet-body{position:relative;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3) var(--space-3) calc(var(--space-3) + var(--safe-bottom))}.sheet-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;margin-top:calc(var(--space-3) * -1);padding-top:var(--space-3);background:var(--color-paper);margin-right:calc(var(--space-2) * -1)}.sheet-body:focus{outline:none}.contents-list{margin:0;padding:0;list-style:none;counter-reset:section}.contents-list li{counter-increment:section}.contents-list li+li{border-top:var(--rule-thin) solid var(--color-rule-soft)}.contents-list button{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:48px;padding:0;border:0;background:transparent;text-align:left;font-weight:var(--weight-medium);cursor:pointer}.contents-list button:before{content:counter(section);display:grid;place-items:center;width:24px;height:24px;border-radius:var(--radius-pill);background:var(--color-paper-raised);font-size:var(--text-xs);font-variant-numeric:tabular-nums}@keyframes sheet-in{0%{transform:translateY(100%)}}.sheet.is-closing{animation:sheet-out .2s cubic-bezier(.4,0,1,1) forwards}@keyframes sheet-out{to{transform:translateY(100%)}}.sheet[open]::backdrop,.duel-dialog[open]::backdrop{animation:backdrop-in .2s ease-out}.sheet.is-closing::backdrop,.duel-dialog.is-closing::backdrop{animation:backdrop-out .2s ease-in forwards}@keyframes backdrop-in{0%{opacity:0}}@keyframes backdrop-out{to{opacity:0}}.duel-dialog{width:min(90vw,360px);max-width:none;max-height:calc(100dvh - var(--space-4));margin:auto;padding:0;border:0;border-radius:var(--radius-lg);background:var(--color-paper);color:var(--color-ink);box-shadow:var(--shadow-md);outline:none}.duel-dialog[open]{animation:duel-in .18s cubic-bezier(.2,0,0,1)}.duel-dialog::backdrop{background:#14120f66}@keyframes duel-in{0%{transform:scale(.94);opacity:0}}.duel-dialog.is-closing{animation:duel-out .16s ease-in forwards}@keyframes duel-out{to{transform:scale(.94);opacity:0}}.duel-half{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3)}.duel-half.is-flipped{transform:rotate(180deg)}.duel-half+.duel-half{border-top:var(--rule-thin) solid var(--color-rule-soft)}@keyframes snap-in{0%{transform:translateY(8px);opacity:0}}.step-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--color-paper-raised)}.step-actions{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-2)}.step-actions .button{padding-inline:var(--space-3)}.step-card-header{display:flex;align-items:center;justify-content:space-between}.step-count{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-pill);background:var(--color-action);color:var(--color-on-action);font-size:var(--text-lg);font-weight:var(--weight-bold);line-height:1}.progress{display:flex;gap:var(--space-1)}.progress span{flex:1;height:8px;border-radius:var(--radius-pill);background:var(--color-rule-soft)}.progress span[data-done=true]{background:var(--color-action)}.option-group{display:flex;flex-direction:column;gap:var(--space-3)}.welcome-screen{height:calc(100dvh - var(--safe-bottom));padding-bottom:var(--space-3);overflow:hidden}.welcome-pager{flex:1;min-height:0;display:flex;margin-inline:calc(-1 * var(--space-3));overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}.welcome-pager::-webkit-scrollbar{display:none}.welcome-page{flex:0 0 100%;display:flex;flex-direction:column;gap:var(--space-3);padding-inline:var(--space-3);scroll-snap-align:start;scroll-snap-stop:always}.welcome-page h3{margin-top:var(--space-2)}.welcome-install{flex:1;display:flex;flex-direction:column;justify-content:center;gap:var(--space-3)}.access-form{display:flex;flex-direction:column;gap:var(--space-3)}.access-input{letter-spacing:.08em;text-transform:uppercase}.access-input::placeholder{letter-spacing:normal;text-transform:none}.access-wrong{margin:0;color:var(--color-suns)}.locked-head{display:flex;align-items:center;gap:var(--space-3)}.game-lock{flex:none;display:inline-grid;margin-left:var(--space-1);color:var(--color-ink-muted);vertical-align:-2px}.game-cell-lock{position:absolute;right:calc(var(--space-1) * -1);bottom:calc(var(--space-1) * -1);display:grid;place-items:center;width:24px;height:24px;border-radius:var(--radius-pill);background:var(--color-paper-raised);color:var(--color-ink)}.install-code{display:flex;flex-direction:column;gap:var(--space-2)}.install-code p{margin:0}.install-steps{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none;counter-reset:install}.install-steps li{display:flex;align-items:center;gap:var(--space-2);min-height:var(--tap-target);padding:var(--space-2);border-radius:var(--radius);background:var(--color-paper-raised);counter-increment:install}.install-steps li:before{content:counter(install);flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-pill);background:var(--color-paper);font-weight:var(--weight-bold)}.welcome-foot{display:grid;gap:var(--space-3)}.welcome-dots{display:flex;justify-content:center}.welcome-dots button{display:grid;place-items:center;width:32px;height:24px;padding:0;border:0;background:none;cursor:pointer}.welcome-dots button:before{content:"";width:8px;height:8px;border-radius:var(--radius-pill);background:var(--color-rule-soft);transition:width .2s ease-out,background-color .2s ease-out}.welcome-dots button[aria-current]:before{width:24px;background:var(--color-ink)}@media(max-height:720px){.welcome-page{gap:var(--space-2)}.welcome-page .feature-grid li{padding:var(--space-2) var(--space-3)}.welcome-page .feature-grid .kit-guide-icon{width:32px;height:32px}.welcome-page .feature-grid strong{margin-top:var(--space-1)}}.is-waiting{opacity:0}.suit-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin:0;padding:0;list-style:none}.suit-legend li{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius);background:var(--color-paper-raised);font-weight:var(--weight-medium)}.credit{display:flex;flex-direction:column;gap:var(--space-1)}.credit-row{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) 0}.icon-button:disabled{opacity:.35;cursor:default}.player-setup{display:flex;flex-direction:column;gap:var(--space-3)}.player-list{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.player-list li{display:flex;align-items:center;gap:var(--space-2)}.player-mark{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-pill);background:var(--color-paper-raised)}.inline-field{display:flex;align-items:center;gap:var(--space-3)}.number-field{flex:0 0 128px;font-variant-numeric:tabular-nums}.text-field{flex:1;min-width:0;min-height:var(--tap-target);padding:0 var(--space-3);border:var(--rule-thin) solid var(--color-rule-soft);border-radius:var(--radius);background:var(--color-paper)}.text-field:focus-visible{outline-offset:0}.text-field::placeholder{color:var(--color-ink-muted)}.result-banner{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-action)}.score-table-wrap{margin-inline:calc(var(--space-3) * -1);padding-inline:var(--space-3);overflow-x:auto;scrollbar-width:none}.score-screen{height:calc(100dvh - var(--safe-bottom));padding-bottom:var(--space-3)}.app.has-nav .score-screen{height:calc(100dvh - var(--nav-height) - var(--safe-bottom))}.score-screen>*{flex-shrink:0}.score-screen>.score-table-wrap{flex-shrink:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.score-screen .score-table thead th{position:sticky;top:0;z-index:2;background:var(--color-paper)}.score-screen .score-table tfoot th,.score-screen .score-table tfoot td{position:sticky;bottom:0;z-index:2}.score-screen .score-table thead .round-col,.score-screen .score-table tfoot .round-col{z-index:3}.score-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-variant-numeric:tabular-nums}.score-table th,.score-table td{min-width:64px;padding:0;text-align:center}.score-table.is-wide{width:auto;min-width:calc(48px + var(--players) * 88px)}.score-table .round-col{position:sticky;left:0;z-index:1;background:var(--color-paper);box-shadow:calc(var(--space-3) * -1) 0 0 var(--color-paper);width:48px;min-width:48px;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-ink-muted);text-align:left}.score-table thead th{padding-bottom:var(--space-2)}.player-head{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);max-width:100%;font-size:var(--text-sm)}.player-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.totals-row td,.totals-row th{height:48px;background:var(--color-paper-raised);font-weight:var(--weight-bold)}.score-table .totals-row .round-col{background:var(--color-paper-raised)}.totals-row th{padding-left:var(--space-2);border-radius:var(--radius) 0 0 var(--radius);font-size:var(--text-xs)}.totals-row td:last-child{border-radius:0 var(--radius) var(--radius) 0}.totals-row td{font-size:var(--text-lg)}.totals-row td.is-leading{color:var(--color-action)}.score-table tbody tr+tr td,.score-table tbody tr+tr th{border-top:var(--rule-thin) solid var(--color-rule-soft)}.score-cell{width:100%;min-height:var(--tap-target);padding:0;border:0;border-radius:var(--radius-sm);background:transparent;font-size:var(--text-md);font-variant-numeric:tabular-nums;cursor:pointer}.score-cell:active{background:var(--color-paper-raised)}.number-pad{display:flex;flex-direction:column;gap:var(--space-2)}.pad-display{display:block;padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--color-paper-raised);font-size:var(--text-2xl);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;text-align:right}.pad-quick{display:flex;flex-wrap:wrap;gap:var(--space-2)}.pad-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.pad-key{display:grid;place-items:center;min-height:48px;border:0;border-radius:var(--radius);background:var(--color-paper-raised);font-size:var(--text-xl);font-weight:var(--weight-medium);cursor:pointer;transition:transform 80ms ease-out}.pad-key:active{transform:scale(.95)}.pad-key-soft{background:transparent}.pad-actions{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-2)}.player-strip{display:flex;gap:var(--space-2);margin:0 calc(var(--space-3) * -1);padding:var(--space-1) var(--space-3);overflow-x:auto;scrollbar-width:none;list-style:none}.player-strip li{flex:1 0 96px;display:grid;gap:var(--space-1);min-width:0;padding:var(--space-2);border:var(--rule-thick) solid transparent;border-radius:var(--radius);background:var(--color-paper-raised)}.player-strip li.is-active{border-color:var(--color-action)}.player-strip-who{display:flex;align-items:center;gap:var(--space-1);min-width:0;font-size:var(--text-xs)}.player-strip-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.player-strip-score{font-size:2.25rem;font-weight:var(--weight-bold);line-height:1;font-variant-numeric:tabular-nums}.player-strip-bar{display:block;height:4px;overflow:hidden;border-radius:var(--radius-pill);background:var(--color-rule-soft)}.player-strip-bar span{display:block;height:100%;border-radius:var(--radius-pill);background:var(--color-action);transition:width .24s ease-out}.turn-panel{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--color-paper-raised);text-align:center}.turn-total{font-size:3rem;font-weight:var(--weight-bold);line-height:1;font-variant-numeric:tabular-nums;color:var(--color-action)}.turn-rolls{display:flex;flex-wrap:nowrap;justify-content:safe center;gap:var(--space-1);width:100%;min-height:32px;margin:var(--space-2) 0 0;padding:0;list-style:none;overflow-x:auto;scrollbar-width:none}.turn-rolls li{display:grid;place-items:center;flex-shrink:0;color:var(--color-ink)}.die-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.die-face{display:grid;place-items:center;min-height:64px;border:var(--rule-thick) solid var(--color-ink);border-radius:var(--radius);background:var(--diagram-card);font-size:var(--text-2xl);font-weight:var(--weight-bold);cursor:pointer;transition:transform 80ms ease-out}.die-face:active{transform:scale(.95)}.die-roll{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3);border:var(--rule-thick) solid var(--color-ink);border-radius:var(--radius-lg);background:var(--diagram-card);color:var(--color-ink);font:inherit;font-weight:var(--weight-bold);cursor:pointer;-webkit-tap-highlight-color:transparent}.die-roll:active{transform:scale(.98)}.die-roll-face{display:block;line-height:0}.die-roll-face.is-rolling{animation:dice-tumble .48s cubic-bezier(.3,.7,.4,1)}.die-roll.is-bust .die-roll-face{color:var(--color-ink-muted)}@media(prefers-reduced-motion:reduce){.die-roll-face.is-rolling{animation:none}}.die-face.is-bust{border-style:dashed;color:var(--color-ink-muted)}.ranking{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.ranking li{display:flex;align-items:center;gap:var(--space-3);min-height:48px}.ranking li+li{border-top:var(--rule-thin) solid var(--color-rule-soft)}.ranking li.is-winner .ranking-score{color:var(--color-action)}.winner{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3) 0;text-align:center}.winner-icons{display:flex;gap:var(--space-2)}.ranking-place{min-width:16px;color:var(--color-ink-muted);font-variant-numeric:tabular-nums}.ranking-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ranking-score{font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.player-rows{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.player-rows li,.player-rows-head{display:grid;grid-template-columns:18px minmax(0,1fr) 72px var(--tap-target);align-items:center;gap:var(--space-3)}.player-rows li{min-height:64px}.player-rows-head{margin-bottom:calc(var(--space-3) * -1)}.player-rows-head .filter-label,.lives-chips,.lives-state{grid-column:3;justify-self:center}.player-rows li+li{border-top:var(--rule-thin) solid var(--color-rule-soft)}.player-rows-name{min-width:0;overflow:hidden;font-weight:var(--weight-medium);text-overflow:ellipsis;white-space:nowrap}.lives-chips{display:inline-flex;gap:var(--space-1)}.lives-state{color:var(--color-ink-muted);font-size:var(--text-sm)}.lives-state.is-swimming{color:var(--color-arms);font-weight:var(--weight-bold)}.player-rows li.is-out{opacity:.45}.settings-screen{min-height:calc(100dvh - var(--nav-height) - var(--safe-bottom));padding-bottom:var(--space-3)}.settings-list{display:flex;flex-direction:column;border-radius:var(--radius);background:var(--color-paper-raised);overflow:hidden}.settings-row{display:flex;align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-2) var(--space-3);border:0;background:none;color:var(--color-ink);font:inherit;font-weight:var(--weight-medium);text-align:left;text-decoration:none;cursor:pointer}.settings-row+.settings-row{border-top:1px solid var(--color-rule-soft)}.settings-row span{flex:1}.settings-row svg:last-child{color:var(--color-ink-muted)}.license+.license{border-top:1px solid var(--color-rule-soft)}.license summary{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;list-style:none}.license summary::-webkit-details-marker{display:none}.license summary span:first-child{min-width:0;overflow-wrap:anywhere}.license summary .muted{flex:none;font-weight:var(--weight-regular)}.license pre{margin:0;padding:0 var(--space-3) var(--space-3);color:var(--color-ink-muted);font-family:inherit;font-size:var(--text-xs);white-space:pre-wrap;overflow-wrap:anywhere}.settings-foot{display:grid;gap:var(--space-1);margin:auto 0 0}.creator{display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-sm)}.settings-legal{display:flex;justify-content:center;gap:var(--space-3);margin:0;font-size:var(--text-xs)}.settings-legal a{color:inherit}.app-version{text-align:center;font-size:var(--text-xs)}.tom-mark{display:block;width:auto}.tool-link{align-items:center}.tool-icon{display:grid;place-items:center;flex-shrink:0;width:64px;height:64px;border-radius:16px}.stepper{display:flex;align-items:center;gap:var(--space-3)}.stepper .filter-label{flex:1}.stepper-value{min-width:32px;font-size:var(--text-xl);font-weight:var(--weight-bold);text-align:center;font-variant-numeric:tabular-nums}.player-list li .text-field,.player-list li .player-mark{transition:background-color 80ms,color 80ms,border-color 80ms}.player-list li.is-lit .text-field{border-color:var(--color-ink);background:var(--color-ink);color:var(--color-paper)}.player-list li.is-lit .text-field::placeholder{color:var(--color-paper);opacity:1}.player-list li.is-lit .player-mark{--color-moons: var(--color-paper);background:var(--color-ink)}.player-list li.is-picked{animation:pop .42s cubic-bezier(.34,1.56,.64,1)}.pick-result{min-height:32px;font-size:var(--text-lg);font-weight:var(--weight-bold);text-align:center}.pick-result .pop-in{display:inline-block}.timer-face{position:relative;display:grid;place-items:center;width:min(100%,288px);margin:var(--space-3) auto}.timer-face svg{width:100%;height:auto;transform:rotate(-90deg)}.timer-track,.timer-ring{fill:none;stroke-width:16}.timer-track{stroke:var(--color-paper-raised)}.timer-ring{stroke:var(--color-action);stroke-linecap:round;transition:stroke-dashoffset .1s linear}.timer-text{position:absolute;font-size:var(--text-2xl);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.play-toolbar{display:inline-flex;align-items:center;gap:var(--space-1)}.screen.play-fill{height:calc(100dvh - var(--safe-bottom));padding-bottom:0;gap:var(--space-2);overflow:hidden}.play-fill .player-strip{flex-shrink:0}.order-route{display:inline-flex;align-items:center;gap:var(--space-1)}.rail-panel{flex:1;min-height:0;padding:var(--space-2);border-radius:var(--radius-lg);background:var(--diagram-card);box-shadow:var(--shadow-sm)}.rail-board{display:block;width:100%;height:100%}.rail-station{transition:transform .7s cubic-bezier(.34,1.2,.64,1)}@media(prefers-reduced-motion:reduce){.rail-station{transition:none}}.rail-dice{cursor:pointer;outline:none}.rail-die{transform-box:fill-box;transform-origin:center}.rail-die.is-rolling{animation:dice-tumble .48s cubic-bezier(.3,.7,.4,1)}@media(prefers-reduced-motion:reduce){.rail-die.is-rolling{animation:none}}.rail-start-ring{transform-box:fill-box;transform-origin:center;animation:rail-start .7s ease-in-out infinite alternate}@keyframes rail-start{0%{transform:scale(1);opacity:1}to{transform:scale(1.5);opacity:.35}}@media(prefers-reduced-motion:reduce){.rail-start-ring{animation:none}}.rail-order{cursor:pointer;outline:none}.rail-order:focus-visible rect{stroke:var(--color-focus)}.rail-switch{cursor:pointer;outline:none}.rail-switch:focus-visible .rail-switch-disc{stroke:var(--color-focus);stroke-width:3px}.rail-hint{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);margin:0;padding:0;list-style:none}.rail-hint li{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium)}.rail-who-order{display:flex;align-items:center;gap:var(--space-2);margin:0}.rail-who{justify-content:flex-start;gap:var(--space-2);padding-inline:var(--space-3)}.rail-who-name{flex:1;text-align:left}.rail-who-cargo{display:inline-flex;gap:var(--space-1)}.rail-train{cursor:grab;transition:transform .18s ease-out}.rail-board.has-trains{touch-action:none}.rail-train.is-dragging{cursor:grabbing;transition:none}@media(prefers-reduced-motion:reduce){.rail-train{transition:none}}.rail-station.is-tappable{cursor:pointer;outline:none}.rail-station.is-tappable:focus-visible circle{stroke:var(--color-focus)}.kb-panel{display:flex;flex-direction:column;gap:var(--space-3)}.kb-join{display:flex;gap:var(--space-2)}.kb-code-input{flex:1;min-width:0;letter-spacing:.12em;text-transform:uppercase}.kb-code-input::placeholder{letter-spacing:normal;text-transform:none}.kb-one-phone{margin-top:var(--space-3)}.kb-lobby{align-items:center;text-align:center}.kb-qr{width:min(60vw,240px);padding:var(--space-3);border-radius:var(--radius-lg);background:#fff}.kb-qr svg{display:block;width:100%;height:auto}.kb-code{margin:0;font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:.14em}.kb-hint{padding:var(--space-3);border-radius:var(--radius);background:var(--color-paper-raised);text-align:left}.kb-phones{display:flex;flex-direction:column;align-items:center}.kb-phone{width:56px;height:92px;border:var(--rule-thick) solid var(--color-ink);position:relative}.kb-phone:after{content:"";position:absolute;left:50%;width:24px;height:5px;margin-left:-12px;background:var(--color-arms)}.kb-phone.is-far{border-bottom-width:1px;border-radius:12px 12px 4px 4px;opacity:.5}.kb-phone.is-far:after{top:12px}.kb-phone.is-near{border-top-width:1px;border-radius:4px 4px 12px 12px}.kb-phone.is-near:after{bottom:12px}.kb-table{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;width:100%;height:100%;background:var(--diagram-card);touch-action:none;visibility:hidden}.kb-table.is-on{visibility:visible}body:has(.kb-table.is-on){-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.kb-table.is-near,.kb-table.is-far{height:50%}.kb-table.is-near{top:50%}.kb-table.is-far{bottom:50%;transform:rotate(180deg)}.kb-hud{position:fixed;right:var(--space-3);bottom:var(--safe-bottom);left:var(--space-2);z-index:21;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.kb-hud>*{pointer-events:auto}.kb-result{position:fixed;top:50%;right:0;bottom:0;left:0;z-index:21;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3)}.kb-result h2{margin:0}.kb-result .action-list{width:min(70%,280px)}.kb-result .button{justify-content:center}.kb-result.is-far{top:0;bottom:50%;transform:rotate(180deg)}.kb-points{position:fixed;top:calc(env(safe-area-inset-top) + var(--space-3));right:0;left:0;z-index:21;color:var(--color-ink);font-size:5rem;font-weight:var(--weight-bold);line-height:1;font-variant-numeric:tabular-nums;text-align:center;opacity:.22;pointer-events:none}.kb-points span{display:inline-block;animation:pop .32s cubic-bezier(.34,1.56,.64,1)}.kb-points.is-near{top:calc(50% + var(--space-3))}.kb-points.is-far{top:auto;bottom:calc(50% + var(--space-3));transform:rotate(180deg)}.tool-fill{height:calc(100dvh - var(--nav-height) - var(--safe-bottom));padding-bottom:var(--space-3);overflow:hidden}.clock,.buzzer{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--space-2)}.clock-half{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);border:0;border-radius:var(--radius-lg);background:var(--color-paper-raised);color:var(--color-ink);font:inherit;cursor:pointer;touch-action:manipulation;transition:background-color .12s ease-out}.clock .clock-bar{order:1}.clock-half:not(.is-flipped){order:2}.clock-half.is-flipped{transform:rotate(180deg)}.clock-half.is-active{background:var(--color-action);color:var(--color-on-action)}.clock-half.is-over{background:var(--color-suns);color:var(--color-on-suns)}.clock-time{font-size:4rem;font-weight:var(--weight-bold);line-height:1;font-variant-numeric:tabular-nums}.clock-note{font-size:var(--text-sm)}.clock-bar{flex:none;display:flex;justify-content:center;gap:var(--space-2);min-height:var(--tap-target)}.clock-bar .button{flex:1}.clock-bar .toggle{flex:1 1 0;min-width:0;padding:0 var(--space-1);font-size:var(--text-sm);white-space:nowrap}.buzzer-zones{position:relative;flex:1;min-height:0;display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:var(--space-2)}.buzzer-zones.is-1{grid-template-rows:minmax(0,1fr)}.buzzer-zones.is-4{grid-template-columns:repeat(2,minmax(0,1fr))}.buzzer-zone{min-height:0;display:grid;place-items:center;padding:0;border:0;border-radius:var(--radius-lg);cursor:pointer;touch-action:none;transition:opacity .16s ease-out,transform .16s ease-out}.buzzer-zone svg{width:56%;max-height:80%}.buzzer-zone.is-flipped{transform:rotate(180deg)}.buzzer-zone.is-lost{opacity:.2}.buzzer-zone.is-winner svg{animation:pop .32s cubic-bezier(.34,1.56,.64,1)}.buzzer-again{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:72px;height:72px;margin:-36px 0 0 -36px;border:0;border-radius:var(--radius-pill);background:var(--color-paper);color:var(--color-ink);box-shadow:var(--shadow-md);cursor:pointer;animation:pop .32s cubic-bezier(.34,1.56,.64,1)}.team-list{grid-template-columns:minmax(0,1fr);margin:0}.team-list li{align-content:start;grid-template-columns:1fr;row-gap:var(--space-1)}.team-list strong{display:flex;align-items:center;gap:var(--space-1);margin:0}.team-list span:not(:has(svg)){overflow-wrap:anywhere}.dice-table{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--dice-gap);margin-top:calc(var(--space-3) * -1);padding:calc(var(--space-4) + var(--space-3)) 0 var(--space-1)}.dice-die{width:88px;height:88px;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}.dice-table.is-many .dice-die{width:72px;height:72px}.dice-shape{display:block;width:100%;height:100%;overflow:visible;transition:transform 80ms ease-out}.dice-die{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.dice-ghost{position:fixed;z-index:50;margin:0;pointer-events:none}.dice-ghost.is-lifted .dice-shape{transform:scale(1.1)}.dice-ghost.is-landing{transition:left .18s cubic-bezier(.2,0,0,1),top .18s cubic-bezier(.2,0,0,1),width .18s cubic-bezier(.2,0,0,1),height .18s cubic-bezier(.2,0,0,1)}.dice-die:active .dice-shape{transform:scale(.94)}.dice-shape.is-rolling{animation:dice-tumble .48s cubic-bezier(.3,.7,.4,1)}@keyframes dice-tumble{0%{transform:translateY(0) rotate(0)}12%{transform:translateY(-7%) rotate(-40deg) scale(.74)}35%{transform:translateY(-16%) rotate(-120deg) scale(.72)}70%{transform:translateY(0) rotate(-250deg) scale(.72)}85%{transform:rotate(-325deg) scale(.78)}to{transform:translateY(0) rotate(-360deg)}}@media(prefers-reduced-motion:reduce){.dice-shape.is-rolling{animation:none}}.die-number{fill:var(--color-ink);font-family:inherit;font-weight:var(--weight-bold)}.dice-screen{--dice-gap: var(--space-3);height:calc(100dvh - var(--nav-height) - var(--safe-bottom));padding-bottom:0}.dice-screen:has(.dice-table.is-many){--dice-gap: var(--space-2)}.dice-screen>*{flex-shrink:0}.dice-screen>.dice-table{flex-shrink:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.dice-keep{display:flex;flex-direction:column;gap:var(--space-2);margin-top:calc(var(--space-4) - var(--space-3) - var(--space-1));padding:var(--space-2) var(--space-3) var(--space-3);border:2px dashed var(--color-rule-soft);border-radius:var(--radius-lg);transition:border-color .12s}.dice-keep.is-empty{padding-bottom:var(--space-2)}.dice-keep.is-target{border-color:var(--color-ink-muted)}.dice-keep.is-over{border-color:var(--color-ink);background:var(--color-paper-raised)}.dice-die.is-drop-target .dice-shape{opacity:.4}.dice-keep-head{display:flex;align-items:center;justify-content:space-between;min-height:28px}.dice-release{border:0;font:inherit;font-size:var(--text-xs);cursor:pointer}.dice-keep-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.dice-keep .dice-die{width:56px;height:56px}.dice-bar{display:flex;flex-direction:column;gap:var(--space-3);margin-inline:calc(var(--space-3) * -1);padding:0 var(--space-3) var(--space-3)}.dice-table+.dice-bar{margin-top:calc(var(--space-4) - var(--space-3) - var(--space-1))}.dice-actions{display:grid;grid-template-columns:auto 1fr;gap:var(--space-2)}.dice-actions .button{white-space:nowrap}.dice-sum{margin:0;color:var(--color-ink-muted);font-weight:var(--weight-medium);text-align:center;font-variant-numeric:tabular-nums}.dice-choice{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.bar-toggles{display:inline-flex;gap:var(--space-2)}.bar-toggle[aria-pressed=true]{background:var(--color-ink);color:var(--color-paper)}.dice-choice .filter-label{color:var(--color-ink);font-size:var(--text-md)}.dice-type-mark{display:block;width:28px;height:28px}.dice-type-mark svg{display:block;width:100%;height:100%}.counter-list{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.counter{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius);background:var(--color-paper-raised)}.counter-head{display:flex;align-items:center;gap:var(--space-2)}.counter-head .player-mark{background:var(--color-paper)}.counter-head .text-field{flex:1;min-width:0}.counter-steps{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:var(--space-2)}.counter-steps .button{touch-action:manipulation}.counter-value{min-width:0;padding:0;border:0;background:none;color:var(--color-ink);font:inherit;font-size:var(--text-2xl);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;cursor:pointer;touch-action:manipulation}.coin-table{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4)}.coin{width:min(64vw,240px);aspect-ratio:1;padding:0;border:0;border-radius:var(--radius-pill);background:none;cursor:pointer;perspective:800px;touch-action:manipulation}.coin.is-flying{animation:coin-hop 1.1s ease-in-out}@keyframes coin-hop{50%{transform:translateY(-64px) scale(1.15)}}.coin-spin{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.3,.1,.3,1)}.coin-face{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;border-radius:var(--radius-pill);background:var(--color-crowns);box-shadow:var(--shadow-md);backface-visibility:hidden;-webkit-backface-visibility:hidden}.coin-face.is-back{transform:rotateX(180deg)}.coin-face svg{width:72%;fill:var(--color-on-crowns)}.coin-hint{color:var(--color-ink-muted);font-size:var(--text-md);font-weight:var(--weight-medium)}.draw-card{flex:1;min-height:0;padding:0;border:0;background:none;color:inherit;cursor:pointer;perspective:800px;touch-action:manipulation}.draw-face{display:block;height:100%}.draw-face svg{display:block;width:100%;height:100%}.draw-face.is-turned{animation:card-turn .28s ease-out}@keyframes card-turn{0%{transform:rotateY(90deg)}}.draw-history{flex:none;display:flex;gap:var(--space-1);margin:0;padding:0;overflow-x:auto;list-style:none;scrollbar-width:none}.draw-history li{flex:none;width:48px}.draw-history svg{display:block;width:100%}.wheel{position:relative;align-self:center;width:min(100%,320px);aspect-ratio:1;padding:0;border:0;border-radius:var(--radius-pill);background:none;cursor:pointer;touch-action:manipulation}.wheel-disc{display:block;width:100%;height:100%;border-radius:var(--radius-pill);transition:transform 4s cubic-bezier(.15,.8,.2,1)}.wheel-pointer{position:absolute;z-index:1;top:-4px;left:50%;width:32px;height:32px;margin-left:-16px;fill:var(--color-ink);stroke:var(--color-paper);stroke-width:2;stroke-linejoin:round}.role-card{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3);border:0;border-radius:var(--radius-lg);background:var(--color-paper-raised);color:var(--color-ink);font:inherit;cursor:pointer;touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.role-card.is-revealed{background:var(--color-action);color:var(--color-on-action)}.role-card .clock-note{font-size:var(--text-xl);font-weight:var(--weight-bold)}.role-name{overflow-wrap:anywhere;animation:pop .24s ease-out}.role-card.is-revealed .clock-note{font-size:var(--text-md);font-weight:var(--weight-medium)}.role-card.is-revealed .role-name{font-size:var(--text-2xl);font-weight:var(--weight-bold)}.role-row{display:flex;align-items:center;gap:var(--space-2)}.role-row .text-field{flex:1;min-width:0}@media(prefers-reduced-motion:reduce){.coin-spin,.wheel-disc{transition:none}.coin.is-flying,.draw-face.is-turned,.role-name{animation:none}}
