:root{--walnut:#4a2e1a;--walnut-deep:#33200f;--walnut-light:#6b4426;--felt:#17513e;--bone:#e4d7bc;--oxblood:#8e3b34;--cream:#f3ebda;--charcoal:#22252a;--brass:#c9a227;--brass-bright:#eacb6b;--call-red:#e3392b;--hi-vis:#b7ff2b;--hi-vis-warm:#ffee58;--lobby-card:#241812;--lobby-field:#150e08;--lobby-ink:#f0e7d4;--lobby-ink-quiet:#cbbfa6;--lobby-rule:#9a7c28;--lobby-here:#7fe0a8;--lobby-away:#c9bda2;--lobby-bad:#ff9a8f;--pick-timber-light:var(--walnut-light);--pick-timber:var(--walnut);--pick-timber-deep:var(--walnut-deep);--pick-ink:var(--cream);--pick-lining:var(--felt);--pick-lining-ink:var(--bone);--pick-bead:var(--brass);--pick-min:232px;--pick-floor:168px;--pick-name:22px;--pick-gap:14px;--btn-off-face:#241a12;--btn-off-ink:#c3b393;--btn-off-edge:#8a7440;--ui-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ui-serif:Georgia, "Iowan Old Style", "Times New Roman", serif;--ui-mono:ui-monospace, "SF Mono", "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", Menlo, Consolas, "Courier New", monospace;--tap:44px;--chrome:46px;--grid-line:#949ba5;--grid-cell:#232a33;--grid-cell-fixed:#333c47;--grid-cell-good:#1c3a2a;--grid-cell-bad:#4a232c;--grid-cell-found:#1f3a50;--grid-ink:#f3ebda;--grid-ink-fixed:#fff;--grid-ink-tag:#d8cdb2;--grid-fixed-edge:#cbd3dc;--grid-bad:#ffab99;--grid-good:#8ce6a8;--grid-found:#9adcff;--grid-cell-min:var(--tap);--grid-cell-max:68px;--rail-side:216px;--rail-foot:78px;--rail-controls:0px;--memory-strip-clear:52px;--table-strip-clear:52px;--waiting-clear:56px;--grid-pad-width:156px;--pad-key:76px;--pad-font:36px;--grid-list-width:280px;--grid-list-band:calc(var(--grid-list-font) * 8 + 34px);--grid-list-font:21px;--grid-cell-block:#949ba5;--grid-side-width:310px;--grid-side-wide:440px;--grid-clue-space:128px;--grid-clue-font:20px;--grid-clue-font-max:28px;--paper:#f0e7d4;--paper-low:#e3d8c0;--paper-edge:#837761;--print-ink:#16140f;--pen-ink:#24303f;--pencil:#4a5160;--mark-red:#8c2c22;--mark-green:#1f5c39;--lit:#e8c14a;--lit-deep:#d5a02e;--lit-edge:#6b420d;--mistake:#6f2b24;--mistake-wash:#e8cfc8;--chess-light-lit:#997a4d;--chess-light-shade:#8a6f46;--chess-light:linear-gradient(160deg, var(--chess-light-lit) 0%, var(--chess-light-shade) 100%);--chess-dark-lit:#3a2414;--chess-dark-shade:#261508;--chess-dark:linear-gradient(160deg, var(--chess-dark-lit) 0%, var(--chess-dark-shade) 100%);--chess-white-piece:#f7f5f0;--chess-black-piece:#15171a;--chess-white-lit:#fff;--chess-white-shade:#e6e1d6;--chess-black-lit:#252a30;--chess-black-deep:#0d0f12;--chess-cast:#06080b8c;--chess-lift:3px;--chess-lift-blur:6px;--chess-white-ink:#14181d;--chess-black-ink:#f2f4f7;--chess-white-ink-lit:#38424f;--chess-white-ink-shade:#05070a;--chess-black-ink-lit:#fff;--chess-black-ink-shade:#b9c2ce;--chess-white-carve:#636f82;--chess-black-carve:#7a8595;--chess-figure-cast:#06080b33;--chess-rim:var(--cream);--chess-frame:linear-gradient(180deg, var(--walnut-light) 0%, var(--walnut) 45%, var(--walnut-deep) 100%);--chess-stringing:#c9a2278c;--chess-rail:8px;--chess-plate:var(--walnut-deep);--chess-coord-ink:var(--brass-bright);--chess-square-min:var(--grid-cell-min);--chess-coord-size:22px;--chess-status-clear:72px;--felt-light:#1d6349;--card-face:#f3ebda;--card-black:#121212;--card-red:#c0392b;--card-back:#b8c4dc;--card-back-ink:#33415e;--card-rule:#5d5548;--card-slot-edge:#e4d7bc;--card-mark:#22252a;--card-mark-lit:#b7ff2b;--bamboo:#1d5236;--bamboo-light:#256a41;--tile-face:#f3ebda;--tile-top:#fffaf0;--tile-shade:#ecdfc6;--tile-side:#8d7a56;--tile-rule:#5d5548;--tile-shut:#cdc4ae;--tile-cast:#050f0ab8;--tile-free-ring:var(--hi-vis-warm);--tile-free-edge:#2a2418;--tile-ink-circles:#123a6e;--tile-ink-bamboo:#14532d;--tile-ink-characters:#7a1f1f;--tile-ink-winds:#4a2e7a;--tile-ink-dragon-red:#8a1c11;--tile-ink-dragon-green:#0f4a2e;--tile-ink-dragon-white:#2c3e5c;--tile-ink-flower-plum:#7d1a4c;--tile-ink-flower-gold:#5c3d06;--tile-mark:var(--card-mark);--tile-mark-lit:var(--card-mark-lit);--memory-ink-beast:#3b2414;--memory-ink-bird:#1f3a5c;--memory-ink-thing:#1f3d2b;--memory-ink-green:#7a2d1c;--memory-back-hatch:var(--card-back-ink);--memory-hollow:#00000038}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{color:var(--bone);font-family:var(--ui-sans);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;overscroll-behavior:none;background:radial-gradient(at 50% 0,#2b1e14 0%,#1a1109 60%,#0d0805 100%)}.app{--rail-right:0px;--rail-bottom:var(--rail-foot);--head-on:1;--rail-flow:row;--rail-item-align:center;--rail-item-width:auto;--rail-item-cap:min(52%, 520px);--rail-pin-left:max(8px, env(safe-area-inset-left));--rail-pin-right:auto;--rail-lift:0px;--rail-taken:var(--rail-foot);--plate-left:50%;--plate-shift:translateX(-50%);height:100%;padding:0;position:relative}@media (min-aspect-ratio:1){.app:has(>.game-host>:is(.chess-board,.checkers-board,.grid,.memory)):not(:has(>.game-host>.grid-side)){--rail-right:var(--rail-side);--rail-bottom:0px;--head-on:0;--rail-flow:column;--rail-item-align:stretch;--rail-item-width:calc(var(--rail-side) - 16px);--rail-item-cap:calc(var(--rail-side) - 16px);--rail-pin-left:auto;--rail-pin-right:max(8px, env(safe-area-inset-right));--rail-lift:calc(var(--rail-controls) + 10px);--rail-taken:calc(var(--rail-controls) + 10px);--plate-left:auto;--plate-shift:none}}.overlay-top{z-index:4;height:var(--chrome);padding:max(2px, env(safe-area-inset-top)) max(6px, env(safe-area-inset-right)) 2px max(6px, env(safe-area-inset-left));pointer-events:none;position:absolute;top:0;left:0;right:0}.overlay-top>*{pointer-events:auto}.hud-corner{z-index:6;right:max(6px, env(safe-area-inset-right));bottom:max(6px, env(safe-area-inset-bottom));align-items:center;gap:8px;display:flex;position:absolute}.hud-corner [hidden]{display:none}.btn-corner{min-width:84px;padding:0 14px;font-size:15px;box-shadow:0 8px 22px #00000080}#btn-roll.btn-corner{min-width:128px;min-height:60px;padding:0 22px;font-size:20px;font-weight:600}.overlay-top .status,.overlay-top .scoreboard{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a0e129e;border-radius:999px;padding:4px 12px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.board:focus,.board:focus-visible{outline:none}.board.keys-on:focus{outline:3px solid var(--hi-vis);outline-offset:3px}.key-cursor{fill:#b7ff2b1a;stroke:var(--hi-vis);stroke-width:3px;stroke-dasharray:10 7;pointer-events:none}:root[data-board-size=large] .point-number{font-size:24px}:root[data-board-size=largest] .point-number{font-size:28px}:root[data-board-size=large] .checker:not(.is-selected) circle:first-of-type{stroke:#f0e8d6e0;stroke-width:2.5px}:root[data-board-size=largest] .checker:not(.is-selected) circle:first-of-type{stroke:#f5eee0f2;stroke-width:3px}:root[data-board-size=large] .target-ring,:root[data-board-size=largest] .target-ring{stroke-width:3.5px}:root[data-board-size=large] .checker.is-selected circle:first-of-type{stroke-width:4px}:root[data-board-size=largest] .target-ring{stroke-width:4px;stroke-dasharray:7 6;animation:6s linear infinite target-spin,1.1s ease-in-out infinite hi-vis-edge}:root[data-board-size=largest] .checker.is-selected circle:first-of-type{stroke-width:5.5px;animation:1.1s ease-in-out infinite hi-vis-edge}@keyframes hi-vis-edge{0%,to{filter:drop-shadow(0 0 1px #ff2d1f59)}50%{filter:drop-shadow(0 0 5px #ff2d1ff2)drop-shadow(0 0 2px #ff2d1fe6)}}@media (prefers-reduced-motion:reduce){:root[data-board-size=largest] .target-ring,:root[data-board-size=largest] .checker.is-selected circle:first-of-type{filter:drop-shadow(0 0 4px #ff2d1fe6)drop-shadow(0 0 2px #ff2d1fd9);animation:none}}:root[data-board-size=large] [data-layer=dice] .die{transform-box:fill-box;transform-origin:50%;transform:scale(1.18)}:root[data-board-size=largest] [data-layer=dice] .die{transform-box:fill-box;transform-origin:50%;transform:scale(1.35)}:root[data-board-size=large] .status{font-size:clamp(16px,2.2vh,22px)}:root[data-board-size=largest] .status{font-size:clamp(18px,2.6vh,26px)}:root[data-board-size=large] .btn,:root[data-board-size=largest] .btn{font-size:18px}:root[data-board-size=large] .control{padding:14px 20px;font-size:18px}:root[data-board-size=largest] .control{padding:18px 26px;font-size:21px}:root[data-board-size=large] .caption{padding:5px 15px;font-size:18px}:root[data-board-size=largest] .caption{padding:6px 18px;font-size:21px}:root[data-board-size=large] .confirm-title{font-size:28px}:root[data-board-size=largest] .confirm-title{font-size:32px}:root[data-board-size=large] .confirm-detail{font-size:18px}:root[data-board-size=largest] .confirm-detail{font-size:21px}:root[data-board-size=large] .confirm-yes,:root[data-board-size=large] .confirm-no{padding:12px 24px;font-size:19px}:root[data-board-size=largest] .confirm-yes,:root[data-board-size=largest] .confirm-no{padding:16px 30px;font-size:22px}:root[data-board-size=large] .celebration-word{padding:8px 20px;font-size:clamp(17px,2.2vw,26px)}:root[data-board-size=largest] .celebration-word{padding:9px 22px;font-size:clamp(19px,2.5vw,29px)}:root[data-board-size=large] .celebration-casing line{stroke-width:6px}:root[data-board-size=large] .celebration-spark line{stroke-width:2.8px}:root[data-board-size=largest] .celebration-casing line{stroke-width:6.8px}:root[data-board-size=largest] .celebration-spark line{stroke-width:3.2px}:root[data-board-size=large] .turn-nudge-text{font-size:clamp(32px,5.4vw,56px)}:root[data-board-size=largest] .turn-nudge-text{font-size:clamp(38px,6vw,62px)}:root[data-board-size=large]{--grid-cell-min:56px;--memory-strip-clear:60px;--table-strip-clear:60px;--waiting-clear:66px;--pad-key:88px;--pad-font:42px;--grid-pad-width:192px;--grid-list-font:25px;--grid-clue-space:150px;--grid-clue-font:24px}:root[data-board-size=largest]{--grid-cell-min:68px;--memory-strip-clear:68px;--table-strip-clear:68px;--waiting-clear:78px;--pad-key:100px;--pad-font:48px;--grid-pad-width:228px;--grid-list-font:29px;--grid-clue-space:172px;--grid-clue-font:var(--grid-clue-font-max)}:root[data-board-size=large] .grid-cell{font-size:28px}:root[data-board-size=largest] .grid-cell{font-size:34px}.hud{min-height:var(--tap);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:0 6px;display:flex}#hud-top{grid-template-columns:1fr auto 1fr;align-items:center;display:grid}#hud-top .hud-right{justify-self:end}.status{letter-spacing:.01em;color:#f0e6d2;margin:0;font-size:clamp(14px,1.9vh,19px)}.status .accent{color:var(--brass)}.scoreboard{font-variant-numeric:tabular-nums;white-space:nowrap;background:#00000047;border:1px solid #c9a22738;border-radius:999px;align-items:center;gap:14px;padding:5px 16px;display:flex}.score-side{align-items:center;gap:8px;display:inline-flex}.score-side:before{content:"";border:1px solid #0000008c;border-radius:50%;width:12px;height:12px}.score-you:before{background:var(--cream)}.score-them:before{background:var(--charcoal);border-color:#55595f}.score-name{color:#b0a488;letter-spacing:.02em;font-size:clamp(12px,1.5vh,14px)}.score-value{font-family:var(--ui-serif);color:#f0e6d2;font-size:clamp(17px,2.2vh,22px);font-weight:700}.score-dash{color:#7a6f5b}.hud-right{justify-self:end;align-items:center;gap:14px;display:flex}.icon-btn{width:var(--tap);height:var(--tap);color:#d8c69c;cursor:pointer;background:linear-gradient(#3c2a1c 0%,#2a1c11 100%);border:1px solid #c9a22747;border-radius:9px;place-items:center;padding:0;transition:filter .14s,transform .22s;display:grid}.icon-btn svg{width:23px;height:23px;display:block}.icon-btn:hover{filter:brightness(1.2)}.icon-btn:active{transform:rotate(35deg)}.icon-btn:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.board-wrap{inset:var(--chrome) 0 0 0;padding:max(2px, env(safe-area-inset-top)) max(2px, env(safe-area-inset-right)) max(2px, env(safe-area-inset-bottom)) max(2px, env(safe-area-inset-left));justify-content:center;align-items:center;display:flex;position:absolute}.turn-call{pointer-events:auto;z-index:5;place-content:center;justify-items:center;gap:18px;display:grid;position:absolute;inset:0}.turn-call[hidden],:is(body:has(.modal:not([hidden])) .turn-call,body:has(.banner:not([hidden])) .turn-call){display:none}.turn-call-text{font-family:var(--ui-serif);letter-spacing:.06em;text-transform:uppercase;color:var(--call-red);background:#080b0e;border-radius:999px;margin:0;padding:10px 30px;font-size:clamp(30px,6vw,58px);font-weight:700;animation:1.15s ease-in-out infinite turn-flash}#btn-roll-centre.turn-call-roll{pointer-events:auto;letter-spacing:.04em;border-radius:14px;min-width:clamp(240px,26vw,360px);min-height:clamp(72px,11vh,104px);padding:0 32px;font-size:clamp(26px,3.4vh,34px);font-weight:600;box-shadow:0 10px 28px #0000008c}@keyframes turn-flash{0%,to{box-shadow:0 0 #e3392b00}50%{box-shadow:0 0 0 12px #e3392b73}}@media (prefers-reduced-motion:reduce){.turn-call-text{animation:none}}.board{filter:drop-shadow(0 14px 34px #0000008c);width:100%;height:100%;display:block}.point-number{font-family:var(--ui-serif);fill:var(--brass-bright);fill-opacity:1;letter-spacing:.04em;font-size:19px}.checker{transition:transform .26s cubic-bezier(.22,.7,.25,1)}.checker circle:first-of-type{stroke:#14100c8c;stroke-width:1.5px}.checker-white circle:first-of-type{stroke:#281e1299}.checker-black circle:first-of-type{stroke:#f0e8d6cc;stroke-width:2px}.checker rect,.checker.in-tray circle{display:none}.checker.in-tray rect{display:block}.checker.is-selected circle:first-of-type{stroke:var(--hi-vis);stroke-width:3.5px}.target{cursor:pointer}.target-ring{fill:#b7ff2b33;stroke:var(--hi-vis);stroke-width:2.5px;stroke-dasharray:5 6;transform-box:fill-box;transform-origin:50%;animation:6s linear infinite target-spin}@keyframes target-spin{to{transform:rotate(360deg)}}.source-hint{fill:none;stroke:var(--hi-vis);stroke-width:2px;stroke-opacity:1}.die-face{fill:#f7f2e6;stroke:#b3a586;stroke-width:1.5px}.die-pip{fill:#24272c}.die.is-spent .die-face{fill:#b8af9b;fill-opacity:1;stroke:#4a4438;stroke-width:2px;stroke-dasharray:6 4}.die.is-spent .die-pip{fill:#33383f;fill-opacity:1}.die{transform-box:fill-box;transform-origin:50%}.die .die-face{filter:drop-shadow(0 3px 4px #00000080)}.thinking-dot{fill:var(--brass);animation:1.1s ease-in-out infinite thinking}.thinking-dot:nth-child(2){animation-delay:.15s}.thinking-dot:nth-child(3){animation-delay:.3s}@keyframes thinking{0%,to{opacity:.25}50%{opacity:1}}.die-label{font-family:var(--ui-sans);letter-spacing:.16em;text-transform:uppercase;fill:var(--bone);font-size:15px;font-weight:600}.die-label.is-yours{fill:var(--brass-bright)}.die-off.is-winner .die-face{stroke:var(--brass);stroke-width:3px;filter:drop-shadow(0 0 10px #c9a227bf)}.die-off.is-winner .die-label{fill:var(--brass-bright)}.hud-controls{justify-content:flex-start;gap:10px}.btn{min-height:var(--tap);color:#ecdfc4;min-width:92px;font-family:var(--ui-sans);letter-spacing:.01em;cursor:pointer;background:linear-gradient(#3c2a1c 0%,#2a1c11 100%);border:1px solid #c9a22752;border-radius:9px;padding:0 20px;font-size:16px;font-weight:500;transition:filter .14s,opacity .14s;box-shadow:inset 0 1px #ffffff14}.btn:hover:not(:disabled){filter:brightness(1.18)}.btn:active:not(:disabled){filter:brightness(.9)}.btn:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.btn:disabled{background:var(--btn-off-face);border-color:var(--btn-off-edge);color:var(--btn-off-ink);cursor:default;box-shadow:inset 0 2px 4px #0000008c}.btn-primary{color:#fdf4dd;background:linear-gradient(#7d5a1e 0%,#5a3f13 100%);border-color:#c9a2279e}.btn-quiet{color:#a2957d;background:0 0;border-color:#c9a2272e;min-width:0;margin-left:auto}.modal{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:20;background:#080b0eb8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal[hidden]{display:none}.modal-card{background:linear-gradient(#402c1c 0%,#281a0f 100%);border:1px solid #c9a22766;border-radius:14px;flex-direction:column;width:min(420px,92vw);max-height:90vh;padding:26px 28px 22px;display:flex;overflow-y:auto;box-shadow:0 24px 60px #0009}.modal-title{font-family:var(--ui-serif);color:var(--brass);margin:0 0 20px;font-size:24px}.field{margin-bottom:22px}.field-label{color:#ecdfc4;margin:0 0 4px;font-size:15px;font-weight:600}.field-hint{color:#ab9e86;margin:0 0 12px;font-size:13px;line-height:1.45}.segmented{background:#0000004d;border:1px solid #c9a22729;border-radius:11px;gap:6px;padding:5px;display:flex}.segment{min-height:var(--tap);color:#b6a888;font-family:var(--ui-sans);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1 1 0;padding:0 10px;font-size:15px;transition:background .14s,color .14s}.segment:hover:not(.is-on){color:#e2d5b8}.segment.is-on{color:#fdf4dd;box-shadow:0 0 0 2px var(--brass-bright) inset, 0 1px 0 #ffffff1f inset;background:linear-gradient(#7d5a1e 0%,#5a3f13 100%)}.segment:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.field-inline{justify-content:space-between;align-items:center;gap:16px;display:flex}.field-inline .field-hint{margin-bottom:0}.field-inline .btn-quiet{min-height:var(--tap);margin-left:0}.fairness{border-top:1px solid #c9a22729;margin:4px 0 20px;padding-top:14px}.fairness-summary{cursor:pointer;min-height:var(--tap);color:#a2957d;align-items:center;gap:8px;font-size:14px;list-style:none;display:flex}.fairness-summary::-webkit-details-marker{display:none}.fairness-summary:before{content:"A";font-size:17px;transition:transform .16s;display:inline-block}.fairness[open] .fairness-summary:before{transform:rotate(90deg)}.fairness-summary:hover{color:#d5c7a8}.fair-facts{grid-template-columns:auto 1fr;align-items:center;gap:8px 14px;margin:10px 0 14px;font-size:13px;display:grid}.fair-facts dt{color:#a2957d}.fair-facts dd{margin:0}.fair-facts code{color:#cbbb96;word-break:break-all;font-size:12px}.seed-row{gap:8px;display:flex}.seed-input{min-width:0;min-height:var(--tap);color:#e6dcc6;font-family:var(--ui-sans);background:#00000052;border:1px solid #c9a2273d;border-radius:8px;flex:auto;padding:0 10px;font-size:14px}.seed-input:focus-visible{outline:2px solid var(--brass);outline-offset:1px}.fair-result{color:#a2957d;min-height:1.2em;margin:10px 0 4px;font-size:13px;line-height:1.5}.fair-result.is-ok{color:#86c39a}.fair-result.is-bad{color:#e0623f}.fair-heading{margin-top:18px}.fair-table{gap:6px;margin-bottom:10px;display:grid}.fair-row{grid-template-columns:68px repeat(6,1fr);align-items:center;gap:4px;display:grid}.fair-row-name{color:#a2957d;font-size:13px}.fair-cell{background:#00000042;border-radius:7px;flex-direction:column;align-items:center;gap:2px;padding:5px 0;display:flex}.fair-face{color:#7a6f5b;font-size:11px}.fair-cell strong{font-variant-numeric:tabular-nums;color:#e6dcc6;font-size:13px}.menu-choices{flex-direction:column;gap:10px;display:flex}.menu-btn{text-align:center;width:100%}.modal-card.is-hosting .menu-choices{order:1;margin-top:16px}.menu-field{flex-direction:column;gap:6px;margin-bottom:2px;display:flex}.menu-field .field-label{margin:0}.join-row{gap:8px;display:flex}.join-row[hidden]{display:none}.copy-code{min-width:140px;margin:4px auto 10px;display:block}.menu-or{text-align:center;color:#a2957d;margin:6px 0 0;font-size:13px}.code-input{text-transform:uppercase;letter-spacing:.22em;font-family:var(--ui-serif);text-align:center;font-size:20px}.menu-status{color:#a2957d;min-height:1.2em;margin:14px 0 0;font-size:13px;line-height:1.5}.menu-status.is-bad{color:#e0623f}.room-code{font-family:var(--ui-serif);letter-spacing:.24em;color:var(--brass);margin:6px 0 2px;font-size:34px;display:block}.handover-card{text-align:center}.banner{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10;background:#080b0eb8;place-items:center;display:grid;position:fixed;inset:0}.banner[hidden]{display:none}.banner-card{text-align:center;background:linear-gradient(#402c1c 0%,#281a0f 100%);border:1px solid #c9a22766;border-radius:14px;min-width:min(380px,84vw);padding:30px 34px 26px;box-shadow:0 24px 60px #0009}.banner-title{font-family:var(--ui-serif);color:var(--brass);letter-spacing:.01em;margin:0 0 6px;font-size:30px}.banner-detail{color:#c3b69d;margin:0 0 14px;font-size:15px}.banner-note{color:var(--brass);margin:0 0 16px;font-size:14px}.banner-note[hidden]{display:none}.banner-actions{flex-direction:column;gap:10px;display:flex}.banner-actions .btn{width:100%}.banner-actions .btn[hidden]{display:none}@media (orientation:portrait){.app{justify-content:center;gap:10px}.board-wrap{aspect-ratio:1008/668;flex:0 auto;width:100%;max-height:100%}.scoreboard{gap:10px;padding:4px 12px}.btn{flex:1 1 0;min-width:0;padding:0 12px}.btn-quiet{flex:0 auto}}@media (prefers-reduced-motion:reduce){.checker,.die.is-rolling,.target-ring,.thinking-dot{transition:none;animation:none}}.capture-ring{fill:none;stroke:var(--hi-vis-warm);stroke-width:3px;stroke-opacity:1;filter:drop-shadow(0 0 6px #ffee58bf);transform-box:fill-box;transform-origin:50%;animation:1.5s ease-in-out infinite capture-pulse}.target.is-capture .target-ring{fill:#ffee5833;stroke:var(--hi-vis-warm)}@keyframes capture-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.capture-ring{animation:none}}.game-host{isolation:isolate;height:100%;position:relative}.control-bar{z-index:6;right:max(6px, env(safe-area-inset-right));bottom:max(6px, env(safe-area-inset-bottom));flex-direction:var(--rail-flow);align-items:var(--rail-item-align);width:var(--rail-item-width);flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex;position:absolute}.control{color:#ecdfc4;font-family:var(--ui-sans);letter-spacing:.01em;cursor:pointer;background:linear-gradient(#3c2a1c 0%,#2a1c11 100%);border:1px solid #c9a22752;border-radius:9px;padding:0 14px;font-size:15px;font-weight:500;line-height:1.2;transition:filter .14s;box-shadow:0 8px 22px #00000080}.control:hover{filter:brightness(1.18)}.control:active{filter:brightness(.9)}.control:focus-visible{outline:3px solid var(--hi-vis);outline-offset:2px}.control.is-primary{color:#fdf4dd;background:linear-gradient(#7d5a1e 0%,#5a3f13 100%);border-color:#c9a2279e}.caption{z-index:6;left:var(--plate-left);right:var(--rail-pin-right);bottom:calc(var(--rail-lift) + max(6px, env(safe-area-inset-bottom)));transform:var(--plate-shift);max-width:var(--rail-item-cap);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:var(--bone);text-align:center;background:#0a0e129e;border-radius:999px;margin:0;padding:4px 12px;font-size:15px;position:absolute}.caption:empty{display:none}.celebration{pointer-events:none;position:absolute;inset:0}.celebration-behind{z-index:1}.celebration-front{z-index:8}.celebration[hidden]{display:none}.celebration-sky{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.celebration-burst{transform-box:view-box;transform-origin:0 0;animation:.62s cubic-bezier(.16,.9,.3,1) both celebration-bloom}@keyframes celebration-bloom{0%{transform:scale(.16)}to{transform:scale(1)}}.celebration-casing line{stroke:#080b0e;stroke-width:5.2px;stroke-linecap:round;vector-effect:non-scaling-stroke}.celebration-spark line{stroke:var(--hi-vis-warm);stroke-width:2.4px;stroke-linecap:round;vector-effect:non-scaling-stroke}.celebration-spark line.is-pale{stroke:var(--cream)}.celebration-word{max-width:62%;color:var(--cream);font-family:var(--ui-serif);letter-spacing:.02em;text-align:center;text-wrap:balance;background:#080b0e;border-radius:999px;margin:0;padding:7px 18px;font-size:clamp(15px,1.9vw,22px);font-weight:700;position:absolute;top:3%;left:50%;transform:translate(-50%)}.celebration-word:empty{display:none}.turn-nudge{z-index:7;left:var(--rail-pin-left);right:var(--rail-pin-right);bottom:calc(var(--rail-lift) + max(6px, env(safe-area-inset-bottom)));max-width:var(--rail-item-cap);pointer-events:none;align-items:center;gap:10px;display:flex;position:absolute}.turn-nudge[hidden]{display:none}.turn-nudge-text{color:var(--call-red);font-family:var(--ui-serif);white-space:nowrap;letter-spacing:.06em;text-transform:uppercase;text-align:center;background:#080b0e;border-radius:999px;margin:0;padding:6px 18px;font-size:clamp(17px,2vw,22px);font-weight:700;animation:1.4s ease-in-out infinite turn-nudge-halo}.turn-nudge-close{pointer-events:auto;min-height:var(--tap);min-width:var(--tap);border:1px solid var(--brass);color:var(--cream);font-family:var(--ui-sans);cursor:pointer;background:#080b0e;border-radius:9px;padding:0 18px;font-size:16px}.turn-nudge-close[hidden]{display:none}.turn-nudge-close:focus-visible{outline:3px solid var(--hi-vis);outline-offset:2px}@keyframes turn-nudge-halo{0%,to{box-shadow:0 0 #e3392b00}50%{box-shadow:0 0 0 12px #e3392b73}}.turn-nudge-action{pointer-events:auto;min-width:var(--tap);min-height:var(--tap);color:#fdf4dd;font-family:var(--ui-sans);letter-spacing:.04em;cursor:pointer;background:linear-gradient(#7d5a1e 0%,#5a3f13 100%);border:1px solid #c9a2279e;border-radius:10px;padding:0 20px;font-size:17px;font-weight:600;box-shadow:0 10px 28px #0000008c}.turn-nudge-action[hidden]{display:none}.turn-nudge-action:focus-visible{outline:3px solid var(--hi-vis);outline-offset:2px}:is(body:has(.confirm:not([hidden])) .turn-nudge,body:has(.modal:not([hidden])) .turn-nudge,body:has(.confirm:not([hidden])) .celebration,body:has(.modal:not([hidden])) .celebration){display:none}@media (prefers-reduced-motion:reduce){.celebration-burst,.turn-nudge-text{animation:none}}.confirm{z-index:30;overscroll-behavior:contain;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);text-align:center;background:#080b0eb8;flex-direction:column;align-items:center;gap:12px;padding:26px 28px 22px;display:flex;position:fixed;inset:0;overflow-y:auto}.confirm>:first-child{margin-top:auto}.confirm>:last-child{margin-bottom:auto}.confirm>*{flex:none}.confirm[hidden]{display:none}.confirm-title{font-family:var(--ui-serif);color:var(--brass);margin:0;font-size:24px}.confirm-detail{color:#cbbc9d;max-width:62ch;margin:0 0 8px;font-size:15px}.confirm-yes,.confirm-no{min-height:var(--tap);color:#ecdfc4;min-width:min(280px,80vw);font-family:var(--ui-sans);cursor:pointer;background:linear-gradient(#3c2a1c 0%,#2a1c11 100%);border:1px solid #c9a22752;border-radius:9px;padding:0 20px;font-size:16px;line-height:1.2}.confirm-yes{color:#fdf4dd;background:linear-gradient(#7d5a1e 0%,#5a3f13 100%);border-color:#c9a2279e}.confirm-yes:focus-visible,.confirm-no:focus-visible{outline:3px solid var(--hi-vis);outline-offset:2px}.game-host:has(>.grid){padding:max(8px, env(safe-area-inset-top)) calc(var(--rail-right) + max(8px, env(safe-area-inset-right))) calc(var(--rail-bottom) + max(6px, env(safe-area-inset-bottom))) max(8px, env(safe-area-inset-left));justify-content:center;align-items:center;display:flex;overflow:hidden;container-type:size}.grid{grid-template-columns:repeat(var(--grid-cols,9), minmax(var(--grid-cell-min), 1fr));grid-template-rows:repeat(var(--grid-rows,9), minmax(var(--grid-cell-min), 1fr));width:min(100cqw, 100cqh * var(--grid-cols,9) / var(--grid-rows,9));aspect-ratio:var(--grid-cols,9) / var(--grid-rows,9);touch-action:pinch-zoom;background:var(--grid-line);border-radius:10px;gap:3px;padding:3px;display:grid;position:relative}.grid-cell{min-width:var(--grid-cell-min);min-height:var(--grid-cell-min);background:var(--grid-cell);color:var(--grid-ink);font-family:var(--ui-sans);font-variant-numeric:tabular-nums;cursor:pointer;border:2px solid #0000;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:24px;font-weight:500;line-height:1;display:flex;position:relative}.grid-cell.is-fixed{border:2px solid var(--grid-fixed-edge);background:var(--grid-cell-fixed);color:var(--grid-ink-fixed);cursor:default;font-weight:700}.grid-cell.is-blocked{background:var(--grid-cell-block);cursor:default;border-color:#0000}.grid-cell.is-good{background:var(--grid-cell-good);color:var(--grid-ink);box-shadow:inset 0 -6px 0 var(--grid-good)}.grid-cell.is-found{background:var(--grid-cell-found);color:var(--grid-ink);box-shadow:inset 0 0 0 3px var(--grid-found)}.grid-cell.is-bad{background:var(--grid-cell-bad);color:var(--grid-ink);box-shadow:inset 0 -8px 0 var(--grid-bad)}.grid-cell.is-cursor{outline:4px solid var(--hi-vis);outline-offset:-4px}.grid-cell:focus-visible{outline:3px solid var(--hi-vis);outline-offset:2px;z-index:1}.grid-cell:hover:not(.is-fixed):not(:disabled){filter:brightness(1.25)}.grid-cell:active:not(.is-fixed):not(:disabled){filter:brightness(.9)}.grid-tag{color:var(--grid-ink-tag);font-size:.46em;font-weight:700;line-height:1;position:absolute;top:3px;left:5px}.game-host:has(>.grid[data-surface=paper]){background:radial-gradient(at 50% 32%,#1d6349 0%,#17513e 58%,#103a2c 100%)}.grid[data-surface=paper]{--paper-margin:14px;padding:var(--paper-margin);--paper-fits:calc((min(100cqw, 100cqh) - 2 * var(--paper-margin)) / var(--grid-cols,8));grid-template-columns:repeat(var(--grid-cols,8), minmax(min(var(--grid-cell-min), var(--paper-fits)), 1fr));grid-template-rows:repeat(var(--grid-rows,8), minmax(min(var(--grid-cell-min), var(--paper-fits)), 1fr));background:var(--cream);border-radius:3px;gap:0;box-shadow:0 10px 24px #00000073,0 2px 4px #0000004d}.grid[data-surface=paper] .grid-cell{color:var(--charcoal);min-width:min(var(--grid-cell-min), var(--paper-fits));min-height:min(var(--grid-cell-min), var(--paper-fits));font-family:var(--ui-mono);letter-spacing:.02em;text-shadow:0 0 4px var(--cream), 0 0 3px var(--cream), 0 0 2px var(--cream);background:0 0;border-color:#0000;font-weight:600}.grid[data-surface=paper] .grid-cell.is-good,.grid[data-surface=paper] .grid-cell.is-found,.grid[data-surface=paper] .grid-cell.is-bad,.grid[data-surface=paper] .grid-cell.is-fixed{box-shadow:none;color:var(--charcoal);background:0 0}.grid[data-surface=paper] .grid-cell.is-cursor{outline-color:var(--walnut)}.grid[data-surface=paper] .grid-cell:focus-visible{outline-color:var(--walnut-deep)}.grid[data-surface=paper] .grid-cell:hover:not(:disabled),.grid[data-surface=paper] .grid-cell:active:not(:disabled){filter:none;box-shadow:inset 0 0 0 2px var(--walnut)}.grid-marks{inset:var(--paper-margin,0);pointer-events:none;position:absolute}.grid-mark{fill:none;stroke:var(--oxblood);stroke-linecap:round}.grid-mark.is-found{stroke-width:.13px}.grid-mark.is-drawing,.grid-mark.is-anchor{stroke-width:.09px}.grid[data-boxes="3"] .grid-cell:nth-child(9n+4),.grid[data-boxes="3"] .grid-cell:nth-child(9n+7){margin-left:5px}.grid[data-boxes="3"] .grid-cell:nth-child(n+28):nth-child(-n+36),.grid[data-boxes="3"] .grid-cell:nth-child(n+55):nth-child(-n+63){margin-top:5px}.game-host:has(>.grid-pad){padding-right:calc(max(var(--grid-pad-width), var(--rail-right)) + max(20px, env(safe-area-inset-right)))}.grid-pad{z-index:5;top:calc(50% - var(--rail-taken) / 2);right:max(8px, env(safe-area-inset-right));grid-template-columns:repeat(3, minmax(var(--grid-cell-min), 1fr));width:var(--grid-pad-width);gap:8px;display:grid;position:absolute;transform:translateY(-50%)}.grid-pad-key{min-width:var(--grid-cell-min);min-height:var(--grid-cell-min);aspect-ratio:1;border:2px solid var(--grid-fixed-edge);background:var(--grid-cell-fixed);color:var(--grid-ink-fixed);font-family:var(--ui-sans);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:8px;padding:0;font-size:26px;font-weight:700;line-height:1;transition:filter .14s;box-shadow:0 8px 22px #00000080}.grid-pad-key:hover{filter:brightness(1.25)}.grid-pad-key:active{filter:brightness(.9)}.grid-pad-key:focus-visible{outline:3px solid var(--hi-vis);outline-offset:2px}.number-pad{z-index:20;border:2px solid var(--bone);background-color:var(--walnut);background-image:linear-gradient(135deg, var(--walnut-light) 0%, var(--walnut) 48%, var(--walnut-deep) 100%);box-shadow:0 0 0 3px var(--walnut-deep), 0 18px 34px #0000008c;border-radius:12px;flex-direction:column;gap:8px;padding:10px;display:flex;position:absolute;top:0;left:0}.number-pad[hidden]{display:none}.number-pad-title{max-width:calc(var(--pad-key) * 3 + 16px);color:var(--cream);font-family:var(--ui-sans);margin:0;font-size:20px;font-weight:600;line-height:1.3}.number-pad-keys{grid-template-columns:repeat(3, var(--pad-key));gap:8px;display:grid}.number-pad-tail{gap:8px;display:flex}.number-pad-tail .number-pad-wide{flex:1 1 0}.number-pad-key{width:var(--pad-key);height:var(--pad-key);min-width:var(--pad-key);min-height:var(--pad-key);border:1px solid var(--walnut-deep);background-color:var(--bone);background-image:linear-gradient(135deg, var(--cream) 0%, var(--bone) 72%);color:var(--charcoal);font-family:var(--ui-sans);font-size:var(--pad-font);font-variant-numeric:tabular-nums;cursor:pointer;box-shadow:inset 0 2px 0 #ffffff9e, inset 0 -3px 0 #33200f42, 0 4px 0 var(--walnut-deep), 0 7px 11px #0000006b;border-radius:9px;padding:0;font-weight:600;line-height:1;transition:transform 90ms,box-shadow 90ms}.number-pad-key:hover{filter:brightness(1.04)}.number-pad-key:active{box-shadow:inset 0 2px 0 #fff6, inset 0 -2px 0 #33200f4d, 0 1px 0 var(--walnut-deep), 0 2px 5px #0006;transform:translateY(3px)}.number-pad-key:focus-visible{outline:4px solid var(--hi-vis);outline-offset:3px}.number-pad-key[aria-disabled=true]{background-image:none;border-style:dashed;text-decoration:line-through;text-decoration-thickness:5px;transform:none;box-shadow:inset 0 2px 5px #33200f57}.number-pad-wide{min-width:var(--tap);min-height:var(--tap);border:2px solid var(--bone);background-color:var(--walnut);background-image:linear-gradient(135deg, var(--walnut-light) 0%, var(--walnut-deep) 100%);color:var(--cream);font-family:var(--ui-sans);cursor:pointer;box-shadow:0 3px 0 var(--walnut-deep), 0 6px 11px #0006;border-radius:10px;padding:12px 14px;font-size:21px;font-weight:700;line-height:1.2;transition:transform 90ms,box-shadow 90ms}.number-pad-wide[hidden]{display:none}.number-pad-wide:hover{filter:brightness(1.12)}.number-pad-wide:active{box-shadow:0 1px 0 var(--walnut-deep), 0 2px 5px #0006;transform:translateY(2px)}.number-pad-wide:focus-visible{outline:3px solid var(--hi-vis);outline-offset:2px}@media (prefers-reduced-motion:reduce){.number-pad-key,.number-pad-wide{transition:none}.number-pad-key:active,.number-pad-wide:active{transform:none}}.game-host:has(>.grid-list){padding-right:calc(max(var(--grid-list-width), var(--rail-right)) + max(20px, env(safe-area-inset-right)))}.grid-list{z-index:5;top:calc(50% - var(--rail-taken) / 2);right:max(8px, env(safe-area-inset-right));width:var(--grid-list-width);max-height:calc(100% - var(--rail-taken) - 16px);border:2px solid var(--walnut);background:var(--cream);border-radius:3px;padding:12px 14px;position:absolute;overflow-y:auto;transform:translateY(-50%);box-shadow:0 8px 22px #00000073,0 2px 4px #0000004d}.grid-list-title{color:var(--charcoal);font-family:var(--ui-sans);font-size:calc(var(--grid-list-font) * .8);margin:0 0 8px;font-weight:700;line-height:1.25}.grid-list-words{margin:0;padding:0;list-style:none}.grid-list-word{color:var(--charcoal);font-family:var(--ui-sans);font-size:var(--grid-list-font);letter-spacing:.04em;align-items:baseline;gap:8px;padding:2px 0;font-weight:600;line-height:1.35;display:flex}.grid-list-word.is-found .grid-list-text{text-decoration:line-through;text-decoration-thickness:3px;-webkit-text-decoration-color:var(--oxblood);text-decoration-color:var(--oxblood)}.grid-list-mark{width:1.1em;color:var(--oxblood);flex:none;font-weight:700}@media (max-aspect-ratio:1){.game-host:has(>.grid-list){padding-right:max(8px, env(safe-area-inset-right));padding-bottom:calc(var(--grid-list-band) + var(--rail-bottom) + max(6px, env(safe-area-inset-bottom)))}.grid-list{top:auto;left:max(8px, env(safe-area-inset-left));right:max(8px, env(safe-area-inset-right));bottom:calc(var(--rail-bottom) + max(6px, env(safe-area-inset-bottom)));width:auto;height:var(--grid-list-band);max-height:var(--grid-list-band);transform:none}.grid-list-words{flex-wrap:wrap;column-gap:26px;display:flex}.grid-list-word{flex:none}}.game-host:has(>.grid-clue){padding-top:calc(var(--grid-clue-space) + max(16px, env(safe-area-inset-top)));background:radial-gradient(ellipse at 32% 12%, #1d5f49 0%, var(--felt) 52%, #0e3729 100%)}.game-host:has(>.grid-side){padding-right:calc(max(var(--grid-side-width), var(--rail-right)) + max(20px, env(safe-area-inset-right)))}.grid[data-kind=crossword]{--sheet-edge:min(12px, 2cqmin);--sheet-fits:calc(( min(100cqw, 100cqh * var(--grid-cols,5) / var(--grid-rows,5)) - 2 * var(--sheet-edge) - 4px - 2px * (var(--grid-cols,5) - 1) ) / var(--grid-cols,5));grid-template-columns:repeat(var(--grid-cols,5), minmax(min(var(--tap), var(--sheet-fits)), 1fr));aspect-ratio:auto;grid-template-rows:repeat(var(--grid-rows,5), minmax(min(var(--tap), var(--sheet-fits)), var(--sheet-fits)));border:min(12px, 2cqmin) solid var(--paper);background:var(--print-ink);border-radius:3px;gap:2px;height:auto;padding:2px;box-shadow:0 1px #ffffff38,0 14px 34px #00000073}.grid[data-kind=crossword] .grid-cell{min-width:min(var(--tap), var(--sheet-fits));min-height:min(var(--tap), var(--sheet-fits));background:linear-gradient(180deg, var(--paper) 0%, var(--paper-low) 100%);color:var(--pen-ink);font-family:var(--ui-serif);border:2px solid #0000;border-radius:0;font-weight:600}.grid[data-kind=crossword] .grid-cell.is-blocked{background:var(--print-ink);box-shadow:none}.grid[data-kind=crossword] .grid-cell.is-fixed{border-color:var(--paper-edge);background:linear-gradient(180deg, var(--paper-low) 0%, #d9cdb2 100%);color:var(--print-ink);cursor:default;font-weight:800}.grid[data-kind=crossword] .grid-cell.is-lit{border-color:var(--lit-edge);background:linear-gradient(180deg, #f0cd5f 0%, var(--lit) 100%);color:var(--print-ink)}.grid[data-kind=crossword] .grid-cell.is-bad{background:var(--mistake-wash);color:var(--print-ink);text-decoration:line-through;-webkit-text-decoration-color:var(--mistake);text-decoration-color:var(--mistake);box-shadow:inset 0 -8px 0 var(--mistake);text-decoration-thickness:3px}.grid[data-kind=crossword] .grid-cell.is-lit.is-bad{border-color:var(--lit-edge);background:linear-gradient(180deg, #f0cd5f 0%, var(--lit) 100%);color:var(--print-ink)}.grid[data-kind=crossword] .grid-cell.is-lit.is-fixed{box-shadow:inset 0 0 0 3px var(--lit-edge)}.grid[data-kind=crossword] .grid-cell.is-cursor{outline:4px solid var(--print-ink);outline-offset:-4px}.grid[data-kind=crossword] .grid-cell.is-lit.is-cursor{background:linear-gradient(180deg, #e0ae38 0%, var(--lit-deep) 100%)}.grid[data-kind=crossword] .grid-cell:focus-visible{outline:3px solid var(--lit-edge);outline-offset:2px;z-index:1}.grid[data-kind=crossword] .grid-cell:hover:not(:disabled){filter:brightness(.96)}.grid[data-kind=crossword] .grid-tag{color:var(--print-ink);font-family:var(--ui-serif);font-weight:700}.game-host:has(>.grid[data-kind=sudoku]){background:radial-gradient(at 50% 32%,#1d6349 0%,#17513e 58%,#103a2c 100%)}.grid[data-kind=sudoku]{--sheet-edge:min(12px, 2cqmin);--sheet-fits:calc(( min(100cqw, 100cqh) - 2 * var(--sheet-edge) - 4px - 2px * (var(--grid-cols,9) - 1) ) / var(--grid-cols,9));grid-template-columns:repeat(var(--grid-cols,9), minmax(min(var(--grid-cell-min), var(--sheet-fits)), 1fr));grid-template-rows:repeat(var(--grid-rows,9), minmax(min(var(--grid-cell-min), var(--sheet-fits)), 1fr));border:var(--sheet-edge) solid var(--paper);background:var(--print-ink);border-radius:3px;gap:2px;padding:2px;box-shadow:0 1px #ffffff38,0 14px 34px #00000073}.grid[data-kind=sudoku] .grid-cell{min-width:min(var(--grid-cell-min), var(--sheet-fits));min-height:min(var(--grid-cell-min), var(--sheet-fits));background:linear-gradient(180deg, var(--paper) 0%, var(--paper-low) 100%);color:var(--pencil);font-family:var(--ui-serif);border:2px solid #0000;border-radius:0;font-weight:600}.grid[data-kind=sudoku] .grid-cell.is-fixed{border-color:var(--paper-edge);background:linear-gradient(180deg, var(--paper-low) 0%, #d9cdb2 100%);color:var(--print-ink);font-weight:800}.grid[data-kind=sudoku] .grid-cell.is-bad{border-color:var(--mark-red);box-shadow:inset 0 -6px 0 var(--mark-red);color:var(--mark-red)}.grid[data-kind=sudoku] .grid-cell.is-good{box-shadow:inset 0 -6px 0 var(--mark-green);color:var(--mark-green)}.grid[data-kind=sudoku] .grid-cell:hover:not(:disabled),.grid[data-kind=sudoku] .grid-cell:active:not(:disabled){filter:none;box-shadow:inset 0 0 0 2px var(--paper-edge)}.grid[data-kind=sudoku] .grid-cell.is-cursor{outline:4px solid var(--print-ink);outline-offset:-4px}.grid[data-kind=sudoku] .grid-cell:focus-visible{outline:3px solid var(--pen-ink);outline-offset:2px}.grid-clue{z-index:5;top:max(8px, env(safe-area-inset-top));left:max(8px, env(safe-area-inset-left));right:max(8px, env(safe-area-inset-right));border:1px solid var(--paper-edge);background:linear-gradient(180deg, var(--paper) 0%, var(--paper-low) 100%);border-radius:3px;padding:10px 14px;position:absolute;box-shadow:0 10px 26px #0006}.grid-clue-line{width:100%;min-width:var(--tap);min-height:var(--tap);color:var(--print-ink);font-family:var(--ui-serif);font-size:var(--grid-clue-font);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:3px;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 6px;padding:4px 6px;line-height:1.3;display:flex}.grid-clue-line:last-child{margin-bottom:0}.grid-clue-text{flex:12ch;min-width:0}.grid-clue-item-text{overflow-wrap:break-word;flex:100%;min-width:0}.grid-clue-line:hover{background:#6b420d1f}.grid-clue-line:focus-visible{outline:3px solid var(--lit-edge);outline-offset:1px}.grid-clue-where,.grid-clue-item-where{white-space:nowrap;background:var(--print-ink);color:var(--paper);font-family:var(--ui-sans);letter-spacing:.08em;text-transform:uppercase;border-radius:2px;flex:none;padding:.15em .5em;font-size:.82em;font-weight:700}.grid-clue-mark{width:1.1em;color:var(--lit-edge);flex:none;font-weight:700}.grid-clue-line.is-current .grid-clue-text{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px}.grid-clue-count{color:var(--pen-ink);font-family:var(--ui-sans);font-size:calc(var(--grid-clue-font) * .72);flex:none;margin-left:auto;font-weight:600}.grid-side{z-index:5;top:calc(var(--grid-clue-space) + max(16px, env(safe-area-inset-top)));right:max(8px, env(safe-area-inset-right));bottom:calc(var(--rail-taken) + max(6px, env(safe-area-inset-bottom)));width:var(--grid-side-width);flex-direction:column;gap:10px;display:flex;position:absolute;overflow:visible}@media (min-width:1180px){.game-host:has(>.grid-side){padding-left:calc(var(--grid-side-width) + max(20px, env(safe-area-inset-left)))}.grid-letters{top:0;left:calc(var(--grid-side-width) + 16px - 100vw);width:var(--grid-side-width);position:absolute}.game-host:has(>.grid-side.is-wide){padding-left:max(8px, env(safe-area-inset-left))}.grid-side.is-wide .grid-letters{width:auto;position:static}}.grid-side.is-wide .grid-letters{grid-template-columns:repeat(6, minmax(var(--grid-cell-min), 1fr))}.game-host:has(>.grid-side.is-wide){--grid-side-width:var(--grid-side-wide)}@media (max-width:1179px){.game-host:has(>.grid-side){--grid-side-width:var(--grid-side-wide)}.grid-side .grid-letters{grid-template-columns:repeat(6, minmax(var(--grid-cell-min), 1fr))}}@media (max-aspect-ratio:1){.game-host:has(>.grid-side){--grid-panel-height:calc(var(--grid-cell-max) * 5 + 24px);padding-right:max(8px, env(safe-area-inset-right));padding-bottom:calc(var(--grid-panel-height) + var(--rail-bottom) + max(6px, env(safe-area-inset-bottom)))}.grid-side{top:auto;left:max(8px, env(safe-area-inset-left));right:max(8px, env(safe-area-inset-right));bottom:calc(var(--rail-bottom) + max(6px, env(safe-area-inset-bottom)));width:auto;height:var(--grid-panel-height);grid-template-rows:auto minmax(0,1fr);grid-template-columns:auto minmax(0,1fr);column-gap:10px;display:grid}.grid-side .grid-letters{grid-row:1/3;grid-template-columns:repeat(6, minmax(var(--grid-cell-min), 1fr))}.game-host:has(>.grid-side)>.grid-clue{right:max(8px, env(safe-area-inset-right))}}.grid-letters{grid-template-columns:repeat(4, minmax(var(--grid-cell-min), 1fr));flex:none;gap:6px;display:grid}.grid-letters .grid-pad-key{border:1px solid var(--paper-edge);background:linear-gradient(180deg, #efe4cc 0%, var(--bone) 100%);color:var(--print-ink);font-family:var(--ui-serif);border-radius:5px;box-shadow:inset 0 1px #ffffff80,0 3px 6px #00000059}.grid-pad-wide{aspect-ratio:auto;font-family:var(--ui-sans);font-size:calc(var(--grid-clue-font) * .78);grid-column:span 2;font-weight:600}#app:has(.grid-clue) .caption{bottom:calc(var(--rail-lift) + var(--rail-bottom) + 8px + max(6px, env(safe-area-inset-bottom)))}.grid-letters .grid-pad-key:hover{filter:brightness(.96)}.grid-letters .grid-pad-key:focus-visible{outline:3px solid var(--lit-edge);outline-offset:2px}.grid-clues-title{color:var(--paper);font-family:var(--ui-sans);font-size:calc(var(--grid-clue-font) * .8);flex:none;margin:0;font-weight:700;line-height:1.25}.grid-clues{overscroll-behavior:contain;scroll-snap-type:y proximity;flex:auto;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.grid-clue-item{width:100%;min-height:var(--grid-cell-min);scroll-snap-align:start;background:linear-gradient(180deg, var(--paper) 0%, var(--paper-low) 100%);color:var(--print-ink);font-family:var(--ui-serif);font-size:calc(var(--grid-clue-font) * .8);text-align:left;cursor:pointer;border:2px solid #0000;border-radius:3px;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:4px;padding:8px 10px;line-height:1.25;display:flex}.grid-clue-item.is-current{border-color:var(--lit-edge);background:linear-gradient(180deg, #f0cd5f 0%, var(--lit) 100%);font-weight:700}.grid-clue-item.is-done .grid-clue-item-text{text-decoration:line-through;text-decoration-thickness:2px}.grid-clue-item.is-wrong{border-left:6px solid var(--mistake)}.grid-clue-item-mark{width:1em;color:var(--mistake);flex:none;font-weight:700}.grid-clue-item:hover{filter:brightness(.96)}.grid-clue-item:focus-visible{outline:3px solid var(--lit-edge);outline-offset:2px}.game-host:has(>.checkers-board){padding:max(8px, env(safe-area-inset-top)) calc(var(--rail-right) + max(8px, env(safe-area-inset-right))) calc(var(--rail-bottom) + max(6px, env(safe-area-inset-bottom))) max(8px, env(safe-area-inset-left));justify-content:center;align-items:center;display:flex;overflow:hidden;container-type:size}.game-host:has(>.chess-board){padding:calc(var(--chess-status-clear) * var(--head-on) + max(6px, env(safe-area-inset-top))) calc(var(--rail-right) + max(8px, env(safe-area-inset-right))) calc(var(--rail-bottom) + max(6px, env(safe-area-inset-bottom))) max(8px, env(safe-area-inset-left));justify-content:center;align-items:center;display:flex;overflow:hidden;container-type:size}.game-host:has(>.cards){padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) calc(var(--rail-bottom) + max(6px, env(safe-area-inset-bottom))) max(8px, env(safe-area-inset-left));background:radial-gradient(ellipse at 50% 34%, var(--felt-light), var(--felt) 72%);justify-content:center;align-items:flex-start;display:flex;overflow:hidden;container-type:size}.cards{--card-gap:clamp(6px, 1.4cqw, 14px);--card-w:max(var(--grid-cell-min), min(calc((100cqw - 8 * var(--card-gap)) / 7), calc((100cqh - 3 * var(--card-gap)) / 4.8)));--card-h:calc(var(--card-w) * 1.4);--card-radius:calc(var(--card-w) * .09);--card-lift:calc(var(--card-h) * -.09);--card-edge:2px;--tableau-h:calc(100cqh - var(--card-h) - 2 * var(--card-gap));gap:var(--card-gap);width:calc(7 * var(--card-w) + 6 * var(--card-gap));flex-direction:column;display:flex}.card-row{grid-template-columns:repeat(7, var(--card-w));gap:var(--card-gap);align-items:start;display:grid}.card-slot{width:var(--card-w);height:var(--card-h);border-radius:var(--card-radius);--down:0;--up:1;--down-step:max(9px, calc(var(--card-h) * .062));--up-ideal:calc(var(--card-w) * .5);--up-room:calc((var(--tableau-h) - var(--card-h) - var(--down) * var(--down-step)) / max(var(--up) - 1, 1));--up-step:max(8px, min(max(var(--up-ideal), var(--grid-cell-min)), var(--up-room)));--index-full:calc(var(--card-w) * .4);--index-size:min(var(--index-full), calc((var(--up-step) - var(--card-edge)) * .85));position:relative}.card-gap{width:var(--card-w)}.card{left:0;top:calc(min(var(--depth,0), var(--down,0)) * var(--down-step) + max(var(--depth,0) - var(--down,0), 0) * var(--up-step));width:var(--card-w);height:var(--card-h);min-width:var(--grid-cell-min);min-height:var(--grid-cell-min);border:2px solid var(--card-rule);border-radius:var(--card-radius);background:var(--card-face);font-family:var(--ui-sans);cursor:pointer;touch-action:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.card.is-black{color:var(--card-black)}.card.is-red{color:var(--card-red)}.card.is-down{background:var(--card-back)}.card-stack{width:var(--card-w);height:calc(var(--card-h) + (var(--span,1) - 1) * var(--down-step));min-width:var(--grid-cell-min);min-height:var(--grid-cell-min);cursor:pointer;touch-action:none;background:0 0;border:none;padding:0;position:absolute;top:0;left:0}.card-stack:focus-visible{outline:4px solid var(--card-mark);outline-offset:2px;box-shadow:0 0 0 9px var(--card-mark-lit);z-index:5}.card-back{left:0;top:calc(var(--depth,0) * var(--down-step));width:var(--card-w);height:var(--card-h);border:2px solid var(--card-rule);border-radius:var(--card-radius);background:var(--card-back);position:absolute}.card-back-mark{border:3px solid var(--card-back-ink);border-radius:5px;position:absolute;inset:11%}.card.is-empty{border:3px dashed var(--card-slot-edge);background:0 0}.card-index{top:calc(var(--index-size) * .09);height:var(--index-size);font-size:var(--index-size);font-variant-numeric:tabular-nums;align-items:center;gap:.12em;font-weight:800;line-height:1;display:flex;position:absolute;left:7%}.card:last-of-type{--index-size:var(--index-full)}.card-suit{fill:currentColor;width:.8em;height:.8em}.card-pip{fill:currentColor;width:44%;height:44%}.card-ghost{width:46%;height:46%;fill:var(--card-slot-edge)}.card.is-cursor{outline:4px solid var(--card-mark);outline-offset:-4px;box-shadow:0 0 0 6px var(--card-mark-lit);z-index:3}.card:focus-visible{outline:4px solid var(--card-mark);outline-offset:2px;box-shadow:0 0 0 9px var(--card-mark-lit);z-index:5}.card.is-held{transform:translateY(var(--card-lift));z-index:4}.card-group{left:0;top:calc(min(var(--from,0), var(--down,0)) * var(--down-step) + max(var(--from,0) - var(--down,0), 0) * var(--up-step));width:var(--card-w);height:calc(var(--card-h) + (var(--span,1) - 1) * var(--up-step));border-radius:var(--card-radius);box-shadow:0 0 0 3px var(--card-slot-edge);pointer-events:none;position:absolute}.card-run{left:0;top:calc(min(var(--from,0), var(--down,0)) * var(--down-step) + max(var(--from,0) - var(--down,0), 0) * var(--up-step));width:var(--card-w);height:calc(var(--card-h) + (var(--span,1) - 1) * var(--up-step));border-radius:var(--card-radius);transform:translateY(var(--card-lift));box-shadow:0 0 0 5px var(--card-mark), 0 0 0 10px var(--card-mark-lit);pointer-events:none;z-index:6;position:absolute}.card-run:after{content:"";height:calc(var(--card-h) * .13);background:var(--card-mark);border-radius:0 0 3px 3px;position:absolute;bottom:0;left:0;right:0}.card.is-held.is-dragging{transform:translate(var(--drag-x,0px), var(--drag-y,0px)) translateY(var(--card-lift));z-index:9}.card-run.is-dragging{transform:translate(var(--drag-x,0px), var(--drag-y,0px)) translateY(var(--card-lift));box-shadow:0 0 0 5px var(--card-mark), 0 0 0 10px var(--card-mark-lit), 0 22px 36px #0000008c;z-index:10}.card.is-held.is-dragging.is-flicking,.card-run.is-dragging.is-flicking{transition:transform .22s cubic-bezier(.2,.9,.3,1)}@media (prefers-reduced-motion:reduce){.card.is-held.is-dragging.is-flicking,.card-run.is-dragging.is-flicking{transition:none}}.card.is-target:after{content:"";aspect-ratio:1;background:var(--card-mark-lit);width:32%;box-shadow:0 0 0 4px var(--card-mark);z-index:2;border-radius:50%;position:absolute;bottom:7%;left:50%;transform:translate(-50%)}.card:hover{filter:brightness(1.06)}.card:active{filter:brightness(.94)}.game-host:has(>.tiles){padding:max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) calc(var(--rail-bottom) + max(18px, env(safe-area-inset-bottom))) max(20px, env(safe-area-inset-left));background:radial-gradient(ellipse at 44% 36%, var(--bamboo-light), var(--bamboo) 78%);box-shadow:inset 0 0 0 12px var(--walnut-deep), inset 0 0 0 13px #00000080, inset 0 8px 26px #00000080;justify-content:center;align-items:center;display:flex;overflow:hidden;container-type:size}.checkers-board{aspect-ratio:1;filter:drop-shadow(0 12px 28px #00000080);width:min(100cqw,100cqh);display:block}.checkers-board .board-label{font-family:var(--ui-sans);fill:#efe6d2;font-size:28px;font-weight:700}.checkers-board:focus-visible{outline:3px solid var(--hi-vis);outline-offset:3px}.chess-board{grid-template-columns:var(--chess-coord-size) repeat(8, minmax(var(--chess-square-min), 1fr));grid-template-rows:repeat(8, minmax(var(--chess-square-min), 1fr)) var(--chess-coord-size);aspect-ratio:1;width:min(100cqw,100cqh);padding:var(--chess-rail) var(--chess-rail) 4px 4px;background:var(--chess-frame);border-radius:10px;display:grid;position:relative}.chess-board:after{content:"";pointer-events:none;box-shadow:0 0 0 2px var(--chess-stringing);grid-area:1/2/9/-1;position:absolute;inset:0}.chess-coord{color:var(--chess-coord-ink);font-family:var(--ui-serif);justify-content:center;align-items:center;font-size:13px;font-weight:700;line-height:1;display:flex}.chess-square{min-width:var(--chess-square-min);min-height:var(--chess-square-min);background:var(--chess-light);cursor:pointer;border:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.chess-square.is-dark{background:var(--chess-dark)}.chess-piece{pointer-events:none;border-radius:50%;justify-content:center;align-items:center;width:84%;height:84%;display:flex}.chess-figure{fill:currentColor;width:76%;height:76%;overflow:visible}.chess-figure-ink{stop-color:currentColor}.chess-piece.is-white .chess-figure-lit{stop-color:var(--chess-white-ink-lit)}.chess-piece.is-white .chess-figure-shade{stop-color:var(--chess-white-ink-shade)}.chess-piece.is-white .chess-figure-base{fill:var(--chess-white-ink-shade)}.chess-figure-carve{fill:none;stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.chess-piece.is-white .chess-figure-carve{stroke:var(--chess-white-carve)}.chess-piece.is-black .chess-figure-lit{stop-color:var(--chess-black-ink-lit)}.chess-piece.is-black .chess-figure-shade{stop-color:var(--chess-black-ink-shade)}.chess-piece.is-black .chess-figure-base{fill:var(--chess-black-ink-shade)}.chess-piece.is-black .chess-figure-carve{stroke:var(--chess-black-carve)}.chess-figure-cast{flood-color:var(--chess-figure-cast)}.chess-piece.is-white .chess-figure-cut{fill:var(--chess-white-piece)}.chess-piece.is-black .chess-figure-cut{fill:var(--chess-black-piece)}.chess-promotion-figure .chess-figure-cut{fill:var(--chess-white-piece)}.chess-promotion-figure .chess-figure-lit{stop-color:var(--chess-white-ink-lit)}.chess-promotion-figure .chess-figure-shade{stop-color:var(--chess-white-ink-shade)}.chess-promotion-figure .chess-figure-base{fill:var(--chess-white-ink-shade)}.chess-promotion-figure .chess-figure-carve{stroke:var(--chess-white-carve)}.chess-piece.is-white{background:radial-gradient(circle at 34% 28%, var(--chess-white-lit) 0%, var(--chess-white-piece) 54%, var(--chess-white-shade) 100%);color:var(--chess-white-ink);box-shadow:inset 0 var(--chess-lift) var(--chess-lift-blur) calc(var(--chess-lift) * -1) var(--chess-white-lit), inset 0 calc(var(--chess-lift) * -1) var(--chess-lift-blur) calc(var(--chess-lift) * -1) var(--chess-white-shade), 0 var(--chess-lift) var(--chess-lift-blur) calc(var(--chess-lift) * -.5) var(--chess-cast)}.chess-piece.is-black{background:radial-gradient(circle at 34% 28%, var(--chess-black-lit) 0%, var(--chess-black-piece) 54%, var(--chess-black-deep) 100%);color:var(--chess-black-ink);box-shadow:inset 0 0 0 3px var(--chess-rim), inset 0 calc(var(--chess-lift) * -1) var(--chess-lift-blur) calc(var(--chess-lift) * -1) var(--chess-black-deep), 0 var(--chess-lift) var(--chess-lift-blur) calc(var(--chess-lift) * -.5) var(--chess-cast)}.chess-piece.is-held{box-shadow:0 0 0 5px var(--hi-vis)}.chess-piece.is-black.is-held{box-shadow:inset 0 0 0 3px var(--chess-rim), 0 0 0 5px var(--hi-vis)}.chess-square.is-cursor{outline:4px solid var(--hi-vis);outline-offset:-4px;z-index:2}.chess-square:focus-visible{outline:4px solid var(--hi-vis);outline-offset:-4px;z-index:3}.chess-square.is-target:after,.chess-square.is-capture:after{content:"";pointer-events:none;position:absolute}.chess-square.is-target:after{background:var(--hi-vis);border-radius:50%;width:30%;height:30%}.chess-square.is-capture:after{border:6px solid var(--hi-vis-warm);border-radius:50%;inset:6%}.chess-square.is-check{box-shadow:inset 0 0 0 6px var(--hi-vis-warm)}.chess-square.is-last:before{content:"";pointer-events:none;background:linear-gradient(135deg, var(--cream) 0 14%, transparent 14%), linear-gradient(-45deg, var(--cream) 0 14%, transparent 14%);position:absolute;inset:0}.chess-square:hover{filter:brightness(1.3)}.chess-square:active{filter:brightness(.9)}.chess-status{z-index:5;top:max(6px, env(safe-area-inset-top));width:max-content;max-width:min(94%,900px);max-height:calc(var(--chess-status-clear) - max(6px, env(safe-area-inset-top)));background:var(--chess-plate);color:var(--cream);font-family:var(--ui-sans);text-align:center;border-radius:8px;margin:0;padding:8px 16px;font-size:19px;font-weight:600;line-height:1.25;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.chess-promotion{z-index:10;background:#0a0b0ddb;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.chess-promotion-question{color:var(--cream);font-family:var(--ui-sans);text-align:center;margin:0;font-size:22px;font-weight:700}.chess-promotion-keys{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.chess-promotion-key{min-width:calc(var(--chess-square-min) + 28px);min-height:calc(var(--chess-square-min) + 20px);border:2px solid var(--chess-rim);background:var(--chess-white-piece);color:var(--chess-white-ink);font-family:var(--ui-sans);cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 12px;font-size:17px;font-weight:700;line-height:1.1;display:flex}.chess-promotion-figure{width:calc(var(--chess-square-min) * .62);height:calc(var(--chess-square-min) * .62);display:flex}.chess-promotion-figure .chess-figure{width:100%;height:100%}.chess-promotion-key:hover{filter:brightness(.94)}.chess-promotion-key:focus-visible{outline:3px solid var(--hi-vis);outline-offset:3px}:root[data-board-size=large]{--chess-coord-size:26px;--chess-status-clear:78px}:root[data-board-size=largest]{--chess-coord-size:30px;--chess-status-clear:86px}:root[data-board-size=large] .chess-coord{font-size:15px}:root[data-board-size=largest] .chess-coord{font-size:17px}:root[data-board-size=large] .chess-status{font-size:21px}:root[data-board-size=largest] .chess-status{font-size:24px}.tiles{--tile-min:var(--tap);--unit:max(var(--tile-min), min(calc(100cqw / var(--span-w,11.1)), calc(100cqh / var(--span-h,7.6))));--tile-w:var(--unit);--tile-h:calc(var(--unit) * 1.3);--lift:calc(var(--unit) * .18);--tile-shut-shade:.8;--tile-ring:max(2px, calc(var(--unit) * .03));--tile-hair:max(1px, calc(var(--unit) * .018));width:calc(var(--cols,10) * var(--tile-w) + (var(--layers,1) - 1) * var(--lift));height:calc(var(--rows,5) * var(--tile-h) + (var(--layers,1) - 1) * var(--lift));position:relative}:root[data-board-size=large] .tiles{--tile-min:56px}:root[data-board-size=large]{--chess-lift:4px;--chess-lift-blur:8px}:root[data-board-size=largest]{--chess-lift:5px;--chess-lift-blur:11px}:root[data-board-size=largest] .tiles{--tile-min:68px}.tile{left:calc(var(--x,0) * var(--tile-w) + (var(--layers,1) - 1 - var(--l,0)) * var(--lift));top:calc(var(--y,0) * var(--tile-h) + (var(--layers,1) - 1 - var(--l,0)) * var(--lift));width:var(--tile-w);height:var(--tile-h);min-width:var(--tap);min-height:var(--tap);z-index:calc(var(--l,0) * 10000 + var(--y,0) * 100 + var(--x,0));border:var(--tile-ring) solid var(--tile-rule);border-radius:calc(var(--unit) * .13);background:linear-gradient(154deg, var(--tile-top) 0%, var(--tile-face) 52%, var(--tile-shade) 100%);box-shadow:inset 0 calc(var(--unit) * .055) calc(var(--unit) * .03) var(--tile-top), inset calc(var(--unit) * -.045) calc(var(--unit) * -.075) calc(var(--unit) * .05) var(--tile-side), calc(var(--unit) * .07) calc(var(--unit) * .12) calc(var(--unit) * .14) var(--tile-cast);cursor:pointer;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.tile:not(.is-shut){border-color:var(--tile-free-ring);box-shadow:inset 0 0 0 var(--tile-hair) var(--tile-free-edge), inset 0 calc(var(--unit) * .055) calc(var(--unit) * .03) var(--tile-top), inset calc(var(--unit) * -.045) calc(var(--unit) * -.075) calc(var(--unit) * .05) var(--tile-side), calc(var(--unit) * .07) calc(var(--unit) * .12) calc(var(--unit) * .14) var(--tile-cast)}.tile.is-shut{background:var(--tile-shut);border-color:var(--tile-shut);box-shadow:calc(var(--unit) * .055) calc(var(--unit) * .09) calc(var(--unit) * .12) var(--tile-cast);cursor:default}.tile.is-shut:before{content:"";border-radius:inherit;background:rgba(0, 0, 0, var(--tile-shut-shade));z-index:2;pointer-events:none;position:absolute;inset:0}.tile-face{aspect-ratio:1;justify-content:center;align-items:center;width:76%;display:flex}.tile-art{fill:currentColor;stroke:currentColor;width:100%;height:100%}.tile-index{font-family:var(--ui-serif);font-size:max(13px, calc(var(--unit) * .21));pointer-events:none;font-weight:700;line-height:1;position:absolute;top:3%;left:6%}.tile-face[data-ink=circles],.tile-index[data-ink=circles]{color:var(--tile-ink-circles)}.tile-face[data-ink=bamboo],.tile-index[data-ink=bamboo]{color:var(--tile-ink-bamboo)}.tile-face[data-ink=characters],.tile-index[data-ink=characters]{color:var(--tile-ink-characters)}.tile-face[data-ink=winds],.tile-index[data-ink=winds]{color:var(--tile-ink-winds)}.tile-face[data-ink=dragon-red],.tile-index[data-ink=dragon-red]{color:var(--tile-ink-dragon-red)}.tile-face[data-ink=dragon-green],.tile-index[data-ink=dragon-green]{color:var(--tile-ink-dragon-green)}.tile-face[data-ink=dragon-white],.tile-index[data-ink=dragon-white]{color:var(--tile-ink-dragon-white)}.tile-face[data-ink=flower-plum],.tile-index[data-ink=flower-plum]{color:var(--tile-ink-flower-plum)}.tile-face[data-ink=flower-gold],.tile-index[data-ink=flower-gold]{color:var(--tile-ink-flower-gold)}.tile.is-cursor{outline:4px solid var(--tile-mark);outline-offset:-4px;box-shadow:inset 0 calc(var(--unit) * .055) calc(var(--unit) * .03) var(--tile-top), inset calc(var(--unit) * -.045) calc(var(--unit) * -.075) calc(var(--unit) * .05) var(--tile-side), 0 0 0 5px var(--tile-mark-lit);z-index:1400000}.tile:focus-visible{outline:4px solid var(--tile-mark);outline-offset:3px;box-shadow:0 0 0 9px var(--tile-mark-lit);z-index:1600000}.tile.is-chosen{box-shadow:0 0 0 5px var(--tile-mark), 0 0 0 10px var(--tile-mark-lit), calc(var(--unit) * .06) calc(var(--unit) * .12) calc(var(--unit) * .14) var(--tile-cast);z-index:1500000;transform:translateY(-10%)}.tile.is-chosen:after{content:"";background:var(--tile-mark);height:14%;position:absolute;bottom:0;left:0;right:0}.tile.is-hint{box-shadow:0 0 0 6px var(--tile-mark), 0 0 0 14px var(--tile-mark-lit), calc(var(--unit) * .05) calc(var(--unit) * .09) calc(var(--unit) * .12) var(--tile-cast);z-index:1300000}.tile.is-hint:after{content:"";aspect-ratio:1;background:var(--tile-mark-lit);width:26%;box-shadow:0 0 0 3px var(--tile-mark);position:absolute;top:6%;right:6%}.tile:not(.is-shut):hover{filter:brightness(1.07)}.tile:not(.is-shut):active{filter:brightness(.93)}.lobby{--lobby-pad:max(16px, env(safe-area-inset-left), env(safe-area-inset-right));--brand-mark:46px;height:100%;padding:0 var(--lobby-pad);color:var(--lobby-ink);font-family:var(--ui-sans);flex-direction:column;gap:20px;display:flex;overflow-y:auto}.lobby-masthead{margin:0 calc(-1 * var(--lobby-pad));padding:max(12px, env(safe-area-inset-top)) var(--lobby-pad) 13px;background:linear-gradient(180deg, var(--walnut-light) 0%, var(--walnut) 52%, var(--walnut-deep) 100%);border-bottom:2px solid var(--brass-bright);z-index:1;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 24px;display:flex;position:relative;box-shadow:0 8px 18px #00000080}.lobby-brandmark{align-items:center;gap:14px;min-width:0;display:flex}.lobby-brand-words{flex-direction:column;gap:1px;min-width:0;display:flex}.lobby-logo{width:var(--brand-mark);height:var(--brand-mark);filter:drop-shadow(1px 2px 3px #0000008c);flex:none;display:block}.lobby-title{font-family:var(--ui-serif);letter-spacing:.04em;white-space:nowrap;color:var(--lobby-ink);text-shadow:0 -1px #0009,0 1px #ffffff17;margin:0;font-size:28px;font-weight:600;line-height:1.1}.lobby-tagline{color:var(--lobby-ink-quiet);margin:0;font-size:16px;line-height:1.3}.lobby-open{border-color:var(--brass);flex:0 auto;min-width:0;max-width:100%;box-shadow:inset 0 2px 5px #0000008c}.lobby-block{background:var(--lobby-card);border:1px solid var(--lobby-rule);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.lobby-block.is-quiet{flex-flow:wrap;align-items:baseline;gap:4px 12px;padding:10px 16px}.lobby-block.is-quiet .lobby-games{display:none}.lobby-heading{color:var(--lobby-ink);margin:0;font-size:18px;font-weight:600}.lobby-lede{max-width:88ch;color:var(--lobby-ink-quiet);margin:-4px 0 0;font-size:17px;line-height:1.4}.lobby-games{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.lobby-game{min-height:var(--tap);border:1px solid var(--lobby-rule);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px 12px;display:flex}.lobby-game-who{color:var(--lobby-ink);font-size:18px;font-weight:600}.lobby-game-what{color:var(--lobby-ink);font-size:16px}.lobby-game-when,.lobby-game-where{color:var(--lobby-ink-quiet);font-size:15px}.lobby-join{margin-left:auto}.lobby-empty{color:var(--lobby-ink-quiet);margin:0;font-size:16px}.lobby-empty[hidden]{display:none}.lobby-circles{flex-direction:column;gap:12px;display:flex}.lobby-circle{border:1px solid var(--lobby-rule);border-radius:10px;padding:12px}.lobby-circle-head{flex-wrap:wrap;align-items:baseline;gap:6px 12px;display:flex}.lobby-circle-name{color:var(--lobby-ink);margin:0;font-size:18px;font-weight:600}.lobby-code-line{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.lobby-circle-code{letter-spacing:.1em;color:var(--lobby-ink);-webkit-user-select:all;user-select:all;cursor:text;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:18px}.lobby-copy{min-height:var(--tap);min-width:var(--tap);border:1px solid var(--lobby-rule);background:var(--lobby-card);color:var(--lobby-ink);font-family:var(--ui-sans);cursor:pointer;border-radius:8px;padding:0 14px;font-size:15px}.lobby-copy:hover{filter:brightness(1.15)}.lobby-copy:focus-visible{outline:3px solid var(--hi-vis);outline-offset:2px}.lobby-people{flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.lobby-person{min-height:var(--tap);border:1px solid var(--lobby-rule);background:var(--lobby-field);color:var(--lobby-ink);border-radius:8px;align-items:center;gap:10px;padding:4px 6px 4px 12px;font-size:16px;display:flex}.lobby-person-role{color:var(--lobby-ink-quiet);font-size:14px;font-style:italic}.lobby-remove{min-width:var(--tap);min-height:var(--tap);border:1px solid var(--lobby-rule);background:var(--lobby-card);color:var(--lobby-ink);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;margin-left:auto;padding:12px;display:inline-flex}.lobby-remove:hover{filter:brightness(1.15)}.lobby-remove:focus-visible{outline:3px solid var(--hi-vis);outline-offset:2px}.lobby-remove-mark{stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;fill:none;width:18px;height:18px}.lobby-mark{border:2px solid var(--lobby-away);background:0 0;border-radius:50%;flex:none;width:14px;height:14px}.lobby-person.is-here .lobby-mark{border-color:var(--lobby-here);background:var(--lobby-here)}.lobby-person-state{min-width:4.5em;color:var(--lobby-away);font-size:15px;font-weight:600}.lobby-person.is-here .lobby-person-state{color:var(--lobby-here)}.lobby-person-name{color:var(--lobby-ink)}.lobby-circle-foot{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.lobby-manage,.lobby-manage-do{min-height:var(--tap);min-width:var(--tap);border:1px solid var(--lobby-rule);background:var(--lobby-card);color:var(--lobby-ink);font-family:var(--ui-sans);cursor:pointer;border-radius:8px;padding:0 14px;font-size:15px}.lobby-manage:hover,.lobby-manage-do:hover{filter:brightness(1.15)}.lobby-manage:focus-visible,.lobby-manage-do:focus-visible{outline:3px solid var(--hi-vis);outline-offset:2px}.lobby-manage-panel{flex-wrap:wrap;flex-basis:100%;gap:8px;margin-top:4px;display:flex}.lobby-manage-panel[hidden]{display:none}.lobby-manage-do.is-grave{background:var(--lobby-field);border-width:2px}.lobby-person-pick{width:100%;min-height:var(--tap);color:inherit;font-family:var(--ui-sans);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:4px 12px;font-size:16px;display:flex}.lobby-person.is-choosable{border-color:var(--brass);border-width:2px;padding:0}.lobby-person.is-dim{opacity:.55}.lobby-person-pick:focus-visible{outline:3px solid var(--hi-vis);outline-offset:-3px}.lobby-rename{flex:100%}.lobby-handover{color:var(--lobby-ink-quiet);margin:8px 0 0;font-size:15px}.lobby-form{flex-direction:column;gap:18px;display:flex}.lobby-field{flex-direction:column;gap:6px;display:flex}.lobby-entry{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.lobby-label{color:var(--lobby-ink);font-size:17px;font-weight:600}.lobby-hint{color:var(--lobby-ink-quiet);margin:0;font-size:15px}.lobby-entry .btn{flex:none;min-width:140px;padding:0 24px}.lobby-explain{max-width:62ch;color:var(--lobby-ink);margin:0;font-size:17px;line-height:1.45}.lobby-gate{color:var(--lobby-ink-quiet);margin:0;font-size:16px}.lobby-gate[hidden]{display:none}.lobby-input{max-width:22em;min-height:var(--tap);border:1px solid var(--lobby-rule);background:var(--lobby-field);color:var(--lobby-ink);font-family:var(--ui-sans);border-radius:9px;flex:12em;padding:0 12px;font-size:18px}.lobby-input:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.lobby-status{color:var(--lobby-ink-quiet);margin:0;font-size:16px}.lobby-status.is-bad{color:var(--lobby-bad)}.lobby-status[hidden]{display:none}.lobby-drawer{margin:4px calc(-1 * var(--lobby-pad)) 0;padding:26px var(--lobby-pad) 30px;border-top:2px solid var(--brass-bright);border-bottom:2px solid var(--brass-bright);background:radial-gradient(at 26% 0,#1d6349 0%,#17513e 55%,#103a2c 100%);grid-template-columns:1fr;gap:20px;display:grid;box-shadow:inset 0 6px 16px #00000073}.lobby-sheet{background:linear-gradient(180deg, var(--paper) 0%, var(--paper) 62%, var(--paper-low) 100%);color:var(--print-ink);border-radius:3px;flex-direction:column;gap:14px;padding:22px 26px 26px;display:flex;box-shadow:inset 0 1px #ffffff80,2px 6px 14px #00000073}.lobby-sheet-title{border-bottom:1px solid var(--paper-edge);font-family:var(--ui-serif);letter-spacing:.01em;color:var(--print-ink);margin:0;padding-bottom:10px;font-size:24px;font-weight:600}.lobby-lead{max-width:64ch;font-family:var(--ui-serif);color:var(--print-ink);margin:0;font-size:20px;line-height:1.5}.lobby-facts{grid-template-columns:1fr;gap:20px 34px;margin:4px 0 0;padding:0;list-style:none;display:grid}.lobby-fact{border-left:2px solid var(--paper-edge);flex-direction:column;gap:6px;padding-left:14px;display:flex}.lobby-fact-name{font-family:var(--ui-serif);color:var(--print-ink);margin:0;font-size:19px;font-weight:600}.lobby-fact-body{color:var(--pencil);margin:0;font-size:17px;line-height:1.45}.lobby-steps{counter-reset:none;flex-direction:column;gap:18px;margin:4px 0 0;padding:0;list-style:none;display:flex}.lobby-step{align-items:flex-start;gap:16px;display:flex}.lobby-step-n{min-width:1.1em;font-family:var(--ui-serif);color:var(--print-ink);text-align:center;flex:none;font-size:30px;font-weight:600;line-height:1.05}.lobby-step-words{flex-direction:column;gap:5px;min-width:0;display:flex}.lobby-step-name{font-family:var(--ui-serif);color:var(--print-ink);margin:0;font-size:19px;font-weight:600}.lobby-step-body{max-width:68ch;color:var(--pencil);margin:0;font-size:17px;line-height:1.45}.lobby-note{border-top:1px solid var(--paper-edge);color:var(--print-ink);margin:0;padding-top:12px;font-size:17px;font-weight:600}.lobby-footer{border-top:1px solid var(--lobby-rule);align-items:flex-start;gap:16px;margin:4px 0 0;padding:18px 0 32px;display:flex}.lobby-footer .lobby-logo{width:calc(var(--brand-mark) * .8);height:calc(var(--brand-mark) * .8)}.lobby-colophon{flex-direction:column;gap:6px;min-width:0;display:flex}.lobby-colophon-line{max-width:76ch;color:var(--lobby-ink-quiet);margin:0;font-size:16px;line-height:1.45}.lobby-colophon-games{font-family:var(--ui-serif);letter-spacing:.03em;color:var(--lobby-ink-quiet);margin:0;font-size:16px}@media (min-width:760px){.lobby-facts{grid-template-columns:1fr 1fr}}@media (min-width:1100px){.lobby-drawer{grid-template-columns:1fr 1fr;align-items:start;gap:22px}.lobby-facts{grid-template-columns:1fr;gap:16px}}.menu-list{grid-template-columns:repeat(auto-fill, minmax(min(100%, var(--pick-min)), 1fr));gap:var(--pick-gap);grid-auto-rows:1fr;align-items:stretch;display:grid;container-type:inline-size}.menu-list[style*=--menu-cols]{grid-template-columns:repeat(var(--menu-cols), minmax(0, 1fr))}.menu-game{border:1px solid var(--pick-bead);background:linear-gradient(180deg, var(--pick-timber-light) 0%, var(--pick-timber) 52%, var(--pick-timber-deep) 100%);color:var(--pick-ink);font-family:var(--ui-sans);cursor:pointer;border-radius:12px;grid-template-rows:1fr auto;gap:8px;padding:10px;transition:filter .14s,box-shadow .14s;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffff1a,0 10px 20px #0000006b}.menu-game:hover{filter:brightness(1.1);box-shadow:inset 0 1px #ffffff1f,0 16px 30px #00000080}.menu-game:active{filter:brightness(.94);box-shadow:inset 0 2px 5px #00000073,0 4px 10px #0006}.menu-game:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.menu-shot-rebate{background:var(--pick-lining);border-radius:7px;min-height:0;display:block;position:relative;overflow:hidden}.menu-shot-rebate:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 2px 3px 7px #000000b8,inset 0 0 0 1px #0000008c,inset -1px -1px #ffffff0f}.menu-shot{aspect-ratio:3/2;object-fit:cover;color:#0000;width:100%;height:100%;display:block}.menu-shot-blank{aspect-ratio:3/2;background:var(--pick-lining);width:100%;height:100%;color:var(--pick-lining-ink);font-family:var(--ui-serif);font-size:calc(var(--pick-name) * 2.4);place-items:center;font-weight:600;display:grid}.menu-plate{min-height:calc(var(--pick-name) + 12px);justify-content:center;align-items:center;padding:0 6px 2px;display:flex}.menu-name{font-family:var(--ui-serif);font-size:min(var(--pick-name), calc((100cqw / var(--menu-cols,4) - var(--pick-gap)) / 11));letter-spacing:.02em;text-align:center;color:var(--pick-ink);overflow-wrap:anywhere;font-weight:600;line-height:1.2}.menu-empty{color:var(--lobby-ink);margin:0;font-size:18px}.lobby-stale{align-self:flex-start;align-items:flex-start;max-width:62ch;margin-bottom:32px}.stale-link-title{font-family:var(--ui-serif);color:var(--lobby-ink);margin:0;font-size:26px;font-weight:600}.stale-link-detail{color:var(--lobby-ink);margin:0;font-size:18px}:root[data-board-size=large] .lobby-title{font-size:32px}:root[data-board-size=largest] .lobby-title{font-size:38px}:root[data-board-size=large] .lobby-heading,:root[data-board-size=large] .lobby-game-who,:root[data-board-size=large] .lobby-circle-name{font-size:21px}:root[data-board-size=largest] .lobby-heading,:root[data-board-size=largest] .lobby-game-who,:root[data-board-size=largest] .lobby-circle-name{font-size:24px}:root[data-board-size=large] .lobby-game-what,:root[data-board-size=large] .lobby-empty,:root[data-board-size=large] .lobby-label,:root[data-board-size=large] .lobby-explain,:root[data-board-size=large] .lobby-hint,:root[data-board-size=large] .lobby-gate,:root[data-board-size=large] .lobby-person,:root[data-board-size=large] .lobby-status,:root[data-board-size=large] .stale-link-detail,:root[data-board-size=large] .menu-empty{font-size:18px}:root[data-board-size=largest] .lobby-game-what,:root[data-board-size=largest] .lobby-empty,:root[data-board-size=largest] .lobby-label,:root[data-board-size=largest] .lobby-explain,:root[data-board-size=largest] .lobby-hint,:root[data-board-size=largest] .lobby-gate,:root[data-board-size=largest] .lobby-person,:root[data-board-size=largest] .lobby-status,:root[data-board-size=largest] .stale-link-detail,:root[data-board-size=largest] .menu-empty{font-size:20px}:root[data-board-size=large] .lobby-game-when,:root[data-board-size=large] .lobby-game-where,:root[data-board-size=large] .lobby-person-state{font-size:17px}:root[data-board-size=largest] .lobby-game-when,:root[data-board-size=largest] .lobby-game-where,:root[data-board-size=largest] .lobby-person-state{font-size:19px}:root[data-board-size=large] .lobby-remove{padding:14px}:root[data-board-size=largest] .lobby-remove{padding:16px}:root[data-board-size=large] .lobby-remove-mark{width:22px;height:22px}:root[data-board-size=largest] .lobby-remove-mark{width:26px;height:26px}:root[data-board-size=large] .lobby-person-role{font-size:16px}:root[data-board-size=largest] .lobby-person-role{font-size:18px}:root[data-board-size=large] .lobby-manage,:root[data-board-size=large] .lobby-manage-do,:root[data-board-size=large] .lobby-person-pick,:root[data-board-size=large] .lobby-handover{font-size:17px}:root[data-board-size=largest] .lobby-manage,:root[data-board-size=largest] .lobby-manage-do,:root[data-board-size=largest] .lobby-person-pick,:root[data-board-size=largest] .lobby-handover{font-size:19px}:root[data-board-size=large] .lobby-manage,:root[data-board-size=large] .lobby-manage-do{padding:16px 18px}:root[data-board-size=largest] .lobby-manage,:root[data-board-size=largest] .lobby-manage-do{padding:19px 22px}:root[data-board-size=large] .lobby-person-pick{padding:16px 14px}:root[data-board-size=largest] .lobby-person-pick{padding:19px 16px}:root[data-board-size=large] .lobby-tagline,:root[data-board-size=large] .lobby-lede,:root[data-board-size=large] .lobby-fact-body,:root[data-board-size=large] .lobby-step-body,:root[data-board-size=large] .lobby-note,:root[data-board-size=large] .lobby-colophon-line,:root[data-board-size=large] .lobby-colophon-games{font-size:18px}:root[data-board-size=largest] .lobby-tagline,:root[data-board-size=largest] .lobby-lede,:root[data-board-size=largest] .lobby-fact-body,:root[data-board-size=largest] .lobby-step-body,:root[data-board-size=largest] .lobby-note,:root[data-board-size=largest] .lobby-colophon-line,:root[data-board-size=largest] .lobby-colophon-games{font-size:20px}:root[data-board-size=large] .lobby-lead,:root[data-board-size=large] .lobby-fact-name,:root[data-board-size=large] .lobby-step-name{font-size:21px}:root[data-board-size=largest] .lobby-lead,:root[data-board-size=largest] .lobby-fact-name,:root[data-board-size=largest] .lobby-step-name{font-size:23px}:root[data-board-size=large] .lobby-sheet-title{font-size:27px}:root[data-board-size=largest] .lobby-sheet-title{font-size:30px}:root[data-board-size=large] .lobby-step-n{font-size:34px}:root[data-board-size=largest] .lobby-step-n{font-size:38px}:root[data-board-size=large] .lobby{--brand-mark:54px}:root[data-board-size=largest] .lobby{--brand-mark:62px}:root[data-board-size=large]{--pick-min:244px;--pick-floor:176px;--pick-name:26px;--pick-gap:16px}:root[data-board-size=largest]{--pick-min:256px;--pick-floor:184px;--pick-name:30px;--pick-gap:18px}.shell-settings{--settings-hint:#cbbfa6;--settings-when:#d8c48a}.modal-card.shell-settings-card{width:min(560px,94vw);max-height:92vh;overflow:hidden}.shell-settings-body{flex:auto;min-height:0;padding:2px 2px 10px;overflow-y:auto}.shell-settings-field{margin-bottom:18px}.shell-settings .shell-settings-choices{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));display:grid}.shell-settings .shell-settings-hint{min-height:2.2em;color:var(--settings-hint);margin:8px 0 0;font-size:14px;line-height:1.45}.shell-settings-when{border-left:2px solid var(--settings-when);color:var(--settings-when);margin:6px 0 0;padding-left:10px;font-size:13px;line-height:1.4}.shell-settings-done{min-height:var(--tap);color:#fdf4dd;font-family:var(--ui-sans);letter-spacing:.01em;cursor:pointer;background:linear-gradient(#7d5a1e 0%,#5a3f13 100%);border:1px solid #c9a2279e;border-radius:9px;align-self:stretch;margin-top:6px;padding:0 14px;font-size:15px;font-weight:500;line-height:1.2;transition:filter .14s}.shell-settings-done:hover{filter:brightness(1.18)}.shell-settings-done:active{filter:brightness(.9)}.shell-settings-done:focus-visible{outline:3px solid var(--hi-vis);outline-offset:2px}:root[data-board-size=large] .shell-settings .modal-title{font-size:28px}:root[data-board-size=largest] .shell-settings .modal-title{font-size:32px}:root[data-board-size=large] .shell-settings .field-label{font-size:18px}:root[data-board-size=largest] .shell-settings .field-label{font-size:21px}:root[data-board-size=large] .shell-settings .shell-settings-hint{font-size:17px}:root[data-board-size=largest] .shell-settings .shell-settings-hint{font-size:20px}:root[data-board-size=large] .shell-settings .shell-settings-when{font-size:16px}:root[data-board-size=largest] .shell-settings .shell-settings-when{font-size:19px}:root[data-board-size=large] .shell-settings .segment{min-height:52px;font-size:18px}:root[data-board-size=largest] .shell-settings .segment{min-height:62px;font-size:21px}:root[data-board-size=large] .shell-settings-done{min-height:52px;font-size:18px}:root[data-board-size=largest] .shell-settings-done{min-height:62px;font-size:21px}.game-host:has(>.memory){padding:max(18px, env(safe-area-inset-top)) calc(var(--rail-right) + max(12px, env(safe-area-inset-right))) calc(var(--rail-bottom) + max(8px, env(safe-area-inset-bottom))) max(12px, env(safe-area-inset-left));background:radial-gradient(ellipse at 50% 34%, var(--felt-light), var(--felt) 72%);justify-content:center;align-items:center;display:flex;overflow:hidden;container-type:size}.memory{--card:max(var(--grid-cell-min), min(calc(100cqw / (var(--cols,5) + (var(--cols,5) - 1) * .1)), calc(100cqh / (var(--rows,4) + (var(--rows,4) - 1) * .1))));--card-gap:calc(var(--card) * .1);--card-radius:calc(var(--card) * .09);grid-template-columns:repeat(var(--cols,5), var(--card));grid-template-rows:repeat(var(--rows,4), var(--card));gap:var(--card-gap);display:grid}.memory-card{width:var(--card);height:var(--card);min-width:var(--grid-cell-min);min-height:var(--grid-cell-min);border-radius:var(--card-radius);perspective:calc(var(--card) * 6);cursor:pointer;touch-action:manipulation;background:0 0;border:none;padding:0;position:relative}.memory-flip{border-radius:inherit;transform-style:preserve-3d;transition:transform .32s;position:absolute;inset:0}.memory-card.is-up .memory-flip{transform:rotateY(180deg)}@media (prefers-reduced-motion:reduce){.memory-flip{transition:none}}.memory-back{background:repeating-linear-gradient(45deg, var(--memory-back-hatch) 0 1.5px, transparent 1.5px 8px), repeating-linear-gradient(-45deg, var(--memory-back-hatch) 0 1.5px, transparent 1.5px 8px), var(--card-back)}.memory-back-mark{border:2px solid var(--card-back-ink);background:var(--card-back);border-radius:4px;position:absolute;inset:12%}.memory-front{background:var(--card-face);transform:rotateY(180deg)}.memory-back,.memory-front{border:2px solid var(--card-rule);border-radius:inherit;backface-visibility:hidden;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.memory-art{fill:currentColor;stroke:currentColor;width:76%;height:76%}.memory-front[data-ink=beast]{color:var(--memory-ink-beast)}.memory-front[data-ink=bird]{color:var(--memory-ink-bird)}.memory-front[data-ink=thing]{color:var(--memory-ink-thing)}.memory-front[data-ink=green]{color:var(--memory-ink-green)}.memory-card.is-cursor{outline:4px solid var(--card-mark);outline-offset:-4px;box-shadow:0 0 0 6px var(--card-mark-lit);z-index:3}.memory-card:focus-visible{outline:4px solid var(--card-mark);outline-offset:3px;box-shadow:0 0 0 9px var(--card-mark-lit);z-index:5}.memory-card.is-up{box-shadow:0 0 0 4px var(--card-mark), 0 0 0 9px var(--card-mark-lit), 0 10px 18px #00000073;z-index:4;transform:translateY(-4%)}.memory-card.is-found{cursor:default}.memory-card.is-found .memory-flip{display:none}.memory-card.is-found:before{content:"";border-radius:inherit;background:var(--memory-hollow);position:absolute;inset:8%;box-shadow:inset 0 2px 6px #00000073}.memory-card:not(.is-found):hover .memory-back{filter:brightness(1.06)}.memory-card:not(.is-found):active .memory-back{filter:brightness(.94)}.shell-family{--family-text:#ecdfc4;--family-note:#cbbfa6;--family-bad:#ffab99}.modal-card.shell-family-card{width:min(480px,94vw)}.shell-family-body{flex-direction:column;gap:10px;margin-bottom:18px;display:flex}.shell-family-text{color:var(--family-text);font-family:var(--ui-sans);margin:0;font-size:17px;line-height:1.45}.shell-family-note{color:var(--family-note);font-family:var(--ui-sans);margin:0;font-size:15px;line-height:1.4}.shell-family-note.is-bad{color:var(--family-bad)}.shell-family-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.shell-family-actions .btn{flex:auto;margin-left:0}.shell-family .room-code{text-align:center;font-size:40px}:root[data-board-size=large] .shell-family-text{font-size:19px}:root[data-board-size=largest] .shell-family-text{font-size:21px}:root[data-board-size=large] .shell-family-note{font-size:17px}:root[data-board-size=largest] .shell-family-note{font-size:19px}.shell-waiting{z-index:7;left:var(--rail-pin-left);right:var(--rail-pin-right);bottom:calc(var(--rail-lift) + max(6px, env(safe-area-inset-bottom)));max-width:var(--rail-item-cap);color:#ecdfc4;font-family:var(--ui-sans);pointer-events:none;background:linear-gradient(#3c2a1c 0%,#2a1c11 100%);border:1px solid #c9a22752;border-radius:9px;flex-wrap:wrap;align-items:center;gap:10px;margin:0;padding:6px 14px;display:flex;position:absolute;box-shadow:0 8px 22px #00000080}.shell-waiting[hidden]{display:none}.shell-waiting-text{margin:0;font-size:15px;line-height:1.25}.shell-waiting-code{margin:0}.shell-waiting .room-code{letter-spacing:.18em;margin:0;font-size:22px;display:inline-block}.shell-waiting-stop{pointer-events:auto;flex:none;margin-left:0}:root[data-board-size=large] .shell-waiting-text{font-size:17px}:root[data-board-size=largest] .shell-waiting-text{font-size:19px}:root[data-board-size=large] .shell-waiting .room-code{font-size:25px}:root[data-board-size=largest] .shell-waiting .room-code{font-size:28px}body:has(.shell-waiting:not([hidden])) .turn-nudge{bottom:calc(var(--rail-lift) + max(6px, env(safe-area-inset-bottom)) + var(--waiting-clear))}.lobby-choice{--choice-text:#ecdfc4;--choice-note:#cbbfa6}.modal-card.lobby-choice-card{width:min(460px,94vw)}.lobby-choice-title{margin-bottom:6px}.lobby-choice-question{color:var(--choice-text);font-family:var(--ui-sans);margin:0 0 20px;font-size:19px;line-height:1.35}.lobby-choice-answer{width:100%;margin-left:0;font-size:19px;display:block}.lobby-choice-hint{color:var(--choice-note);font-family:var(--ui-sans);margin:6px 0 18px;font-size:15px;line-height:1.4}.lobby-choice-back{width:100%;margin-left:0;display:block}:root[data-board-size=large] .lobby-choice-question{font-size:21px}:root[data-board-size=largest] .lobby-choice-question{font-size:23px}:root[data-board-size=large] .lobby-choice-answer{font-size:21px}:root[data-board-size=largest] .lobby-choice-answer{font-size:23px}:root[data-board-size=large] .lobby-choice-hint{font-size:17px}:root[data-board-size=largest] .lobby-choice-hint{font-size:19px}.memory-strip{z-index:5;top:max(6px, env(safe-area-inset-top));width:max-content;max-width:min(94%,900px);max-height:calc(var(--memory-strip-clear) - 6px);color:#ecdfc4;font-family:var(--ui-sans);text-align:center;background:linear-gradient(#3c2a1c 0%,#2a1c11 100%);border:1px solid #c9a22752;border-radius:9px;margin:0;padding:8px 16px;font-size:17px;font-weight:600;line-height:1.25;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.memory-strip[hidden]{display:none}.game-host:has(>.memory-strip:not([hidden])){padding-top:calc(var(--memory-strip-clear) * var(--head-on) + max(12px, env(safe-area-inset-top)))}:root[data-board-size=large] .memory-strip{font-size:19px}:root[data-board-size=largest] .memory-strip{font-size:21px}.table-strip{z-index:5;top:max(6px, env(safe-area-inset-top));width:max-content;max-width:min(94%,900px);max-height:calc(var(--table-strip-clear) - 6px);color:#ecdfc4;font-family:var(--ui-sans);text-align:center;background:linear-gradient(#3c2a1c 0%,#2a1c11 100%);border:1px solid #c9a22752;border-radius:9px;margin:0;padding:8px 16px;font-size:17px;font-weight:600;line-height:1.25;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}.table-strip[hidden]{display:none}.game-host:has(>.table-strip:not([hidden])){padding-top:calc(var(--table-strip-clear) * var(--head-on) + max(12px, env(safe-area-inset-top)))}:root[data-board-size=large] .table-strip{font-size:19px}:root[data-board-size=largest] .table-strip{font-size:21px}.game-host:has(>.grid-clue)>.table-strip:not([hidden]){top:calc(var(--grid-clue-space) + max(8px, env(safe-area-inset-top)) + 10px);left:max(8px, env(safe-area-inset-left));right:calc(var(--grid-side-width) + max(20px, env(safe-area-inset-right)));width:auto;max-width:none;transform:none}@media (min-width:1180px){.game-host:has(>.grid-side)>.table-strip:not([hidden]){left:calc(var(--grid-side-width) + max(20px, env(safe-area-inset-left)))}.game-host:has(>.grid-side.is-wide)>.table-strip:not([hidden]){left:max(8px, env(safe-area-inset-left))}}.game-host:has(>.grid-clue):has(>.table-strip:not([hidden])){padding-top:calc(var(--grid-clue-space) + var(--table-strip-clear) + max(16px, env(safe-area-inset-top)))}@media (min-aspect-ratio:1){.game-host>.chess-status,.game-host>.table-strip:not([hidden]),.game-host>.memory-strip:not([hidden]){top:max(6px, env(safe-area-inset-top));left:auto;right:max(8px, env(safe-area-inset-right));width:calc(var(--rail-side) - 16px);max-width:none;max-height:calc(100% - var(--rail-taken) - 24px);text-align:left;transform:none}}
