:root{--ui-primary: #3b82f6;--ui-primary-hover: #2563eb;--ui-primary-active: #1d4ed8;--ui-primary-text: #ffffff;--ui-secondary: #64748b;--ui-secondary-hover: #475569;--ui-secondary-active: #334155;--ui-secondary-text: #ffffff;--ui-success: #22c55e;--ui-success-hover: #16a34a;--ui-success-active: #15803d;--ui-success-text: #ffffff;--ui-danger: #ef4444;--ui-danger-hover: #dc2626;--ui-danger-active: #b91c1c;--ui-danger-text: #ffffff;--ui-warning: #f59e0b;--ui-warning-hover: #d97706;--ui-warning-active: #b45309;--ui-warning-text: #ffffff;--ui-info: #3b82f6;--ui-info-hover: #2563eb;--ui-info-active: #1d4ed8;--ui-info-text: #ffffff;--ui-bg: #ffffff;--ui-bg-secondary: #f8fafc;--ui-bg-tertiary: #f1f5f9;--ui-bg-hover: rgba(0, 0, 0, .05);--ui-backdrop-bg: rgba(0, 0, 0, .5);--ui-text: #1e293b;--ui-text-muted: #64748b;--ui-text-disabled: #94a3b8;--ui-border: #e2e8f0;--ui-border-hover: #cbd5e1;--ui-border-focus: var(--ui-primary);--ui-radius-sm: .25rem;--ui-radius-md: .375rem;--ui-radius-lg: .5rem;--ui-radius-xl: .75rem;--ui-spacing-xs: .25rem;--ui-spacing-sm: .5rem;--ui-spacing-smd: .75rem;--ui-spacing-md: 1rem;--ui-spacing-mlg: 1.25rem;--ui-spacing-lg: 1.5rem;--ui-spacing-xl: 2rem;--ui-spacing-2xl: 3rem;--ui-sidebar-width: 16rem;--ui-sidebar-collapsed-width: 4rem;--ui-navbar-height: 4rem;--ui-footer-height: 3rem;--ui-breakpoint-mobile: 768px;--ui-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--ui-shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ui-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ui-transition-fast: .15s ease;--ui-transition-normal: .2s ease;--ui-transition-slow: .3s ease;--ui-progress-stripe-color: rgba(255, 255, 255, .15);--ui-font-xs: .75rem;--ui-font-sm: .875rem;--ui-font-md: 1rem;--ui-font-lg: 1.125rem;--ui-font-xl: 1.25rem;--ui-button-radius: var(--ui-radius-md);--ui-button-font-weight: 500;--ui-button-padding-y: var(--ui-spacing-sm);--ui-input-radius: var(--ui-radius-md);--ui-input-padding-y: var(--ui-spacing-sm);--ui-input-placeholder-color: var(--ui-text-muted);--ui-input-focus-shadow: 0 0 0 3px color-mix(in srgb, var(--ui-primary) 20%, transparent);--ui-dropdown-bg: var(--ui-bg);--ui-dropdown-border: var(--ui-border);--ui-dropdown-shadow: var(--ui-shadow-lg);--ui-dropdown-radius: var(--ui-radius-md);--ui-dropdown-max-height: 300px;--ui-option-hover-bg: var(--ui-bg-hover);--ui-option-selected-bg: color-mix(in srgb, var(--ui-primary) 10%, transparent);--ui-option-selected-text: var(--ui-primary);--ui-segmented-track-bg: var(--ui-bg-tertiary);--ui-segmented-active-bg: var(--ui-primary);--ui-segmented-active-text: var(--ui-primary-text);--ui-stepper-connector: var(--ui-border);--ui-stepper-completed: var(--ui-primary);--ui-stepper-completed-text: var(--ui-primary-text);--ui-stepper-circle-size: 2rem;--ui-skeleton-base: color-mix(in srgb, var(--ui-text) 9%, var(--ui-bg));--ui-skeleton-highlight: color-mix(in srgb, var(--ui-text) 3%, var(--ui-bg));--ui-lightbox-backdrop: rgba(0, 0, 0, .9);--ui-lightbox-control-bg: rgba(0, 0, 0, .45);--ui-lightbox-control-text: #ffffff;--ui-carousel-control-bg: rgba(0, 0, 0, .45);--ui-carousel-control-text: #ffffff;--ui-carousel-counter-bg: rgba(0, 0, 0, .55);--ui-image-uploader-tile-bg: var(--ui-bg-secondary);--ui-image-uploader-tile-border: var(--ui-border);--ui-image-uploader-overlay-bg: rgba(0, 0, 0, .5);--ui-json-string: #16a34a;--ui-json-number: #2563eb;--ui-json-boolean: #9333ea;--ui-json-bigint: var(--ui-json-number);--ui-json-null: var(--ui-text-muted);--ui-json-size: var(--ui-text-muted);--ui-json-punct: var(--ui-text-muted)}*,*:before,*:after{box-sizing:border-box}.ui-scrollbar,.ui-content,.ui-sidebar__nav{scrollbar-width:thin;scrollbar-color:var(--ui-border-hover) transparent}.ui-scrollbar::-webkit-scrollbar,.ui-content::-webkit-scrollbar,.ui-sidebar__nav::-webkit-scrollbar{width:8px;height:8px}.ui-scrollbar::-webkit-scrollbar-track,.ui-content::-webkit-scrollbar-track,.ui-sidebar__nav::-webkit-scrollbar-track{background:transparent}.ui-scrollbar::-webkit-scrollbar-thumb,.ui-content::-webkit-scrollbar-thumb,.ui-sidebar__nav::-webkit-scrollbar-thumb{background-color:var(--ui-border);border-radius:4px;border:2px solid transparent;background-clip:padding-box}.ui-scrollbar::-webkit-scrollbar-thumb:hover,.ui-content::-webkit-scrollbar-thumb:hover,.ui-sidebar__nav::-webkit-scrollbar-thumb:hover{background-color:var(--ui-border-hover)}.ui-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:root{--p-me: #2563eb;--p-them: #db2777;--board-line: #334155;--board-line-thin: #cbd5e1;--cell-bg: #ffffff;--cell-peer: #eef2f7;--cell-same: #dbeafe;--cell-selected: #bfdbfe;--cell-given: #0f172a;--cell-user: #2563eb;--cell-wrong: #dc2626;--cell-wrong-bg: #fee2e2;--cell-hint: #fef3c7;--cell-hint-target: #fde68a;--cell-revealed: #94a3b8;--ui-primary: #3b82f6;--ui-primary-hover: #2563eb;--ui-primary-active: #1d4ed8;--ui-primary-text: #ffffff;--ui-secondary: #64748b;--ui-secondary-hover: #475569;--ui-secondary-active: #334155;--ui-secondary-text: #ffffff;--ui-success: #22c55e;--ui-success-hover: #16a34a;--ui-success-active: #15803d;--ui-success-text: #ffffff;--ui-danger: #ef4444;--ui-danger-hover: #dc2626;--ui-danger-active: #b91c1c;--ui-danger-text: #ffffff;--ui-warning: #f59e0b;--ui-warning-hover: #d97706;--ui-warning-active: #b45309;--ui-warning-text: #ffffff;--ui-info: #3b82f6;--ui-info-hover: #2563eb;--ui-info-active: #1d4ed8;--ui-info-text: #ffffff;--ui-bg: #ffffff;--ui-bg-secondary: #f8fafc;--ui-bg-tertiary: #f1f5f9;--tile-bg: #ebeff5;--ui-bg-hover: rgba(0, 0, 0, .05);--ui-text: #1e293b;--ui-text-muted: #64748b;--ui-text-disabled: #94a3b8;--ui-border: #e2e8f0;--ui-border-hover: #cbd5e1;--ui-border-focus: var(--ui-primary);--ui-radius-sm: .25rem;--ui-radius-md: .375rem;--ui-radius-lg: .5rem;--ui-radius-xl: .75rem;--ui-spacing-xs: .25rem;--ui-spacing-sm: .5rem;--ui-spacing-md: 1rem;--ui-spacing-lg: 1.5rem;--ui-spacing-xl: 2rem;--ui-spacing-2xl: 3rem;--ui-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--ui-shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ui-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ui-transition-fast: .15s ease;--ui-transition-normal: .2s ease;--ui-transition-slow: .3s ease;--ui-font-xs: .75rem;--ui-font-sm: .875rem;--ui-font-md: 1rem;--ui-font-lg: 1.125rem;--ui-font-xl: 1.25rem;--ui-sidebar-width: 16rem;--ui-sidebar-collapsed-width: 4rem;--ui-navbar-height: 4rem;--ui-footer-height: 3rem;--ui-breakpoint-mobile: 768px;--ui-dropdown-bg: var(--ui-bg);--ui-dropdown-border: var(--ui-border);--ui-dropdown-shadow: var(--ui-shadow-lg);--ui-dropdown-radius: var(--ui-radius-md);--ui-dropdown-max-height: 300px;--ui-option-hover-bg: var(--ui-bg-hover);--ui-option-selected-bg: color-mix(in srgb, var(--ui-primary) 10%, transparent);--ui-option-selected-text: var(--ui-primary);--ui-tmpl-resolved-bg: color-mix(in srgb, var(--ui-success) 12%, transparent);--ui-tmpl-resolved-color: var(--ui-success);--ui-tmpl-unknown-bg: color-mix(in srgb, var(--ui-danger) 12%, transparent);--ui-tmpl-unknown-color: var(--ui-danger);--ui-tmpl-unset-bg: color-mix(in srgb, var(--ui-warning) 12%, transparent);--ui-tmpl-unset-color: var(--ui-warning)}:root.dark{--p-me: #93c5fd;--p-them: #f9a8d4;--board-line: #94a3b8;--board-line-thin: #334155;--cell-bg: #0f172a;--cell-peer: #1a2436;--cell-same: #1e3a5f;--cell-selected: #1d4ed8;--cell-given: #f1f5f9;--cell-user: #93c5fd;--cell-wrong: #f87171;--cell-wrong-bg: #3b1219;--cell-hint: #3a2f0b;--cell-hint-target: #5c4a10;--cell-revealed: #64748b;--ui-primary: #60a5fa;--ui-primary-hover: #3b82f6;--ui-primary-active: #2563eb;--ui-primary-text: #0f172a;--ui-secondary: #94a3b8;--ui-secondary-hover: #cbd5e1;--ui-secondary-active: #e2e8f0;--ui-secondary-text: #0f172a;--ui-success: #4ade80;--ui-success-hover: #22c55e;--ui-success-active: #16a34a;--ui-success-text: #052e16;--ui-danger: #f87171;--ui-danger-hover: #ef4444;--ui-danger-active: #dc2626;--ui-danger-text: #450a0a;--ui-warning: #fbbf24;--ui-warning-hover: #f59e0b;--ui-warning-active: #d97706;--ui-warning-text: #451a03;--ui-info: #60a5fa;--ui-info-hover: #3b82f6;--ui-info-active: #2563eb;--ui-info-text: #0f172a;--ui-bg: #0f172a;--ui-bg-secondary: #1e293b;--ui-bg-tertiary: #334155;--tile-bg: #1e293b;--ui-bg-hover: rgba(255, 255, 255, .06);--ui-text: #f1f5f9;--ui-text-muted: #94a3b8;--ui-text-disabled: #64748b;--ui-border: #334155;--ui-border-hover: #475569;--ui-border-focus: var(--ui-primary);--ui-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .4);--ui-shadow-md: 0 4px 6px -1px rgb(0 0 0 / .5), 0 2px 4px -2px rgb(0 0 0 / .5);--ui-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .6), 0 4px 6px -4px rgb(0 0 0 / .6);--ui-tmpl-resolved-bg: color-mix(in srgb, var(--ui-success) 18%, transparent);--ui-tmpl-resolved-color: var(--ui-success);--ui-tmpl-unknown-bg: color-mix(in srgb, var(--ui-danger) 18%, transparent);--ui-tmpl-unknown-color: var(--ui-danger);--ui-tmpl-unset-bg: color-mix(in srgb, var(--ui-warning) 18%, transparent);--ui-tmpl-unset-color: var(--ui-warning)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background:var(--ui-bg);color:var(--ui-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--ui-font-md);line-height:1.5;transition:background var(--ui-transition-normal),color var(--ui-transition-normal)}a{color:var(--ui-primary);text-decoration:none}@media(hover:hover){a:hover{color:var(--ui-primary-hover);text-decoration:underline}}h1,h2,h3,h4,h5,h6{margin:0 0 var(--ui-spacing-md);color:var(--ui-text);font-weight:600}button,a{-webkit-tap-highlight-color:transparent}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--ui-spacing-lg);gap:var(--ui-spacing-md);flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:var(--ui-spacing-md)}.row{display:flex;align-items:center;gap:var(--ui-spacing-sm)}.auth-shell{position:relative;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--ui-spacing-md);background:var(--ui-bg-secondary)}.auth-card{width:100%;max-width:420px}.muted{color:var(--ui-text-muted);font-size:var(--ui-font-sm)}:root{--tabbar-height: 4rem;--screen-max: 560px}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ui-text-muted);font-size:.68rem;font-weight:600;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.tab svg{width:2.6rem;height:1.75rem;padding:.2rem .65rem;border-radius:999px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:background var(--ui-transition-fast)}.tab:active svg{transform:scale(.92)}@media(hover:hover){.tab:hover{color:var(--ui-text);text-decoration:none}}.tab-page{max-width:760px;margin:0 auto;padding:var(--ui-spacing-md)}.back-link{display:inline-block;margin-bottom:var(--ui-spacing-sm);font-size:var(--ui-font-sm)}.tab-title{margin:var(--ui-spacing-sm) 0 var(--ui-spacing-md);font-size:1.75rem;font-weight:800;letter-spacing:-.02em}.panel{margin-top:var(--ui-spacing-lg);padding:var(--ui-spacing-md);border-radius:1rem;background:var(--ui-bg);border:1px solid var(--ui-border)}.panel h2{font-size:var(--ui-font-lg);margin-bottom:var(--ui-spacing-sm)}.icon-btn-round{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:none;border-radius:50%;background:var(--ui-bg);color:var(--ui-text);box-shadow:var(--ui-shadow-sm);cursor:pointer;touch-action:manipulation}.icon-btn-round svg{width:1.3rem;height:1.3rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-btn-round:active{transform:scale(.92)}.icon-btn-round:disabled{opacity:.5}.guest-note{padding:var(--ui-spacing-sm) var(--ui-spacing-md);border-radius:var(--ui-radius-md);background:color-mix(in srgb,var(--ui-primary) 10%,var(--ui-bg));font-size:var(--ui-font-sm)}.home{max-width:480px;min-height:calc(100dvh - var(--tabbar-height) - env(safe-area-inset-bottom) - var(--ui-spacing-md));margin:0 auto;padding:var(--ui-spacing-md);display:flex;flex-direction:column}.player-avatar{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;font-weight:800}.home-hero h1{margin:0;font-size:2.25rem;font-weight:800;letter-spacing:-.03em}.big-btn:active,.continue-card:active,.tile:active,.hero-card:active{transform:scale(.97)}@media(hover:hover){.player-chip:hover,.continue-card:hover,.tile:hover,.hero-card:hover{text-decoration:none;color:inherit}}.hero-card{display:flex;flex-direction:column;gap:var(--ui-spacing-sm);padding:var(--ui-spacing-lg);border-radius:1.25rem;color:#fff;transition:transform 80ms ease}.hero-card-top{display:flex;justify-content:space-between;align-items:center;opacity:.95;font-weight:600}.hero-card-main{display:flex;flex-direction:column}.hero-card-main strong{font-size:1.5rem;line-height:1.2}.hero-card-main span{opacity:.9}.quick-btn{padding:.55rem 1rem;border:1px solid var(--ui-border);border-radius:999px;background:var(--ui-bg);color:var(--ui-text);font:inherit;font-size:var(--ui-font-sm);font-weight:600;cursor:pointer;touch-action:manipulation}.quick-btn--primary{border-color:transparent;background:var(--ui-primary);color:var(--ui-primary-text)}.quick-btn:active{transform:scale(.96)}@media(hover:hover){.quick-btn:hover{text-decoration:none}}.game-screen{min-height:100dvh;padding:0 var(--ui-spacing-sm) calc(var(--ui-spacing-sm) + env(safe-area-inset-bottom))}.game-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--ui-spacing-sm);max-width:var(--screen-max);margin:0 auto;padding:var(--ui-spacing-sm) 0}.auth-back{position:absolute;top:calc(env(safe-area-inset-top) + var(--ui-spacing-md));left:var(--ui-spacing-md);font-weight:600}.center-block{display:flex;justify-content:center;padding:var(--ui-spacing-2xl) 0}.narrow-page{max-width:960px;margin:0 auto}.empty-state{padding:var(--ui-spacing-lg);text-align:center}.auth-brand{display:flex;align-items:center;gap:var(--ui-spacing-sm);margin-bottom:var(--ui-spacing-xs)}.auth-brand h2{margin:0}.auth-switch{text-align:center;margin-top:var(--ui-spacing-md)}.play-page,.daily-page{display:flex;flex-direction:column;align-items:center;gap:var(--ui-spacing-md)}.new-game-form{display:flex;flex-direction:column;gap:var(--ui-spacing-sm);margin:var(--ui-spacing-md) 0;text-align:left}.new-game-form p{margin:0}.welcome-card{width:min(100%,520px);text-align:center}.welcome-card ui-button{margin-top:var(--ui-spacing-md)}.daily-head{width:100%;max-width:1000px;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ui-spacing-md)}.daily-head h2{margin-bottom:0}.daily-layout{width:100%;max-width:1000px;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--ui-spacing-lg);align-items:start}.daily-main{display:flex;justify-content:center}@media(max-width:900px){.daily-layout{grid-template-columns:1fr}}.game{--game-chrome: 17rem;width:min(100%,max(18rem,min(560px,calc(100dvh - var(--game-chrome)))));margin:0 auto;display:flex;flex-direction:column;gap:var(--ui-spacing-sm);user-select:none;-webkit-user-select:none}.game--focus>*{width:min(100%,max(18rem,min(680px,calc(100dvh - 11rem))))}body.game-focus-open{overflow:hidden}.round-btn svg .filled{fill:currentColor;stroke:none}.board-wrap{position:relative}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:2px;background:var(--board-line);border-radius:var(--ui-radius-md);aspect-ratio:1;overflow:hidden}.board-box{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--board-line-thin)}.cell{touch-action:manipulation;position:relative;display:grid;place-items:center;min-width:0;aspect-ratio:1;padding:0;border:none;background:var(--cell-bg);color:var(--cell-user);font:inherit;cursor:pointer;transition:background var(--ui-transition-fast)}.cell{-webkit-touch-callout:none}.cell:focus-visible{outline:2px solid var(--ui-primary);outline-offset:-2px}.cell--peer{background:var(--cell-peer)}.cell--same{background:var(--cell-same)}.cell--hint{background:var(--cell-hint)}.cell--hint-target{background:var(--cell-hint-target);box-shadow:inset 0 0 0 2px var(--ui-warning)}.cell--selected{background:var(--cell-selected)}.cell--wrong.cell--selected{box-shadow:inset 0 0 0 2px var(--cell-wrong)}.cell-value{font-size:clamp(1.1rem,5.2vw,1.9rem);font-weight:500;line-height:1}.cell--given .cell-value{color:var(--cell-given);font-weight:700}.cell-notes{display:grid;grid-template-columns:repeat(3,1fr);width:100%;height:100%;padding:2px}.note{display:grid;place-items:center;font-size:clamp(.5rem,2vw,.72rem);line-height:1;color:var(--ui-text-muted);visibility:hidden}.note--on{visibility:visible}.toolbar{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--ui-spacing-xs);margin-top:var(--ui-spacing-xs)}.tool{touch-action:manipulation;position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--ui-spacing-sm) 0;border:none;border-radius:var(--ui-radius-md);background:transparent;color:var(--ui-text-muted);font:inherit;font-size:var(--ui-font-xs);cursor:pointer}@media(hover:hover){.tool:hover:not(:disabled){background:var(--ui-bg-hover);color:var(--ui-text)}}.tool:disabled{opacity:.4;cursor:default}.tool svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tool--active{color:var(--ui-primary)}.tool-badge{position:absolute;top:2px;right:calc(50% - 1.6rem);padding:0 .3rem;border-radius:999px;background:var(--ui-bg-tertiary);color:var(--ui-text);font-size:.6rem;font-weight:700}.tool--active .tool-badge{background:var(--ui-primary);color:var(--ui-primary-text)}.numpad{display:grid;grid-template-columns:repeat(9,1fr);gap:var(--ui-spacing-xs)}.numkey{touch-action:manipulation;display:flex;flex-direction:column;align-items:center;min-height:3.25rem;justify-content:center;padding:var(--ui-spacing-xs) 0;border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);background:var(--ui-bg-secondary);color:var(--ui-primary);font:inherit;cursor:pointer;transition:background var(--ui-transition-fast)}@media(hover:hover){.numkey:hover:not(:disabled){background:color-mix(in srgb,var(--ui-primary) 12%,var(--ui-bg-secondary))}}.numkey:disabled{opacity:.45;cursor:default}.numkey-digit{font-size:clamp(1.2rem,5vw,1.75rem);font-weight:600;line-height:1.1}.numkey-left{font-size:.65rem;color:var(--ui-text-muted)}.numkey--done{visibility:hidden}.numpad--notes .numkey{color:var(--ui-text-muted);border-style:dashed}.numpad--notes .numkey--done{visibility:visible}.numkey--noted{background:color-mix(in srgb,var(--ui-primary) 18%,var(--ui-bg-secondary))!important;color:var(--ui-primary)!important}.hint-panel{padding:var(--ui-spacing-md);border:1px solid color-mix(in srgb,var(--ui-warning) 50%,var(--ui-border));border-radius:var(--ui-radius-lg);background:color-mix(in srgb,var(--ui-warning) 8%,var(--ui-bg))}.hint-steps{margin:var(--ui-spacing-sm) 0;padding-left:1.25rem}.hint-steps li+li{margin-top:var(--ui-spacing-xs)}.result-banner{padding:var(--ui-spacing-md);border-radius:var(--ui-radius-lg);background:var(--ui-bg-secondary);text-align:center}.result-banner--won{background:color-mix(in srgb,var(--ui-success) 14%,var(--ui-bg))}.result{text-align:center}.result-emoji{font-size:3rem}.result-lead{font-size:var(--ui-font-lg)}.result-stats div,.stat-tile{display:flex;flex-direction:column;padding:var(--ui-spacing-sm);border-radius:var(--ui-radius-md);background:var(--ui-bg-secondary)}.result-stats span,.stat-tile span,.stat-tile small{font-size:var(--ui-font-xs);color:var(--ui-text-muted)}.lb-table{width:100%;border-collapse:separate;border-spacing:0 4px;font-size:var(--ui-font-sm)}.lb-table th,.lb-table td{padding:.55rem var(--ui-spacing-sm);text-align:left}.lb-table th{padding-block:0 2px;color:var(--ui-text-muted);font-size:var(--ui-font-xs);font-weight:600}.lb-table td{background:var(--tile-bg)}.lb-table td:first-child{border-radius:.6rem 0 0 .6rem}.lb-table td:last-child{border-radius:0 .6rem .6rem 0}.lb-table .num{text-align:right;font-variant-numeric:tabular-nums}.lb-rank{width:2.75rem}.lb-podium .lb-player{font-weight:700}.lb-podium.lb-gold td{background:color-mix(in srgb,#d4a017 10%,var(--tile-bg))}.lb-me td,.lb-podium.lb-me td{background:color-mix(in srgb,var(--ui-primary) 14%,var(--tile-bg));font-weight:600}.lb-me td:first-child{box-shadow:inset 3px 0 var(--ui-primary)}.lb-sep td{padding:0;background:none;color:var(--ui-text-muted);text-align:center;line-height:1}.lb-medal{display:inline-grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--ui-bg-tertiary);color:var(--ui-text-muted);font-size:var(--ui-font-xs);font-weight:700;font-variant-numeric:tabular-nums}.lb-medal--1,.lb-medal--2,.lb-medal--3{--medal: #d4a017;background:color-mix(in srgb,var(--medal) 22%,transparent);color:color-mix(in srgb,var(--medal) 75%,var(--ui-text));box-shadow:inset 0 0 0 1.5px var(--medal)}.lb-medal--2{--medal: #94a3b8}.lb-medal--3{--medal: #b87333}.lb-you{margin-left:.4rem;padding:.05rem .45rem;border-radius:999px;background:var(--ui-primary);color:var(--ui-primary-text);font-size:.68rem;font-weight:600;vertical-align:.1em}.daily-board h3{margin-bottom:var(--ui-spacing-sm)}@media(max-width:560px){.tool span:not(.tool-badge){font-size:.6rem}.tool{padding:var(--ui-spacing-xs) 0}.numpad{gap:3px}.board{border-radius:var(--ui-radius-sm)}.play-page,.daily-page{gap:var(--ui-spacing-sm)}}.cell:active,.numkey:active:not(:disabled),.tool:active:not(:disabled),.round-btn:active,.pill-btn:active:not(:disabled){transform:scale(.94)}.numkey,.tool,.round-btn,.pill-btn{transition:background var(--ui-transition-fast),transform 80ms ease}.numkey:active:not(:disabled){background:color-mix(in srgb,var(--ui-primary) 22%,var(--ui-bg-secondary))}.tool:active:not(:disabled),.round-btn:active,.pill-btn:active:not(:disabled){background:var(--ui-bg-hover)}@media(hover:none){ui-button .ui-button--default:hover:not(:disabled):not(:active),ui-button .ui-button--elevated:hover:not(:disabled):not(:active){background-color:var(--_btn-color)}ui-button .ui-button--outline:hover:not(:disabled):not(:active),ui-button .ui-button--ghost:hover:not(:disabled):not(:active){background-color:transparent}button:focus:not(:focus-visible){outline:none}}.cell--hint-elim{background:color-mix(in srgb,var(--cell-wrong) 16%,var(--cell-bg))}.cell--auto .cell-value{animation:cell-pop .26s ease-out}@keyframes cell-pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}[data-level=easy]{--level-color: var(--ui-success)}[data-level=medium]{--level-color: var(--ui-info)}[data-level=hard]{--level-color: var(--ui-warning)}[data-level=expert]{--level-color: var(--ui-danger)}[data-level=extreme]{--level-color: #a855f7}.difficulty-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:100%}.difficulty-pips{display:flex;gap:2px}.pip{width:5px;height:5px;border-radius:50%;background:var(--ui-border)}.pip--on{background:var(--ui-primary)}.learn-group h3{display:flex;align-items:center;gap:var(--ui-spacing-sm);margin-bottom:var(--ui-spacing-sm)}.learn-head h2{margin:0}.learn-practice h3{margin-bottom:var(--ui-spacing-sm)}.practice{display:flex;flex-direction:column;gap:var(--ui-spacing-sm);user-select:none;-webkit-user-select:none}.level-btn .pip--on{background:var(--level-color)}.celebration{--celebration-color: var(--ui-success);position:absolute;top:50%;left:50%;z-index:5;display:flex;flex-direction:column;align-items:center;min-width:11rem;padding:.75rem 1.25rem;border-radius:1.25rem;background:var(--ui-bg);border:2px solid var(--celebration-color);box-shadow:0 18px 40px -16px color-mix(in srgb,var(--celebration-color) 80%,transparent);pointer-events:none;animation:celebrate 1.7s cubic-bezier(.2,.9,.3,1.2) forwards}.celebration strong{font-size:1.3rem;color:var(--celebration-color)}@keyframes celebrate{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}14%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}22%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-62%) scale(.96)}}@media(prefers-reduced-motion:reduce){.celebration{animation:none;transform:translate(-50%,-50%)}}.score-float{position:absolute;z-index:4;transform:translate(-50%,-50%);font-weight:800;font-size:clamp(.8rem,3.6vw,1.05rem);color:var(--ui-success);text-shadow:0 1px 0 var(--ui-bg),0 0 6px var(--ui-bg);pointer-events:none;animation:score-float .9s ease-out forwards}.score-float--loss{color:var(--cell-wrong)}@keyframes score-float{0%{opacity:0;transform:translate(-50%,-30%) scale(.8)}20%{opacity:1;transform:translate(-50%,-70%) scale(1.1)}to{opacity:0;transform:translate(-50%,-160%) scale(1)}}.auth-panel form ui-button{margin-top:var(--ui-spacing-xs)}.challenge-code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:1.1rem;letter-spacing:.15em}.challenge-play{display:flex;flex-direction:column;gap:var(--ui-spacing-sm)}.challenge-play p{margin:0}.add-friend ui-input{flex:1}.social-section h3{font-size:var(--ui-font-md);margin-bottom:var(--ui-spacing-sm);color:var(--ui-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:var(--ui-font-xs)}.challenge-card{padding:var(--ui-spacing-md);border-radius:1rem;background:var(--ui-bg);border:2px solid color-mix(in srgb,var(--ui-primary) 40%,transparent);margin-bottom:var(--ui-spacing-sm)}.challenge-card-head{display:flex;justify-content:space-between;align-items:center;font-size:var(--ui-font-lg)}.challenge-them{margin:0 0 var(--ui-spacing-sm)}.challenge-actions{display:flex;gap:var(--ui-spacing-sm)}.outcome{display:grid;place-items:center;width:2rem;height:2rem;border-radius:.6rem;background:var(--ui-bg-tertiary);font-weight:800}.challenge-form{display:flex;flex-direction:column;gap:var(--ui-spacing-sm)}.challenge-form p{margin:0}.form-label{margin-top:var(--ui-spacing-xs);font-size:var(--ui-font-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ui-text-muted)}.versus{display:grid;grid-template-columns:1fr 1fr;gap:var(--ui-spacing-sm);margin-top:var(--ui-spacing-md)}.versus div{display:flex;flex-direction:column;padding:var(--ui-spacing-sm);border-radius:var(--ui-radius-md);background:var(--ui-bg-secondary)}.versus span{font-size:var(--ui-font-xs);color:var(--ui-text-muted)}.cell--owner-me .cell-value{color:var(--p-me)}.cell--owner-them .cell-value{color:var(--p-them)}.challenge-card--live{border-color:color-mix(in srgb,var(--p-them) 50%,transparent)}.learn-watch h3{margin-bottom:var(--ui-spacing-sm)}.guide{display:flex;flex-direction:column;gap:var(--ui-spacing-sm)}@keyframes gb-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.35}}.icon-btn-round svg .filled{fill:currentColor;stroke:none}.notice-action{padding:.45rem .9rem;border:none;border-radius:999px;background:var(--ui-primary);color:var(--ui-primary-text);font:inherit;font-size:var(--ui-font-sm);font-weight:700;cursor:pointer;touch-action:manipulation}.notice-close{width:2rem;height:2rem;border:none;border-radius:50%;background:transparent;color:var(--ui-text-muted);font-size:1.25rem;cursor:pointer}.notice-action:active,.notice-close:active{transform:scale(.94)}@keyframes notice-in{0%{opacity:0;transform:translate(-50%,-120%)}to{opacity:1;transform:translate(-50%)}}.chat-log>*{flex-shrink:0}.chat-quick .quick-btn{flex-shrink:0;padding:.35rem .75rem}.player-avatar--lg{width:3.5rem;height:3.5rem;font-size:1.5rem}.profile-card{display:flex;align-items:center;gap:var(--ui-spacing-md);margin:var(--ui-spacing-sm) 0 var(--ui-spacing-md)}.profile-text{display:flex;flex-direction:column}.profile-text strong{font-size:1.35rem}.profile-text span{color:var(--ui-text-muted);font-size:var(--ui-font-sm)}.quick-row{display:flex;flex-wrap:wrap;gap:var(--ui-spacing-sm);margin-bottom:var(--ui-spacing-lg)}.player-link{color:inherit;font-weight:inherit;text-decoration:none}@media(hover:hover){.player-link:hover{color:var(--ui-primary);text-decoration:underline}}.auth-switcher{display:grid;grid-template-columns:1fr 1fr;gap:6px}ui-tabs>.ui-tabs.ui-tabs .ui-tabs__list{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;padding:0;border:none;border-radius:0;background:none}ui-tabs>.ui-tabs.ui-tabs .ui-tabs__indicator{display:none}.auth-switcher button,.narrator-option,.mode-card,ui-tabs>.ui-tabs.ui-tabs .ui-tabs__tab{position:relative;overflow:hidden;margin:0;border:1px solid var(--ui-border);border-radius:.6rem;background:var(--tile-bg);box-shadow:none;font:inherit;font-weight:600;cursor:pointer;touch-action:manipulation;transition:transform 80ms ease,border-color var(--ui-transition-fast),background var(--ui-transition-fast),color var(--ui-transition-fast)}.auth-switcher button,ui-tabs>.ui-tabs.ui-tabs .ui-tabs__tab{justify-content:center;min-height:2.6rem;padding:.5rem;color:var(--ui-text-muted);font-size:var(--ui-font-sm)}.auth-switcher button:after,.narrator-option:after,.mode-card:after,ui-tabs>.ui-tabs.ui-tabs .ui-tabs__tab:after{content:"";position:absolute;inset:auto 0 0;height:3px;background:var(--ui-primary);opacity:0;transition:opacity var(--ui-transition-fast)}.auth-switcher button.active,.narrator-option.active,.mode-card.active,ui-tabs>.ui-tabs.ui-tabs .ui-tabs__tab.ui-tabs__tab--active{border-color:color-mix(in srgb,var(--ui-primary) 55%,var(--ui-border));background:color-mix(in srgb,var(--ui-primary) 12%,var(--ui-bg));color:var(--ui-text);box-shadow:none}.auth-switcher button.active:after,.narrator-option.active:after,.mode-card.active:after,ui-tabs>.ui-tabs.ui-tabs .ui-tabs__tab.ui-tabs__tab--active:after{opacity:1}.auth-switcher button:active,.narrator-option:active,.mode-card:active,ui-tabs>.ui-tabs.ui-tabs .ui-tabs__tab:active{transform:scale(.97)}@media(hover:hover){.auth-switcher button:not(.active):hover,.narrator-option:not(.active):hover,.mode-card:not(.active):hover,ui-tabs>.ui-tabs.ui-tabs .ui-tabs__tab:not(.ui-tabs__tab--active):hover:not(:disabled){border-color:var(--ui-border-hover);color:var(--ui-text)}}ui-switch>.ui-switch.ui-switch .ui-switch__track{border:1px solid var(--ui-border);background:var(--ui-bg-tertiary);box-shadow:inset 0 1px 3px #00000026;transition:background-color var(--ui-transition-fast),border-color var(--ui-transition-fast)}ui-switch>.ui-switch.ui-switch:hover:not(.ui-switch--disabled) .ui-switch__track{background:var(--ui-bg-tertiary);border-color:var(--ui-border-hover)}ui-switch>.ui-switch.ui-switch.ui-switch--checked .ui-switch__track,ui-switch>.ui-switch.ui-switch.ui-switch--checked:hover:not(.ui-switch--disabled) .ui-switch__track{border-color:color-mix(in srgb,var(--ui-primary) 70%,#000);background:var(--ui-primary)}ui-switch>.ui-switch.ui-switch .ui-switch__thumb{box-shadow:0 1px 3px #0000004d;transition:transform .16s cubic-bezier(.3,1.4,.5,1)}ui-switch>.ui-switch.ui-switch--md .ui-switch__track{width:44px;height:26px}ui-switch>.ui-switch.ui-switch--md .ui-switch__thumb{width:20px;height:20px;left:2px}ui-switch>.ui-switch.ui-switch--md.ui-switch--checked .ui-switch__thumb{transform:translate(18px)}ui-table>.ui-table-container.ui-table-container{padding:0 var(--ui-spacing-sm) var(--ui-spacing-xs);border:none;border-radius:0}ui-table .ui-table.ui-table{border-collapse:separate;border-spacing:0 4px}ui-table .ui-table.ui-table thead{background:none}ui-table .ui-table.ui-table th{padding:var(--ui-spacing-sm) var(--ui-spacing-sm) 2px;border:none;color:var(--ui-text-muted);font-size:var(--ui-font-xs);font-weight:600}ui-table .ui-table.ui-table td{padding:.55rem var(--ui-spacing-sm);border:none;background:var(--tile-bg);font-variant-numeric:tabular-nums}ui-table .ui-table.ui-table td:first-child{border-radius:.6rem 0 0 .6rem;font-weight:600}ui-table .ui-table.ui-table td:last-child{border-radius:0 .6rem .6rem 0}ui-table .ui-table.ui-table tbody tr:hover{background:none}ui-table .ui-table.ui-table tbody tr:hover td{background:color-mix(in srgb,var(--ui-primary) 8%,var(--tile-bg))}
