:root{--text: #6b6375;--text-h: #08060d;--bg: #fff;--border: #e5e4e7;--code-bg: #f4f3ec;--accent: #aa3bff;--accent-bg: rgba(170, 59, 255, .1);--accent-border: rgba(170, 59, 255, .5);--social-bg: rgba(244, 243, 236, .5);--shadow: rgba(0, 0, 0, .1) 0 10px 15px -3px, rgba(0, 0, 0, .05) 0 4px 6px -2px;--sans: Montserrat, sans-serif;--heading: Montserrat, sans-serif;--mono: ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(max-width:1024px){:root{font-size:16px}}@media(prefers-color-scheme:dark){:root{--text: #9ca3af;--text-h: #f3f4f6;--bg: #16171d;--border: #2e303a;--code-bg: #1f2028;--accent: #9163CB;--accent-bg: rgba(192, 132, 252, .15);--accent-border: rgba(192, 132, 252, .5);--social-bg: rgba(47, 48, 58, .5);--shadow: rgba(0, 0, 0, .4) 0 10px 15px -3px, rgba(0, 0, 0, .25) 0 4px 6px -2px}#social .button-icon{filter:invert(1) brightness(2)}}body{margin:0}#root{width:1126px;max-width:100%;margin:0 auto;text-align:center;min-height:100svh;display:flex;flex-direction:column;box-sizing:border-box}h1,h2{font-family:var(--heading);font-weight:500;color:var(--text-h)}h1{font-size:56px;letter-spacing:-1.68px;margin:32px 0}@media(max-width:1024px){h1{font-size:36px;margin:20px 0}}h2{font-size:24px;line-height:118%;letter-spacing:-.24px;margin:0 0 8px}@media(max-width:1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);display:inline-flex;border-radius:4px;color:var(--text-h)}code{font-size:15px;line-height:135%;padding:4px 8px;background:var(--code-bg)}.ttt-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-grow:1;gap:24px;padding:32px 20px;position:relative}.back-btn{position:absolute;top:28px;left:28px;font-size:15px;font-family:var(--sans);color:var(--text);background:none;border:none;cursor:pointer;padding:4px 0;transition:color .15s}.back-btn:hover{color:var(--text-h)}.back-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media(max-width:480px){.back-btn{top:16px;left:16px}}.ttt-subtitle{color:var(--text);margin:-12px 0 0}.ttt-modes{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.ttt-mode-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 32px;width:180px;background:var(--code-bg);border:2px solid var(--border);border-radius:16px;cursor:pointer;font-family:var(--sans);text-align:center;transition:border-color .15s,box-shadow .15s,transform .1s}.ttt-mode-card:hover{border-color:var(--accent-border);box-shadow:var(--shadow);transform:translateY(-2px)}.ttt-mode-card:active{transform:translateY(0)}.ttt-mode-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ttt-mode-emoji{font-size:36px;line-height:1}.ttt-mode-name{font-size:17px;font-weight:600;color:var(--text-h)}.ttt-mode-desc{font-size:13px;color:var(--text);line-height:1.4}.ttt-status{font-size:20px;font-weight:500;color:var(--text);min-height:1.5em;transition:color .2s}.ttt-status.winner{color:var(--accent)}.ttt-status.loser{color:#ef4444}.ttt-board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ttt-board.disabled .ttt-square:not(.filled){cursor:not-allowed;opacity:.6}.ttt-square{width:96px;height:96px;font-size:36px;font-weight:600;font-family:var(--mono);color:var(--text-h);background:var(--code-bg);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:border-color .15s,background .15s;line-height:1}.ttt-square:hover:not(.filled){border-color:var(--accent-border);background:var(--accent-bg)}.ttt-square:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ttt-square.highlight{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.ttt-square.filled{cursor:default}@media(max-width:400px){.ttt-square{width:80px;height:80px;font-size:28px}}.ttt-restart{font-size:16px;padding:8px 24px;border-radius:8px;color:var(--accent);background:var(--accent-bg);border:2px solid transparent;font-family:var(--sans);cursor:pointer;transition:border-color .2s}.ttt-restart:hover{border-color:var(--accent-border)}.ttt-restart:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cf-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-grow:1;gap:24px;padding:32px 20px;position:relative}.cf-back{position:absolute;top:28px;left:28px;font-size:15px;font-family:var(--sans);color:var(--text);background:none;border:none;cursor:pointer;padding:4px 0;transition:color .15s}.cf-back:hover{color:var(--text-h)}.cf-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media(max-width:480px){.cf-back{top:16px;left:16px}}.cf-subtitle{color:var(--text);margin:-12px 0 0}.cf-modes{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.cf-mode-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 32px;width:180px;background:var(--code-bg);border:2px solid var(--border);border-radius:16px;cursor:pointer;font-family:var(--sans);text-align:center;transition:border-color .15s,box-shadow .15s,transform .1s}.cf-mode-card:hover{border-color:var(--accent-border);box-shadow:var(--shadow);transform:translateY(-2px)}.cf-mode-card:active{transform:translateY(0)}.cf-mode-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cf-mode-emoji{font-size:36px;line-height:1}.cf-mode-name{font-size:17px;font-weight:600;color:var(--text-h)}.cf-mode-desc{font-size:13px;color:var(--text);line-height:1.4}.cf-status{font-size:20px;font-weight:500;color:var(--text);min-height:1.5em;transition:color .2s}.cf-status.win-r{color:#ef4444}.cf-status.win-y{color:#ca8a04}.cf-board{display:flex;gap:6px;background:#1d4ed8;padding:10px;border-radius:16px;box-shadow:var(--shadow);cursor:pointer}.cf-board.blocked{cursor:default}@media(max-width:520px){.cf-board{gap:4px;padding:7px;border-radius:12px}}.cf-col{display:flex;flex-direction:column;gap:6px}@media(max-width:520px){.cf-col{gap:4px}}.cf-cell{width:52px;height:52px;background:#1d3fa8;border-radius:50%;display:flex;align-items:center;justify-content:center}@media(max-width:520px){.cf-cell{width:40px;height:40px}}.cf-piece{width:44px;height:44px;border-radius:50%;background:#1e3a8a;transition:background .12s}.cf-piece.red{background:#ef4444}.cf-piece.yellow{background:#facc15}.cf-piece.win{box-shadow:0 0 0 3px #fff,0 0 12px 4px #fff9}.cf-piece.preview-red{background:#ef444459}.cf-piece.preview-yellow{background:#facc1559}@media(max-width:520px){.cf-piece{width:33px;height:33px}}.cf-restart{font-size:16px;padding:8px 24px;border-radius:8px;color:var(--accent);background:var(--accent-bg);border:2px solid transparent;font-family:var(--sans);cursor:pointer;transition:border-color .2s}.cf-restart:hover{border-color:var(--accent-border)}.cf-restart:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.snake-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-grow:1;gap:20px;padding:32px 20px;position:relative}.snake-score{font-size:20px;font-weight:600;color:var(--text-h);font-family:var(--mono);margin:-8px 0 0}.snake-board{position:relative;background:var(--code-bg);border:2px solid var(--border);border-radius:12px;overflow:hidden;flex-shrink:0}.snake-seg{position:absolute;background:var(--accent);border-radius:3px;box-sizing:border-box;padding:1px}.snake-head{background:var(--text-h);border-radius:5px}.snake-food{position:absolute;background:#f97316;border-radius:50%;box-sizing:border-box;padding:2px}.snake-overlay{position:absolute;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;border-radius:10px}.overlay-title{font-size:28px;font-weight:700;color:var(--text-h);letter-spacing:-.5px}.overlay-score{font-size:20px;color:var(--accent);font-family:var(--mono);font-weight:600}.overlay-hint{font-size:13px;color:var(--text)}.dpad{display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(3,52px);gap:4px}.dpad-btn{display:flex;align-items:center;justify-content:center;font-size:20px;border-radius:10px;background:var(--code-bg);border:2px solid var(--border);color:var(--text-h);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;transition:background .1s,transform .1s}.dpad-btn:active{background:var(--accent-bg);transform:scale(.92)}.dpad-up{grid-column:2;grid-row:1}.dpad-left{grid-column:1;grid-row:2}.dpad-center{grid-column:2;grid-row:2;background:transparent;border-color:transparent;pointer-events:none}.dpad-right{grid-column:3;grid-row:2}.dpad-down{grid-column:2;grid-row:3}.snake-btn{font-size:16px;padding:10px 28px;border-radius:8px;color:var(--accent);background:var(--accent-bg);border:2px solid transparent;font-family:var(--sans);cursor:pointer;transition:border-color .2s}.snake-btn:hover{border-color:var(--accent-border)}.snake-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sdk-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-grow:1;gap:20px;padding:32px 20px 40px;position:relative}.sdk-subtitle{color:var(--text);margin:-8px 0 8px}.sdk-modes{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.sdk-mode-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 32px;width:180px;background:var(--code-bg);border:2px solid var(--border);border-radius:16px;cursor:pointer;font-family:var(--sans);text-align:center;transition:border-color .15s,box-shadow .15s,transform .1s}.sdk-mode-card:hover{border-color:var(--accent-border);box-shadow:var(--shadow);transform:translateY(-2px)}.sdk-mode-card:active{transform:translateY(0)}.sdk-mode-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sdk-mode-emoji{font-size:36px;line-height:1}.sdk-mode-name{font-size:17px;font-weight:600;color:var(--text-h)}.sdk-mode-desc{font-size:13px;color:var(--text);line-height:1.4}.sdk-meta{display:flex;gap:16px;align-items:center;font-size:15px;color:var(--text);margin:-8px 0 4px}.sdk-diff{font-weight:600;color:var(--accent);text-transform:capitalize}.sdk-timer{font-variant-numeric:tabular-nums}.sdk-won{font-size:20px;font-weight:600;color:var(--accent)}.sdk-board{display:grid;grid-template-columns:repeat(9,1fr);width:min(432px,calc(100vw - 40px));border:2px solid var(--text-h);border-radius:6px;overflow:hidden;transition:box-shadow .3s}.sdk-board.sdk-board--won{box-shadow:0 0 0 3px var(--accent-border)}.sdk-cell{aspect-ratio:1;font-size:clamp(13px,3.5vw,20px);font-family:var(--mono);font-weight:500;border:none;border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s,color .1s;line-height:1;padding:0}.sdk-cell.box-r{border-right:2px solid var(--text-h)}.sdk-cell.box-b{border-bottom:2px solid var(--text-h)}.sdk-cell:nth-child(9n){border-right:none}.sdk-cell.given{color:var(--text-h);background:var(--code-bg);font-weight:700}.sdk-cell.user{color:var(--accent);background:var(--bg)}.sdk-cell.hl{background:color-mix(in srgb,var(--code-bg) 80%,transparent)}.sdk-cell.same-num{background:var(--accent-bg)}.sdk-cell.selected{background:var(--accent);color:#fff;z-index:1}.sdk-cell.conflict{color:#ef4444;background:#ef44441f}.sdk-cell.selected.conflict{background:#ef4444;color:#fff}.sdk-cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sdk-numpad{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;width:min(432px,calc(100vw - 40px))}.sdk-key{flex:1;min-width:36px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 4px;background:var(--code-bg);border:2px solid var(--border);border-radius:10px;cursor:pointer;font-family:var(--mono);transition:border-color .15s,background .15s,transform .1s}.sdk-key:hover{border-color:var(--accent-border);transform:translateY(-1px)}.sdk-key:active{transform:translateY(0)}.sdk-key:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sdk-key.done{opacity:.3;pointer-events:none}.sdk-key.active{border-color:var(--accent);background:var(--accent-bg)}.sdk-key-n{font-size:20px;font-weight:700;color:var(--text-h)}.sdk-key-rem{font-size:11px;color:var(--text)}.sdk-erase{font-size:20px;color:var(--text)}.sdk-restart{font-size:16px;padding:8px 24px;border-radius:8px;color:var(--accent);background:var(--accent-bg);border:2px solid transparent;font-family:var(--sans);cursor:pointer;transition:border-color .2s}.sdk-restart:hover{border-color:var(--accent-border)}.sdk-restart:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bs-screen{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;flex-grow:1;gap:20px;padding:32px 20px 48px;position:relative}.bs-subtitle{color:var(--text);margin:-8px 0 4px}.bs-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:3px;background:var(--border);border:2px solid var(--border);border-radius:8px;padding:3px;-webkit-user-select:none;user-select:none}.bs-cell{width:32px;height:32px;border-radius:4px;background:var(--code-bg);cursor:default;position:relative;transition:background .1s,transform .1s}@media(max-width:720px){.bs-cell{width:26px;height:26px}}@media(max-width:380px){.bs-cell{width:22px;height:22px;border-radius:3px}}.bs-cell.c-targetable{cursor:crosshair}.bs-cell.c-targetable:hover{background:var(--accent-bg);transform:scale(1.08)}.bs-cell.c-ship{background:#1d4ed8}@media(prefers-color-scheme:dark){.bs-cell.c-ship{background:#2563eb}}.bs-cell.c-hit{background:#ef4444}.bs-cell.c-hit:after{content:"×";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff;line-height:1}.bs-cell.c-sunk{background:#991b1b}.bs-cell.c-sunk:after{content:"×";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fca5a5;line-height:1}.bs-cell.c-miss:after{content:"·";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;color:var(--text);line-height:1}.bs-cell.c-preview{background:var(--accent-bg);outline:2px solid var(--accent-border);outline-offset:-2px}.bs-cell.c-preview-bad{background:#ef444433;outline:2px solid rgba(239,68,68,.5);outline-offset:-2px}.bs-cell.c-highlight{animation:bs-flash .45s ease-out}@keyframes bs-flash{0%{transform:scale(1.4)}60%{transform:scale(.95)}to{transform:scale(1)}}.bs-place-controls{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.bs-btn-primary{font-size:16px;font-weight:600;font-family:var(--sans);padding:11px 32px;border-radius:8px;cursor:pointer;background:var(--accent);color:#fff;border:2px solid transparent;transition:filter .15s,transform .1s}.bs-btn-primary:hover{filter:brightness(.88)}.bs-btn-primary:active{transform:scale(.97)}.bs-btn-primary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.bs-btn-secondary{font-size:14px;font-family:var(--sans);padding:8px 18px;border-radius:8px;cursor:pointer;background:var(--code-bg);color:var(--text-h);border:2px solid var(--border);transition:border-color .15s,transform .1s}.bs-btn-secondary:hover{border-color:var(--accent-border)}.bs-btn-secondary:active{transform:scale(.97)}.bs-btn-secondary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bs-btn-ghost{font-size:14px;font-family:var(--sans);padding:8px 16px;border-radius:8px;cursor:pointer;background:transparent;color:var(--text);border:2px solid transparent;transition:color .15s,transform .1s}.bs-btn-ghost:hover{color:var(--text-h)}.bs-btn-ghost:active{transform:scale(.97)}.bs-btn-ghost:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bs-status{font-size:18px;font-weight:500;color:var(--text);min-height:1.4em;margin:0;transition:color .2s}.bs-status.win{color:var(--accent)}.bs-status.lose{color:#ef4444}.bs-battle-area{display:flex;gap:32px;align-items:flex-start;flex-wrap:wrap;justify-content:center}.bs-battle-col{display:flex;flex-direction:column;align-items:center;gap:12px}.bs-grid-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text);margin:0}.bs-roster{display:flex;flex-direction:column;gap:5px;align-self:stretch}.bs-roster-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text);margin:0 0 2px}.bs-ship-row{display:flex;align-items:center;gap:8px;transition:opacity .2s}.bs-ship-row.sunk{opacity:.35}.bs-ship-name{font-size:12px;color:var(--text);min-width:72px}.bs-ship-row.sunk .bs-ship-name{text-decoration:line-through}.bs-ship-blocks{display:flex;gap:2px}.bs-block{width:10px;height:10px;border-radius:2px;background:#1d4ed8;display:block}@media(prefers-color-scheme:dark){.bs-block{background:#3b82f6}}.bs-ship-row.sunk .bs-block{background:#991b1b}@media(prefers-color-scheme:dark){.bs-ship-row.sunk .bs-block{background:#7f1d1d}}.bb-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-grow:1;gap:16px;padding:32px 20px;position:relative}.bb-hud{display:flex;align-items:center;gap:24px;margin:-4px 0 0}.bb-stat{font-size:20px;font-weight:600;color:var(--text-h);font-family:var(--mono)}.bb-lives{font-size:18px;color:#ef4444;letter-spacing:3px}.bb-wrap{position:relative;flex-shrink:0;line-height:0}.bb-canvas{display:block;max-width:min(400px,calc(100vw - 48px));height:auto;border-radius:12px;background:var(--code-bg);border:2px solid var(--border);touch-action:none}.bb-overlay{position:absolute;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;border-radius:10px}.bb-btn{font-size:16px;padding:10px 28px;border-radius:8px;color:var(--accent);background:var(--accent-bg);border:2px solid transparent;font-family:var(--sans);cursor:pointer;transition:border-color .2s}.bb-btn:hover{border-color:var(--accent-border)}.bb-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bb-level-flash{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:700;font-family:var(--mono);color:#fff;text-shadow:0 2px 16px rgba(124,58,237,.8);pointer-events:none;animation:bb-flash 1.4s ease-out forwards}@keyframes bb-flash{0%{opacity:1;transform:scale(1.1)}40%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}.bb-dpad{display:flex;gap:16px}.bb-dpad-btn{width:72px;height:52px;display:flex;align-items:center;justify-content:center;font-size:22px;border-radius:10px;background:var(--code-bg);border:2px solid var(--border);color:var(--text-h);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;transition:background .1s,transform .1s}.bb-dpad-btn:active{background:var(--accent-bg);transform:scale(.92)}.chess-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-grow:1;gap:20px;padding:32px 20px 40px;position:relative}.chess-sub{color:var(--text);margin:-12px 0 0}.chess-select{justify-content:center}.chess-diff-list{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.chess-diff-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 32px;width:180px;background:var(--code-bg);border:2px solid var(--border);border-radius:16px;cursor:pointer;font-family:var(--sans);text-align:center;transition:border-color .15s,box-shadow .15s,transform .1s;color:var(--text)}.chess-diff-btn:hover{border-color:var(--accent-border);box-shadow:var(--shadow);transform:translateY(-2px)}.chess-diff-btn:active{transform:translateY(0)}.chess-diff-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chess-diff-emoji{font-size:36px;line-height:1}.chess-diff-name{font-size:17px;font-weight:600;color:var(--text-h)}.chess-diff-desc{font-size:13px;color:var(--text);line-height:1.4}.chess-active{padding-top:.75rem;gap:.75rem}.chess-bar{display:flex;align-items:center;gap:.75rem;width:100%;max-width:430px}.chess-bar .back-btn{flex-shrink:0}.chess-status{flex:1;text-align:center;font-weight:600;font-size:.85rem;padding:.4rem .75rem;border-radius:8px;background:var(--code-bg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .2s,color .2s}.chess-status.is-check{background:#fef3c7;color:#92400e}.chess-status.is-over{background:#d1fae5;color:#065f46}@media(prefers-color-scheme:dark){.chess-status.is-check{background:#451a03;color:#fcd34d}.chess-status.is-over{background:#022c22;color:#6ee7b7}}.chess-new-btn{flex-shrink:0;padding:.4rem .8rem;border:1px solid var(--border);border-radius:8px;background:transparent;cursor:pointer;font-size:.85rem;color:var(--text);transition:background .15s}.chess-new-btn:hover{background:var(--code-bg)}.chess-board-wrap{display:flex;align-items:flex-start;gap:4px;user-select:none;-webkit-user-select:none}.chess-col{display:flex;flex-direction:column;gap:4px}.chess-ranks{display:flex;flex-direction:column;height:400px}.chess-files{display:flex;padding-left:0}.chess-coord{flex:1;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:600;opacity:.5;width:20px;height:20px}.chess-files .chess-coord{width:50px;height:20px}.chess-board{display:grid;grid-template-columns:repeat(8,50px);grid-template-rows:repeat(8,50px);border:2px solid var(--border);border-radius:3px;overflow:hidden}.chess-sq{width:50px;height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:filter .08s}.chess-sq:hover{filter:brightness(1.08)}.sq-l{background:#f0d9b5}.sq-d{background:#b58863}.sq-sel{background:#f6f669!important}.sq-last{background:#cdd26a!important}.sq-d.sq-last{background:#aaa23a!important}.sq-check{background:#e74c3c!important}.chess-hint{position:absolute;width:30%;height:30%;border-radius:50%;background:#0000002e;pointer-events:none;z-index:1}.chess-hint.hint-cap{width:88%;height:88%;background:transparent;border:4px solid rgba(0,0,0,.18);border-radius:50%}.chess-piece{font-size:2rem;line-height:1;position:relative;z-index:2;pointer-events:none}.cp-w{color:#fff;text-shadow:0 0 2px #000,0 1px 4px rgba(0,0,0,.55)}.cp-b{color:#1a1a1a;text-shadow:0 0 1px rgba(255,255,255,.25)}.chess-promo-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.chess-promo-box{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:1.5rem;display:flex;flex-direction:column;align-items:center;gap:1rem;box-shadow:0 8px 32px #00000040}.chess-promo-box p{margin:0;font-weight:600;font-size:1rem}.chess-promo-choices{display:flex;gap:.5rem}.chess-promo-btn{width:60px;height:60px;border:1px solid var(--border);border-radius:10px;background:var(--code-bg);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .1s,background .15s}.chess-promo-btn:hover{transform:scale(1.1);background:var(--accent)}.chess-promo-btn .chess-piece{font-size:2.2rem}.chess-promo-btn:hover .cp-w{text-shadow:0 0 3px #000}.chess-replay-btn{padding:.75rem 2.5rem;border-radius:10px;background:var(--accent);color:#fff;border:none;cursor:pointer;font-size:1rem;font-weight:600;transition:opacity .15s,transform .1s}.chess-replay-btn:hover{opacity:.9;transform:translateY(-1px)}@media(max-width:480px){.chess-board{grid-template-columns:repeat(8,40px);grid-template-rows:repeat(8,40px)}.chess-sq{width:40px;height:40px}.chess-piece{font-size:1.6rem}.chess-ranks{height:320px}.chess-files .chess-coord{width:40px}.chess-hint.hint-cap{width:84%;height:84%}}.ms-screen{display:flex;flex-direction:column;align-items:center;flex-grow:1;gap:20px;padding:32px 20px;position:relative}.ms-back{position:absolute;top:28px;left:28px;font-size:15px;font-family:var(--sans);color:var(--text);background:none;border:none;cursor:pointer;padding:4px 0;transition:color .15s}.ms-back:hover{color:var(--text-h)}.ms-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media(max-width:480px){.ms-back{top:16px;left:16px}}.ms-subtitle{color:var(--text);margin:-12px 0 0}.ms-modes{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.ms-mode-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 32px;width:180px;background:var(--code-bg);border:2px solid var(--border);border-radius:16px;cursor:pointer;font-family:var(--sans);text-align:center;transition:border-color .15s,box-shadow .15s,transform .1s}.ms-mode-card:hover{border-color:var(--accent-border);box-shadow:var(--shadow);transform:translateY(-2px)}.ms-mode-card:active{transform:translateY(0)}.ms-mode-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ms-mode-emoji{font-size:36px;line-height:1}.ms-mode-name{font-size:17px;font-weight:600;color:var(--text-h)}.ms-mode-desc{font-size:13px;color:var(--text);line-height:1.4}.ms-hud{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:320px;gap:12px}.ms-hud-item{font-size:15px;font-weight:600;color:var(--text-h);font-family:var(--mono);min-width:72px}.ms-hud-item:last-child{text-align:right}.ms-toggle{font-size:13px;padding:5px 12px;border-radius:20px;border:2px solid var(--border);background:var(--code-bg);color:var(--text);font-family:var(--sans);cursor:pointer;white-space:nowrap;transition:border-color .15s,background .15s,color .15s}.ms-toggle:hover{border-color:var(--accent-border)}.ms-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ms-toggle.flag-active{border-color:#ef4444;background:#ef44441f;color:#ef4444}.ms-hint{font-size:14px;color:var(--text);margin:-8px 0 0}.ms-result{font-size:22px;font-weight:600;margin:-8px 0 0}.ms-result.won{color:#16a34a}.ms-result.lost{color:#ef4444}.ms-board-wrap{overflow-x:auto;max-width:100%;padding-bottom:4px}.ms-grid{display:grid;gap:2px;--ms-cell: 38px}.ms-grid.ms-grid-easy{--ms-cell: 40px}.ms-grid.ms-grid-medium{--ms-cell: 32px}.ms-grid.ms-grid-hard{--ms-cell: 26px}@media(max-width:480px){.ms-grid.ms-grid-easy{--ms-cell: 36px}.ms-grid.ms-grid-medium{--ms-cell: 28px}.ms-grid.ms-grid-hard{--ms-cell: 22px}}.ms-cell{width:var(--ms-cell);height:var(--ms-cell);border:none;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:calc(var(--ms-cell) * .48);font-weight:700;font-family:var(--sans);cursor:pointer;user-select:none;-webkit-user-select:none;transition:background .08s;background:#b0b4c8;box-shadow:inset -2px -2px #7a7e94,inset 2px 2px #d8dce8;color:transparent}.ms-cell:hover:not(.revealed){background:#bec2d6}.ms-cell:active:not(.revealed){background:#a8acbf;box-shadow:inset 1px 1px #7a7e94}.ms-cell.revealed{background:#c8cad6;box-shadow:inset 1px 1px #a4a6b2;cursor:default;color:inherit}.ms-cell.mine{background:#c8cad6}.ms-cell.exploded{background:#ef4444}.ms-cell.flagged{background:#b0b4c8;box-shadow:inset -2px -2px #7a7e94,inset 2px 2px #d8dce8}@media(prefers-color-scheme:dark){.ms-cell{background:#3d4154;box-shadow:inset -2px -2px #1e2030,inset 2px 2px #5c6180}.ms-cell:hover:not(.revealed){background:#474d64}.ms-cell:active:not(.revealed){background:#363b50;box-shadow:inset 1px 1px #1e2030}.ms-cell.revealed{background:#252736;box-shadow:inset 1px 1px #181924}.ms-cell.mine{background:#252736}.ms-cell.exploded{background:#ef4444}.ms-cell.flagged{background:#3d4154;box-shadow:inset -2px -2px #1e2030,inset 2px 2px #5c6180}}.ms-restart{font-size:16px;padding:8px 24px;border-radius:8px;color:var(--accent);background:var(--accent-bg);border:2px solid transparent;font-family:var(--sans);cursor:pointer;transition:border-color .2s}.ms-restart:hover{border-color:var(--accent-border)}.ms-restart:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cw-screen{display:flex;flex-direction:column;align-items:center;flex-grow:1;gap:16px;padding:24px 16px 48px;position:relative}.cw-screen h1{margin:0}.cw-won{font-size:20px;font-weight:600;color:var(--accent);margin:0}.cw-wrong{font-size:14px;color:#ef4444;margin:0}.cw-loading{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:40px;color:var(--text);font-size:15px}.cw-spinner{display:block;width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:cw-spin .7s linear infinite}@keyframes cw-spin{to{transform:rotate(360deg)}}.cw-active-clue{min-height:40px;width:min(640px,calc(100vw - 32px));background:var(--code-bg);border:1px solid var(--border);border-radius:8px;padding:8px 14px;font-size:14px;color:var(--text);line-height:1.5;text-align:center}.cw-active-clue strong{color:var(--accent);margin-right:4px}.cw-hint{color:var(--text);opacity:.55;font-style:italic}.cw-grid-wrapper{overflow:auto;max-width:100%}.cw-grid{display:grid;width:min(520px,max(280px,calc(100vw - 32px)));border:2px solid var(--text-h);border-radius:4px;overflow:hidden}.cw-cell{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none;overflow:hidden}.cw-cell--black{background:var(--text-h);cursor:default}.cw-cell--active{background:color-mix(in srgb,var(--accent) 18%,transparent)}.cw-cell--selected{background:var(--accent)}.cw-cell--correct{background:color-mix(in srgb,#22c55e 22%,transparent)}.cw-cell--selected.cw-cell--correct{background:#22c55e}.cw-cell--wrong{background:#ef44442e}.cw-cell--wrong.cw-cell--selected{background:#ef4444}.cw-num{position:absolute;top:1px;left:2px;font-size:clamp(5px,1.2vw,9px);font-weight:700;color:var(--text);line-height:1;pointer-events:none}.cw-cell--selected .cw-num,.cw-cell--correct .cw-num{color:inherit}.cw-letter{font-size:clamp(8px,2.2vw,18px);font-family:var(--mono);font-weight:600;color:var(--accent);line-height:1}.cw-cell--selected .cw-letter{color:#fff}.cw-cell--correct .cw-letter{color:#166534}.cw-cell--correct.cw-cell--selected .cw-letter{color:#fff}.cw-cell--wrong .cw-letter{color:#ef4444}.cw-cell--wrong.cw-cell--selected .cw-letter{color:#fff}.cw-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.cw-btn{font-size:15px;padding:8px 22px;border-radius:8px;color:var(--accent);background:var(--accent-bg);border:2px solid transparent;font-family:var(--sans);cursor:pointer;transition:border-color .2s,background .2s}.cw-btn:hover{border-color:var(--accent-border)}.cw-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cw-btn--check{background:var(--accent);color:#fff;border-color:var(--accent)}.cw-btn--check:hover{background:color-mix(in srgb,var(--accent) 85%,black);border-color:var(--accent)}.cw-clues{display:flex;gap:32px;width:min(640px,calc(100vw - 32px));align-items:flex-start;flex-wrap:wrap}.cw-clue-col{flex:1;min-width:200px}.cw-clue-col h2{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text);margin:0 0 8px;border-bottom:2px solid var(--border);padding-bottom:6px}.cw-clue-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.cw-clue-item{font-size:13px;color:var(--text);line-height:1.4;padding:4px 6px;border-radius:5px;cursor:pointer;transition:background .1s}.cw-clue-item:hover{background:var(--code-bg)}.cw-clue-item--active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--text-h);font-weight:500}.cw-clue-num{font-weight:700;color:var(--accent);margin-right:3px}@media(max-width:500px){.cw-clues{gap:20px}.cw-clue-col{min-width:140px}}.ws-screen{display:flex;flex-direction:column;align-items:center;flex-grow:1;gap:16px;padding:24px 16px 48px}.ws-title{margin:0}.ws-back{align-self:flex-start;background:none;border:none;color:var(--accent);font-family:var(--sans);font-size:15px;cursor:pointer;padding:4px 0}.ws-back:hover{opacity:.75}.ws-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.ws-loading{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:40px;color:var(--text);font-size:15px}.ws-spinner{display:block;width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:ws-spin .7s linear infinite}@keyframes ws-spin{to{transform:rotate(360deg)}}.ws-theme{margin:0;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.ws-won{font-size:20px;font-weight:600;color:var(--accent);margin:0}.ws-grid{display:grid;grid-template-columns:repeat(13,1fr);width:min(560px,calc(100vw - 32px));border:2px solid var(--border);border-radius:6px;overflow:hidden;cursor:default;-webkit-user-select:none;user-select:none}.ws-cell{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-right:1px solid var(--border);border-bottom:1px solid var(--border);font-family:var(--mono);font-weight:700;font-size:clamp(7px,1.9vw,15px);color:var(--text-h);transition:background .08s}.ws-cell--selected{background:var(--accent)!important;color:#fff}.ws-cell--found{color:var(--text-h)}.ws-words{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:min(560px,calc(100vw - 32px))}.ws-word{font-family:var(--mono);font-weight:600;font-size:13px;padding:4px 12px;border-radius:20px;border:1px solid var(--border);background:var(--code-bg);color:var(--text-h);transition:background .3s,opacity .3s;letter-spacing:.04em}.ws-word--found{text-decoration:line-through;opacity:.6}.ws-btn{font-size:15px;padding:8px 24px;border-radius:8px;color:var(--accent);background:var(--accent-bg);border:2px solid transparent;font-family:var(--sans);cursor:pointer;transition:border-color .2s,background .2s}.ws-btn:hover{border-color:var(--accent-border)}.ws-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:400px){.ws-word{font-size:11px;padding:3px 8px}}.mj-screen{display:flex;flex-direction:column;align-items:center;padding:16px;min-height:100vh;box-sizing:border-box}.mj-back{align-self:flex-start;background:none;border:none;color:var(--color-text-muted, #6b7280);cursor:pointer;font-size:.9rem;padding:4px 0;margin-bottom:8px}.mj-back:hover{color:var(--color-text, #111)}.mj-screen h1{margin:0 0 8px;font-size:1.6rem}.mj-hud{display:flex;gap:16px;align-items:center;margin-bottom:12px;font-size:.9rem;flex-wrap:wrap;justify-content:center}.mj-hud-item{background:var(--color-surface, #f3f4f6);border-radius:8px;padding:4px 12px;font-weight:600}.mj-btn{background:var(--color-surface, #f3f4f6);border:1.5px solid var(--color-border, #d1d5db);border-radius:8px;padding:4px 12px;cursor:pointer;font-size:.85rem;font-weight:600;color:var(--color-text, #111)}.mj-btn:hover:not(:disabled){background:var(--color-border, #d1d5db)}.mj-btn:disabled{opacity:.45;cursor:default}.mj-result{font-size:1.2rem;font-weight:700;margin:4px 0 10px;padding:6px 20px;border-radius:10px}.mj-result.won{background:#dcfce7;color:#166534}.mj-result.lost{background:#fee2e2;color:#991b1b}.mj-board-wrap{overflow:auto;max-width:100%;width:fit-content;margin:0 auto}.mj-board{position:relative;margin:0 auto}.mj-tile{position:absolute;box-sizing:border-box;border-radius:5px;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;font-size:1.15rem;line-height:1;transition:transform .08s ease,box-shadow .08s ease;background:linear-gradient(160deg,#fff,#f5f0dc);border:1px solid #c4a560;box-shadow:inset 0 1px 2px #ffffffe6,0 5px #8a6e28,3px 0 #9a7e38,3px 5px #5a4410,0 8px 14px #00000073}.mj-tile.free{background:linear-gradient(160deg,#fff,#fef9e4)}.mj-tile.free:hover{transform:translate(-1px,-3px);box-shadow:inset 0 1px 2px #ffffffe6,0 8px #8a6e28,3px 0 #9a7e38,3px 8px #5a4410,0 12px 18px #00000073}.mj-tile.selected{background:linear-gradient(160deg,#f0f7ff,#dbeafe);border-color:#60a5fa;transform:translate(-1px,-4px);box-shadow:inset 0 1px 2px #ffffffe6,0 8px #1d4ed8,3px 0 #2563eb,3px 8px #1e3a8a,0 12px 20px #2563eb80}.mj-tile.locked{background:linear-gradient(160deg,#d4d0c2,#c0bbaa);border-color:#908870;cursor:default;box-shadow:inset 0 1px 1px #ffffff4d,0 3px #6a6050,2px 0 #787060,2px 3px #4a4030,0 5px 8px #00000040}.mj-tile.hint{animation:mj-hint-pulse .55s ease-in-out infinite alternate}@keyframes mj-hint-pulse{0%{border-color:#fbbf24;box-shadow:inset 0 1px 2px #ffffffe6,0 0 0 2px #fde68a,0 5px #8a6e28,3px 0 #9a7e38,3px 5px #5a4410,0 8px 14px #f59e0b66}to{border-color:#f59e0b;box-shadow:inset 0 1px 2px #ffffffe6,0 0 0 3px #f59e0b,0 5px #8a6e28,3px 0 #9a7e38,3px 5px #5a4410,0 8px 18px #f59e0b99}}.mj-suit-bamboo{color:#15803d}.mj-suit-circle{color:#b91c1c}.mj-suit-char{color:#1d4ed8}.mj-suit-wind{color:#6d28d9}.mj-suit-dragon{color:#92400e}.mj-suit-flower{color:#be185d}.mj-suit-season{color:#0e7490}.mj-restart{margin-top:14px;padding:8px 28px;border-radius:10px;border:none;background:var(--color-primary, #2563eb);color:#fff;font-size:.95rem;font-weight:600;cursor:pointer}.mj-restart:hover{filter:brightness(1.1)}.sk-screen{display:flex;flex-direction:column;align-items:center;flex-grow:1;gap:20px;padding:32px 20px;position:relative}.sk-back{position:absolute;top:28px;left:28px;font-size:15px;font-family:var(--sans);color:var(--text);background:none;border:none;cursor:pointer;padding:4px 0;transition:color .15s}.sk-back:hover{color:var(--text-h)}.sk-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}@media(max-width:480px){.sk-back{top:16px;left:16px}}.sk-subtitle{color:var(--text);margin:-12px 0 0}.sk-modes{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.sk-mode-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 32px;width:180px;background:var(--code-bg);border:2px solid var(--border);border-radius:16px;cursor:pointer;font-family:var(--sans);text-align:center;transition:border-color .15s,box-shadow .15s,transform .1s}.sk-mode-card:hover{border-color:var(--accent-border);box-shadow:var(--shadow);transform:translateY(-2px)}.sk-mode-card:active{transform:translateY(0)}.sk-mode-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sk-mode-emoji{font-size:36px;line-height:1}.sk-mode-name{font-size:17px;font-weight:600;color:var(--text-h)}.sk-mode-desc{font-size:13px;color:var(--text);line-height:1.4}.sk-won{font-size:22px;font-weight:600;color:#16a34a;margin:-8px 0 0}.sk-hint-text{font-size:14px;color:var(--text);margin:-8px 0 0}.sk-board-wrap{overflow:auto;max-width:100%;touch-action:none}.sk-grid{display:grid;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:4px;overflow:hidden;user-select:none;-webkit-user-select:none}.sk-cell{width:var(--sk-cell);height:var(--sk-cell);background:var(--code-bg);display:flex;align-items:center;justify-content:center;position:relative;cursor:cell;transition:background .07s}.sk-cell--hint{cursor:pointer}.sk-cell--selected-hint{outline:2px solid white;outline-offset:-3px;z-index:1}.sk-cell--active-region{filter:brightness(1.18)}.sk-cell--hover{opacity:.55}.sk-cell--invalid{outline:2px solid rgba(239,68,68,.7);outline-offset:-2px}.sk-hint{font-size:calc(var(--sk-cell) * .42);font-weight:700;font-family:var(--mono);color:var(--text-h);z-index:2;pointer-events:none;line-height:1}.sk-cell--filled .sk-hint{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.4)}.sk-cell--invalid .sk-hint{color:#7f1d1d;text-shadow:none}.sk-c0{background:#6366f18c}.sk-c1{background:#22c55e8c}.sk-c2{background:#f59e0b8c}.sk-c3{background:#ec48998c}.sk-c4{background:#14b8a68c}.sk-c5{background:#f973168c}.sk-c6{background:#8b5cf68c}.sk-c7{background:#06b6d48c}@media(prefers-color-scheme:dark){.sk-c0{background:#6366f173}.sk-c1{background:#22c55e73}.sk-c2{background:#f59e0b73}.sk-c3{background:#ec489973}.sk-c4{background:#14b8a673}.sk-c5{background:#f9731673}.sk-c6{background:#8b5cf673}.sk-c7{background:#06b6d473}}.sk-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.sk-btn{font-size:15px;padding:8px 20px;border-radius:8px;border:2px solid var(--border);background:var(--code-bg);color:var(--text-h);font-family:var(--sans);cursor:pointer;transition:border-color .15s,box-shadow .15s}.sk-btn:hover{border-color:var(--accent-border);box-shadow:var(--shadow)}.sk-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1{font-weight:700}.top-bar{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;z-index:100;pointer-events:none}.top-bar>*{pointer-events:auto}.user-area{display:flex;align-items:center;gap:6px}.user-signin-btn{padding:4px 10px;font-size:11px;font-weight:700;letter-spacing:.04em;border-radius:6px;border:1px solid var(--border);background:var(--code-bg);color:var(--text);cursor:pointer;font-family:var(--sans);opacity:.7;transition:opacity .15s,border-color .15s}.user-signin-btn:hover{opacity:1;border-color:var(--accent-border)}.user-menu{display:flex;align-items:center;gap:6px}.user-avatar{position:relative;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;font-weight:700;font-family:var(--sans);display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;transition:opacity .15s}.user-avatar:hover{opacity:.85}.user-pro-dot{position:absolute;bottom:-1px;right:-1px;width:8px;height:8px;border-radius:50%;background:#fbbf24;border:1.5px solid var(--bg)}.user-signout-btn{padding:4px 9px;font-size:11px;font-weight:700;letter-spacing:.04em;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer;font-family:var(--sans);opacity:.5;transition:opacity .15s}.user-signout-btn:hover{opacity:.8}.game-card{position:relative}.pro-badge{position:absolute;top:10px;right:10px;display:flex;align-items:center;justify-content:center;padding:2px 6px;border-radius:4px;background:var(--border);color:var(--text);font-size:10px;font-weight:700;letter-spacing:.06em;line-height:1}.pro-badge.pro-badge--active{background:#fbbf2426;color:#d97706}.online-badge{position:absolute;bottom:10px;right:10px;display:flex;align-items:center;gap:3px;padding:2px 6px;border-radius:4px;background:#3b82f61f;color:#3b82f6;font-size:10px;font-weight:600;letter-spacing:.04em;line-height:1}.game-card--locked{opacity:.75}.game-card--locked:hover{border-color:var(--border);box-shadow:none;transform:none;opacity:1}.pro-banner{position:fixed;top:56px;left:50%;transform:translate(-50%);background:var(--code-bg);border:1px solid var(--border);border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600;color:var(--text);z-index:90;box-shadow:var(--shadow)}.pro-banner.pro-banner--active{background:#fbbf241f;border-color:#fbbf2466;color:#92400e}@media(prefers-color-scheme:dark){.pro-banner.pro-banner--active{color:#fbbf24}}.modal-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.modal{position:relative;background:var(--bg);border:2px solid var(--border);border-radius:20px;padding:40px 36px 36px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:20px;box-shadow:var(--shadow);text-align:left}.modal-close{position:absolute;top:14px;right:16px;width:28px;height:28px;border-radius:50%;border:none;background:transparent;color:var(--text);font-size:20px;line-height:1;cursor:pointer;opacity:.4;transition:opacity .15s;display:flex;align-items:center;justify-content:center;font-family:var(--sans)}.modal-close:hover{opacity:.8}.modal-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);padding-bottom:0}.modal-tabs button{padding:6px 16px;font-size:14px;font-weight:600;font-family:var(--sans);background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--text);cursor:pointer;transition:color .15s,border-color .15s;opacity:.6}.modal-tabs button:hover{opacity:.9}.modal-tabs button.active{opacity:1;color:var(--accent);border-bottom-color:var(--accent)}.modal-form{display:flex;flex-direction:column;gap:14px}.modal-form label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--text);letter-spacing:.02em}.modal-form input{padding:9px 12px;font-size:14px;font-family:var(--sans);border:1.5px solid var(--border);border-radius:8px;background:var(--code-bg);color:var(--text-h);outline:none;transition:border-color .15s}.modal-form input:focus{border-color:var(--accent-border)}.modal-error{font-size:13px;color:#dc2626;margin:0}.modal-submit{padding:11px;font-size:14px;font-weight:700;font-family:var(--sans);letter-spacing:.02em;background:var(--accent);color:#fff;border:none;border-radius:10px;cursor:pointer;transition:opacity .15s}.modal-submit:hover:not(:disabled){opacity:.85}.modal-submit:disabled{opacity:.5;cursor:default}.modal-done{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:8px 0}.modal-done-icon{font-size:36px}.upgrade-modal{max-width:400px}.upgrade-header{display:flex;flex-direction:column;gap:6px}.upgrade-header h2{margin:0}.upgrade-header p{font-size:14px;color:var(--text);margin:0}.pro-pill{display:inline-flex;align-self:flex-start;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.08em;background:#fbbf2426;color:#d97706}@media(prefers-color-scheme:dark){.pro-pill{color:#fbbf24}}.upgrade-games{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.upgrade-games li{font-size:14px;color:var(--text-h);padding:6px 10px;background:var(--code-bg);border-radius:6px;font-weight:500}.upgrade-games li:before{content:"✦  ";color:var(--accent);font-size:10px}.upgrade-price{font-size:22px;font-weight:700;color:var(--text-h);letter-spacing:-.5px}.lang-toggle{display:flex;gap:3px}.lang-toggle button{padding:4px 9px;font-size:11px;font-weight:700;letter-spacing:.04em;border-radius:6px;border:1px solid var(--border);background:var(--code-bg);color:var(--text);cursor:pointer;font-family:var(--sans);opacity:.5;transition:opacity .15s,border-color .15s,color .15s}.lang-toggle button:hover{opacity:.8}.lang-toggle button.active{opacity:1;border-color:var(--accent-border);color:var(--accent)}#home{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-grow:1;gap:40px;padding:48px 20px}.game-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;width:100%;max-width:640px}.game-card{width:100%;display:flex;flex-direction:column;align-items:center;gap:10px;padding:32px 20px;background:var(--code-bg);border:2px solid var(--border);border-radius:16px;cursor:pointer;font-family:var(--sans);text-align:center;transition:border-color .15s,box-shadow .15s,transform .1s;height:100%}.game-card:hover{border-color:var(--accent-border);box-shadow:var(--shadow);transform:translateY(-2px)}.game-card:active{transform:translateY(0)}.game-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.game-emoji{font-size:40px;line-height:1}.game-name{font-size:18px;font-weight:600;color:var(--text-h)}.game-desc{font-size:14px;color:var(--text);line-height:1.4}
