@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--mndro-bg:#eef4fb;--mndro-surface:#fff;--mndro-surface-raised:#f8fbff;--mndro-text:#0d1b2d;--mndro-muted:#52647b;--mndro-line:#cdd9e8;--mndro-accent:#125ff2;--mndro-accent-strong:#084bd0;--mndro-on-accent:#fff;--mndro-focus:#0057e7;--mndro-danger:#b42318;--mndro-available-bg:#dff7ea;--mndro-available-fg:#14623a;--mndro-testing-bg:#fff0c9;--mndro-testing-fg:#765008;--mndro-developing-bg:#e4ebf4;--mndro-developing-fg:#42536a;--mndro-header-bg:#eef4fbf0;--mndro-shadow:0 18px 48px #14366214;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--mndro-bg:#07111f;--mndro-surface:#0d1a2b;--mndro-surface-raised:#112238;--mndro-text:#f2f7ff;--mndro-muted:#9fb0c8;--mndro-line:#243a56;--mndro-accent:#4e91ff;--mndro-accent-strong:#79adff;--mndro-on-accent:#07111f;--mndro-focus:#7fb3ff;--mndro-danger:#ff9c8f;--mndro-available-bg:#123a2a;--mndro-available-fg:#8ae2b5;--mndro-testing-bg:#3b3015;--mndro-testing-fg:#f3cd75;--mndro-developing-bg:#1b2a3d;--mndro-developing-fg:#b9c8db;--mndro-header-bg:#07111feb;--mndro-shadow:0 20px 60px #00000038;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme]){--mndro-bg:#07111f;--mndro-surface:#0d1a2b;--mndro-surface-raised:#112238;--mndro-text:#f2f7ff;--mndro-muted:#9fb0c8;--mndro-line:#243a56;--mndro-accent:#4e91ff;--mndro-accent-strong:#79adff;--mndro-on-accent:#07111f;--mndro-focus:#7fb3ff;--mndro-danger:#ff9c8f;--mndro-available-bg:#123a2a;--mndro-available-fg:#8ae2b5;--mndro-testing-bg:#3b3015;--mndro-testing-fg:#f3cd75;--mndro-developing-bg:#1b2a3d;--mndro-developing-fg:#b9c8db;--mndro-header-bg:#07111feb;--mndro-shadow:0 20px 60px #00000038;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root{--color-bg-primary:var(--mndro-surface);--color-bg-secondary:var(--mndro-bg);--color-text-primary:var(--mndro-text);--color-text-secondary:var(--mndro-muted);--color-accent:var(--mndro-accent);--color-accent-hover:var(--mndro-accent-strong);--color-border:var(--mndro-line);--font-family-sans:"Inter Variable", "Inter", system-ui, -apple-system, sans-serif;--spacing-1:.25rem;--spacing-2:.5rem;--spacing-3:.75rem;--spacing-4:1rem;--spacing-6:1.5rem;--spacing-8:2rem;--radius-sm:.375rem;--radius-md:.65rem;--radius-lg:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0d1b2d0f;--shadow-md:0 4px 12px -2px #0d1b2d1f;--shadow-lg:var(--mndro-shadow)}@layer mndro-base{body{font-family:var(--font-family-sans);background-color:var(--mndro-bg);color:var(--mndro-text);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}h1,h2,h3,h4,h5,h6{color:inherit;margin-top:0}a{color:var(--mndro-accent-strong);text-decoration:none}a:hover{text-decoration:underline}}.mndro-skip-link{z-index:100;background:var(--mndro-accent);color:var(--mndro-on-accent);border-radius:0 0 .5rem .5rem;padding:.7rem 1rem;font-weight:700;position:fixed;inset:0 auto auto 1rem;transform:translateY(-140%)}.mndro-skip-link:focus{transform:translateY(0)}.mndro-btn{justify-content:center;align-items:center;gap:var(--spacing-2);min-height:2.5rem;padding:var(--spacing-2) var(--spacing-4);background-color:var(--mndro-accent);color:var(--mndro-on-accent);border-radius:var(--radius-md);font-family:var(--font-family-sans);cursor:pointer;border:1px solid #0000;font-size:.875rem;font-weight:700;line-height:1.2;text-decoration:none;transition:background-color .18s,border-color .18s;display:inline-flex}.mndro-btn:hover{background-color:var(--mndro-accent-strong);text-decoration:none}.mndro-btn:disabled{cursor:not-allowed;opacity:.6}.mndro-btn-outline{color:var(--mndro-text);border-color:var(--mndro-line);background-color:#0000}.mndro-btn-outline:hover{background-color:var(--mndro-surface-raised)}.mndro-btn-quiet{color:var(--mndro-muted);background:0 0;border:0;font-weight:500}.mndro-btn-quiet:hover{background:var(--mndro-surface);color:var(--mndro-text)}.mndro-card{background-color:var(--mndro-surface);border:1px solid var(--mndro-line);border-radius:var(--radius-lg);color:var(--mndro-text);padding:var(--spacing-6)}:where(.mndro-btn,.mndro-skip-link,.mndro-appbar a,.mndro-signin a):focus-visible{outline:3px solid var(--mndro-focus);outline-offset:3px}.mndro-appbar{z-index:20;border-bottom:1px solid var(--mndro-line);background:var(--mndro-header-bg);color:var(--mndro-text);padding-top:env(safe-area-inset-top);position:sticky;top:0}.mndro-appbar-inner{min-height:3.5rem;padding-inline:max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right));align-items:center;gap:.75rem;display:flex}.mndro-brand{min-width:0;color:var(--mndro-text);letter-spacing:-.04em;white-space:nowrap;align-items:baseline;gap:.4rem;font-size:1.15rem;font-weight:780;display:inline-flex}.mndro-brand:hover{text-decoration:none}.mndro-brand-product{color:var(--mndro-muted);letter-spacing:-.02em;font-weight:600}.mndro-brand-product:before{content:"·";margin-right:.4rem}.mndro-appbar-actions{align-items:center;gap:.35rem;margin-left:auto;display:flex}.mndro-appbar-actions>*{white-space:nowrap;flex:none}.mndro-who{max-width:14rem;color:var(--mndro-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.8125rem;overflow:hidden}.mndro-signin{min-height:100dvh;padding:1.5rem max(1rem, env(safe-area-inset-left));background:var(--mndro-bg);color:var(--mndro-text);place-items:center;display:grid;position:relative}.mndro-signin-panel{border:1px solid var(--mndro-line);border-radius:var(--radius-lg);background:var(--mndro-surface);flex-direction:column;gap:1rem;width:min(100%,24rem);padding:1.75rem;display:flex}.mndro-signin-corner{top:max(.75rem, env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right));position:absolute}.mndro-signin-panel .mndro-brand{color:var(--mndro-text);margin:0;font-size:1rem}.mndro-signin-panel h1{letter-spacing:-.04em;margin:0;font-size:1.5rem;line-height:1.15}.mndro-signin-panel p{color:var(--mndro-muted);margin:0}.mndro-signin-panel .mndro-btn{width:100%;min-height:2.75rem}.mndro-signin-status:empty{display:none}.mndro-signin-status[data-error]{color:var(--mndro-danger)}.mndro-signin-notice{color:var(--mndro-muted);font-size:.8rem;line-height:1.45}.mndro-signin-notice:focus{outline:none}.mndro-signin-notice a{color:var(--mndro-muted);text-underline-offset:.15em;text-decoration:underline}.mndro-signin-privacy{min-height:1.5rem;color:var(--mndro-muted);text-underline-offset:.15em;align-self:center;align-items:center;font-size:.75rem;text-decoration:underline;display:inline-flex}.mndro-signin-back{color:var(--mndro-muted);font:inherit;cursor:pointer;background:0 0;border:0;align-self:center;padding:.25rem .5rem;font-size:.875rem;text-decoration:underline}.mndro-signin-back:focus-visible{outline:3px solid var(--mndro-focus);outline-offset:3px}.mndro-chip{border-radius:var(--radius-full);white-space:nowrap;flex:none;padding:.25rem .55rem;font-size:.7rem;font-weight:750}@media (width<=560px){.mndro-who{display:none}.mndro-appbar-inner{gap:.5rem;min-height:3.25rem}.mndro-appbar-actions{gap:.15rem}.mndro-appbar-actions .mndro-btn{min-height:2.5rem;padding-inline:.55rem;font-size:.8rem}.mndro-brand{font-size:1.05rem}}@media (prefers-reduced-motion:reduce){.mndro-btn,.mndro-card{transition:none}}:root{font-family:var(--font-family-sans);--bg:var(--mndro-bg);--surface:var(--mndro-surface);--surface-strong:color-mix(in srgb, var(--mndro-line) 60%, var(--mndro-surface));--text:var(--mndro-text);--muted:var(--mndro-muted);--border:var(--mndro-line);--accent:var(--mndro-accent);--accent-text:var(--mndro-on-accent);--danger:var(--mndro-danger);--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--gutter:1rem;background:var(--bg);color:var(--text)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);min-width:320px;min-height:100dvh;color:var(--text);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0}button,input,select{font:inherit}button,select,input{border:1px solid var(--border);border-radius:.7rem;min-height:2.75rem}button{background:var(--surface-strong);color:var(--text);cursor:pointer;touch-action:manipulation;padding:.65rem .9rem;transition:border-color .15s,transform 80ms,background .12s}button:hover:not(:disabled){border-color:var(--accent)}button:active:not(:disabled){transform:scale(.97)}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--mndro-focus);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.5}input,select{background:var(--bg);width:100%;color:var(--text);padding:.65rem .75rem;font-size:max(1rem,16px)}label{color:var(--muted);gap:.35rem;font-size:.9rem;display:grid}h1,h2,p{margin-block:0}h1{font-size:clamp(1.45rem,5vw,2rem)}h2{font-size:1rem}small{color:var(--muted)}a{color:var(--mndro-accent-strong)}.primary{background:var(--accent);color:var(--accent-text);border-color:#0000;font-weight:750}.app-shell{width:min(100%,72rem);min-height:100dvh;padding:max(.75rem, var(--safe-top)) max(var(--gutter), var(--safe-right)) max(1rem, var(--safe-bottom)) max(var(--gutter), var(--safe-left));margin:0 auto}.app-shell--chess{width:100%;max-width:100%;padding:0}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;min-height:3.5rem;margin-bottom:1rem;display:flex}button.mndro-brand{background:0 0;border:0;min-height:2.75rem;padding:.25rem 0}.preferences{align-items:center;gap:.4rem;display:flex}.preferences select{width:auto;min-height:2.5rem;padding:.3rem .5rem;font-size:.9rem}.preferences img{flex-shrink:0}.panel{border:1px solid var(--border);background:var(--surface);box-shadow:none;border-radius:1rem;padding:1rem}.home-grid,.home-grid .panel{gap:.85rem;display:grid}.home-grid .primary{min-height:3.1rem;font-size:1.05rem}.auth-card{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.auth-card button{justify-content:center;align-items:center;display:inline-flex}.code-input{text-transform:uppercase;letter-spacing:.2em;font-weight:800}.recent-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.recent-list button{text-align:left;justify-content:space-between;width:100%;display:flex}.recent-list span{color:var(--muted)}.loading-panel{text-align:center;width:min(28rem,100%);margin:15dvh auto}.game-layout{gap:.75rem;display:grid}.session-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.session-header>div:first-child{gap:.15rem;display:grid}.eyebrow{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:800}.session-code{letter-spacing:.12em;font-size:clamp(1.5rem,7vw,2rem);line-height:1.1}.session-actions{align-items:center;gap:.4rem;display:flex}.session-actions button{min-height:2.5rem;padding:.45rem .75rem;font-size:.9rem}.share-link{color:var(--muted);flex-basis:100%;gap:.5rem;display:grid}.share-link-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.share-link input{width:100%;font-size:16px}.share-status{color:var(--accent);font-size:.8rem;display:block}.copy-link-btn{white-space:nowrap;align-items:center;gap:.4rem;display:inline-flex}.share-btn{align-items:center;gap:.5rem;display:inline-flex}.winner-banner{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--border));background:linear-gradient(110deg, color-mix(in srgb, var(--accent) 10%, var(--surface)) 30%, color-mix(in srgb, #e8c97a 28%, var(--surface)) 50%, color-mix(in srgb, var(--accent) 10%, var(--surface)) 70%);background-size:250% 100%;border-radius:1rem;padding:.8rem 1rem;animation:3.5s linear infinite banner-shimmer}@keyframes banner-shimmer{0%{background-position:100% 0}to{background-position:-150% 0}}.players-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;display:grid}.player-card{border:1px solid var(--border);background:var(--surface);border-top:3px solid;border-radius:1rem;grid-template-columns:minmax(0,1fr);align-content:space-between;gap:.5rem;min-width:0;min-height:7.25rem;padding:.8rem;transition:filter .6s,opacity .6s;display:grid;position:relative}.player-card-head{align-items:center;gap:.4rem;min-width:0;display:flex}.player-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.player-card h2{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.player-card-head small{flex-shrink:0}.player-card.winner{box-shadow:0 0 0 2px var(--accent);animation:1.8s ease-in-out infinite alternate winner-glow}.player-crown{margin-left:auto;font-size:1.1rem;animation:1.6s ease-in-out infinite crown-bob}.player-card .loser-badge{margin-left:auto;font-size:.85rem}.player-card.loser{animation:.9s ease-out .3s both loser-slump}.player-card.loser.scorable{animation:none}.player-card.selected{outline:2px solid var(--accent);outline-offset:1px}.total{font-variant-numeric:tabular-nums;grid-column:1;justify-self:end;font-size:clamp(2.2rem,11vw,3.4rem);line-height:.95}.recent-scores{grid-column:1/-1;gap:.3rem;display:flex;overflow:hidden}.recent-scores span{background:var(--surface-strong);color:var(--muted);border-radius:.4rem;padding:.2rem .4rem;font-size:.75rem}@keyframes winner-glow{0%{box-shadow:0 0 0 2px var(--accent), 0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent)}to{box-shadow:0 0 0 2px var(--accent), 0 0 22px 2px color-mix(in srgb, var(--accent) 45%, transparent)}}@keyframes crown-bob{0%,to{transform:translateY(0)rotate(-6deg)}50%{transform:translateY(-3px)rotate(6deg)}}@keyframes loser-slump{0%{filter:none;opacity:1;transform:translateY(0)rotate(0)}30%{transform:translateY(4px)rotate(-1.2deg)}55%{transform:translateY(2px)rotate(1deg)}to{filter:grayscale(.65)brightness(.9);opacity:.8;transform:translateY(3px)rotate(0)}}.controls{gap:.85rem;display:grid}.controls>.primary,.controls>button{min-height:3.1rem}.score-form{gap:.65rem;display:grid}.score-target{color:var(--muted);margin:0;font-size:.9rem}.score-target strong{color:var(--text)}.score-entry-row,.reopen-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.6rem;display:grid}.score-form input{min-height:3.25rem;font-size:1.35rem;font-weight:750}.score-entry-row .primary{min-width:7.5rem;min-height:3.25rem;font-size:1.05rem}.ledger{min-height:10rem}.ledger h2{margin-bottom:.35rem}.ledger-hint{color:var(--muted);margin-bottom:.55rem;font-size:.78rem;line-height:1.35}.ledger ol{-webkit-overflow-scrolling:touch;max-height:40dvh;margin:0;padding:0;list-style:none;overflow:auto}.ledger li{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;min-height:2.9rem;padding-inline:.5rem;display:flex}.ledger li.ledger-latest{background:color-mix(in srgb, var(--accent) 8%, transparent)}.ledger li>span{align-items:center;gap:.4rem;min-width:0;display:flex}.ledger button{min-height:2.3rem;padding:.3rem .7rem;font-size:.82rem}.ledger-locked{white-space:nowrap;opacity:.8;font-size:.75rem}.modal-card{z-index:2;inset:auto max(.75rem, var(--safe-right)) max(.75rem, var(--safe-bottom)) max(.75rem, var(--safe-left));max-height:calc(100dvh - 2rem - var(--safe-top) - var(--safe-bottom));gap:.75rem;animation:.22s ease-out sheet-up;display:grid;position:fixed;overflow:auto;box-shadow:0 20px 80px #00000073}.modal-card>div{flex-wrap:wrap;gap:.5rem;display:flex}.modal-card>div button{flex:1;min-height:3rem}@keyframes sheet-up{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:none}}.toast{z-index:3;left:50%;bottom:max(1rem, calc(var(--safe-bottom) + .5rem));border:1px solid var(--danger);background:var(--surface);width:min(100% - 2rem,32rem);color:var(--danger);border-radius:.8rem;padding:.8rem 1rem;position:fixed;translate:-50%}.home-menu{min-height:calc(100dvh - max(.75rem, var(--safe-top)) - max(1rem, var(--safe-bottom)));flex-direction:column;display:flex}.home-menu .topbar{margin-bottom:0}.home-hero{text-align:center;margin-top:auto;padding:1.5rem .5rem 1.1rem}.home-hero-title{letter-spacing:-.03em;font-size:clamp(1.6rem,7vw,2.4rem);font-weight:850}.home-welcome{color:var(--muted);margin-top:.4rem;font-size:.95rem}.home-auth{flex-direction:column;margin-top:auto;padding:1.25rem .5rem .25rem}.home-auth button{width:min(100%,22rem)}.home-privacy{color:var(--muted);font-size:.75rem}.home-privacy-short{text-align:left;margin:0;font-size:.8rem;line-height:1.4}.home-privacy-short:focus{outline:none}.lobby-privacy{color:var(--muted);grid-column:1/-1}.home-privacy-short a{color:inherit;text-decoration:underline}.home-footer{text-align:center;color:var(--muted);margin-top:1rem;padding:.5rem;font-size:.8rem}.home-footer p{margin:0}.game-cards{align-content:start;gap:.7rem;width:100%;max-width:30rem;margin:0 auto;display:grid}.game-card{border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;border-radius:1rem;align-items:center;gap:.85rem;width:100%;min-height:4.75rem;padding:.8rem .9rem .8rem .8rem;transition:border-color .18s,box-shadow .18s,transform .12s;display:flex;box-shadow:0 2px 12px #0000001f}.game-card:hover:not(:disabled){border-color:var(--accent);transform:translateY(-2px);box-shadow:0 6px 28px #00000040}.game-card--chess:hover:not(:disabled){border-color:#e8c97a}.game-card-icon{background:color-mix(in srgb, var(--accent) 12%, transparent);text-align:center;border-radius:.75rem;flex-shrink:0;place-items:center;width:2.75rem;height:2.75rem;font-size:1.75rem;line-height:1;display:grid}.game-card-body{flex:1;gap:.15rem;min-width:0;display:grid}.game-card-title{color:var(--text);margin:0;font-size:1rem;font-weight:750}.game-card-desc{color:var(--muted);margin:0;font-size:.8rem;line-height:1.3}.game-card-stats{color:var(--accent);gap:.4rem;margin-top:.1rem;font-size:.75rem;display:flex}.game-card-arrow{color:var(--muted);flex-shrink:0;transition:transform .15s}.game-card:hover .game-card-arrow{color:var(--accent);transform:translate(3px)}.game-card--chess .game-card-icon{color:#e8c97a;background:#e8c97a24}.quick-add-row{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem;width:100%;display:grid}.quick-add-btn{border:1px solid var(--border);background:var(--surface-strong);min-width:0;min-height:2.75rem;color:var(--accent);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:.6rem;padding:.2rem;font-size:1rem;font-weight:800;transition:background .12s,border-color .12s,transform 80ms}.quick-add-btn:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 15%, var(--surface-strong));border-color:var(--accent)}.quick-add-btn:active:not(:disabled){background:color-mix(in srgb, var(--accent) 28%, var(--surface-strong));transform:scale(.94)}.account-name{flex-wrap:wrap;align-items:center;gap:.4rem .6rem;margin:0;display:flex}.account-name strong{overflow-wrap:anywhere}.account-name button{min-height:2.75rem;padding:.3rem .7rem;font-size:.85rem}.post-game-actions{flex-wrap:wrap;gap:.6rem;display:flex}.post-game-actions button{flex:1;min-width:8rem;min-height:3.1rem}.local-game-card{border-left:4px solid var(--accent);flex-direction:column;grid-column:1/-1;display:flex}@media (width>=44rem){:root{--gutter:1.5rem}.app-shell{padding-top:max(1.5rem, var(--safe-top));padding-bottom:max(1.5rem, var(--safe-bottom))}.home-grid{grid-template-columns:1fr 1fr}.recent-panel,.auth-card{grid-column:1/-1}.players-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.game-layout{grid-template-columns:minmax(0,2fr) minmax(18rem,1fr);align-items:start}.session-header,.winner-banner,.players-grid{grid-column:1/-1}.controls{grid-column:1}.ledger{grid-area:4/2/span 2}.modal-card{width:min(30rem,100% - 2rem);bottom:2rem;left:50%;right:auto;translate:-50%}.game-cards{grid-template-columns:1fr 1fr;max-width:40rem}.home-hero{margin-top:0;padding-top:3rem}.home-auth{margin-top:0}}@media (width<=43.99rem) and (height>=50rem){.player-card{min-height:8.25rem}.home-hero{padding-bottom:1.5rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.chess-theme{--chess-bg:#2c1a0e;--chess-surface:#3d2512;--chess-panel:#4a2e18;--chess-border:#6b4226;--chess-light-sq:#f0d9b5;--chess-dark-sq:#b58863;--chess-text:#f5e6c8;--chess-muted:#a08060;--chess-accent:#e8c97a;--chess-danger:#c0392b;--chess-active-glow:#e8c97a40}.chess-lobby{background:var(--bg);min-height:100dvh;color:var(--text);grid-template-rows:auto 1fr;max-width:640px;margin:0 auto;display:grid}.chess-lobby.chess-theme{background:var(--chess-bg);color:var(--chess-text)}.chess-lobby-header{padding:max(.85rem, var(--safe-top)) max(1rem, var(--safe-right)) .85rem max(1rem, var(--safe-left));border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.chess-theme .chess-lobby-header{border-color:var(--chess-border)}.chess-lobby-title{flex:1;margin:0;font-size:1.1rem;font-weight:700}.chess-lobby-body{padding:1.25rem max(1rem, var(--safe-right)) max(1.5rem, calc(var(--safe-bottom) + 1rem)) max(1rem, var(--safe-left));align-content:start;gap:1.5rem;display:grid}.theme-pills{gap:.35rem;display:flex}.theme-pill{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:.3rem .75rem;font-size:.8rem;transition:background .15s,color .15s,border-color .15s}.theme-pill.active,.theme-pill:hover{background:var(--accent);border-color:var(--accent);color:#000}.chess-theme .theme-pill{border-color:var(--chess-border);color:var(--chess-muted)}.chess-theme .theme-pill.active{background:var(--chess-accent);border-color:var(--chess-accent);color:#000}.lobby-section{gap:.85rem;display:grid}.lobby-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0;font-size:.85rem;font-weight:700}.chess-theme .lobby-section-title{color:var(--chess-muted)}.lobby-label{color:var(--muted);font-size:.85rem}.chess-theme .lobby-label{color:var(--chess-muted)}.players-config{grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;display:grid}.player-config-card{justify-items:center;gap:.6rem;display:grid;position:relative}.player-config-color{border-radius:2px;width:100%;height:4px}.avatar-btn{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.avatar-emoji{background:var(--surface);border:3px solid;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.6rem;transition:transform .15s;display:flex}.avatar-emoji:hover{transform:scale(1.08)}.avatar-empty{opacity:.5}.avatar-picker-pop{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:1rem;grid-template-columns:repeat(5,1fr);gap:.4rem;margin-top:.5rem;padding:.75rem;display:grid;position:absolute;top:100%;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #0000004d}.chess-theme .avatar-picker-pop{background:var(--chess-panel);border-color:var(--chess-border)}.avatar-pick-btn{background:var(--surface-strong,#ffffff0f);cursor:pointer;border:2px solid #0000;border-radius:.5rem;width:38px;height:38px;font-size:1.2rem;transition:border-color .12s,transform .12s}.avatar-pick-btn:hover{transform:scale(1.1)}.avatar-pick-btn.selected{border-color:var(--accent)}.chess-theme .avatar-pick-btn.selected{border-color:var(--chess-accent)}.player-name-input{text-align:center;border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:.6rem;padding:.45rem .6rem;font-size:.95rem;font-weight:600}.chess-theme .player-name-input{background:var(--chess-surface);border-color:var(--chess-border);color:var(--chess-text)}.swap-btn{border:1px solid var(--border);cursor:pointer;width:40px;height:40px;color:var(--muted);background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.swap-btn:hover{background:var(--surface);color:var(--text)}.chess-theme .swap-btn{border-color:var(--chess-border);color:var(--chess-muted)}.chess-theme .swap-btn:hover{background:var(--chess-surface);color:var(--chess-text)}.time-presets{flex-wrap:wrap;gap:.4rem;display:flex}.preset-btn{border:1px solid var(--border);background:var(--surface);min-height:2.75rem;color:var(--text);cursor:pointer;border-radius:.6rem;padding:.4rem .9rem;font-size:.85rem;font-weight:600;transition:background .15s,border-color .15s,color .15s}.preset-btn:hover{border-color:var(--accent)}.preset-btn.active{background:var(--accent);border-color:var(--accent);color:#000}.chess-theme .preset-btn{background:var(--chess-surface);border-color:var(--chess-border);color:var(--chess-text)}.chess-theme .preset-btn:hover{border-color:var(--chess-accent)}.chess-theme .preset-btn.active{background:var(--chess-accent);border-color:var(--chess-accent);color:#000}.increment-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.increment-pills{gap:.35rem;display:flex}.custom-time-row{padding:.5rem 0}.time-summary{color:var(--accent);margin:0;font-size:1rem;font-weight:700}.chess-theme .time-summary{color:var(--chess-accent)}.start-chess-btn{border-radius:.85rem;width:100%;min-height:3.25rem;padding:.9rem 1.5rem;font-size:1.05rem}.chess-game{touch-action:none;background:#111;grid-template-rows:1fr auto 1fr;display:grid;position:fixed;inset:0;overflow:hidden}.chess-theme.chess-game{background:var(--chess-bg)}.clock-face{all:unset;cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.5rem;transition:background .18s;display:flex;position:relative;overflow:hidden}.clock-face--top{padding-top:max(1.5rem, calc(var(--safe-top) + .75rem));border-bottom:2px solid #ffffff14}.clock-face--bottom{padding-bottom:max(1.5rem, calc(var(--safe-bottom) + .75rem));border-top:2px solid #ffffff14}.chess-game:not(.chess-theme) .clock-face--active{background:#ffffff0a}.chess-game:not(.chess-theme) .clock-face--inactive{opacity:.65;background:#00000059}.chess-theme .clock-face--active{background:color-mix(in srgb, var(--chess-light-sq) 12%, var(--chess-bg))}.chess-theme .clock-face--inactive{background:color-mix(in srgb, var(--chess-dark-sq) 8%, var(--chess-bg));opacity:.65}.clock-face--flagged{opacity:1!important;background:#c0392b2e!important}.clock-face--paused{opacity:.8}.clock-face--low{background:#e67e221a!important}.clock-face--critical{animation:.6s infinite alternate clock-pulse}@keyframes clock-pulse{0%{background:#c0392b1a}to{background:#c0392b47}}.clock-time{font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:#fff;font-size:clamp(3.5rem,min(22vw,11dvh),8rem);font-weight:800;line-height:1;transition:color .2s}.chess-theme .clock-time{color:var(--chess-text)}.clock-face--inactive .clock-time{color:#ffffff59}.chess-theme .clock-face--inactive .clock-time{color:#f5e6c840}.clock-face--low .clock-time{color:#e67e22}.clock-face--critical .clock-time,.clock-face--flagged .clock-time{color:#e74c3c}.clock-time.rotated,.clock-face--top .clock-time{transform:rotate(180deg)}.clock-avatar-wrap{align-items:center;gap:.6rem;display:flex}.clock-avatar-wrap.rotated,.clock-face--top .clock-avatar-wrap{transform:rotate(180deg)}.clock-avatar-img{border-radius:50%;width:32px;height:32px}.clock-avatar-emoji{font-size:1.5rem}.clock-player-name{font-size:.9rem;font-weight:700}.player-color-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.tap-hint{color:#ffffff73;letter-spacing:.04em;margin:0;font-size:.75rem;animation:.4s fade-in-hint}.tap-hint.rotated,.clock-face--top .tap-hint{transform:rotate(180deg)}@keyframes fade-in-hint{0%{opacity:0;transform:translateY(4px)rotate(180deg)}to{opacity:1;transform:translateY(0)rotate(180deg)}}.clock-face--bottom .tap-hint{animation:.4s fade-in-hint-bottom}@keyframes fade-in-hint-bottom{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.chess-center-bar{padding:.6rem max(1.25rem, var(--safe-right)) .6rem max(1.25rem, var(--safe-left));background:#0000008c;border-top:1px solid #ffffff0f;border-bottom:1px solid #ffffff0f;justify-content:center;align-items:center;gap:1.25rem;display:flex}.chess-theme .chess-center-bar{background:var(--chess-surface);border-color:var(--chess-border)}.moves-counter{color:#ffffff73;font-variant-numeric:tabular-nums;text-align:center;min-width:5rem;font-size:.8rem}.chess-theme .moves-counter{color:var(--chess-muted)}.pause-btn{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:background .15s;display:flex}.pause-btn:hover{background:#ffffff29}.chess-theme .pause-btn{border-color:var(--chess-border);background:var(--chess-panel);color:var(--chess-text)}.chess-theme .pause-btn:hover{background:var(--chess-border)}.home-btn{color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:color .15s;display:flex}.home-btn:hover{color:#fff}.chess-theme .home-btn{color:var(--chess-muted)}.chess-theme .home-btn:hover{color:var(--chess-text)}.flag-overlay{z-index:10;cursor:pointer;position:fixed;inset:0}.chess-game .chess-end-screen{padding:max(2rem, calc(var(--safe-top) + 1rem)) max(1.25rem, var(--safe-right)) max(2rem, calc(var(--safe-bottom) + 1rem)) max(1.25rem, var(--safe-left));text-align:center;background:radial-gradient(#1e140af2 0%,#0a0804fa 100%);flex-direction:column;justify-content:center;align-items:center;gap:1rem;animation:.4s end-fade-in;display:flex;position:fixed;inset:0;overflow-y:auto}@keyframes end-fade-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.chess-end-crown{font-size:3rem;animation:.5s cubic-bezier(.36,.07,.19,.97) .2s both crown-bounce}@keyframes crown-bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-14px)}70%{transform:translateY(-6px)}}.chess-end-title{color:#fff;margin:0;font-size:2rem;font-weight:800}.chess-end-subtitle{color:#fff9;margin:0;font-size:1rem}.chess-end-winner{color:#fff;margin:0;font-size:1.15rem;font-weight:700}.chess-end-times{background:#ffffff0a;border:1px solid #ffffff14;border-radius:.85rem;gap:.4rem;width:100%;max-width:22rem;padding:.85rem 1rem;display:grid}.chess-end-time-row{align-items:center;gap:.6rem;font-size:.9rem;display:flex}.chess-end-player-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.chess-end-time-val{font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.chess-end-moves{color:#fff6;margin:0;font-size:.85rem}.chess-end-actions{gap:.75rem;width:100%;max-width:22rem;margin-top:.5rem;display:flex}.chess-end-actions button{flex:1;min-height:3.1rem}.ghost-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;transition:color .15s;display:inline-flex}.ghost-btn:hover{color:var(--text)}.chess-theme .ghost-btn{color:var(--chess-muted)}.chess-theme .ghost-btn:hover{color:var(--chess-text)}.back-btn{border-radius:50%;width:44px;height:44px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.flag-icon{vertical-align:middle;margin-left:.5rem;font-size:.7em;display:inline-block}@media (width<=43.99rem){.players-config{gap:.6rem}.player-config-card:first-child .avatar-picker-pop{left:0;transform:none}.player-config-card:last-child .avatar-picker-pop{left:auto;right:0;transform:none}.avatar-picker-pop{max-width:calc(100vw - 2rem)}.avatar-pick-btn{width:44px;height:44px}}.confetti{z-index:30;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-piece{width:var(--size);height:calc(var(--size) * .6);opacity:0;will-change:transform, opacity;border-radius:1px;animation-name:confetti-fall;animation-timing-function:cubic-bezier(.25,.46,.45,.94);animation-iteration-count:2;animation-fill-mode:both;position:absolute;top:-4vh}.confetti-piece--strip{width:calc(var(--size) * .4);height:calc(var(--size) * 1.6)}.confetti-piece--circle{height:var(--size);border-radius:50%}@keyframes confetti-fall{0%{opacity:1;transform:translate(0,0)rotate3d(1,.4,.2,0)}25%{transform:translate3d(calc(var(--drift) * .5), 28vh, 0) rotate3d(1, .4, .2, calc(var(--spin) * .3))}85%{opacity:1}to{opacity:0;transform:translate3d(var(--drift), 108vh, 0) rotate3d(1, .4, .2, var(--spin))}}.celebration{z-index:20;padding:max(1rem, var(--safe-top,0px)) max(1rem, var(--safe-right,0px)) max(1rem, var(--safe-bottom,0px)) max(1rem, var(--safe-left,0px));-webkit-backdrop-filter:blur(3px);background:radial-gradient(at 50% 35%,#0a0e14b8 0%,#05070ae6 100%);place-items:center;animation:.35s ease-out both celebration-in;display:grid;position:fixed;inset:0}.celebration-card{z-index:1;border:1px solid color-mix(in srgb, #e8c97a 45%, var(--border));background:var(--surface);width:min(100%,24rem);max-height:100%;color:var(--text);text-align:center;border-radius:1.4rem;justify-items:center;gap:.35rem;padding:1.5rem 1.25rem 1.25rem;animation:.55s cubic-bezier(.2,1.4,.4,1) .1s both celebration-pop;display:grid;position:relative;overflow:auto;box-shadow:0 30px 90px #0000008c,inset 0 0 0 1px #ffffff0a}.celebration-trophy{filter:drop-shadow(0 6px 18px #e8c97a8c);font-size:4.25rem;line-height:1;animation:1.1s cubic-bezier(.36,.07,.19,.97) .45s both trophy-bounce,2.8s ease-in-out 1.6s infinite trophy-sway}.celebration-title{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin-top:.35rem;font-size:.8rem;font-weight:800}.celebration-winner{text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.02em;background:linear-gradient(100deg, var(--winner-color,#e8c97a) 20%, #fff 50%, var(--winner-color,#e8c97a) 80%);color:#0000;background-size:250% 100%;-webkit-background-clip:text;background-clip:text;max-width:100%;font-size:clamp(1.8rem,9vw,2.5rem);font-weight:900;line-height:1.1;animation:2.6s linear .8s infinite winner-shine;overflow:hidden}.celebration-score{font-variant-numeric:tabular-nums;color:#e8c97a;font-size:1.6rem;font-weight:800;animation:.5s ease-out .7s both score-pop}.celebration-losers{border-top:1px solid var(--border);gap:.5rem;width:100%;margin-top:.85rem;padding-top:.85rem;display:grid}.celebration-losers-title{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:700}.celebration-losers ul{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.celebration-loser{background:color-mix(in srgb, var(--surface-strong) 55%, transparent);border-radius:.8rem;align-items:center;gap:.6rem;min-height:2.75rem;padding:.35rem .7rem;animation:.8s cubic-bezier(.3,1.4,.5,1) both loser-drop;display:flex}.celebration-loser-name{text-overflow:ellipsis;white-space:nowrap;text-align:left;filter:saturate(.55);flex:1;min-width:0;font-weight:700;overflow:hidden}.celebration-loser-score{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:700}.celebration-continue{width:100%;min-height:3.1rem;margin-top:1rem;font-size:1.05rem}@keyframes celebration-in{0%{opacity:0}to{opacity:1}}@keyframes celebration-pop{0%{opacity:0;transform:scale(.7)translateY(2rem)}to{opacity:1;transform:none}}@keyframes trophy-bounce{0%{opacity:0;transform:scale(.2)rotate(-25deg)}45%{opacity:1;transform:scale(1.25)rotate(8deg)}65%{transform:scale(.92)rotate(-4deg)}to{transform:scale(1)rotate(0)}}@keyframes trophy-sway{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)translateY(-3px)}}@keyframes winner-shine{0%{background-position:100% 0}to{background-position:-150% 0}}@keyframes score-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:none}}@keyframes loser-drop{0%{opacity:0;transform:translateY(-1.25rem)rotate(-3deg)}60%{opacity:1;transform:translateY(.2rem)rotate(1.5deg)}80%{transform:translate(-3px)}90%{transform:translate(3px)}to{opacity:1;transform:none}}.loser-badge{flex-shrink:0;justify-items:center;width:2em;height:2.2em;font-size:1rem;line-height:1;animation:.6s ease-out both loser-badge-in;display:inline-grid;position:relative}.loser-cloud{font-size:.95em;animation:2.4s ease-in-out infinite cloud-drift;position:absolute;top:0}.loser-face{font-size:.95em;animation:1.6s ease-in-out infinite face-sob;position:absolute;bottom:0}.loser-rain{width:1em;height:.7em;position:absolute;top:.75em;left:50%;overflow:hidden;translate:-50%}.loser-rain i{background:linear-gradient(#0000,#7ab8e8);border-radius:1px;width:1.5px;height:.3em;animation:.8s linear infinite rain-drop;position:absolute;top:-.3em}.loser-rain i:first-child{animation-delay:0s;left:15%}.loser-rain i:nth-child(2){animation-delay:.27s;left:50%}.loser-rain i:nth-child(3){animation-delay:.53s;left:82%}@keyframes loser-badge-in{0%{opacity:0;transform:translateY(-.5em)scale(.6)}to{opacity:1;transform:none}}@keyframes cloud-drift{0%,to{transform:translate(-1px)}50%{transform:translate(1.5px)}}@keyframes face-sob{0%,to{transform:translateY(0)rotate(0)}25%{transform:translateY(1px)rotate(-6deg)}75%{transform:translateY(1px)rotate(6deg)}}@keyframes rain-drop{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(.9em)}}.chess-end-loser{align-items:center;gap:.5rem;display:inline-flex}@media (prefers-reduced-motion:reduce){.confetti{display:none}}
