:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--azure-50:#eef6ff;--azure-100:#d9ecff;--azure-200:#b7dbff;--azure-300:#85c2ff;--azure-400:#4aa2fb;--azure-500:#2081ef;--azure-600:#1163cd;--azure-700:#114ea6;--azure-800:#144484;--azure-900:#153a6d;--ember-50:#fff5ed;--ember-100:#ffe8d4;--ember-200:#ffcda8;--ember-300:#ffa970;--ember-400:#ff7a36;--ember-500:#fd5710;--ember-600:#ee3c06;--ember-700:#c52a07;--ember-800:#9c230e;--ember-900:#7e200f;--verdant-400:#34c98a;--verdant-500:#16a66c;--verdant-600:#0d8557;--violet-400:#a78bfa;--violet-500:#8b5cf6;--violet-600:#7444e8;--slate-50:#f7f8fb;--slate-100:#eef0f6;--slate-200:#dfe3ec;--slate-300:#c6ccdb;--slate-400:#98a1b8;--slate-500:#6c7691;--slate-600:#505874;--slate-700:#3c4360;--slate-800:#262c45;--slate-900:#171b2e;--slate-950:#0d101d;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-full:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--font-sans:"Inter var", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans Armenian", "Noto Sans", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Code", Menlo, Consolas, monospace;--text-xs:clamp(.69rem, .66rem + .15vw, .75rem);--text-sm:clamp(.8rem, .77rem + .17vw, .875rem);--text-base:clamp(.94rem, .9rem + .2vw, 1rem);--text-lg:clamp(1.05rem, 1rem + .28vw, 1.19rem);--text-xl:clamp(1.22rem, 1.13rem + .44vw, 1.5rem);--text-2xl:clamp(1.5rem, 1.33rem + .83vw, 2rem);--text-3xl:clamp(1.9rem, 1.6rem + 1.5vw, 2.75rem);--tracking-tight:-.02em;--tracking-wide:.06em;--tracking-wider:.14em;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.12s;--dur-base:.22s;--dur-slow:.42s;--board-gap-ratio:.2}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root,:root[data-theme=light]{--bg:var(--slate-50);--bg-elevated:#fff;--bg-sunken:var(--slate-100);--bg-scrim:#171b2e6b;--bg-glass:#ffffffc7;--surface:#fff;--surface-2:var(--slate-50);--surface-3:var(--slate-100);--surface-hover:var(--slate-100);--border:var(--slate-200);--border-strong:var(--slate-300);--border-subtle:#171b2e12;--text:var(--slate-900);--text-muted:var(--slate-500);--text-faint:var(--slate-400);--text-inverse:#fff;--accent:var(--azure-500);--accent-hover:var(--azure-600);--accent-soft:var(--azure-50);--accent-text:#fff;--p0:var(--azure-500);--p0-deep:var(--azure-700);--p0-soft:var(--azure-100);--p1:var(--ember-500);--p1-deep:var(--ember-700);--p1-soft:var(--ember-100);--p2:var(--verdant-500);--p2-deep:var(--verdant-600);--p2-soft:#d7f5e8;--p3:var(--violet-500);--p3-deep:var(--violet-600);--p3-soft:#ece4ff;--board-bg:#fff;--board-cell:#eef1f8;--board-cell-alt:#e8ecf5;--board-line:#171b2e0f;--board-slot:#2081ef1f;--board-slot-hover:#2081ef47;--wall-color:var(--slate-800);--wall-shadow:#171b2e4d;--success:var(--verdant-500);--warning:#d97706;--danger:#dc2626;--shadow-xs:0 1px 2px #171b2e0f;--shadow-sm:0 1px 3px #171b2e14, 0 1px 2px #171b2e0a;--shadow-md:0 4px 12px #171b2e14, 0 2px 4px #171b2e0a;--shadow-lg:0 12px 32px #171b2e1f, 0 4px 8px #171b2e0d;--shadow-xl:0 24px 64px #171b2e29, 0 8px 16px #171b2e0f;--shadow-glow:0 0 0 4px #2081ef29}:root[data-theme=dark]{--bg:var(--slate-950);--bg-elevated:var(--slate-900);--bg-sunken:#070912;--bg-scrim:#05070ead;--bg-glass:#171b2eb8;--surface:var(--slate-900);--surface-2:#1b2035;--surface-3:var(--slate-800);--surface-hover:#222842;--border:#ffffff17;--border-strong:#ffffff2b;--border-subtle:#ffffff0d;--text:#eef1f8;--text-muted:#9aa3bd;--text-faint:#6b7490;--text-inverse:var(--slate-950);--accent:var(--azure-400);--accent-hover:var(--azure-300);--accent-soft:#4aa2fb24;--accent-text:#06101f;--p0:var(--azure-400);--p0-deep:var(--azure-600);--p0-soft:#4aa2fb33;--p1:var(--ember-400);--p1-deep:var(--ember-600);--p1-soft:#ff7a3633;--p2:var(--verdant-400);--p2-deep:var(--verdant-600);--p2-soft:#34c98a33;--p3:var(--violet-400);--p3-deep:var(--violet-600);--p3-soft:#a78bfa33;--board-bg:#141828;--board-cell:#1a1f33;--board-cell-alt:#171c2e;--board-line:#ffffff12;--board-slot:#4aa2fb29;--board-slot-hover:#4aa2fb59;--wall-color:#e5e9f5;--wall-shadow:#0009;--success:var(--verdant-400);--warning:#f5a524;--danger:#f26d6d;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 3px #00000080, 0 1px 2px #0000004d;--shadow-md:0 4px 14px #00000080, 0 2px 4px #0000004d;--shadow-lg:0 16px 40px #0009, 0 4px 10px #00000059;--shadow-xl:0 28px 72px #000000b3, 0 8px 20px #0006;--shadow-glow:0 0 0 4px #4aa2fb3d}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:var(--slate-950);--bg-elevated:var(--slate-900);--bg-sunken:#070912;--bg-scrim:#05070ead;--bg-glass:#171b2eb8;--surface:var(--slate-900);--surface-2:#1b2035;--surface-3:var(--slate-800);--surface-hover:#222842;--border:#ffffff17;--border-strong:#ffffff2b;--border-subtle:#ffffff0d;--text:#eef1f8;--text-muted:#9aa3bd;--text-faint:#6b7490;--text-inverse:var(--slate-950);--accent:var(--azure-400);--accent-hover:var(--azure-300);--accent-soft:#4aa2fb24;--accent-text:#06101f;--p0:var(--azure-400);--p0-deep:var(--azure-600);--p0-soft:#4aa2fb33;--p1:var(--ember-400);--p1-deep:var(--ember-600);--p1-soft:#ff7a3633;--p2:var(--verdant-400);--p2-deep:var(--verdant-600);--p2-soft:#34c98a33;--p3:var(--violet-400);--p3-deep:var(--violet-600);--p3-soft:#a78bfa33;--board-bg:#141828;--board-cell:#1a1f33;--board-cell-alt:#171c2e;--board-line:#ffffff12;--board-slot:#4aa2fb29;--board-slot-hover:#4aa2fb59;--wall-color:#e5e9f5;--wall-shadow:#0009;--success:var(--verdant-400);--warning:#f5a524;--danger:#f26d6d;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 3px #00000080, 0 1px 2px #0000004d;--shadow-md:0 4px 14px #00000080, 0 2px 4px #0000004d;--shadow-lg:0 16px 40px #0009, 0 4px 10px #00000059;--shadow-xl:0 28px 72px #000000b3, 0 8px 20px #0006;--shadow-glow:0 0 0 4px #4aa2fb3d}}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{min-height:100dvh;font-family:var(--font-sans);font-size:var(--text-base);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overscroll-behavior-y:none;margin:0;line-height:1.55}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(60rem 40rem at 12% -10%, color-mix(in oklab, var(--p0) 14%, transparent), transparent 65%), radial-gradient(50rem 36rem at 105% 8%, color-mix(in oklab, var(--p1) 11%, transparent), transparent 62%), var(--bg);position:fixed;inset:0}img,picture,svg,video{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{letter-spacing:var(--tracking-tight);text-wrap:balance;font-weight:700;line-height:1.2}p{text-wrap:pretty}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}::selection{background:color-mix(in oklab, var(--accent) 30%, transparent)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full);background-clip:content-box;border:3px solid #0000}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stack{gap:var(--space-4);flex-direction:column;display:flex}.stack-sm{gap:var(--space-2)}.stack-lg{gap:var(--space-6)}.row{align-items:center;gap:var(--space-3);display:flex}.row-between{justify-content:space-between}.row-center{justify-content:center}.row-wrap{flex-wrap:wrap}.grow{flex:auto;min-width:0}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:var(--text-sm)}.tiny{font-size:var(--text-xs)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.nums{font-variant-numeric:tabular-nums}.center{text-align:center}[hidden]{display:none!important}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.uppercase{text-transform:uppercase;letter-spacing:var(--tracking-wider);font-size:var(--text-xs);color:var(--text-faint);font-weight:700}#root{flex-direction:column;min-height:100dvh;display:flex}.app{flex-direction:column;flex:1;min-height:100dvh;display:flex}.app-main{width:100%;max-width:1180px;padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-4) calc(var(--space-6) + 56px + env(safe-area-inset-bottom));gap:var(--space-5);flex-direction:column;flex:1;margin-inline:auto;display:flex}.app-main.is-narrow{max-width:620px}.app-main.is-game{max-width:1280px;padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}@media (max-width:640px){.app-main{padding-inline:var(--space-3);gap:var(--space-4)}}.btn{--btn-bg:var(--surface);--btn-fg:var(--text);--btn-border:var(--border);justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-fg);font-size:var(--text-sm);letter-spacing:-.005em;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);box-shadow:var(--shadow-xs);-webkit-user-select:none;user-select:none;font-weight:600;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn:active:not(:disabled){box-shadow:none;transform:translateY(0)scale(.985)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{--btn-bg:linear-gradient(135deg, color-mix(in oklab, var(--accent) 92%, white 8%), var(--accent));--btn-fg:var(--accent-text);--btn-border:transparent;box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff38}.btn-primary:hover:not(:disabled){--btn-bg:linear-gradient(135deg, var(--accent), var(--accent-hover));box-shadow:var(--shadow-md), inset 0 1px 0 #ffffff38}.btn-ghost{--btn-bg:transparent;--btn-border:transparent;box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);box-shadow:none}.btn-danger{--btn-fg:var(--danger);--btn-border:color-mix(in oklab, var(--danger) 30%, transparent);--btn-bg:color-mix(in oklab, var(--danger) 8%, transparent)}.btn-danger:hover:not(:disabled){background:color-mix(in oklab, var(--danger) 16%, transparent)}.btn-lg{min-height:52px;font-size:var(--text-base);padding:0 var(--space-5);border-radius:var(--radius-lg)}.btn-sm{min-height:34px;font-size:var(--text-xs);padding:0 var(--space-3);border-radius:var(--radius-sm)}.btn-icon{border-radius:var(--radius-md);width:44px;min-height:44px;padding:0}.btn-icon.btn-sm{width:34px;min-height:34px}.btn-block{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm)}.card-tight{padding:var(--space-4)}.card-flush{padding:0;overflow:hidden}.tile{align-items:center;gap:var(--space-4);text-align:start;width:100%;padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);color:inherit;display:flex;position:relative;overflow:hidden}.tile:after{content:"";border-radius:inherit;background:linear-gradient(135deg, color-mix(in oklab, var(--tile-tint,var(--accent)) 10%, transparent), transparent 58%);opacity:0;transition:opacity var(--dur-base) var(--ease-out);pointer-events:none;position:absolute;inset:0}.tile:hover{box-shadow:var(--shadow-lg);border-color:color-mix(in oklab, var(--tile-tint,var(--accent)) 35%, var(--border));transform:translateY(-2px)}.tile:hover:after{opacity:1}.tile:active{transform:translateY(0)scale(.99)}.tile-icon{border-radius:var(--radius-md);background:color-mix(in oklab, var(--tile-tint,var(--accent)) 14%, transparent);width:46px;height:46px;color:var(--tile-tint,var(--accent));flex:none;align-self:flex-start;place-items:center;font-size:22px;display:grid}.tile-body{flex:1;min-width:0}.tile-title{font-weight:700;font-size:var(--text-base);letter-spacing:var(--tracking-tight);display:block}.tile-sub{font-size:var(--text-sm);color:var(--text-muted);margin-top:1px;display:block}.tile-chevron{color:var(--text-faint);transition:transform var(--dur-base) var(--ease-out);flex:none}.tile:hover .tile-chevron{color:var(--tile-tint,var(--accent));transform:translate(3px)}.tile-hero{padding:var(--space-5);background:linear-gradient(135deg, var(--accent) 0%, color-mix(in oklab, var(--accent) 62%, var(--violet-500)) 100%);color:var(--accent-text);box-shadow:var(--shadow-lg);border-color:#0000}.tile-hero .tile-sub{color:color-mix(in oklab, var(--accent-text) 78%, transparent)}.tile-hero .tile-icon{color:var(--accent-text);background:#ffffff2e}.tile-hero .tile-chevron{color:color-mix(in oklab, var(--accent-text) 70%, transparent)}.field{gap:var(--space-1);flex-direction:column;display:flex}.field-label{font-size:var(--text-sm);color:var(--text-muted);font-weight:600}.field-hint{font-size:var(--text-xs);color:var(--text-faint)}.field-error{font-size:var(--text-xs);color:var(--danger);font-weight:600}.input{width:100%;min-height:46px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:var(--text-base);transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out)}.input::placeholder{color:var(--text-faint)}.input:focus{background:var(--surface);border-color:var(--accent);box-shadow:var(--shadow-glow);outline:none}.input-code{font-family:var(--font-mono);font-size:var(--text-xl);letter-spacing:.34em;text-align:center;text-transform:uppercase;padding-inline:var(--space-2)}.segmented{border-radius:var(--radius-md);background:var(--surface-3);border:1px solid var(--border-subtle);gap:2px;padding:3px;display:inline-flex}.segmented-item{justify-content:center;align-items:center;gap:var(--space-2);min-height:38px;padding:0 var(--space-3);border-radius:calc(var(--radius-md) - 3px);font-size:var(--text-sm);color:var(--text-muted);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);white-space:nowrap;font-weight:600;display:inline-flex}.segmented-item[aria-pressed=true],.segmented-item[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs)}.segmented-block{width:100%;display:flex}.segmented-block .segmented-item{flex:1 1 0;min-width:0;overflow:hidden}@media (max-width:400px){.segmented-block .segmented-item{padding:0 var(--space-2);font-size:var(--text-xs);gap:4px}}@media (max-width:340px){.segmented-block .seg-emoji{display:none}}.switch{align-items:center;gap:var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex;position:relative}.switch input{opacity:0;width:0;height:0;position:absolute}.switch-track{border-radius:var(--radius-full);background:var(--surface-3);border:1px solid var(--border);width:46px;height:27px;transition:background-color var(--dur-base) var(--ease-out);flex:none;position:relative}.switch-thumb{border-radius:var(--radius-full);background:var(--surface);width:21px;height:21px;box-shadow:var(--shadow-sm);transition:transform var(--dur-base) var(--ease-spring);position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--accent);border-color:#0000}.switch input:checked+.switch-track .switch-thumb{transform:translate(19px)}.switch input:focus-visible+.switch-track{box-shadow:var(--shadow-glow)}.chip{align-items:center;gap:var(--space-2);padding:3px var(--space-3);border-radius:var(--radius-full);background:var(--surface-3);border:1px solid var(--border-subtle);font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;font-weight:600;display:inline-flex}.chip-accent{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in oklab, var(--accent) 22%, transparent)}.chip-live:before{content:"";background:var(--success);width:7px;height:7px;box-shadow:0 0 0 0 color-mix(in oklab, var(--success) 60%, transparent);animation:pulse-dot 2.2s var(--ease-out) infinite;border-radius:50%}@keyframes pulse-dot{0%{box-shadow:0 0 0 0 color-mix(in oklab, var(--success) 55%, transparent)}70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}.badge-tier{border-radius:var(--radius-full);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;align-items:center;gap:4px;padding:2px 9px;font-weight:700;display:inline-flex}.tier-bronze{color:#8a5326;background:#f3e2d3}.tier-silver{color:#556173;background:#e6eaf0}.tier-gold{color:#916a10;background:#fdf0cd}.tier-platinum{color:#14646d;background:#dff2f4}.tier-diamond{color:#1f4fa3;background:#e0ecff}.tier-master{color:#5b2fb0;background:#ece1ff}.tier-grandmaster{color:#3a1a52;background:linear-gradient(135deg,#ffd27a,#ff8a5b,#d16bff)}:root[data-theme=dark] .tier-bronze{color:#e0b389;background:#8a532647}:root[data-theme=dark] .tier-silver{color:#cfd7e4;background:#55617352}:root[data-theme=dark] .tier-gold{color:#f0cf7c;background:#916a104d}:root[data-theme=dark] .tier-platinum{color:#8fdbe3;background:#14646d52}:root[data-theme=dark] .tier-diamond{color:#a8c8ff;background:#1f4fa352}:root[data-theme=dark] .tier-master{color:#cdb4ff;background:#5b2fb052}.avatar{border-radius:var(--radius-full);background:var(--surface-3);border:1px solid var(--border-subtle);flex:none;place-items:center;width:38px;height:38px;font-size:19px;line-height:1;display:grid}.avatar-sm{width:28px;height:28px;font-size:14px}.avatar-lg{width:64px;height:64px;font-size:32px}.overlay{z-index:90;padding:var(--space-4);background:var(--bg-scrim);-webkit-backdrop-filter:blur(8px)saturate(1.1);animation:fade-in var(--dur-base) var(--ease-out);place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);width:min(480px,100%);max-height:min(86dvh,760px);box-shadow:var(--shadow-xl);padding:var(--space-6);animation:modal-in var(--dur-slow) var(--ease-spring);overflow-y:auto}.modal-wide{width:min(720px,100%)}.modal-title{font-size:var(--text-xl);margin-bottom:var(--space-2)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:none}}.toasts{left:50%;bottom:calc(var(--space-6) + env(safe-area-inset-bottom));z-index:120;gap:var(--space-2);pointer-events:none;width:min(440px, calc(100vw - 2 * var(--space-4)));flex-direction:column;align-items:center;display:flex;position:fixed;transform:translate(-50%)}.toast{pointer-events:auto;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--slate-900);color:#fff;font-size:var(--text-sm);box-shadow:var(--shadow-lg);animation:toast-in var(--dur-base) var(--ease-spring);max-width:100%;font-weight:600;display:flex}:root[data-theme=dark] .toast{background:var(--surface-3);border:1px solid var(--border)}.toast-error{background:var(--danger)}.toast-success{background:var(--verdant-600)}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:none}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-3) 25%, var(--surface-hover) 50%, var(--surface-3) 75%);background-size:200% 100%;animation:1.4s linear infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.topbar{z-index:40;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);padding-top:calc(var(--space-3) + env(safe-area-inset-top));background:var(--bg-glass);-webkit-backdrop-filter:blur(14px)saturate(1.4);border-bottom:1px solid var(--border-subtle);display:flex;position:sticky;top:0}.topbar-inner{align-items:center;gap:var(--space-3);width:100%;max-width:1180px;margin-inline:auto;display:flex}.brand{align-items:center;gap:var(--space-2);font-weight:800;font-size:var(--text-lg);letter-spacing:var(--tracking-tight);color:var(--text);display:inline-flex}.brand:hover{text-decoration:none}.brand-mark{flex:none;width:30px;height:30px}.bottom-nav{z-index:40;background:color-mix(in oklab, var(--bg-glass) 82%, var(--surface));-webkit-backdrop-filter:blur(14px)saturate(1.4);border-top:1px solid var(--border-subtle);padding-bottom:env(safe-area-inset-bottom);display:flex;position:sticky;bottom:0}.bottom-nav-inner{width:100%;max-width:620px;margin-inline:auto;display:flex}.bottom-nav-item{padding:var(--space-2) var(--space-1);min-height:56px;font-size:var(--text-xs);color:var(--text-faint);transition:color var(--dur-fast) var(--ease-out);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-weight:600;display:flex}.bottom-nav-item[aria-current=page]{color:var(--accent)}.bottom-nav-icon{font-size:19px;line-height:1}.table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table th{text-align:start;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-faint);border-bottom:1px solid var(--border);font-weight:700}.table td{padding:var(--space-3);border-bottom:1px solid var(--border-subtle)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr.is-me{background:var(--accent-soft)}@media (max-width:480px){.table-compact th:nth-child(4),.table-compact td:nth-child(4){display:none}.table-compact td,.table-compact th{padding-inline:var(--space-2)}.table-compact .badge-tier{display:none}.label-wide{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.scroll-x{scrollbar-width:none;overflow-x:auto}.scroll-x::-webkit-scrollbar{display:none}.divider{background:var(--border);height:1px;margin:var(--space-4) 0;border:none}.empty-state{align-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-4);text-align:center;color:var(--text-muted);flex-direction:column;display:flex}.empty-state-icon{opacity:.6;font-size:44px}.spinner{border:2px solid color-mix(in oklab, currentColor 25%, transparent);border-top-color:currentColor;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.lang-switch{border-radius:var(--radius-full);background:var(--surface-3);border:1px solid var(--border-subtle);gap:2px;padding:3px;display:inline-flex}.lang-switch button{min-height:30px;padding:0 var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);color:var(--text-muted);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);font-weight:700}.lang-switch button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs)}.board-frame{width:100%;max-width:min(calc(66vh * var(--board-aspect,1)), calc(max(320px, 100dvh - 392px) * var(--board-aspect,1)), 680px);aspect-ratio:var(--board-aspect,1);border-radius:var(--radius-xl);background:var(--board-bg);border:1px solid var(--border);box-shadow:var(--shadow-lg);touch-action:manipulation;-webkit-user-select:none;user-select:none;margin-inline:auto;padding:clamp(8px,1.6cqw,16px);position:relative;container-type:inline-size}.board-frame.is-dragging{touch-action:none}.board-frame.is-locked{cursor:default}.board-frame:before,.board-frame:after{content:"";inset-inline:var(--radius-lg);border-radius:var(--radius-full);opacity:.9;height:3px;position:absolute}.board-frame:before{background:linear-gradient(90deg, transparent, var(--goal-top,var(--p0)) 20%, var(--goal-top,var(--p0)) 80%, transparent);top:3px}.board-frame:after{background:linear-gradient(90deg, transparent, var(--goal-bottom,var(--p1)) 20%, var(--goal-bottom,var(--p1)) 80%, transparent);bottom:3px}.board{border-radius:var(--radius-lg);isolation:isolate;width:100%;height:100%;position:relative;overflow:hidden}.cell{background:var(--board-cell);box-shadow:inset 0 0 0 1px var(--board-line);transition:background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border-radius:clamp(3px,.9cqw,8px);position:absolute}.cell.is-goal-0{background:color-mix(in oklab, var(--p0) 14%, var(--board-cell));box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--p0) 22%, transparent)}.cell.is-goal-1{background:color-mix(in oklab, var(--p1) 14%, var(--board-cell));box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--p1) 22%, transparent)}.cell.is-goal-2{background:color-mix(in oklab, var(--p2) 14%, var(--board-cell));box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--p2) 22%, transparent)}.cell.is-goal-3{background:color-mix(in oklab, var(--p3) 14%, var(--board-cell));box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--p3) 22%, transparent)}.cell.is-finish{background:color-mix(in oklab, var(--success) 16%, var(--board-cell));box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--success) 26%, transparent)}.cell.is-last-move{box-shadow:inset 0 0 0 2px color-mix(in oklab, var(--accent) 55%, transparent)}.cell-coord{font-size:clamp(7px,1.15cqw,11px);font-family:var(--font-mono);color:var(--text-faint);opacity:.55;pointer-events:none;position:absolute;inset-block-start:2px;inset-inline-start:4px}.move-dot{z-index:6;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:clamp(3px,.9cqw,8px);place-items:center;display:grid;position:absolute}.move-dot:before{content:"";background:color-mix(in oklab, var(--seat-color,var(--accent)) 46%, transparent);width:34%;height:34%;box-shadow:0 0 0 0 color-mix(in oklab, var(--seat-color,var(--accent)) 30%, transparent);transition:transform var(--dur-base) var(--ease-spring), background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);animation:dot-appear var(--dur-slow) var(--ease-spring) backwards;border-radius:50%}.move-dot:hover:before,.move-dot:focus-visible:before{background:var(--seat-color,var(--accent));box-shadow:0 0 0 6px color-mix(in oklab, var(--seat-color,var(--accent)) 18%, transparent);transform:scale(1.55)}.move-dot:active:before{transform:scale(1.2)}.move-dot.is-jump:before{border:clamp(2px, .5cqw, 4px) solid color-mix(in oklab, var(--seat-color,var(--accent)) 58%, transparent);background:0 0;width:46%;height:46%}@keyframes dot-appear{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.wall-slot{z-index:5;-webkit-tap-highlight-color:transparent;background:0 0;border:none;place-items:center;padding:0;display:grid;position:absolute}.wall-slot:after{content:"";height:max(100%,24px);position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.wall-slot.is-v:after{width:max(100%,24px);height:auto;inset:0 auto 0 50%;transform:translate(-50%)}.wall-slot:before{content:"";border-radius:var(--radius-full);transition:width var(--dur-base) var(--ease-out), height var(--dur-base) var(--ease-out), background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);background:0 0}.wall-slot.is-h:before{width:26%;height:var(--slot-thickness)}.wall-slot.is-v:before{width:var(--slot-thickness);height:26%}.wall-slot.is-available:before{background:var(--board-slot)}.wall-slot.is-available:hover:before,.wall-slot.is-available:focus-visible:before{background:var(--board-slot-hover);width:100%;box-shadow:0 2px 8px var(--wall-shadow)}.wall-slot.is-v.is-available:hover:before,.wall-slot.is-v.is-available:focus-visible:before{width:var(--slot-thickness);height:100%}.wall-slot.is-available:active:before{background:var(--accent)}.wall-slot.is-blocked{cursor:not-allowed}.wall-slot.is-blocked:before{background:0 0}.wall{z-index:8;border-radius:var(--radius-full);background:linear-gradient(180deg, color-mix(in oklab, var(--wall-color) 88%, white 12%), var(--wall-color));box-shadow:0 2px 6px var(--wall-shadow), inset 0 1px 0 #ffffff38;pointer-events:none;animation:wall-drop var(--dur-slow) var(--ease-spring) backwards;position:absolute}.wall.is-v{background:linear-gradient(90deg, color-mix(in oklab, var(--wall-color) 88%, white 12%), var(--wall-color))}.wall.is-mine{background:linear-gradient(180deg, color-mix(in oklab, var(--p0) 78%, white 22%), var(--p0-deep))}.wall.is-theirs{background:linear-gradient(180deg, color-mix(in oklab, var(--p1) 78%, white 22%), var(--p1-deep))}.wall.is-latest{box-shadow:0 2px 8px var(--wall-shadow), 0 0 0 3px color-mix(in oklab, var(--accent) 30%, transparent), inset 0 1px 0 #ffffff38}.wall.is-preview{opacity:.62;box-shadow:0 0 0 2px color-mix(in oklab, var(--accent) 55%, transparent), 0 4px 12px var(--wall-shadow);z-index:9;animation:none}.wall.is-invalid{opacity:.6;box-shadow:0 0 0 2px color-mix(in oklab, var(--danger) 55%, transparent);background:linear-gradient(180deg, #ff8a8a, var(--danger))!important}@keyframes wall-drop{0%{opacity:0;transform:scale(.8)}60%{opacity:1}to{opacity:1;transform:scale(1)}}.pawn{z-index:10;pointer-events:none;transition:left var(--dur-slow) var(--ease-spring), top var(--dur-slow) var(--ease-spring);border-radius:50%;place-items:center;display:grid;position:absolute}.pawn-body{background:radial-gradient(circle at 32% 28%, color-mix(in oklab, var(--pawn-color) 30%, white 70%) 0%, var(--pawn-color) 45%, var(--pawn-deep) 100%);border-radius:50%;place-items:center;width:74%;height:74%;display:grid;position:relative;box-shadow:0 clamp(2px,.6cqw,5px) clamp(4px,1.2cqw,10px) #00000047,inset 0 -2px 4px #0003}.pawn-body:after{content:"";opacity:.85;background:#ffffffd9;width:30%;height:30%}.pawn.seat-0 .pawn-body:after{border-radius:50%}.pawn.seat-1 .pawn-body:after{clip-path:polygon(50% 0%,100% 100%,0% 100%)}.pawn.seat-2 .pawn-body:after{border-radius:2px}.pawn.seat-3 .pawn-body:after{clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%)}.pawn.is-active .pawn-body{animation:pawn-breathe 2.4s var(--ease-in-out) infinite}@keyframes pawn-breathe{0%,to{box-shadow:0 clamp(2px, .6cqw, 5px) clamp(4px, 1.2cqw, 10px) #00000047, 0 0 0 0 color-mix(in oklab, var(--pawn-color) 42%, transparent), inset 0 -2px 4px #0003;transform:scale(1)}50%{transform:scale(1.05);box-shadow:0 clamp(2px,.6cqw,5px) clamp(4px,1.2cqw,10px) #00000047,0 0 0 clamp(5px,1.4cqw,11px) #0000,inset 0 -2px 4px #0003}}.pawn.is-winner .pawn-body{animation:pawn-win 1s var(--ease-spring) 3}@keyframes pawn-win{0%,to{transform:scale(1)rotate(0)}25%{transform:scale(1.16)rotate(-8deg)}75%{transform:scale(1.16)rotate(8deg)}}.path-node{z-index:4;pointer-events:none;background:color-mix(in oklab, var(--seat-color,var(--accent)) 26%, transparent);animation:path-fade var(--dur-slow) var(--ease-out) backwards;border-radius:50%;position:absolute}@keyframes path-fade{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.seat-bar{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);min-height:44px;transition:border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), background-color var(--dur-base) var(--ease-out);min-width:0;display:flex}.seat-bar.is-turn{border-color:color-mix(in oklab, var(--seat-color) 55%, transparent);box-shadow:0 0 0 3px color-mix(in oklab, var(--seat-color) 14%, transparent);background:color-mix(in oklab, var(--seat-color) 5%, var(--surface))}.seat-bar.is-offline{opacity:.6}.seat-bar.is-compact{padding:4px var(--space-3);gap:var(--space-2);min-height:34px}.seat-bar.is-compact .seat-name{font-size:var(--text-xs)}.seat-dot{background:var(--seat-color);width:12px;height:12px;box-shadow:0 0 0 3px color-mix(in oklab, var(--seat-color) 18%, transparent);border-radius:50%;flex:none}.seat-name{font-weight:700;font-size:var(--text-sm);min-width:0}.seat-meta{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);display:flex}.wall-pips{align-items:center;gap:2px;display:inline-flex}.wall-pip{background:var(--seat-color);opacity:.9;width:3px;height:12px;transition:opacity var(--dur-base) var(--ease-out);border-radius:2px}.wall-pip.is-spent{opacity:.16}.clock{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--text-base);padding:2px var(--space-2);border-radius:var(--radius-sm);background:var(--surface-3);transition:background-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);letter-spacing:-.02em;font-weight:700}.clock.is-running{background:color-mix(in oklab, var(--seat-color) 18%, var(--surface-3));color:var(--text)}.clock.is-low{background:color-mix(in oklab, var(--danger) 20%, transparent);color:var(--danger);animation:1s steps(2,jump-none) infinite clock-warn}@keyframes clock-warn{50%{opacity:.55}}.game-toolbar{justify-content:center;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.wall-tray{align-items:center;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);display:flex}.wall-tray-btn{touch-action:none;border-radius:var(--radius-md);background:var(--surface-3);width:54px;height:44px;transition:background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);place-items:center;display:grid}.wall-tray-btn[aria-pressed=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.wall-tray-btn:active{transform:scale(.95)}.wall-tray-btn:disabled{opacity:.4;cursor:not-allowed}.wall-glyph{background:var(--wall-color);border-radius:var(--radius-full);box-shadow:inset 0 1px #fff3}.wall-glyph.is-h{width:28px;height:7px}.wall-glyph.is-v{width:7px;height:28px}.game-layout{gap:var(--space-4);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (min-width:940px){.game-layout{grid-template-columns:minmax(0,1fr) 300px}.game-side{position:sticky;top:84px}}.game-stage{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.move-log{max-height:230px;font-family:var(--font-mono);font-size:var(--text-xs);grid-template-columns:2.2rem repeat(var(--log-cols,2), minmax(min-content, 1fr));gap:2px var(--space-2);align-content:start;display:grid;overflow:auto}.move-log-num{color:var(--text-faint)}.move-log-move{padding:1px var(--space-2);border-radius:var(--radius-xs);text-align:start;transition:background-color var(--dur-fast) var(--ease-out)}.move-log-move:hover{background:var(--surface-hover)}.move-log-move.has-seat{border-inline-start:3px solid var(--seat-color,transparent)}.move-log-move.is-current{background:var(--accent-soft);color:var(--accent);font-weight:700}.chat-log{gap:var(--space-2);max-height:220px;padding-right:var(--space-1);flex-direction:column;display:flex;overflow-y:auto}.chat-line{font-size:var(--text-sm);word-break:break-word;line-height:1.4}.chat-name{color:var(--text-muted);margin-inline-end:var(--space-1);font-weight:700}.chat-emote{font-size:var(--text-2xl);line-height:1}.emote-bar{gap:var(--space-1);flex-wrap:wrap;display:flex}.emote-btn{border-radius:var(--radius-md);background:var(--surface-3);width:40px;height:40px;transition:transform var(--dur-fast) var(--ease-spring), background-color var(--dur-fast) var(--ease-out);place-items:center;font-size:20px;display:grid}.emote-btn:hover{background:var(--surface-hover);transform:translateY(-2px)scale(1.08)}.emote-float{z-index:30;pointer-events:none;animation:emote-rise 2.2s var(--ease-out) forwards;font-size:clamp(28px,7cqw,52px);position:absolute}@keyframes emote-rise{0%{opacity:0;transform:translate(-50%)scale(.5)}15%{opacity:1;transform:translate(-50%,-10%)scale(1.1)}to{opacity:0;transform:translate(-50%,-120%)scale(.9)}}@media (max-width:480px){.seat-bar{padding:var(--space-2);gap:var(--space-2)}.seat-name{font-size:var(--text-xs)}.game-toolbar{gap:6px}.wall-tray{gap:4px;padding:4px}.wall-tray-btn{width:42px;height:40px}.game-toolbar .btn-sm{min-height:40px;padding:0 10px}.wall-glyph.is-h{width:22px}.wall-glyph.is-v{height:22px}}@media (max-width:400px){.game-toolbar{gap:5px}.wall-tray{gap:3px;padding:3px}.wall-tray-btn{width:36px;height:38px}.wall-tray .chip{gap:3px;padding:2px 5px}.game-toolbar .btn-sm{min-height:38px;padding:0 7px;font-size:11px}.wall-glyph.is-h{width:18px}.wall-glyph.is-v{height:18px}}@media (max-height:560px) and (orientation:landscape){.board-frame{max-width:min(92vh,520px)}.game-layout{grid-template-columns:minmax(0,1fr) minmax(220px,300px)}}.game-toolbar.is-mirrored{transform:rotate(180deg)}.game-toolbar.is-dimmed{opacity:.45}
/*$vite$:1*/