:root,[data-theme=paper]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f0e6;--surface:#fffdf8;--surface-2:#ede6d8;--text:#1b1b1b;--muted:#5e5a52;--divider:#d8d0c0;--x:#c8372d;--o:#23408e;--highlight:#fbe3a0;--font-body:"Instrument Sans", system-ui, sans-serif;--font-display:Fraunces, Georgia, serif;--display-weight:600;--radius:4px;--radius-sm:4px;--card-bg:var(--surface);--card-border:1px solid var(--divider);--card-shadow:none;--primary-bg:#1b1b1b;--primary-text:#f5f0e6;--primary-border:0;--primary-shadow:none;--secondary-bg:transparent;--secondary-text:#1b1b1b;--secondary-border:1.5px solid #1b1b1b;--chip-on-bg:#1b1b1b;--chip-on-text:#f5f0e6;--mark-weight:2.6;--won-mark-x:var(--x);--won-mark-o:var(--o);--line-strong:#1b1b1b;--line-faint:#a39b8c;--theirs-dim:.4;--won-dim:.15;--focus:#23408e}[data-theme=arcade]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#10131f;--surface:#1a1f33;--surface-2:#242a44;--text:#f1f2f7;--muted:#a3a8c3;--divider:#232842;--x:#ff6b4a;--o:#4fc3f7;--highlight:#ffd166;--font-body:"DM Sans", system-ui, sans-serif;--font-display:"Chakra Petch", system-ui, sans-serif;--display-weight:700;--radius:16px;--radius-sm:12px;--card-bg:var(--surface);--card-border:1px solid transparent;--card-shadow:none;--primary-bg:#ffd166;--primary-text:#10131f;--primary-border:0;--primary-shadow:none;--secondary-bg:#1a1f33;--secondary-text:#f1f2f7;--secondary-border:1px solid #343b5c;--chip-on-bg:#1e3140;--chip-on-text:#f1f2f7;--mark-weight:3.5;--won-mark-x:var(--x);--won-mark-o:var(--o);--board-radius:14px;--cell-radius:6px;--board-mine-bg:#1f2640;--board-mine-border:2px solid #ffd166;--board-mine-shadow:none;--board-theirs-bg:#151929;--board-theirs-border:2px solid #232842;--board-won-x-bg:#2a1c22;--board-won-x-border:2px solid #ff6b4a;--board-won-o-bg:#172838;--board-won-o-border:2px solid #4fc3f7;--board-draw-bg:#151929;--board-draw-border:2px dashed #4a5070;--cell-bg:#1d2236;--cell-mine-bg:#2a3252;--theirs-dim:.45;--won-dim:.2;--focus:#ffd166}[data-theme=toy]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff1d6;--surface:#fff;--surface-2:#fbebd0;--text:#1e1e2e;--muted:#5b5670;--divider:#efe3cb;--x:#f0386b;--o:#12948a;--highlight:#ffd23f;--font-body:"Bricolage Grotesque", system-ui, sans-serif;--font-display:"Bricolage Grotesque", system-ui, sans-serif;--display-weight:800;--radius:18px;--radius-sm:14px;--card-bg:#fff;--card-border:3px solid #1e1e2e;--card-shadow:3px 3px 0 #1e1e2e;--primary-bg:#ffd23f;--primary-text:#1e1e2e;--primary-border:3px solid #1e1e2e;--primary-shadow:4px 4px 0 #1e1e2e;--secondary-bg:#fff;--secondary-text:#1e1e2e;--secondary-border:3px solid #1e1e2e;--chip-on-bg:#1e1e2e;--chip-on-text:#fff;--mark-weight:4.5;--won-mark-x:#fff;--won-mark-o:#fff;--board-radius:16px;--cell-radius:7px;--board-mine-bg:#ffd23f;--board-mine-border:3px solid #1e1e2e;--board-mine-shadow:3px 3px 0 #1e1e2e;--board-theirs-bg:#fbebd0;--board-theirs-border:3px solid #b9ae98;--board-won-x-bg:#f0386b;--board-won-x-border:3px solid #1e1e2e;--board-won-o-bg:#12948a;--board-won-o-border:3px solid #1e1e2e;--board-draw-bg:#e6dcc6;--board-draw-border:3px dashed #8c8270;--cell-bg:#fff7e8;--cell-mine-bg:#fff;--theirs-dim:.55;--won-dim:0;--focus:#1e1e2e}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}a{color:inherit}h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-weight);margin:0}p{margin:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page{flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.page-body{flex-direction:column;flex:1;gap:22px;padding:12px 16px 24px;display:flex}.topbar{padding:max(16px, env(safe-area-inset-top)) 16px 4px;align-items:center;gap:10px;min-height:64px;display:flex}.topbar .title{flex:1;font-size:26px}.topbar .title.center{text-align:center;font-size:20px}.wordmark{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:.3px;flex:1;font-size:28px}.wordmark .x{color:var(--x)}.wordmark .o{color:var(--o)}.section{flex-direction:column;gap:10px;display:flex}.section-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.eyebrow{font-family:var(--font-body);letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:700}.muted{color:var(--muted)}.headline{font-size:34px;line-height:1.1}.headline em{background:var(--highlight);color:#1b1b1b;border-radius:var(--radius-sm);padding:0 6px;font-style:normal}[data-theme=arcade] .headline em{color:var(--highlight);background:0 0;padding:0}.card{background:var(--card-bg);border:var(--card-border);border-radius:var(--radius);box-shadow:var(--card-shadow)}.btn{border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 18px;font-size:16px;font-weight:700;text-decoration:none;transition:transform 80ms;display:inline-flex}.btn:active:not(:disabled){transform:translate(1px,1px)}.btn-primary{background:var(--primary-bg);color:var(--primary-text);border:var(--primary-border);box-shadow:var(--primary-shadow);font-family:var(--font-display);min-height:56px;font-size:18px}.btn-secondary{background:var(--secondary-bg);color:var(--secondary-text);border:var(--secondary-border)}.btn-icon{width:48px;min-width:48px;padding:0}.btn-block{width:100%}.chips{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.chip{border-radius:var(--radius-sm);background:var(--secondary-bg);border:var(--secondary-border);min-height:44px;font-weight:600}.chip[aria-pressed=true]{background:var(--chip-on-bg);color:var(--chip-on-text)}[data-theme=arcade] .chip[aria-pressed=true]{border-color:var(--o)}.switch{background:var(--divider);border:0;border-radius:16px;flex:none;justify-content:flex-start;width:52px;height:32px;padding:3px;display:flex}.switch[aria-checked=true]{background:var(--x);justify-content:flex-end}.switch:after{content:"";background:#fff;border-radius:13px;width:26px;height:26px;box-shadow:0 1px 3px #0000004d}.row{align-items:center;gap:12px;padding:12px 14px;display:flex}.row+.row{border-top:1px solid var(--divider)}.row .grow{flex-direction:column;flex:1;gap:2px;display:flex}.game-row{color:var(--text);align-items:center;gap:14px;padding:12px 14px;text-decoration:none;display:flex}.game-row .name{font-size:16px;font-weight:700}.game-row .detail{color:var(--muted);font-size:13px}.game-row.done{opacity:.7}.minimap{flex:none;grid-template-columns:repeat(3,10px);gap:3px;display:grid}.minimap span{background:var(--surface-2);border-radius:2px;width:10px;height:10px}.minimap span[data-r=x]{background:var(--x)}.minimap span[data-r=o]{background:var(--o)}.minimap span[data-r=draw]{background:var(--muted);opacity:.5}.empty{color:var(--muted);padding:18px 14px;font-size:15px}.share-card{align-items:center;gap:16px;padding:14px;display:flex}.qr{border-radius:var(--radius-sm);flex:none;width:132px;height:132px}.share-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.share-url{overflow-wrap:anywhere;font-size:14px;font-weight:600}.share-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.share-actions .btn-primary{min-height:48px;font-size:16px}@media (width<=380px){.share-card{flex-direction:column;align-items:stretch}.qr{align-self:center;width:180px;height:180px}}.tabbar{padding:6px 8px max(10px, env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--divider);grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:sticky;bottom:0}.tabbar a{min-height:52px;color:var(--muted);border-radius:var(--radius-sm);flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:12px;font-weight:600;text-decoration:none;display:flex}.tabbar a[aria-current=page]{color:var(--text)}[data-theme=arcade] .tabbar a[aria-current=page]{color:var(--highlight)}[data-theme=toy] .tabbar{margin:0 12px max(12px, env(safe-area-inset-bottom));bottom:max(12px, env(safe-area-inset-bottom));background:#fff;border:3px solid #1e1e2e;border-radius:22px;padding:6px}[data-theme=toy] .tabbar a[aria-current=page]{color:#fff;background:#1e1e2e}[data-theme=paper] .tabbar{border-top:2px solid #1b1b1b}[data-theme=paper] .tabbar a[aria-current=page]{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:2px}.mark{fill:none;width:62%;height:62%;stroke-width:var(--mark-weight);stroke-linecap:round;overflow:visible}.mark.x{stroke:var(--x);color:var(--x)}.mark.o{stroke:var(--o);color:var(--o)}.mark .eye{fill:#fff;stroke:none}.mark .pupil{fill:#1e1e2e;stroke:none}.mark .lid{fill:currentColor;stroke:#1e1e2e;stroke-width:.6px}.mark .eye-ring{fill:none;stroke:#1e1e2e;stroke-width:.6px}.mark .mouth{fill:none;stroke:var(--text);stroke-width:1px;stroke-linejoin:round}.mark .patch path{fill:none;stroke:#1e1e2e;stroke-width:.7px}.mark .patch circle{fill:#1e1e2e;stroke:none}[data-theme=arcade] .mark .patch path{stroke:#f1f2f7}[data-theme=arcade] .mark .patch circle{stroke:#f1f2f7;stroke-width:.5px}.mark .bandana path,.mark .bandana circle{fill:#e0443a;stroke:#1e1e2e;stroke-width:.5px;stroke-linejoin:round}.mark .bandana .dot{fill:#fff;stroke:none}.mark .happy .mouth{fill:var(--text)}.mark .eyes{transform-box:fill-box;transform-origin:50%;animation:5s infinite blink}.mark.o .eyes{animation-delay:1.7s}@keyframes blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}@media (prefers-reduced-motion:reduce){.mark .eyes{animation:none}}.nine{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.board{aspect-ratio:1;border-radius:var(--board-radius);background:var(--board-theirs-bg);border:var(--board-theirs-border);text-align:inherit;padding:6px;position:relative}.board[data-state=mine]{background:var(--board-mine-bg);border:var(--board-mine-border);box-shadow:var(--board-mine-shadow)}.board[data-state=x]{background:var(--board-won-x-bg);border:var(--board-won-x-border)}.board[data-state=o]{background:var(--board-won-o-bg);border:var(--board-won-o-border)}.board[data-state=draw]{background:var(--board-draw-bg);border:var(--board-draw-border)}.board .cells{grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;height:100%;display:grid}.board[data-state=theirs] .cells{opacity:var(--theirs-dim)}.board[data-state=x] .cells,.board[data-state=o] .cells{opacity:var(--won-dim)}.board[data-state=draw] .cells{opacity:.2}.draw-tag{border-radius:var(--radius-sm);background:var(--bg);color:var(--text);padding:2px 8px}.cell{border-radius:var(--cell-radius);background:var(--cell-bg);justify-content:center;align-items:center;display:flex}.board[data-state=mine] .cell{background:var(--cell-mine-bg)}.board .overlay{pointer-events:none;font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:1px;color:var(--muted);justify-content:center;align-items:center;font-size:18px;display:flex;position:absolute;inset:0}.board .overlay .mark{stroke-width:2.6px;width:64%;height:64%}.board .overlay .mark.x{stroke:var(--won-mark-x);color:var(--won-mark-x)}.board .overlay .mark.o{stroke:var(--won-mark-o);color:var(--won-mark-o)}.cell.cleared{animation:.9s ease-out cleared}@keyframes cleared{0%{background:var(--highlight);transform:scale(1.15)}to{transform:scale(1)}}.cell.targeted{outline:2px solid var(--x);outline-offset:-2px}[data-board-style=lines] .nine{gap:0}[data-board-style=lines] .board,[data-board-style=lines] .board[data-state]{box-shadow:none;background:0 0;border:0;border-radius:0;padding:6px}[data-board-style=lines] .board:nth-child(3n+1),[data-board-style=lines] .board:nth-child(3n+2){border-right:3px solid var(--line-strong)}[data-board-style=lines] .board:nth-child(-n+6){border-bottom:3px solid var(--line-strong)}[data-board-style=lines] .board .cells{border-radius:6px;gap:0;padding:5px}[data-board-style=lines] .board[data-state=mine] .cells{background:var(--highlight)}[data-board-style=lines] .cell,[data-board-style=lines] .board[data-state=mine] .cell{background:0 0;border-radius:0}[data-board-style=lines] .cell:nth-child(3n+1),[data-board-style=lines] .cell:nth-child(3n+2){border-right:1.5px solid var(--line-faint)}[data-board-style=lines] .cell:nth-child(-n+6){border-bottom:1.5px solid var(--line-faint)}[data-board-style=lines] .board[data-state=mine] .cell{border-color:var(--line-strong)}[data-board-style=lines] .overlay{letter-spacing:0;font-size:22px;font-style:italic}.players{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.player{flex-direction:column;gap:6px;padding:10px 12px;display:flex}.player .who{align-items:center;gap:8px;font-weight:700;display:flex}.player .who svg{width:28px;height:28px}.pips{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:flex}.pip{border:1.5px solid var(--muted);border-radius:5px;width:10px;height:10px}.pip.on{background:var(--highlight);border-color:var(--highlight)}[data-theme=toy] .pip.on,[data-theme=paper] .pip.on{border-color:var(--text)}.status{font-family:var(--font-display);font-weight:var(--display-weight);min-height:26px;font-size:19px}.status em{color:var(--x);font-style:normal}.actions{gap:10px;display:flex}.actions .btn-primary{flex:1}.toast{left:50%;top:max(72px, calc(env(safe-area-inset-top) + 64px));border-radius:var(--radius);background:var(--text);color:var(--bg);z-index:30;align-items:center;gap:12px;padding:8px 8px 8px 16px;font-weight:600;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #00000040}.toast button{border-radius:var(--radius-sm);background:var(--bg);min-height:40px;color:var(--text);border:0;padding:0 14px;font-weight:700}.banner{border-radius:var(--radius);background:var(--highlight);color:#1b1b1b;padding:12px 14px;font-weight:600;line-height:1.35}[data-theme=toy] .banner{border:3px solid #1e1e2e;box-shadow:3px 3px #1e1e2e}.scrim{z-index:20;background:#00000073;justify-content:center;align-items:flex-end;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:480px;max-height:90dvh;padding:18px 16px max(20px, env(safe-area-inset-bottom));background:var(--bg);border-radius:var(--radius) var(--radius) 0 0;flex-direction:column;gap:14px;animation:.18s ease-out rise;display:flex;overflow:auto}[data-theme=toy] .sheet{border:3px solid #1e1e2e;border-bottom:0}.sheet-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.sheet-head h2{font-size:22px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}.zoom{aspect-ratio:1;grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(100%,360px);margin:0 auto;display:grid}.zoom button{border:var(--card-border);border-radius:var(--radius-sm);background:var(--card-bg);justify-content:center;align-items:center;min-width:0;min-height:0;padding:0;display:flex}[data-theme=arcade] .zoom button{background:var(--surface-2)}.zoom button:disabled{opacity:1}.zoom .mark{width:56%;height:56%}.zoom .mark.placed{animation:.22s ease-out place}@keyframes place{0%{opacity:0;transform:scale(.4)}}@media (prefers-reduced-motion:reduce){.zoom .mark.placed{animation:none}}[data-board-style=lines] .zoom{gap:0}[data-board-style=lines] .zoom button{background:0 0;border:0;border-radius:0}[data-board-style=lines] .zoom button:nth-child(3n+1),[data-board-style=lines] .zoom button:nth-child(3n+2){border-right:3px solid var(--line-strong)}[data-board-style=lines] .zoom button:nth-child(-n+6){border-bottom:3px solid var(--line-strong)}.playing-as{color:inherit;align-items:center;gap:12px;text-decoration:none;display:flex}.playing-as .grow,.char-hero .grow{flex-direction:column;flex:1;min-width:0;display:flex}.playing-as svg{flex:none;width:44px;height:44px}.char-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.char-tile{color:inherit;font:inherit;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 12px;font-size:14px;font-weight:600;display:flex;position:relative}.char-tile svg{width:64px;height:64px}.char-tile[aria-pressed=true]{outline:3px solid var(--focus);outline-offset:2px}.char-tile .picked{background:var(--chip-on-bg);width:22px;height:22px;color:var(--chip-on-text);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:6px;right:6px}.char-tile .picked svg{width:14px;height:14px}.char-detail{padding:16px}.char-hero{align-items:center;gap:16px;display:flex}.char-hero svg{flex:none;width:96px;height:96px}.char-hero h2{font-size:26px}.char-detail .trick{padding:4px 0}.trick{align-items:center;gap:14px;padding:12px;display:flex}.trick .info{flex-direction:column;flex:1;gap:4px;display:flex}.trick .name{font-family:var(--font-display);font-weight:var(--display-weight);font-size:17px}.trick .desc{color:var(--muted);font-size:13px;line-height:1.35}.pattern{flex:none;grid-template-columns:repeat(3,1fr);gap:3px;width:78px;display:grid}.pattern>span{grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.pattern>span>span{aspect-ratio:1;background:var(--surface-2);border-radius:1px}.pattern>span>span.hit{background:var(--x)}.pattern>span.handed>span:not(.hit){background:color-mix(in srgb, var(--highlight) 55%, var(--surface-2))}.result{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:8px 0 4px;display:flex}.result h2{font-size:40px}.help li{margin-bottom:8px;line-height:1.45}.theme-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.theme-card{text-align:left;border-radius:14px;flex-direction:column;justify-content:space-between;align-items:flex-start;min-height:120px;padding:10px;display:flex}.theme-card[aria-checked=true]{outline:3px solid var(--focus);outline-offset:2px}.theme-card .dots{gap:4px;display:flex}.theme-card .dots span{border-radius:8px;width:16px;height:16px}.theme-card .tname{font-size:16px;font-weight:700;line-height:1.1}.theme-card .tsub{opacity:.75;font-size:12px;font-weight:600}.account-link{white-space:nowrap;text-overflow:ellipsis;max-width:50%;min-height:44px;padding:0 12px;overflow:hidden}.form{flex-direction:column;gap:14px;padding:16px 14px;display:flex}.field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;font-size:14px;font-weight:600;display:flex}.field legend{margin-bottom:6px;padding:0}.input{border-radius:var(--radius-sm);border:var(--secondary-border);background:var(--surface);width:100%;min-height:48px;padding:0 12px;font-size:16px;font-weight:400}.form-error{color:var(--x);font-size:14px;font-weight:600}.form-notice{border-radius:var(--radius-sm);background:var(--surface-2);padding:10px 12px;font-size:14px;font-weight:600}.form-links{flex-wrap:wrap;justify-content:center;gap:4px 18px;display:flex}.link{text-underline-offset:3px;background:0 0;border:0;min-height:44px;padding:0;font-weight:600;text-decoration:underline}.turnstile{min-height:65px}.character-pick{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.character-pick .chip{flex-direction:column;align-items:center;gap:4px;padding:10px 4px 12px;font-size:14px;display:flex}.character-pick .chip .mark{width:56px;height:56px}.chip .mark,.row-mark .mark{flex:none;width:18px;height:18px}.row-mark{display:flex}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.stat{flex-direction:column;align-items:center;gap:2px;padding:12px 6px;display:flex}.stat-value{font-family:var(--font-display);font-weight:var(--display-weight);font-size:26px}.stat-label{color:var(--muted);font-size:12px;font-weight:600}.leaders{margin:0;padding:0;list-style:none}.leaders .place{text-align:right;width:28px;font-family:var(--font-display);font-weight:var(--display-weight);color:var(--muted)}.leaders .me{background:var(--surface-2)}.leaders .rank{font-size:13px;font-weight:700}.game-extras{justify-content:center;gap:10px;display:flex}.game-extras .btn{min-height:44px;font-size:14px}.wager-line{font-size:14px}.banner.wager{flex-direction:column;gap:10px;display:flex}.wager-buttons{gap:8px;display:flex}.wager-buttons .btn{background:var(--surface);min-height:44px;color:var(--text);flex:1}.chat-log{flex-direction:column;gap:6px;min-height:120px;max-height:45dvh;display:flex;overflow-y:auto}.chat-msg{border-radius:var(--radius);background:var(--surface-2);overflow-wrap:anywhere;align-self:flex-start;max-width:80%;padding:8px 12px;line-height:1.35}.chat-msg.mine{background:var(--primary-bg);color:var(--primary-text);align-self:flex-end}.chat-form{gap:8px;display:flex}.chat-form .btn-primary{min-height:48px;font-size:16px}
