:root{--font-display:"Fraunces", "Iowan Old Style", Georgia, serif;--font-body:"Hanken Grotesk", "Segoe UI", system-ui, sans-serif;--font-mono:"Spline Sans Mono", "Cascadia Mono", Consolas, monospace;--display-italic:italic;--bg:#10160f;--panel:#1a211a;--panel-2:#141b14;--line:#2b352b;--text:#ede7d8;--muted:#9aa694;--accent:#d8a54a;--accent-text:#1c1305;--accent-soft:#d8a54a24;--accent-glow:#d8a54a47;--danger:#c7584a;--danger-text:#ffb1a6;--success:#7fae6a;--p1:#c05b4a;--p1-deep:#8e3a2d;--p2:#e4decc;--p2-deep:#b0a98f;--board-light:#ead9b4;--board-dark:#9f6e4a;--felt:#2f5d3a;--felt-deep:#24492e;--radius-lg:16px;--radius-md:10px;--radius-sm:7px;--border-w:1px;--frame-pad:12px;--shadow-panel:0 30px 70px -18px #000000a6, 0 10px 26px -8px #0006;--shadow-btn:0 2px 6px #00000040;--texture-opacity:.05}*{box-sizing:border-box}body{font-family:var(--font-body);background:radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--panel) 55%, var(--bg)) 0%, var(--bg) 55%, color-mix(in srgb, var(--bg) 82%, black) 100%) fixed;color:var(--text);margin:0;transition:background .4s,color .4s}body:before{content:"";z-index:1;pointer-events:none;opacity:var(--texture-opacity);background-image:var(--texture,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E"));position:fixed;inset:0}#root{z-index:2;min-height:100vh;position:relative}.setup-page{align-content:center;justify-items:center;min-height:100vh;padding:clamp(20px,5vh,56px) clamp(16px,4vw,40px);display:grid}.home-tag{color:var(--muted);max-width:34ch;margin:0;font-size:clamp(1rem,1.6vw,1.2rem)}.game-shell{flex-direction:column;min-height:100vh;display:flex}.top-bar{background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 70%, var(--bg)), transparent);align-items:center;gap:18px;padding:14px 28px;display:flex;position:relative}.top-bar:after{content:"";background:linear-gradient(90deg, transparent, var(--line) 18%, var(--line) 82%, transparent);height:1px;position:absolute;bottom:0;left:0;right:0}.top-bar h1{font-family:var(--font-display);font-style:var(--display-italic);letter-spacing:.01em;text-shadow:0 1px #0000004d;margin:0;font-size:1.6rem;font-weight:600}.mode-chip{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding:5px 0;font-size:.68rem;font-weight:700}.top-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.game-main{flex:1;grid-template-columns:auto 310px;place-content:center;align-items:stretch;gap:28px;min-height:0;padding:28px;display:grid}.board-stack{width:min(var(--stack-w,700px), 92vw, calc(100vh - 250px));border-radius:var(--radius-lg);background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 88%, white), var(--panel));border:var(--border-w) solid color-mix(in srgb, var(--line) 70%, var(--bg));box-shadow:inset 0 1px 0 #ffffff12, var(--shadow-panel);flex-direction:column;align-self:start;display:flex;overflow:hidden}.table-mat{padding:var(--frame-pad);background:linear-gradient(160deg, color-mix(in srgb, var(--panel-2) 85%, white) 0%, var(--panel-2) 30%, color-mix(in srgb, var(--panel-2) 80%, black) 100%);flex-direction:column;align-items:center;gap:12px;display:flex}.table-mat>*{width:100%}.table-mat .board{box-shadow:0 0 0 1px color-mix(in srgb, var(--line) 60%, black), inset 0 2px 10px #00000059, 0 1px 0 #ffffff0f;border-radius:4px;overflow:hidden}button{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.game-enter{animation:.4s ease-out fade-up}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.board{width:100%;transition:opacity .17s,transform .17s;position:relative}.board.swapping{opacity:0;pointer-events:none;transform:scale(.975)translateY(3px)}.themed-piece{filter:drop-shadow(0 2px 2px #00000059);width:100%;height:100%;display:block}.board-overlay{z-index:20;background:radial-gradient(100% 100% at 50% 40%, color-mix(in srgb, var(--bg) 72%, transparent), color-mix(in srgb, var(--bg) 92%, transparent));-webkit-backdrop-filter:blur(6px)saturate(1.1);backdrop-filter:blur(6px)saturate(1.1);border-radius:var(--radius-sm);flex-direction:column;justify-content:center;align-items:center;gap:12px;animation:.3s ease-out fade-up;display:flex;position:absolute;inset:0}.board-overlay p{color:var(--muted);margin:0}.waiting-sub{font-size:.9rem;animation:1.6s ease-in-out infinite pulse-dim}@keyframes pulse-dim{0%,to{opacity:.5}50%{opacity:1}}.room-code{font-family:var(--font-mono);letter-spacing:.2em;border:2px dashed var(--accent);border-radius:var(--radius-md);color:var(--accent);cursor:pointer;background:0 0;padding:10px 22px;font-size:2rem;font-weight:700;transition:background .15s,transform .15s}.room-code:hover{background:var(--accent-soft);transform:scale(1.03)}.promo-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.promo-btn{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);width:64px;height:64px;color:var(--text);cursor:pointer;font-size:2.2rem;line-height:1;transition:border-color .15s,transform .15s,background .15s}.promo-btn:hover{border-color:var(--accent);background:var(--panel-2);transform:translateY(-3px)}.promo-cancel{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);cursor:pointer;padding:9px 18px;font-size:.95rem;transition:border-color .15s,transform .15s}.promo-cancel:hover{border-color:var(--accent);transform:translateY(-2px)}.result-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.result-actions .bar-btn{flex:none}.result-title{font-family:var(--font-display);font-style:var(--display-italic);text-align:center;padding:0 16px;font-size:1.6rem;animation:.5s cubic-bezier(.34,1.56,.64,1) status-pop;color:var(--accent)!important}.player-bar{background:0 0;align-items:center;gap:10px;height:46px;padding:0 16px;transition:background .35s,opacity .35s,color .35s;display:flex;overflow:hidden}.seat-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;box-shadow:inset 0 -1px 1px #00000059}.player-bar.seat-p1 .seat-dot{background:radial-gradient(circle at 35% 30%, var(--p1), var(--p1-deep))}.player-bar.seat-p2 .seat-dot{background:radial-gradient(circle at 35% 30%, var(--p2), var(--p2-deep))}.player-bar:not(.active){opacity:.55}.player-bar.active.seat-p1{background:linear-gradient(90deg, var(--p1-deep), var(--p1) 55%);color:#f9efe2}.player-bar.active.seat-p2{background:linear-gradient(90deg, var(--p2-deep), var(--p2) 55%);color:#262114}.player-bar.active .captured{color:inherit;opacity:.85}.player-bar.active .captured .lead{color:inherit}.player-bar.active .spinner{border-color:currentColor #00000040 #00000040}.player-bar.active.seat-p2 .player-note{color:#8e2f22}.player-bar .player-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.player-bar .captured{flex-wrap:nowrap;flex-shrink:1;overflow:hidden}.bar-chip{letter-spacing:.16em;text-transform:uppercase;color:inherit;align-items:center;gap:6px;font-size:.68rem;font-weight:700;animation:.3s cubic-bezier(.34,1.56,.64,1) badge-pop;display:inline-flex}.bar-chip:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.6s ease-in-out infinite pulse-dim}.turn-p1 .board-stack{border-color:color-mix(in srgb, var(--p1) 55%, var(--line));box-shadow:inset 0 1px 0 #ffffff12, var(--shadow-panel), 0 0 0 2px color-mix(in srgb, var(--p1) 55%, transparent), 0 0 26px -6px color-mix(in srgb, var(--p1) 55%, transparent)}.turn-p2 .board-stack{border-color:color-mix(in srgb, var(--p2) 55%, var(--line));box-shadow:inset 0 1px 0 #ffffff12, var(--shadow-panel), 0 0 0 2px color-mix(in srgb, var(--p2) 50%, transparent), 0 0 26px -6px color-mix(in srgb, var(--p2) 50%, transparent)}.turn-both .board-stack{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));box-shadow:inset 0 1px 0 #ffffff12, var(--shadow-panel), 0 0 0 2px var(--accent-glow)}.turn-p1 .status-strip:not(.check):not(.over){box-shadow:inset 4px 0 0 var(--p1)}.turn-p2 .status-strip:not(.check):not(.over){box-shadow:inset 4px 0 0 var(--p2)}.player-name{font-size:.98rem;font-weight:700}.captured{color:var(--muted);letter-spacing:-1px;align-items:baseline;gap:1px;margin-left:auto;font-size:1rem;display:flex}.captured .lead{color:var(--accent);letter-spacing:0;margin-left:6px;font-size:.78rem;font-weight:700}.player-note{color:var(--danger);font-size:.78rem;animation:1.6s ease-in-out infinite pulse-dim}@keyframes badge-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.panel-slot{width:310px;min-height:400px;position:relative}.panel{background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 90%, white), var(--panel) 40%);border:1px solid color-mix(in srgb, var(--line) 70%, var(--bg));border-radius:var(--radius-lg);box-shadow:inset 0 1px 0 #ffffff0f, var(--shadow-panel);flex-direction:column;gap:0;display:flex;position:absolute;inset:0;overflow:hidden}.setup h1{font-family:var(--font-display);font-style:var(--display-italic);letter-spacing:.01em;margin:0;font-size:1.9rem;font-weight:600}.status-strip{min-height:3.4em;font-family:var(--font-display);font-style:var(--display-italic);color:var(--accent);background:linear-gradient(180deg, var(--accent-soft), transparent);border-bottom:1px solid color-mix(in srgb, var(--line) 60%, transparent);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;align-items:center;padding:8px 18px;font-size:1.05rem;font-weight:600;animation:.3s ease-out status-in;display:flex}@keyframes status-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.status-strip.check{color:var(--danger-text);background:color-mix(in srgb, var(--danger) 14%, transparent);animation:.4s ease-in-out status-shake}@keyframes status-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}.status-strip.over{animation:.5s cubic-bezier(.34,1.56,.64,1) status-pop}@keyframes status-pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.home2{flex-direction:column;gap:26px;max-width:1200px;min-height:100vh;margin:0 auto;padding:clamp(20px,4vh,44px) clamp(16px,4vw,40px);display:flex}.home2-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.home2-head h1{font-family:var(--font-display);font-style:var(--display-italic);text-shadow:0 2px #00000040;margin:0;font-size:clamp(2.6rem,6vw,4rem);font-weight:600;line-height:1.05}.home2 .home-tag{margin:6px 0 0}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;display:grid}.game-tile{text-align:left;border:1px solid color-mix(in srgb, var(--line) 85%, white);border-radius:var(--radius-md);background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 92%, white), var(--panel));color:var(--text);cursor:pointer;box-shadow:inset 0 1px 0 #ffffff0f, var(--shadow-btn);flex-direction:column;align-items:stretch;gap:10px;padding:16px;transition:border-color .15s,transform .2s,box-shadow .2s;animation:.45s cubic-bezier(.34,1.56,.64,1) both card-in;display:flex;position:relative}.game-tile:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:inset 0 1px #ffffff14,0 14px 30px -10px #00000073}.game-tile:hover .game-preview svg{transform:scale(1.07)rotate(-1.5deg)}.game-tile:active{transform:translateY(-1px)scale(.98)}.game-tile.featured{border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.game-preview{background:color-mix(in srgb, var(--panel-2) 70%, var(--bg));border-radius:var(--radius-sm);justify-content:center;align-items:center;height:108px;padding:14px;display:flex}.game-preview svg{width:72px;height:72px;transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.tile-text{flex-direction:column;gap:2px;min-width:0;display:flex}.tile-name{font-size:1.02rem;font-weight:700}.tile-tag{color:var(--muted);font-size:.8rem}.tile-name-row{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.tile-badges{flex-shrink:0;gap:4px;display:flex}.tile-badges i{letter-spacing:.1em;color:var(--muted);background:color-mix(in srgb, var(--bg) 70%, transparent);border:1px solid var(--line);border-radius:999px;padding:2px 6px;font-size:.58rem;font-style:normal;font-weight:700}.gallery-search{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);width:min(420px,100%);color:var(--muted);align-items:center;gap:10px;padding:11px 16px;transition:border-color .2s,box-shadow .2s;display:flex}.gallery-search input{min-width:0;color:var(--text);background:0 0;border:none;flex:1;font-family:inherit;font-size:1rem}.gallery-search input:focus{outline:none}.gallery-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.gallery-empty{color:var(--muted);margin:8px 0}.tile-badges .llm-badge{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 50%, var(--line))}.llm-board{border-radius:var(--radius-sm);background:linear-gradient(165deg, color-mix(in srgb, var(--felt) 88%, white), var(--felt) 40%, var(--felt-deep));--deck:var(--accent);flex-direction:column;justify-content:center;align-items:center;gap:18px;width:100%;min-height:340px;padding:22px 14px;display:flex;box-shadow:inset 0 2px 10px #0000004d}.deck-truthordare{--deck:var(--p1)}.deck-questions{--deck:#4a5f8a}.deck-wouldyourather{--deck:#2c4a70}.deck-neverhave{--deck:#24492e}.deck-trivia{--deck:#8a6a2f}.llm-score-row{gap:12px;display:flex}.llm-card{background:linear-gradient(175deg, color-mix(in srgb, var(--board-light) 97%, white), var(--board-light));border-radius:var(--radius-md);color:#241a10;width:min(100%,420px);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--deck) 45%, transparent), inset 0 0 0 6px color-mix(in srgb, var(--board-light) 92%, white), 0 10px 24px #0006;border:none;flex-direction:column;gap:14px;padding:24px 22px;animation:.45s cubic-bezier(.34,1.56,.64,1) llm-deal;display:flex}@keyframes llm-deal{0%{opacity:0;transform:translateY(18px)rotate(-2deg)scale(.94)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}.llm-kind{letter-spacing:.2em;text-transform:uppercase;color:var(--deck);font-size:.68rem;font-weight:700}.llm-text{font-family:var(--font-display);font-style:var(--display-italic);color:#241a10;margin:0;font-size:1.25rem;line-height:1.45}.llm-ab{flex-direction:column;gap:8px;display:flex}.llm-ab-panel{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--deck) 10%, transparent);border-left:3px solid var(--deck);align-items:baseline;gap:10px;padding:11px 14px;font-size:.98rem;line-height:1.4;display:flex}.llm-ab-panel b{font-family:var(--font-display);font-style:var(--display-italic);color:var(--deck);font-size:1.1rem}.llm-options{flex-direction:column;gap:8px;display:flex}.llm-opt{border:1.5px solid color-mix(in srgb, var(--deck) 35%, transparent);border-radius:var(--radius-sm);color:#241a10;text-align:left;cursor:pointer;background:0 0;align-items:baseline;gap:10px;padding:11px 14px;font-size:.95rem;transition:border-color .15s,transform .12s,background .15s;display:flex}.llm-letter{font-family:var(--font-mono);color:var(--deck);font-size:.8rem}.llm-opt:hover:not(:disabled){border-color:var(--deck);background:color-mix(in srgb, var(--deck) 8%, transparent);transform:translate(3px)}.llm-opt:disabled{cursor:default}.llm-opt.right{border-color:var(--success);background:color-mix(in srgb, var(--success) 22%, transparent)}.llm-opt.wrong{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 18%, transparent)}.llm-opt.dim{opacity:.45}.llm-next{flex:none;align-self:center}.llm-draws{flex-direction:column;align-items:center;gap:16px;display:flex}.llm-whose{color:color-mix(in srgb, var(--text) 80%, transparent);margin:0}.llm-draw-row{gap:16px;display:flex}.llm-draw{aspect-ratio:5/7;border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;width:128px;padding:0;transition:transform .18s;position:relative}.llm-draw-back{border-radius:var(--radius-md);background:repeating-linear-gradient(45deg, transparent 0 6px, #ead9b424 6px 7.5px), repeating-linear-gradient(-45deg, transparent 0 6px, #ead9b424 6px 7.5px), linear-gradient(155deg, color-mix(in srgb, var(--deck) 88%, white), var(--deck) 45%, color-mix(in srgb, var(--deck) 70%, black));box-shadow:inset 0 0 0 2px #ead9b466, inset 0 0 0 7px color-mix(in srgb, var(--deck) 80%, black), 0 6px 14px #0006;position:absolute;inset:0}.llm-draw-label{z-index:1;color:#f4eede;text-shadow:0 1px 2px #00000080;justify-content:center;align-items:center;height:100%;padding:8px;font-size:1.02rem;font-weight:700;display:flex;position:relative}.llm-draw:hover:not(:disabled){transform:translateY(-6px)rotate(-1.5deg)}.llm-draw:disabled{opacity:.55;cursor:default}.llm-panel{flex-direction:column;gap:14px;display:flex}.advanced-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:4px 0;font-size:.85rem}.advanced-toggle:hover{color:var(--accent)}.llm-advanced{border:1px dashed var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:12px;padding:14px;display:flex}.llm-custom{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);resize:vertical;min-height:64px;padding:10px 12px;font-family:inherit;font-size:.92rem;line-height:1.45;transition:border-color .2s,box-shadow .2s}.llm-custom:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.key-link{color:var(--accent);margin-left:6px;font-size:.8rem;text-decoration:none}.llm-note{color:var(--muted);margin:0;font-size:.75rem}.llm-note.err-note{color:var(--danger-text)}.model-picker{position:relative}.model-current{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);width:100%;color:var(--text);cursor:pointer;font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;font-size:.82rem;display:flex}.model-id{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.model-caret{color:var(--muted)}.model-drop{z-index:40;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-panel);flex-direction:column;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden}.model-drop input{border:none;border-bottom:1px solid var(--line);background:var(--panel-2);color:var(--text);padding:9px 12px;font-size:.85rem}.model-drop input:focus{outline:none}.model-list{max-height:220px;overflow-y:auto}.model-row{text-align:left;width:100%;color:var(--text);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;padding:7px 12px;font-size:.78rem;display:block}.model-row:hover{background:var(--panel-2)}.model-row.on{color:var(--accent)}.model-note{color:var(--muted);margin:0;padding:10px 12px;font-size:.8rem}.model-note.err{color:var(--danger-text)}.home2-foot{text-align:center;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:4px 0 0;font-size:.7rem;font-weight:700}.confetti{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti i{background:var(--accent);opacity:0;border-radius:2px;width:8px;height:14px;animation:2.6s ease-in forwards confetti-fall;position:absolute;top:-8%}.confetti i:nth-child(3n){background:var(--text);width:6px;height:10px}.confetti i:nth-child(4n){background:var(--p1)}.confetti i:first-child{animation-delay:0s;left:6%}.confetti i:nth-child(2){animation-delay:.25s;left:14%}.confetti i:nth-child(3){animation-delay:.1s;left:21%}.confetti i:nth-child(4){animation-delay:.4s;left:28%}.confetti i:nth-child(5){animation-delay:50ms;left:35%}.confetti i:nth-child(6){animation-delay:.32s;left:42%}.confetti i:nth-child(7){animation-delay:.18s;left:49%}.confetti i:nth-child(8){animation-delay:.45s;left:56%}.confetti i:nth-child(9){animation-delay:80ms;left:63%}.confetti i:nth-child(10){animation-delay:.36s;left:70%}.confetti i:nth-child(11){animation-delay:.15s;left:77%}.confetti i:nth-child(12){animation-delay:.5s;left:84%}.confetti i:nth-child(13){animation-delay:.22s;left:91%}.confetti i:nth-child(14){animation-delay:.55s;left:10%}.confetti i:nth-child(15){animation-delay:.6s;left:47%}.confetti i:nth-child(16){animation-delay:.65s;left:88%}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:.9;transform:translateY(120vh)rotate(540deg)}}.board-zone{position:relative}.module-loading{justify-content:center;align-items:center;min-height:100vh;display:flex}.legal-dot{background:var(--accent-glow);pointer-events:none;border-radius:50%;width:26%;height:26%;position:absolute}.ttt-board{aspect-ratio:1;border-radius:var(--radius-sm);background:repeating-linear-gradient(0deg, transparent 0 11px, #784e2809 11px 12px), linear-gradient(170deg, color-mix(in srgb, var(--board-light) 96%, white), var(--board-light));width:100%;box-shadow:inset 0 2px 8px #00000024, 0 0 0 1px color-mix(in srgb, var(--board-dark) 45%, black);position:relative}.ttt-grid{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ttt-rule{fill:none;stroke:color-mix(in srgb, var(--board-dark) 65%, black);stroke-width:1.6px;stroke-linecap:round;opacity:.8}.ttt-win-stroke{stroke:var(--accent);stroke-width:3px;stroke-linecap:round;stroke-dasharray:140;stroke-dashoffset:140px;animation:.45s ease-out .1s forwards stroke-draw-long}.ttt-cells{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);display:grid;position:absolute;inset:0}.ttt-cell{cursor:pointer;background:0 0;border:none;padding:18%;transition:background .15s}.ttt-cell:hover:not(:disabled){background:var(--accent-soft)}.ttt-mark{width:100%;height:100%;display:block}.ttt-mark path,.ttt-mark circle{stroke:var(--p1);stroke-width:5px;stroke-linecap:round;fill:none}.ttt-mark.o path,.ttt-mark.o circle{stroke:color-mix(in srgb, var(--board-dark) 65%, black)}.ttt-mark .draw{stroke-dasharray:80;stroke-dashoffset:80px;animation:.28s ease-out forwards stroke-draw}.ttt-mark .d2{animation-delay:.16s}@keyframes stroke-draw{to{stroke-dashoffset:0}}.ttt-cell.win{background:var(--accent-soft);box-shadow:inset 0 0 0 3px var(--accent);animation:.35s cubic-bezier(.34,1.56,.64,1) badge-pop}.c4-board{border-radius:var(--radius-md);background:linear-gradient(170deg,#35567e,#2c4a70 45%,#223a59);grid-template-columns:repeat(7,1fr);gap:6px;width:100%;padding:12px 10px;display:grid;box-shadow:inset 0 1px #ffffff24,inset 0 -3px 8px #00000059}.c4-col{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:0;display:flex}.c4-col:disabled{cursor:default}.c4-cell{aspect-ratio:1;background:color-mix(in srgb, var(--bg) 88%, #223a59);border-radius:50%;display:block;box-shadow:inset 0 2px 4px #0000008c,0 1px #ffffff1a}.c4-cell.disc-p1,.c4-cell.disc-p2{box-shadow:inset 0 -3px 5px #0000004d,inset 0 2px 3px #ffffff40}.c4-cell.disc-p1{background:radial-gradient(circle at 35% 30%, var(--p1), var(--p1-deep) 78%)}.c4-cell.disc-p2{background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--accent) 80%, white), var(--accent) 55%, color-mix(in srgb, var(--accent) 70%, black))}.c4-col:hover:not(:disabled) .c4-cell.ghost,.c4-col:focus-visible .c4-cell.ghost{box-shadow:inset 0 2px 4px #0000008c, inset 0 0 0 3px var(--accent-glow)}.turn-p1 .c4-col:hover:not(:disabled) .c4-cell.ghost{background:color-mix(in srgb, var(--p1) 40%, var(--bg))}.turn-p2 .c4-col:hover:not(:disabled) .c4-cell.ghost{background:color-mix(in srgb, var(--accent) 35%, var(--bg))}.c4-cell.win{animation:1.2s ease-in-out infinite c4-win-pulse}@keyframes c4-win-pulse{0%,to{box-shadow:inset 0 -3px 5px #0000004d, 0 0 0 3px var(--accent)}50%{box-shadow:inset 0 -3px 5px #0000004d, 0 0 0 5px var(--accent-glow)}}.c4-cell.drop-in{animation:.45s cubic-bezier(.5,0,.8,.6) c4-drop}@keyframes c4-drop{0%{transform:translateY(calc(var(--drop-cells,1) * -104%))}75%{transform:translateY(0)}87%{transform:translateY(-7%)}to{transform:translateY(0)}}.gomoku-board{aspect-ratio:1;border-radius:var(--radius-sm);background:repeating-linear-gradient(90deg, transparent 0 9px, #784e280d 9px 11px), linear-gradient(165deg, color-mix(in srgb, var(--board-light) 94%, white), var(--board-light) 45%, color-mix(in srgb, var(--board-light) 88%, var(--board-dark)));width:100%;box-shadow:inset 0 2px 8px #0000002e, 0 0 0 1px color-mix(in srgb, var(--board-dark) 55%, black);position:relative}.goban-lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.goban-lines line{stroke:color-mix(in srgb, var(--board-dark) 78%, black);stroke-width:.035px}.goban-lines .goban-star{fill:color-mix(in srgb, var(--board-dark) 78%, black)}.goban-grid{grid-template-columns:repeat(15,1fr);display:grid;position:absolute;inset:0}.gomoku-cell{cursor:pointer;background:0 0;border:none;padding:0;position:relative}.gomoku-cell:hover:not(:disabled):after{content:"";background:var(--accent-glow);border-radius:50%;position:absolute;inset:16%}.gomoku-cell.stone-p1:after,.gomoku-cell.stone-p2:after{content:"";border-radius:50%;position:absolute;inset:7%}.gomoku-cell.stone-p1:after{background:radial-gradient(circle at 35% 30%,#4a4a54,#101014 72%);box-shadow:0 1px 2px #00000073}.gomoku-cell.stone-p2:after{background:radial-gradient(circle at 35% 30%,#fff,#d8d4c6 75%);box-shadow:inset 0 0 0 1px #00000040,0 1px 2px #00000059}.gomoku-cell.placed:after{animation:.25s cubic-bezier(.34,1.56,.64,1) stone-place}@keyframes stone-place{0%{transform:scale(.4)}to{transform:scale(1)}}.gomoku-cell.win:after{box-shadow:0 0 0 2.5px var(--accent), 0 1px 2px #00000073}.oth-score{justify-content:center;gap:14px;display:flex}.oth-chip{border:1px solid var(--line);background:var(--panel);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:8px;padding:5px 14px;font-weight:700;transition:border-color .2s,box-shadow .2s;display:inline-flex}.oth-chip.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.oth-mini{border-radius:50%;width:14px;height:14px}.mini-dark{background:radial-gradient(circle at 35% 30%,#4a4a54,#101014 72%)}.mini-light{background:radial-gradient(circle at 35% 30%,#fff,#d8d4c6 75%);box-shadow:inset 0 0 0 1px #00000040}.othello-board{aspect-ratio:1;background:var(--felt-deep);border-radius:var(--radius-sm);width:100%;box-shadow:inset 0 2px 10px #00000059, 0 0 0 1px color-mix(in srgb, var(--felt-deep) 60%, black);grid-template-columns:repeat(8,1fr);gap:2px;padding:8px;display:grid}.othello-cell{background:linear-gradient(160deg, color-mix(in srgb, var(--felt) 92%, white), var(--felt));cursor:pointer;aspect-ratio:1;perspective:260px;border:none;justify-content:center;align-items:center;display:flex;position:relative}.disc3d{width:78%;height:78%;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,0,.2,1);position:relative}.disc3d.show-light{transform:rotateY(180deg)}.disc-face{backface-visibility:hidden;border-radius:50%;position:absolute;inset:0}.face-dark{background:radial-gradient(circle at 32% 28%,#4a4a54,#16161a 70%);box-shadow:0 2px 3px #0006}.face-light{background:radial-gradient(circle at 32% 28%,#fff,#d9d5c8 75%);transform:rotateY(180deg);box-shadow:inset 0 0 0 1px #0003,0 2px 3px #00000059}.disc3d.placed-disc{animation:.3s cubic-bezier(.34,1.56,.64,1) disc-drop}@keyframes disc-drop{0%{transform:scale(.4)translateZ(0)}}.othello-cell.placed .disc3d:after{content:"";border:2px solid var(--accent);border-radius:50%;position:absolute;inset:-3px;transform:translateZ(1px)}.checkers-board{aspect-ratio:1;width:100%;box-shadow:0 0 0 1px color-mix(in srgb, var(--line) 60%, black), inset 0 2px 10px #00000059;border-radius:4px;grid-template-columns:repeat(8,1fr);gap:0;padding:0;display:grid;overflow:hidden}.checkers-cell{cursor:pointer;aspect-ratio:1;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.checkers-cell.light{background:var(--board-light)}.checkers-cell.dark{background:var(--board-dark)}.checkers-cell.selected{box-shadow:inset 0 0 0 3px var(--accent)}.checkers-cell.selected .ck-piece{transform:translateY(-6%)scale(1.04);box-shadow:inset 0 -3px #0000004d,0 6px 10px #00000073}.ck-piece{border-radius:50%;justify-content:center;align-items:center;width:74%;height:74%;transition:transform .18s,box-shadow .18s;display:flex;position:relative;box-shadow:inset 0 -3px #0000004d,0 2px 3px #00000059}.ck-p1{background:radial-gradient(circle at 35% 30%, var(--p1), var(--p1-deep) 72%)}.ck-p2{background:radial-gradient(circle at 35% 30%,#4a4a54,#17171c 72%)}.ck-piece:before,.ck-piece:after{content:"";pointer-events:none;border:1.5px solid #ffffff29;border-radius:50%;position:absolute}.ck-piece:before{inset:12%}.ck-piece:after{border-color:#ffffff1a;inset:26%}.ck-crown{width:52%;height:52%;color:var(--accent);filter:drop-shadow(0 1px 1px #00000080);z-index:1}.checkers-cell.placed .ck-piece{animation:.35s cubic-bezier(.34,1.56,.64,1) ck-land}@keyframes ck-land{0%{transform:translateY(-40%)scale(1.08);box-shadow:inset 0 -3px #0000004d,0 14px 18px #0006}to{transform:translateY(0)scale(1)}}.nim-board{border-radius:var(--radius-sm);background:linear-gradient(165deg, color-mix(in srgb, var(--panel) 88%, white), var(--panel-2) 70%);flex-direction:column;align-items:center;gap:16px;padding:18px 12px;display:flex;box-shadow:inset 0 2px 8px #00000040}.nim-row{align-items:flex-end;gap:10px;min-height:56px;display:flex}.nim-count{text-align:center;min-width:1.6em;font-family:var(--font-mono);color:var(--muted);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:999px;align-self:center;margin-right:6px;padding:1px 0;font-size:.82rem;font-weight:600}.nim-count.empty{opacity:.4}.nim-stick{cursor:pointer;transform-origin:bottom;background:0 0;border:none;width:15px;height:56px;padding:0;transition:transform .18s,opacity .3s}.match-art{filter:drop-shadow(0 2px 2px #00000059);width:100%;height:100%;display:block}.match-wood{fill:var(--board-light)}.match-head{fill:var(--p1)}.match-shine{fill:#ffffff59}.nim-stick:hover:not(:disabled){transform:translateY(-4px)rotate(-2deg)}.nim-stick.picked{transform:translateY(-8px)rotate(-4deg)}.nim-stick.picked .match-head{fill:var(--accent)}.nim-stick.picked .match-art{filter:drop-shadow(0 4px 5px #0006) drop-shadow(0 0 6px var(--accent-glow))}.nim-stick.gone{opacity:0;pointer-events:none;transform:translateY(26px)rotate(14deg)}.board-hint{color:var(--muted);text-align:center;max-width:40ch;margin:0;font-size:.8rem}.nim-take{flex:none;min-width:150px}.score-chip{border:1px solid var(--line);background:var(--panel);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:8px;padding:5px 14px;font-size:.85rem;font-weight:700;transition:border-color .2s,box-shadow .2s;display:inline-flex}.score-chip i{border-radius:50%;width:12px;height:12px}.score-chip.chip-p1 i{background:var(--p1)}.score-chip.chip-p2 i{background:var(--accent)}.score-chip.active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.mancala-wood{background:repeating-linear-gradient(5deg, transparent 0 14px, #3c221014 14px 17px), linear-gradient(165deg, color-mix(in srgb, var(--board-dark) 88%, white), var(--board-dark) 45%, color-mix(in srgb, var(--board-dark) 72%, black));border-radius:26px;flex-direction:column;gap:10px;width:min(100%,380px,62vh - 198.4px);margin-inline:auto;padding:16px 16px 12px;display:flex;box-shadow:inset 0 2px #ffffff26,inset 0 -4px 10px #00000059,0 6px 16px #0000004d}.mancala-side-label{letter-spacing:.24em;text-transform:uppercase;text-align:center;color:#ead9b4a6;font-size:.62rem;font-weight:700}.mancala-cols{flex-direction:column;gap:8px;display:flex}.mancala-vrow{grid-template-columns:1fr 1fr;gap:26px;display:grid}.mancala-pit{aspect-ratio:1;background:radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--board-dark) 55%, black), color-mix(in srgb, var(--board-dark) 75%, black) 78%, color-mix(in srgb, var(--board-dark) 95%, white));cursor:pointer;border:none;border-radius:50%;flex:1;justify-content:center;align-items:center;transition:box-shadow .15s;display:flex;position:relative;box-shadow:inset 0 4px 10px #0000008c,0 1px #ffffff1f}.mancala-pit:hover:not(:disabled){box-shadow:inset 0 4px 10px #0000008c, 0 0 0 2px var(--accent-glow)}.mancala-pit:disabled{cursor:default}.mancala-pit.store{aspect-ratio:auto;background:radial-gradient(ellipse at 50% 42%, color-mix(in srgb, var(--board-dark) 55%, black), color-mix(in srgb, var(--board-dark) 75%, black) 78%, color-mix(in srgb, var(--board-dark) 95%, white));border-radius:29px;width:100%;height:58px}.mancala-pit.sowing{box-shadow:inset 0 4px 10px #0000008c, 0 0 0 2.5px var(--accent)}.pit-count{font-family:var(--font-mono);color:var(--text);z-index:2;text-shadow:0 1px 2px #0009;font-variant-numeric:tabular-nums;font-size:1rem;font-weight:600;animation:.3s ease-out badge-pop}.pit-seeds{flex-wrap:wrap;place-content:center;gap:2px;display:flex;position:absolute;inset:16%}.pit-seeds i{background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--accent) 75%, white), var(--accent) 70%);opacity:.85;border-radius:50% 50% 46% 54%/56% 48% 52% 44%;width:8px;height:8px;animation:.3s cubic-bezier(.34,1.56,.64,1) both seed-drop;box-shadow:0 1px 1px #00000080}@keyframes seed-drop{0%{opacity:0;transform:translateY(-8px)scale(.4)}to{opacity:.85;transform:translateY(0)scale(1)}}.rps-board{border-radius:var(--radius-sm);background:linear-gradient(165deg, color-mix(in srgb, var(--felt) 88%, white), var(--felt) 40%, var(--felt-deep));flex-direction:column;align-items:center;gap:20px;padding:20px 14px;display:flex;box-shadow:inset 0 2px 10px #0000004d}.rps-score{justify-content:space-between;width:100%;padding:0 6px;display:flex}.rps-side{flex-direction:column;gap:5px;min-width:0;display:flex}.rps-side-p2{align-items:flex-end}.rps-side-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;max-width:14ch;font-size:.78rem;font-weight:700;overflow:hidden}.rps-pips{gap:5px;display:flex}.rps-pips i{border:1.5px solid #ede7d866;border-radius:50%;width:9px;height:9px}.rps-pips i.on{background:var(--accent);border-color:var(--accent);animation:.3s cubic-bezier(.34,1.56,.64,1) badge-pop}.rps-last{align-items:center;gap:18px;min-height:72px;display:flex}.rps-hand{opacity:.7;width:64px;height:64px;color:var(--text);animation:.4s cubic-bezier(.34,1.56,.64,1) rps-slam}.rps-hand.won{opacity:1;filter:drop-shadow(0 0 12px var(--accent-glow));transform:scale(1.15)}@keyframes rps-slam{0%{opacity:0;transform:translateY(-16px)rotate(-8deg)scale(.6)}}.rps-art{width:100%;height:100%;display:block}.rps-fill{fill:color-mix(in srgb, var(--board-light) 92%, white);stroke:color-mix(in srgb, var(--board-dark) 70%, black);stroke-width:1.6px;stroke-linejoin:round}.rps-line{fill:none;stroke:color-mix(in srgb, var(--board-dark) 70%, black);stroke-width:1.6px;stroke-linecap:round}.rps-blade{fill:none;stroke:color-mix(in srgb, var(--board-light) 92%, white);stroke-width:3.4px;stroke-linecap:round}.rps-ring{fill:none;stroke:var(--accent);stroke-width:2.4px}.rps-pin{fill:var(--accent)}.rps-vs{color:#ede7d8bf;letter-spacing:.15em;text-transform:uppercase;font-size:.85rem}.rps-picks{gap:14px;display:flex}.rps-pick{border-radius:var(--radius-md);width:92px;color:var(--text);cursor:pointer;background:#10160f59;border:1px solid #ede7d840;flex-direction:column;align-items:center;gap:6px;padding:12px 8px 10px;transition:transform .15s,border-color .15s,background .15s;display:flex}.rps-pick .rps-art{width:44px;height:44px}.rps-pick-name{letter-spacing:.1em;text-transform:uppercase;color:#ede7d8cc;font-size:.7rem;font-weight:700}.rps-pick:hover:not(:disabled){border-color:var(--accent);background:#10160f8c;transform:translateY(-4px)}.rps-pick:disabled{opacity:.45;cursor:default}.rps-gate{text-align:center;color:color-mix(in srgb, var(--text) 80%, transparent);flex-direction:column;align-items:center;gap:12px;padding:10px;display:flex}.rps-gate strong{color:var(--accent)}.rps-gate .bar-btn{flex:none}.rps-waiting{color:color-mix(in srgb, var(--text) 70%, transparent);margin:0;animation:1.6s ease-in-out infinite pulse-dim}.memory-board{border-radius:var(--radius-sm);background:linear-gradient(165deg, color-mix(in srgb, var(--felt) 90%, white), var(--felt) 45%, var(--felt-deep));grid-template-columns:repeat(5,1fr);gap:10px;width:100%;padding:14px;display:grid;box-shadow:inset 0 2px 10px #0000004d}.memory-board.memory-empty{flex-direction:column;justify-content:center;align-items:center;gap:22px;min-height:300px;display:flex}.memory-spread{display:flex}.memory-spread-card{border-radius:var(--radius-sm);background:repeating-linear-gradient(45deg, transparent 0 5px, #ead9b429 5px 6.5px), repeating-linear-gradient(-45deg, transparent 0 5px, #ead9b429 5px 6.5px), linear-gradient(150deg, var(--board-dark), color-mix(in srgb, var(--board-dark) 72%, black));width:52px;height:72px;margin-left:-22px;box-shadow:inset 0 0 0 2px #ead9b44d,0 4px 8px #00000059}.memory-spread-card:first-child{margin-left:0}.memory-spread-card:nth-child(odd){transform:rotate(-4deg)}.memory-spread-card:nth-child(2n){transform:rotate(3deg)translateY(-4px)}.memory-deal{margin-top:0}.memory-card{aspect-ratio:3/4;cursor:pointer;perspective:500px;background:0 0;border:none;padding:0}.card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.4,0,.2,1);display:block;position:relative}.memory-card.up .card-inner{transform:rotateY(180deg)}.card-face{border-radius:var(--radius-sm);backface-visibility:hidden;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.card-face.back{background:repeating-linear-gradient(45deg, transparent 0 5px, #ead9b429 5px 6.5px), repeating-linear-gradient(-45deg, transparent 0 5px, #ead9b429 5px 6.5px), linear-gradient(150deg, var(--board-dark), color-mix(in srgb, var(--board-dark) 72%, black));box-shadow:inset 0 0 0 2px #ead9b44d,0 2px 4px #0000004d}.memory-card:hover:not(:disabled) .card-face.back{box-shadow:inset 0 0 0 2px var(--accent), 0 4px 8px #00000059}.card-face.front{background:linear-gradient(170deg, color-mix(in srgb, var(--board-light) 96%, white), var(--board-light));color:color-mix(in srgb, var(--board-dark) 62%, black);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--board-dark) 50%, transparent);transform:rotateY(180deg)}.card-art{fill:currentColor;width:58%;height:58%}.memory-card.matched .card-face.front{color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent);background:linear-gradient(170deg, color-mix(in srgb, var(--board-light) 88%, var(--accent)), var(--board-light))}.dots-score{justify-content:center;gap:12px;display:flex}.dots-board{border-radius:var(--radius-sm);background:linear-gradient(170deg, color-mix(in srgb, var(--panel) 92%, white), var(--panel-2) 70%);box-shadow:inset 0 2px 8px #00000038, 0 0 0 1px color-mix(in srgb, var(--line) 70%, black)}.dots-svg{width:100%;height:auto;display:block}.dots-graph path{stroke:color-mix(in srgb, var(--muted) 14%, transparent);stroke-width:1px}.hatch-line-p1{stroke:var(--p1);stroke-width:2.4px;opacity:.85}.hatch-line-p2{stroke:var(--accent);stroke-width:2.4px;opacity:.85}.dots-dot{fill:var(--text)}.dots-edge{stroke:#0000;stroke-width:14px;stroke-linecap:round;cursor:pointer}.dots-edge.open{stroke:color-mix(in srgb, var(--muted) 30%, transparent)}.dots-edge.open:hover{stroke:var(--accent-glow)}.dots-edge.drawn{stroke:var(--text);stroke-width:5px;cursor:default}.dots-edge.fresh{stroke:var(--accent);stroke-dasharray:60;stroke-dashoffset:60px;animation:.3s ease-out forwards stroke-draw-long}.dots-box{transform-origin:50%;transform-box:fill-box;animation:.35s cubic-bezier(.34,1.56,.64,1) box-claim}@keyframes box-claim{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.dots-box.box-p1{stroke:var(--p1);stroke-width:1.5px}.dots-box.box-p2{stroke:var(--accent);stroke-width:1.5px}.snakes-board{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.snakes-controls{align-items:center;gap:12px;display:flex}.dice-well{perspective:200px;width:42px;height:42px;animation:.55s cubic-bezier(.34,1.56,.64,1) dice-tumble;display:inline-flex}.dice-well.rolling .dice-face{animation:.3s linear infinite dice-spin3d}@keyframes dice-spin3d{0%{transform:rotateX(0)rotateY(0)rotate(-6deg)}50%{transform:rotateX(38deg)rotateY(-28deg)rotate(8deg)scale(1.08)}to{transform:rotateX(0)rotateY(0)rotate(-6deg)}}@keyframes dice-tumble{0%{opacity:0;transform:rotate(-200deg)scale(.3)translateY(-14px)}70%{transform:rotate(12deg)scale(1.06)}to{opacity:1;transform:rotate(0)scale(1)}}.dice-face{filter:drop-shadow(0 2px 3px #0006);width:100%;height:100%}.dice-body{fill:var(--board-light);stroke:color-mix(in srgb, var(--board-dark) 60%, black);stroke-width:1px}.dice-pip{fill:color-mix(in srgb, var(--board-dark) 70%, black)}.roll-btn{flex:none;padding:10px 22px;font-size:1rem}.snakes-wrap{aspect-ratio:1;border-radius:var(--radius-sm);width:100%;position:relative;overflow:hidden}.snakes-grid{grid-template-columns:repeat(10,1fr);gap:2px;width:100%;height:100%;display:grid}.snakes-cell{background:var(--board-light);border-radius:3px;position:relative}.snakes-cell:nth-child(2n){background:color-mix(in srgb, var(--board-light) 85%, var(--board-dark))}.cell-n{font-family:var(--font-body);color:color-mix(in srgb, var(--board-dark) 75%, black);opacity:.32;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:clamp(10px,2.4vmin,22px);font-weight:700;display:flex;position:absolute;inset:0}.snakes-cell.finish{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.snakes-cell.start{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--muted) 50%, transparent)}.snakes-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.ov-ladder .lad-rail{stroke:#c0954f;stroke-width:1.5px;stroke-linecap:round}.ov-ladder .lad-rung{stroke:#a87b3c;stroke-width:1.05px;stroke-linecap:round}.ov-ladder .lad-shadow line{stroke:#0000004d;stroke-width:1.6px;stroke-linecap:round}.ov-snake .snk-shadow{fill:#00000047}.snake-0{--snk:#3f7a46;--snk-belly:#b7d29a}.snake-1{--snk:#b0483a;--snk-belly:#eec39a}.snake-2{--snk:#a5802f;--snk-belly:#eddfa8}.ov-snake .snk-body{fill:var(--snk);stroke:color-mix(in srgb, var(--snk) 55%, black);stroke-width:.25px}.ov-snake .snk-belly{fill:var(--snk-belly);opacity:.9}.ov-snake .snk-spot{fill:color-mix(in srgb, var(--snk) 55%, black);opacity:.55}.ov-snake .snk-head{fill:var(--snk);stroke:color-mix(in srgb, var(--snk) 55%, black);stroke-width:.3px}.ov-snake .snk-eye{fill:#f6f1e2}.ov-snake .snk-pupil{fill:#17170f}.ov-snake .snk-tongue{stroke:#c23b2e;stroke-width:.5px;stroke-linecap:round;fill:none}.snk-pawn{aspect-ratio:24/30;z-index:3;pointer-events:none;width:7.5%;transition:left .2s ease-out,top .2s ease-out;position:absolute;transform:translate(-50%,-78%)}.snk-pawn.sliding{transition:left .68s cubic-bezier(.45,0,.25,1),top .68s cubic-bezier(.45,0,.25,1)}.pawn-art{filter:drop-shadow(0 2px 2px #00000073);width:100%;height:100%;display:block}.pawn-shadow{fill:#0000004d}.bs-board{flex-direction:column;align-items:center;gap:18px;width:100%;display:flex}.bs-board.bs-idle{border-radius:var(--radius-sm);background:linear-gradient(165deg, color-mix(in srgb, var(--felt) 88%, white), var(--felt) 40%, var(--felt-deep));justify-content:center;min-height:300px;box-shadow:inset 0 2px 10px #0000004d}.bs-grid-wrap{flex-direction:column;gap:6px;width:100%;max-width:460px;display:flex}.bs-chart{grid-template-rows:auto 1fr;grid-template-columns:auto 1fr;gap:3px;display:grid}.bs-coords{font-family:var(--font-mono);color:var(--muted);text-align:center;font-size:.6rem;display:grid}.bs-cols{grid-column:2;grid-template-columns:repeat(10,1fr)}.bs-rows{grid-row:2;grid-template-rows:repeat(10,1fr);align-items:center;padding-right:2px}.bs-title{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:700}.bs-sea{aspect-ratio:1;border-radius:var(--radius-sm);background:repeating-linear-gradient(0deg,#0000 0 calc(10% - 1px),#ead9b424 calc(10% - 1px) 10%),repeating-linear-gradient(90deg,#0000 0 calc(10% - 1px),#ead9b424 calc(10% - 1px) 10%),repeating-linear-gradient(-35deg,#0000 0 7px,#ffffff0a 7px 9px),linear-gradient(165deg,#1d4460,#122c44 70%,#0c2233);position:relative;overflow:hidden;box-shadow:inset 0 2px 10px #0006,0 0 0 1px #00000080}.bs-sea.placing{touch-action:none}.bs-cells{grid-template-columns:repeat(10,1fr);display:grid;position:absolute;inset:0}.bs-cell{cursor:pointer;background:0 0;border:none;padding:0;position:relative}.bs-cell:disabled{cursor:default}.bs-cell:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 32%, transparent);box-shadow:inset 0 0 0 1.5px var(--accent)}.bs-ships{pointer-events:none;z-index:1;position:absolute;inset:0}.bs-ship{--bs-hull:#8b95a0;--bs-deck:#b8bfc7;--bs-dark:#4a545f;filter:drop-shadow(0 2px 3px #00000080);position:absolute}.bs-ship.sel{filter:drop-shadow(0 4px 6px #0000008c) drop-shadow(0 0 5px var(--accent-glow))}.bs-ship.sel .bs-ship-art{outline:2px solid var(--accent);outline-offset:-1px;border-radius:6px}.bs-ship.ghost{opacity:.45;filter:saturate(.3)drop-shadow(0 1px 2px #00000080)}.bs-ship-art{width:100%;height:100%;display:block}.bs-ship.vert .bs-ship-art{width:calc(var(--ship-size) * 100%);height:calc(100% / var(--ship-size));transform-origin:0 0;position:absolute;top:0;left:0;transform:rotate(90deg)translateY(-100%)}.bs-cell.hit,.bs-cell.miss{z-index:2}.bs-cell.miss:after,.bs-cell.hit:after{content:"";border-radius:50%;position:absolute;inset:30%}.bs-cell.miss:after{background:color-mix(in srgb, var(--board-light) 55%, transparent);box-shadow:inset 0 0 0 1.5px #ead9b466}.bs-cell.hit{background:color-mix(in srgb, var(--danger) 30%, transparent)}.bs-cell.hit.on-ship{background:color-mix(in srgb, var(--danger) 45%, transparent)}.bs-cell.hit:after{background:radial-gradient(circle, #ffb35a 0%, var(--danger) 65%);box-shadow:0 0 6px #00000080}.bs-cell.fresh.hit:after{animation:.5s ease-out bs-boom}@keyframes bs-boom{0%{transform:scale(.4);box-shadow:0 0 #ffb35ae6}60%{transform:scale(1.9)}to{transform:scale(1);box-shadow:0 0 0 10px #ffb35a00}}.bs-cell.fresh.miss:after{animation:.55s ease-out bs-splash}@keyframes bs-splash{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--board-dark) 70%, transparent);transform:scale(.3)}to{transform:scale(1);box-shadow:0 0 0 9px #0000}}.bs-actions{gap:10px;display:flex}.bs-actions .bar-btn{flex:none}.bs-roster{flex-wrap:wrap;gap:10px;min-height:14px;display:flex}.bs-roster-ship{gap:2.5px;transition:opacity .3s;display:inline-flex}.bs-roster-ship i{background:color-mix(in srgb, var(--muted) 45%, transparent);border-radius:3px;width:10px;height:10px}.bs-roster-ship i.hit{background:var(--danger)}.bs-roster-ship.sunk{opacity:.45}.bs-roster-ship.sunk i{background:var(--danger)}.bs-confirm{margin-top:0;padding:10px 18px;font-size:.95rem}.hangman-board{border-radius:var(--radius-sm);background:linear-gradient(170deg, color-mix(in srgb, var(--panel) 92%, white), var(--panel-2) 70%);flex-direction:column;align-items:center;gap:18px;width:100%;padding:16px 10px;display:flex;box-shadow:inset 0 2px 8px #00000038}.hangman-board.hangman-idle{justify-content:center;min-height:300px}.hm-key-row{justify-content:center;gap:5px;display:flex}.hangman-setter{gap:8px;width:min(90%,360px);display:flex}.hangman-setter input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);min-width:0;color:var(--text);flex:1;padding:10px 12px;font-size:1rem}.hangman-gallows{width:130px;height:138px}.hangman-gallows .part{stroke:color-mix(in srgb, var(--muted) 25%, transparent);stroke-width:3px}.hangman-gallows .part.lost{stroke:var(--text);stroke-dasharray:120;stroke-dashoffset:120px;animation:.5s ease-out forwards stroke-draw-long}.hangman-gallows .part.man.lost{stroke:var(--danger)}@keyframes stroke-draw-long{to{stroke-dashoffset:0}}.hangman-word{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.hm-slot{border-bottom:3px solid var(--muted);justify-content:center;align-items:center;width:30px;height:40px;font-size:1.4rem;font-weight:700;display:flex}.hm-slot.shown{border-color:var(--accent);animation:.3s ease-out cap-pop}.hangman-letters{flex-direction:column;gap:5px;width:min(96%,440px);display:flex}.hm-letter{aspect-ratio:1;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);max-width:40px;color:var(--text);cursor:pointer;flex:1;font-weight:700;transition:border-color .12s,transform .12s}.hm-letter:hover:not(:disabled){border-color:var(--accent);transform:translateY(-2px)}.hm-letter.hit{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.hm-letter.miss{opacity:.3}.mobile-strip,.drawer-head,.drawer-scrim{display:none}.confirm-box{background:var(--panel);border:var(--border-w) solid var(--line);border-radius:var(--radius-lg);width:min(340px,90vw);box-shadow:var(--shadow-panel);flex-direction:column;gap:10px;padding:24px;animation:.25s cubic-bezier(.34,1.56,.64,1) setup-in;display:flex}.confirm-box h3{font-family:var(--font-display);font-style:var(--display-italic);margin:0;font-size:1.25rem}.confirm-box p{color:var(--muted);margin:0;font-size:.92rem}.confirm-actions{gap:8px;margin-top:8px;display:flex}.bar-btn.danger{color:var(--danger-text);border-color:color-mix(in srgb, var(--danger) 40%, var(--line))}.toolbar{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;padding:12px;display:flex}.bar-btn{border:1px solid color-mix(in srgb, var(--line) 85%, white);border-radius:var(--radius-md);background:linear-gradient(180deg, color-mix(in srgb, var(--panel-2) 88%, white), var(--panel-2));min-width:fit-content;color:var(--text);letter-spacing:.01em;cursor:pointer;box-shadow:inset 0 1px 0 #ffffff14, var(--shadow-btn);flex:1;padding:9px 14px;font-size:.88rem;font-weight:600;transition:transform .15s,border-color .15s,box-shadow .15s}.bar-btn:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px);box-shadow:inset 0 1px #ffffff1a,0 6px 14px #0000004d}.bar-btn:active:not(:disabled){transform:translateY(0)scale(.97)}.bar-btn:disabled{opacity:.4;cursor:default}.bar-btn.danger:hover{border-color:var(--danger);color:var(--danger-text)}.top-quit{border-radius:var(--radius-md);color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;padding:6px 12px;font-size:.88rem;font-weight:600;transition:color .15s,border-color .15s}.top-quit:hover{color:var(--danger-text);border-color:color-mix(in srgb, var(--danger) 40%, var(--line))}.history{scroll-behavior:smooth;font-variant-numeric:tabular-nums;flex:1;min-height:60px;margin:0;padding:0;font-size:.95rem;list-style:none;overflow-y:auto}.history li{border-radius:var(--radius-sm);grid-template-columns:2.4em 1fr 1fr;gap:4px;padding:3px 4px;animation:.25s ease-out move-in;display:grid}.history li:nth-child(2n){background:color-mix(in srgb, var(--panel-2) 45%, transparent)}.history::-webkit-scrollbar{width:8px}.history::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}.history::-webkit-scrollbar-track{background:0 0}@keyframes move-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.move-no{color:var(--muted);text-align:right;align-self:center;padding-right:8px;font-size:.85rem}.setup{background:linear-gradient(180deg, color-mix(in srgb, var(--panel) 90%, white), var(--panel) 45%);border:1px solid color-mix(in srgb, var(--line) 70%, var(--bg));border-radius:var(--radius-lg);width:100%;box-shadow:inset 0 1px 0 #ffffff12, var(--shadow-panel);flex-direction:column;gap:16px;padding:32px 28px;animation:.45s cubic-bezier(.34,1.56,.64,1) setup-in;display:flex}@keyframes setup-in{0%{opacity:0;transform:scale(.9)translateY(16px)}to{opacity:1;transform:scale(1)translateY(0)}}.mode-toggle{gap:6px;display:flex}.mode-toggle button{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--muted);cursor:pointer;flex:1;padding:9px 8px;font-size:.92rem;transition:background .15s,color .15s,border-color .15s,transform .15s}.mode-toggle button:hover{border-color:var(--muted)}.mode-toggle button:active{transform:scale(.96)}.mode-toggle button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:700}.field,.setup label{color:var(--muted);flex-direction:column;gap:6px;font-size:.95rem;display:flex}.setup label .color-dot{margin-right:6px}.setup input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);padding:10px 12px;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s}.setup input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.btn-primary{border-radius:var(--radius-sm);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 88%, white), var(--accent));color:var(--accent-text);cursor:pointer;box-shadow:inset 0 1px 0 #ffffff40, var(--shadow-btn);border:none;margin-top:8px;padding:12px 18px;font-size:1.05rem;font-weight:700;transition:filter .15s,transform .15s}.btn-primary:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-2px)}.btn-primary:active:not(:disabled){transform:translateY(0)scale(.97)}.btn-primary:disabled{opacity:.55;cursor:default}.btn-quiet{color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:6px;padding:4px 8px;font-size:.88rem;transition:color .15s;display:inline-flex}.btn-quiet:hover{color:var(--text)}.join-row{gap:8px;display:flex}.code-input{min-width:0;font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;flex:1}.join-row button{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);cursor:pointer;padding:10px 18px;transition:border-color .15s}.join-row button:hover:not(:disabled){border-color:var(--accent)}.join-row button:disabled{opacity:.4;cursor:default}.setup-error{color:var(--danger);margin:0;font-size:.9rem}.modal-scrim{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.debug-prompt{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);color:var(--text);font-family:var(--font-mono);width:160px;padding:6px 10px;font-size:.85rem}.debug-prompt:focus{border-color:var(--muted);outline:none}.debug-panel{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-md);font-family:var(--font-mono);flex-direction:column;gap:8px;padding:10px 12px;font-size:.8rem;animation:.25s ease-out fade-up;display:flex}.debug-head{color:var(--accent);letter-spacing:.1em;align-items:center;gap:12px;font-weight:700;display:flex}.debug-head.sub{color:var(--muted);letter-spacing:normal;font-weight:400}.debug-head select{background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;padding:2px 4px;font-family:inherit;font-size:.75rem}.debug-loadfen{gap:6px;display:flex}.debug-loadfen input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);min-width:0;color:var(--text);flex:1;padding:4px 8px;font-family:inherit;font-size:.75rem}.debug-loadfen input:focus{border-color:var(--muted);outline:none}.debug-loadfen button{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);color:var(--muted);cursor:pointer;padding:4px 10px;font-family:inherit;font-size:.75rem}.debug-loadfen button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.debug-loadfen button:disabled{opacity:.4;cursor:default}.debug-head label{color:var(--muted);letter-spacing:normal;cursor:pointer;align-items:center;gap:4px;font-weight:400;display:flex}.eval-bar{background:#17171c;border-radius:4px;height:16px;position:relative;overflow:hidden}.eval-white{background:#e8e8ea;height:100%;transition:width .4s ease-out}.eval-text{color:var(--accent);mix-blend-mode:difference;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;inset:0}.debug-lines{flex-direction:column;gap:3px;display:flex}.debug-line{align-items:baseline;gap:8px;display:flex}.debug-score{color:var(--success);min-width:3.4em;font-weight:700}.debug-depth{color:var(--muted);min-width:2.4em}.debug-pv{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.debug-dim{color:var(--muted)}.debug-actions{flex-wrap:wrap;gap:6px;display:flex}.debug-actions button{border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:5px;padding:4px 10px;font-family:inherit;font-size:.78rem;transition:border-color .15s,color .15s}.debug-actions button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.debug-actions button:disabled{opacity:.4;cursor:default}.debug-grid{grid-template-columns:auto 1fr;gap:2px 12px;display:grid}.debug-grid span:nth-child(odd){color:var(--muted)}.debug-fen{color:var(--muted);word-break:break-all;border-top:1px solid var(--line);padding-top:6px;font-size:.72rem}.mode-cards{flex-direction:column;gap:10px;display:flex}.mode-card{text-align:left;border:1px solid color-mix(in srgb, var(--line) 85%, white);border-radius:var(--radius-md);background:linear-gradient(180deg, color-mix(in srgb, var(--panel-2) 90%, white), var(--panel-2));color:var(--text);cursor:pointer;box-shadow:inset 0 1px 0 #ffffff12, var(--shadow-btn);align-items:center;gap:14px;padding:15px 16px;transition:border-color .15s,transform .2s,box-shadow .2s;animation:.4s cubic-bezier(.34,1.56,.64,1) both card-in;display:flex}.mode-text{flex-direction:column;gap:2px;min-width:0;display:flex}@keyframes card-in{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.mode-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 8px 24px #00000040}.mode-card:active{transform:translateY(-1px)scale(.98)}.mode-glyph{width:48px;height:48px;color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;font-size:1.8rem;line-height:1;display:flex}.mode-title{font-size:1.05rem;font-weight:700}.mode-desc{color:var(--muted);font-size:.85rem}.back-btn{align-self:flex-start;transition:color .15s,transform .15s}.back-btn:hover{transform:translate(-3px)}.setup-id{align-items:center;gap:16px;display:flex}.setup-id .game-preview{flex-shrink:0;width:84px;height:84px;padding:10px}.setup-id .game-preview svg{width:100%;height:100%}.setup-id-text{min-width:0}.setup-id h1{text-align:left;margin:0;font-size:1.7rem}.setup-tag{text-align:left;color:var(--muted);margin:2px 0 0;font-size:.92rem}.step-title{letter-spacing:.2em;text-transform:uppercase;color:var(--accent);align-items:center;gap:12px;margin:0;font-size:.72rem;font-weight:700;display:flex}.step-title:after{content:"";background:linear-gradient(90deg, var(--line), transparent);flex:1;height:1px}.step-in{animation:.3s ease-out step-in}@keyframes step-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}.divider{color:var(--muted);align-items:center;gap:10px;font-size:.82rem;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.shake{animation:.4s ease-in-out status-shake}.spinner{border:2px solid var(--accent-soft);border-top-color:var(--accent);vertical-align:middle;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}.spinner.on-accent{border-color:#0003;border-top-color:var(--accent-text)}.spinner.big{border-width:3px;width:34px;height:34px}@keyframes spin{to{transform:rotate(360deg)}}.toasts{z-index:100;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-md);border:1px solid color-mix(in srgb, var(--line) 80%, white);background:color-mix(in srgb, var(--panel) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);cursor:pointer;text-align:center;max-width:min(420px,90vw);padding:10px 18px;font-size:.92rem;animation:.3s cubic-bezier(.34,1.56,.64,1) toast-in;box-shadow:inset 0 1px #ffffff14,0 12px 32px #0006}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.toast.error{border-color:var(--danger);color:var(--danger-text)}.toast.success{border-color:var(--accent);color:var(--accent)}.toast.info{border-color:color-mix(in srgb, var(--muted) 55%, var(--line));color:var(--text)}.toast{animation:.3s cubic-bezier(.34,1.56,.64,1) toast-in,.3s ease-in 3.65s forwards toast-out}@keyframes toast-out{to{opacity:0;transform:translateY(8px)scale(.96)}}.history-wrap{flex-direction:column;flex:1;gap:6px;min-height:0;padding:10px 12px;display:flex}.preview-banner{border:1px dashed var(--accent);border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);cursor:pointer;padding:7px 12px;font-size:.85rem;font-weight:600;animation:.2s ease-out fade-up}.move-btn{color:var(--text);font:inherit;text-align:left;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;justify-self:start;width:fit-content;padding:1px 8px;transition:background .12s,color .12s}.move-btn:hover{background:var(--panel-2)}.move-btn.current{background:var(--accent-soft);color:var(--accent);font-weight:700}.history-empty{color:var(--muted);text-align:center;font-size:.88rem;grid-template-columns:1fr!important;padding:10px 0!important}.board.previewing:after{content:"";border-radius:var(--radius-sm);border:3px solid var(--accent);pointer-events:none;animation:.2s ease-out fade-in;position:absolute;inset:0}.cap-glyph{animation:.35s cubic-bezier(.34,1.56,.64,1) cap-pop;display:inline-block}@keyframes cap-pop{0%{opacity:0;transform:scale(.3)translateY(4px)}to{opacity:1;transform:scale(1)translateY(0)}}.panel .debug-panel,.panel .debug-prompt{margin:0 12px 12px}@media (width<=900px){.setup-page{align-content:start;padding:28px 16px}.game-main{grid-template-columns:1fr;align-content:start;justify-items:center;gap:14px;padding:12px}.board-stack{width:min(92vw,560px)}.panel-slot{width:auto;min-height:0;position:static}.panel{border-radius:var(--radius-lg) 0 0 var(--radius-lg);z-index:70;width:min(320px,86vw);height:100dvh;max-height:none;transition:transform .3s cubic-bezier(.4,0,.2,1);position:fixed;inset:0 0 auto auto;transform:translate(105%)}.panel.open{transform:translate(0)}.drawer-scrim{z-index:65;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;animation:.2s ease-out fade-in;display:block;position:fixed;inset:0}.drawer-head{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);justify-content:space-between;align-items:center;padding:12px 16px 10px;font-size:.72rem;font-weight:700;display:flex}.drawer-close{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);width:30px;height:30px;color:var(--muted);cursor:pointer;justify-content:center;align-items:center;font-size:.95rem;display:flex}.panel .act-secondary,.panel .panel-status{display:none}.mobile-strip{flex-direction:column;gap:10px;width:min(92vw,560px);display:flex}.mobile-status{border:var(--border-w) solid color-mix(in srgb, var(--line) 70%, var(--bg));border-radius:var(--radius-md);border-bottom-width:var(--border-w)}.action-bar{gap:8px;display:flex}.action-bar .bar-btn{flex:1}.history{flex:1;min-height:0}.top-bar{padding:8px 14px}.mode-chip{letter-spacing:.12em;font-size:.6rem}}@media (width<=640px){.home2{padding:20px 14px calc(20px + env(safe-area-inset-bottom));gap:18px}.home2-head h1{font-size:clamp(2.2rem,9vw,2.8rem)}.home2 .home-tag{font-size:.92rem}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.game-tile{gap:8px;padding:12px}.game-preview{height:88px;padding:10px}.game-preview svg{width:60px;height:60px}.tile-name{font-size:.94rem}.tile-tag{font-size:.74rem}.tile-badges i{padding:2px 5px;font-size:.52rem}.setup{gap:14px;padding:24px 18px}.setup-id{gap:12px}.setup-id .game-preview{width:64px;height:64px;padding:8px}.setup-id h1{font-size:1.4rem}.toasts{bottom:calc(14px + env(safe-area-inset-bottom));width:100%;padding:0 12px}.confirm-box{padding:20px}.board-overlay .result-actions{padding:0 10px}.rps-picks{gap:10px}.rps-pick{width:84px;padding:10px 6px 8px}.llm-draw{width:106px}.llm-card{padding:18px 16px}.mancala-wood{padding:12px 12px 10px}.mancala-pit.store{height:46px}.mancala-vrow{gap:18px}.nim-stick{width:12px;height:48px}.nim-row{gap:7px}.hm-letter{max-width:none}.bs-coords{font-size:.52rem}.table-mat{gap:10px;padding:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
