.board-wrap{touch-action:none;-webkit-user-select:none;user-select:none;flex:auto;justify-content:center;align-items:center;width:100%;min-height:0;padding:12px 8px;display:flex;position:relative}.board{touch-action:none;-webkit-user-select:none;user-select:none;width:min(96vw, calc((96vh - 72px) * (var(--cols) / var(--rows))));gap:2px;display:grid;position:relative}@media (orientation:landscape) and (height<=600px){.board{width:min(100%, calc((100dvh - 80px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) * (var(--cols) / var(--rows))))}.solo-game-view .board{width:min(100%, calc((100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) * (var(--cols) / var(--rows))))}.solo-game-view .cell .lamp b{font-size:calc(var(--cell) * .46)}}.cell{aspect-ratio:1;border-radius:6px;place-items:center;line-height:1;display:grid}.cell .lamp{place-items:center;width:100%;height:100%;display:grid;position:relative}.cell .lamp .lamp-svg{width:90%;height:90%;display:block}.cell .lamp b{font-size:calc(var(--cell) * .4);color:#4a2f08;transform:translateY(calc(var(--cell) * .06));place-items:center;font-weight:800;display:grid;position:absolute;inset:0}.cell .lamp{transition:transform 90ms ease-out}.cell[data-sel] .lamp{transform:translateY(calc(var(--cell) * -.04)) scale(1.05);filter:drop-shadow(0 calc(var(--cell) * .03) calc(var(--cell) * .02) #00000059) drop-shadow(0 0 calc(var(--cell) * .045) var(--selected-outline)) brightness(1.1)}.pop-layer{pointer-events:none;z-index:2;gap:2px;display:grid;position:absolute;inset:0}.pop-cell{place-items:center;display:grid;container-type:size}.reject-layer{pointer-events:none;z-index:3;gap:2px;display:grid;position:absolute;inset:0}.reject-cell{border:2px solid var(--danger);background:color-mix(in srgb, var(--danger) 18%, transparent);border-radius:6px;animation:.28s ease-out forwards reject-flash}@keyframes reject-flash{0%{opacity:0}25%{opacity:1}to{opacity:0}}.pop-cell .pop-lamp{width:90cqmin;height:90cqmin;line-height:1;animation:.7s cubic-bezier(.4,0,.85,.25) forwards lamp-fall;display:block;position:relative}.pop-cell .pop-lamp .lamp-svg{width:100%;height:100%;display:block}.pop-cell .spark{width:36cqmin;height:36cqmin;animation:.7s ease-out forwards lamp-spark;display:block;position:absolute;top:4cqmin;right:-2cqmin}@keyframes lamp-fall{0%{opacity:1;transform:translateY(0)scale(1)rotate(0)}16%{opacity:1;transform:translateY(-9cqmin)scale(1.18)rotate(-7deg)}70%{opacity:1}to{opacity:0;transform:translateY(520cqmin)scale(.85)rotate(42deg)}}@keyframes lamp-spark{0%{opacity:0;transform:scale(0)}18%{opacity:1;transform:scale(1)}40%{opacity:0;transform:scale(1.4)translate(4cqmin,-4cqmin)}to{opacity:0}}.drag-rect{z-index:4;pointer-events:none;contain:layout paint;will-change:transform;border:2px dashed var(--selected-outline);opacity:.5;border-radius:4px;display:none;position:absolute;top:0;left:0}@media (prefers-reduced-motion:reduce){.cell .lamp{transition:none}.reject-cell{opacity:1;animation:none}.pop-cell .pop-lamp{animation:none}.pop-cell .spark{display:none}}.all-clear-stage{flex:auto;align-items:center;width:100%;min-height:0;display:flex;position:relative}.all-clear-light{pointer-events:none;z-index:5;border:3px solid var(--accent-me);box-shadow:0 0 24px var(--accent-me), inset 0 0 24px var(--accent-me);border-radius:18px;animation:.6s ease-out both all-clear-ring;position:absolute;inset:0}@keyframes all-clear-ring{0%{opacity:0;transform:scale(.98)}30%{opacity:.9}to{opacity:0;transform:scale(1.03)}}.feedback-score{animation:.26s ease-out feedback-score}@keyframes feedback-score{35%{color:var(--accent-me);transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.all-clear-light,.feedback-score{animation:none;transform:none}.all-clear-light{display:none}}.all-clear-result[data-celebrating=true]{animation:.18s ease-out all-clear-result}@keyframes all-clear-result{0%{opacity:.75}to{opacity:1}}@media (prefers-reduced-motion:reduce){.all-clear-result[data-celebrating=true]{animation:none}}.all-clear-result[data-celebrating=true] .result-dialog{box-shadow:0 0 22px color-mix(in srgb, var(--accent-me) 55%, transparent);animation:.6s ease-out feedback-result-light}@keyframes feedback-result-light{30%{border-color:var(--accent-me)}}@media (prefers-reduced-motion:reduce){.all-clear-result[data-celebrating=true] .result-dialog{animation:none}}.keyboard-poc{text-align:center;width:min(100%,1200px);margin:auto;padding:12px 20px}.keyboard-poc-toolbar{justify-content:space-between;gap:12px;display:flex}.keyboard-poc h1{margin:12px 0 8px}.keyboard-poc p{margin:8px 0}.keyboard-poc h1 small{font-size:14px;font-weight:400;display:block}.keyboard-poc-board{border:2px solid #0000;border-radius:12px;margin:0;padding:6px}.keyboard-poc-board:focus{outline:3px solid var(--accent-me);outline-offset:4px}.keyboard-poc-board>[role=row]{grid-template-columns:repeat(var(--keyboard-cols), minmax(0, 1fr));gap:2px;margin-bottom:2px;display:grid}.keyboard-poc-cell{aspect-ratio:1;background:var(--input-bg);min-width:0;color:var(--text,#fff);border:2px solid #0000;border-radius:6px;place-items:center;display:grid;position:relative;container-type:inline-size}.keyboard-poc-cell svg{opacity:.25;width:70%;height:70%;position:absolute}.keyboard-poc-cell b{font-size:clamp(10px,65cqw,28px);position:relative}.keyboard-poc-cell[aria-selected=true]{background:color-mix(in srgb, var(--accent-me) 30%, var(--input-bg))}.keyboard-poc-cell[data-cursor=true]{border-color:#f7c764;box-shadow:inset 0 0 0 2px #151515}.keyboard-poc-cell[data-anchor=true]:after{content:"";background:#fff;border-radius:50%;width:4px;height:4px;position:absolute;top:1px;left:1px}.keyboard-poc-board{position:relative}.keyboard-poc-board>.pop-layer,.keyboard-poc-board>.reject-layer{inset:8px}.keyboard-poc-board>[role=row]:last-of-type{margin-bottom:0}.keyboard-poc-cell{transition:box-shadow .11s ease-out,border-color .11s ease-out}.keyboard-poc-cell[data-cursor=true]{animation:.11s ease-out keyboard-cursor}.keyboard-poc-cell[data-anchor=true]:after{width:6px;height:6px;animation:.22s ease-out keyboard-anchor}.keyboard-poc-cell[aria-selected=true] svg{opacity:.7;filter:drop-shadow(0 0 3px var(--accent-me));transition:transform .1s ease-out,opacity .1s ease-out;transform:translateY(-3%)}@keyframes keyboard-cursor{0%{box-shadow:inset 0 0 0 3px var(--accent-me)}}@keyframes keyboard-anchor{40%{box-shadow:0 0 0 3px var(--accent-me);transform:scale(1.8)}}@media (prefers-reduced-motion:reduce){.keyboard-poc-cell,.keyboard-poc-cell[aria-selected=true] svg{transition:none}.keyboard-poc-cell[data-cursor=true],.keyboard-poc-cell[data-anchor=true]:after{animation:none}.keyboard-poc-cell[aria-selected=true] svg{transform:none}}.keyboard-poc .all-clear-stage{width:min(100%, max(320px, calc((100dvh - 330px) * var(--keyboard-cols) / var(--keyboard-rows))));margin:12px auto}.keyboard-poc-board{width:100%}.menu-view{text-align:center;gap:12px;width:100%;max-width:360px;padding:24px;display:grid}.menu-view h2,.menu-view p,.home-view h1,.home-view p{margin:0}.menu-eyebrow{color:var(--accent-me);letter-spacing:.18em;font-size:12px;font-weight:600}.solo-record-scope{color:var(--text-muted);font-size:12px;line-height:1.4}.mode-menu,.size-menu{align-content:center;min-height:100%}.size-menu{align-content:safe center;height:100%;min-height:0;overflow-y:auto}.mode-option,.size-option{text-align:left;gap:4px;padding:16px;display:grid}.mode-option strong,.size-option strong{font-size:20px}.mode-option span,.size-option span{color:color-mix(in srgb, var(--primary-text) 78%, transparent);font-size:13px}.size-option{grid-template-columns:1fr auto;align-items:center}.size-best{color:var(--accent-me);grid-column:1/-1;font-size:12px}.home-view{width:100%;overflow-x:clip}.home-footer{text-align:center;flex-wrap:wrap;justify-content:center;gap:12px 20px;padding:0 20px 24px;display:flex}.home-footer a{color:var(--text-muted);font-size:12px}.home-hero{grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);align-items:center;gap:64px;width:min(1040px,100% - 40px);min-height:min(720px,100svh);margin:0 auto;padding:72px 0;display:grid}.home-copy{flex-direction:column;align-items:flex-start;gap:18px;display:flex}.home-copy h1{letter-spacing:-.055em;font-size:clamp(48px,8vw,88px);line-height:.95}.home-description{max-width:560px;color:var(--text-muted);font-size:17px;line-height:1.65}.home-actions{flex-wrap:wrap;align-items:center;gap:12px;max-width:100%;display:flex}.home-actions>.ui-button{flex:none;width:220px;max-width:100%}.ui-button.home-account-cta{color:#241f30;background:var(--accent-me);border-color:var(--accent-me);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-me) 18%, transparent)}.ui-button.home-account-signed-in{color:var(--text);background:var(--surface);border-color:var(--border);box-shadow:none}.home-account-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}.home-rotate-note{color:var(--accent-me);font-size:15px;font-weight:600}.home-board{aspect-ratio:4/3;background:var(--surface);border:1px solid var(--border);border-radius:28px;grid-template-columns:repeat(4,1fr);gap:10px;padding:24px;display:grid;position:relative;transform:rotate(2deg);box-shadow:0 28px 80px #00000061}.home-board>span{place-items:center;min-width:0;display:grid;position:relative}.home-board svg{width:100%;height:100%}.home-board b{color:#4a2f08;font-size:clamp(18px,3vw,34px);position:absolute;transform:translateY(8%)}.home-board>span[data-pair]{filter:drop-shadow(0 0 9px var(--selected-outline));transform:translateY(-3px)}.home-selection{border:2px dashed var(--selected-outline);pointer-events:none;border-radius:12px;width:calc(50% - 20px);height:calc(33.333% - 8px);position:absolute;top:18px;left:18px}@media (width<=720px){.home-hero{grid-template-columns:1fr;gap:44px;min-height:auto;padding:88px 0 64px}.home-copy{text-align:center;align-items:center}.home-actions{justify-content:center}.home-board{border-radius:20px;gap:6px;width:min(420px,100%);margin:0 auto;padding:16px}.home-selection{top:11px;left:11px}}@media (width<=360px){.home-copy h1{font-size:42px}}@media (orientation:landscape) and (height<=600px) and (pointer:coarse){.home-hero{grid-template-columns:1fr;gap:0;width:100%;min-height:100%;padding:12px 64px 12px 20px;display:grid}.home-copy{text-align:center;align-items:center;gap:7px}.home-copy h1{font-size:clamp(36px,7vw,52px)}.home-description{max-width:520px;font-size:12px;line-height:1.35}.home-board{display:none}.menu-view{gap:6px;max-width:min(440px,100% - 96px);padding:8px}.menu-view h2{font-size:20px}.mode-option,.size-option{gap:2px;padding:8px 12px}.mode-option strong,.size-option strong{font-size:17px}}.date-picker-field{gap:4px;min-width:0;font-size:13px;display:grid}.date-picker-trigger{border:1px solid var(--border);background:var(--input-bg);width:100%;min-width:0;min-height:44px;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:6px;padding:10px;display:flex}.date-picker-trigger svg{color:var(--accent-me);flex-shrink:0}.calendar-overlay{z-index:100;background:var(--modal-backdrop);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.calendar-dialog{border:1px solid var(--border);background:var(--surface);width:min(100%,380px);max-height:calc(100dvh - 32px);box-shadow:var(--modal-shadow);border-radius:22px;padding:20px;overflow-y:auto}.calendar-dialog h2{margin:2px 0 4px;font-size:20px}.calendar-topline{color:var(--accent-me);letter-spacing:.04em;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;display:flex}.calendar-close,.calendar-nav,.calendar-day{min-height:44px;color:var(--text);justify-content:center;align-items:center;padding:0;display:flex}.calendar-footer button{color:var(--text);font:inherit;cursor:pointer;border:0}.calendar-close{background:var(--surface-2);border-radius:50%;width:44px;height:44px;font-size:24px;line-height:1}.calendar-hint{color:var(--text-muted);margin:0;font-size:13px}.calendar-heading{justify-content:space-between;align-items:center;margin:20px 0 12px;display:flex}.calendar-heading strong{font-variant-numeric:tabular-nums;font-size:16px}.calendar-nav{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;width:44px;height:44px;font-size:26px;line-height:1}.calendar-nav:disabled{opacity:.35;cursor:default}.calendar-grid{gap:4px;display:grid}.calendar-weekdays,.calendar-week{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays{color:var(--text-muted);text-align:center;font-size:12px;font-weight:700}.calendar-weekdays span{padding:8px 0}.calendar-week>span{place-items:center;display:grid}.calendar-day{font-variant-numeric:tabular-nums;background:0 0;border-radius:12px;width:100%;min-height:44px;font-size:14px}.calendar-day:hover:not(:disabled){background:var(--surface-2)}.calendar-day[aria-current=date]{box-shadow:inset 0 0 0 1px var(--accent-me)}.calendar-day[data-selected=true]{background:var(--primary);color:var(--primary-text);font-weight:700}.calendar-day[data-selected=true]:hover:not(:disabled){background:var(--primary)}.calendar-day:disabled{color:var(--text-muted);opacity:.3;cursor:default}.calendar-footer{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;margin-top:16px;padding-top:14px;font-size:12px;display:flex}.calendar-footer-actions{gap:6px;display:flex}.calendar-footer button{background:var(--surface-2);border-radius:8px;padding:8px;font-size:12px}.date-picker-trigger:focus-visible,.calendar-dialog button:focus-visible{outline:2px solid var(--selected-outline);outline-offset:2px}.records-view{gap:16px;width:min(100%,620px);min-width:0;padding:24px 16px;display:grid}.records-view h2,.records-view h3,.records-view p{margin:0}.records-summary{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.records-note{color:var(--text-muted);font-size:13px}.records-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.records-list li{background:var(--surface);border:1px solid var(--border);border-radius:12px;grid-template-columns:minmax(0,1fr) auto auto;gap:8px 16px;padding:12px;display:grid}.records-opponent{overflow-wrap:anywhere;min-width:0}.records-list time{color:var(--text-muted);grid-column:1/-1;font-size:12px}.records-list [data-result=win]{color:var(--ok)}.records-list [data-result=loss]{color:var(--danger)}.opponent-records{border:1px solid var(--border);background:var(--surface);border-radius:12px;gap:6px;min-width:0;padding:10px 12px;font-size:13px;display:grid}.opponent-records p{overflow-wrap:anywhere;margin:0}.records-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.records-filters label{gap:4px;min-width:0;font-size:13px;display:grid}.records-filters label:first-child,.records-filter-actions,.records-filters [role=alert]{grid-column:1/-1}.records-filters input{box-sizing:border-box;border:1px solid var(--border);background:var(--input-bg);width:100%;min-width:0;color:inherit;font:inherit;border-radius:8px;padding:10px}.records-filter-actions{flex-wrap:wrap;gap:8px;display:flex}.room-lobby{flex:auto;grid-template-columns:minmax(0,1fr);align-content:start;gap:20px;width:min(760px,100%);min-height:0;margin:0 auto;padding:24px;display:grid;overflow-y:auto}.room-lobby h2,.room-lobby h3,.room-lobby p,.room-lobby ul,.room-lobby dl,.room-lobby dd{margin:0}.room-lobby-header{justify-items:start;gap:8px;display:grid}.room-lobby-header h2{letter-spacing:-.04em;font-size:28px}.room-lobby-header p,.room-lobby-description{color:var(--text-muted);font-size:13px;line-height:1.5}.room-lobby-badge{border:1px solid color-mix(in srgb, var(--accent-me) 40%, var(--border));color:var(--accent-me);border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700}.room-lobby-content{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));align-items:start;gap:16px;min-width:0;display:grid}.room-lobby-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;gap:16px;min-width:0;padding:20px;display:grid}.room-lobby-card h3{font-size:16px;font-weight:700}.room-lobby-form label{margin-bottom:-8px;font-size:13px;font-weight:600}.room-lobby-form input,.room-lobby-form select{width:100%;min-width:0}.room-lobby-code-input{letter-spacing:.16em;font-weight:700}.room-lobby-code-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.room-lobby-code{color:var(--accent-me);letter-spacing:.12em;font-variant-numeric:tabular-nums;-webkit-user-select:text;user-select:text;margin-top:4px;font-size:36px;font-weight:800;display:block}.room-lobby-share-actions{gap:8px;display:grid}.room-lobby-share-actions .ui-button{font-size:13px}.room-lobby-feedback{color:var(--accent-me);overflow-wrap:anywhere;font-size:13px;line-height:1.5}.room-lobby-details{border-bottom:1px solid var(--border);gap:24px;padding-bottom:16px;display:flex}.room-lobby-details>div{gap:4px;display:grid}.room-lobby-details dt{color:var(--text-muted);font-size:12px}.room-lobby-details dd{font-size:14px;font-weight:700}.room-lobby-players{gap:12px;padding:0;list-style:none;display:grid}.room-lobby-player{align-items:center;gap:12px;min-width:0;display:flex}.room-lobby-player-number{width:36px;height:36px;color:var(--text-muted);background:var(--surface-2);border-radius:10px;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.room-lobby-player-info{gap:4px;min-width:0;display:grid}.room-lobby-player-name{overflow-wrap:anywhere;font-size:14px;font-weight:600;line-height:1.4}.room-lobby-player-tags{min-height:16px;color:var(--text-muted);flex-wrap:wrap;gap:6px;font-size:11px;display:flex}.room-lobby-player-tags>span{background:var(--surface-2);border-radius:4px;padding:1px 5px}.room-lobby-player-waiting .room-lobby-player-name{color:var(--text-muted);font-weight:400}.room-lobby-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding-top:4px;display:grid}.room-lobby-actions>:only-child{grid-column:1/-1}.room-lobby-error{color:var(--danger);overflow-wrap:anywhere;font-size:13px;line-height:1.5}@media (width<=480px){.room-lobby{gap:16px;padding:20px 16px}.room-lobby-header h2{font-size:24px}.room-lobby-card{padding:18px}}.versus-result{grid-column:1/-1;gap:18px;min-width:0;display:grid}.versus-result-heading{gap:4px;display:grid}.versus-result-eyebrow,.versus-result-player-label{color:var(--text-muted);font-size:12px;font-weight:600}.versus-result-heading h2{letter-spacing:-.04em;font-size:36px;line-height:1.2}.versus-result-heading h2[data-outcome=win]{color:var(--accent-me)}.versus-result-scores{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.versus-result-player{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;align-content:start;gap:4px;min-width:0;padding:14px 10px;display:grid}.versus-result-me{border-color:color-mix(in srgb, var(--accent-me) 50%, var(--border))}.versus-result-nickname{overflow-wrap:anywhere;font-size:14px;font-weight:600}.versus-result-points{font-variant-numeric:tabular-nums;margin-top:4px;font-size:40px;line-height:1.1}.versus-result-me .versus-result-points{color:var(--accent-me)}.versus-result-note{color:var(--text-muted);font-size:13px;line-height:1.5}.versus-result-actions{border-top:1px solid var(--border);gap:10px;padding-top:16px;display:grid}.versus-result-ready{color:var(--accent-me);font-size:13px}@media (orientation:landscape) and (height<=600px){.versus-result{gap:12px}.versus-result-heading h2{font-size:30px}.versus-result-player{padding:10px}.versus-result-points{font-size:32px}.versus-result-actions{padding-top:12px}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{-webkit-user-select:none;touch-action:manipulation}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1b1a24;--surface:#26232f;--surface-2:#302c3c;--text:#e8e6ee;--text-muted:#a8a4b4;--primary:#8067d9;--primary-text:#fff;--border:#3a3648;--input-bg:#241f30;--selected-outline:#ffcf5c;--accent-me:#ffcf5c;--accent-opp:#5ab0f0;--danger:#ff7b7b;--ok:#43c980;--modal-backdrop:#0000007a;--modal-shadow:0 24px 80px #00000059}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f2f8;--surface:#fff;--surface-2:#e4dff0;--text:#241f30;--text-muted:#6b6478;--primary:#6c47c9;--primary-text:#fff;--border:#d6d0e2;--input-bg:#fff;--selected-outline:#e0a800;--accent-me:#c98a00;--accent-opp:#1f7fd0;--danger:#d94848;--ok:#1fa85f}body{background:var(--bg);color:var(--text);overscroll-behavior:none;font-family:system-ui,-apple-system,sans-serif;transition:background-color .2s,color .2s}.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}.app{height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;align-items:center;gap:8px;display:flex}input,select{font:inherit;border:1px solid var(--border);background:var(--input-bg);min-height:44px;color:var(--text);border-radius:10px;padding:8px 12px}.fatal-error{text-align:center;width:min(420px,100% - 32px);margin:auto;padding:32px}.fatal-error p{color:var(--text-muted)}.game-view{flex-direction:column;flex:auto;justify-content:flex-start;align-items:center;gap:8px;width:100%;min-height:0;display:flex;overflow:clip}.solo-game-view{position:relative}.solo-account-status{max-width:calc(50% - 120px);color:var(--text-muted);align-items:center;gap:6px;font-size:12px;line-height:1.4;display:flex;position:absolute;top:8px;left:8px}.solo-account-status p{margin:0}.solo-account-status .ui-button{flex-shrink:0;padding-inline:10px}.time-bar{z-index:20;background:var(--surface-2);height:5px;position:fixed;top:0;left:0;right:0}.time-bar-fill{transform-origin:0;background:var(--primary);height:100%;transition:transform .2s linear,background-color .3s}.time-bar-fill[data-low]{background:var(--danger)}.hud,.vs-scorebar{font-variant-numeric:tabular-nums;align-items:center;gap:24px;padding:10px 12px 4px;font-size:30px;font-weight:800;line-height:1.1;display:flex}.hud-time{color:var(--text)}.hud-score{color:var(--accent-me)}.hud-lamp{vertical-align:-.14em;width:1em;height:1em;display:inline-block}.game-controls{top:calc(env(safe-area-inset-top) + 10px);right:calc(env(safe-area-inset-right) + 10px);z-index:15;align-items:center;gap:8px;display:flex;position:fixed}.game-controls .settings-button,.game-controls .game-quit{min-height:42px;position:static}.game-quit{z-index:15;top:calc(env(safe-area-inset-top) + 10px);right:calc(env(safe-area-inset-right) + 10px);background:var(--surface);min-height:36px;color:var(--text-muted);border:1px solid var(--border);margin:0;padding:6px 14px;font-size:14px;font-weight:700;position:fixed}.result-overlay{z-index:40;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:#00000047;place-items:center;display:grid;position:fixed;inset:0}.result-dialog{overscroll-behavior:contain;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:18px;grid-template-columns:1fr 1fr;gap:10px;width:min(400px,100%);max-height:100%;padding:22px;display:grid;overflow-y:auto;box-shadow:0 18px 50px #000000a6}.result-dialog h2,.result-dialog p{grid-column:1/-1;margin:0}.result-score{color:var(--accent-me);font-size:28px;font-weight:800}.result-reason{color:var(--text-muted)}.result-action-title{text-align:left;grid-column:1/-1;margin:0;font-size:14px;font-weight:700}.result-card-actions{border:1px solid color-mix(in srgb, var(--accent-me) 55%, var(--border));border-radius:12px;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;display:grid}.result-navigation{border-top:1px solid var(--border);grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:6px;padding-top:16px;display:grid}.result-retry,.result-home{grid-column:1/-1}.versus-result-score{font-size:22px}@media (orientation:landscape) and (height<=600px){.result-overlay{place-items:center}.result-dialog{width:min(360px,100%)}.game-view{justify-content:center;height:100%}.game-view .hud,.game-view .vs-scorebar{flex:none;justify-content:space-between;align-self:stretch;gap:8px;padding:6px 10px 4px;font-size:20px}.game-view .hud{padding-right:72px}.solo-game-view,.versus-game-view{grid-template-rows:minmax(0,1fr);grid-template-columns:clamp(78px,13vw,92px) minmax(0,1fr);align-items:stretch;gap:0;display:grid}.solo-game-view .hud,.versus-game-view .vs-scorebar{flex-direction:column;grid-area:1/1;justify-content:flex-start;align-self:start;align-items:flex-start;gap:4px;padding:8px 4px 4px 8px;font-size:18px}.solo-account-status{text-align:center;flex-direction:column;grid-area:1/1;place-self:center stretch;max-width:none;padding:0 8px;position:static}.solo-account-status .ui-button{width:100%}.versus-game-view .vs-scorebar>span{overflow-wrap:anywhere;max-width:100%}.game-controls .game-quit{padding:6px 10px}.solo-game-view .all-clear-stage{grid-area:1/2;align-items:stretch;min-width:0}.solo-game-view .board-wrap,.versus-game-view .board-wrap{grid-area:1/2;width:100%;min-width:0;padding:8px 8px 8px 0}.solo-game-view .game-controls,.versus-game-view .game-controls{flex-direction:column;grid-area:1/1;place-self:end start;align-items:flex-start;margin:0 0 8px 8px;position:static}}.app>.orientation-content{flex-direction:column;flex:auto;min-height:0;display:flex}.orientation-content{width:100%;height:100%}.rotate-hint{z-index:100;background:var(--bg);color:var(--text);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:20px;display:flex;position:fixed;inset:0}.home-controls{top:calc(env(safe-area-inset-top) + 10px);right:calc(env(safe-area-inset-right) + 10px);z-index:10;align-items:center;gap:8px;display:flex;position:fixed}.settings-button{top:calc(env(safe-area-inset-top) + 10px);right:calc(env(safe-area-inset-right) + 10px);z-index:10;width:42px;min-width:42px;height:42px;min-height:42px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:999px;place-items:center;padding:0;font-size:14px;font-weight:700;line-height:0;display:grid;position:fixed}.control-icon{width:22px;height:22px;display:block}.home-controls .settings-button{position:static}.sound-control{align-items:center;gap:12px;width:min(240px,100%);min-height:32px;display:flex}.settings-overlay{z-index:80;background:var(--modal-backdrop);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.settings-dialog{width:min(520px,100%);color:var(--text);background:var(--surface);border:1px solid var(--border);box-shadow:var(--modal-shadow);border-radius:20px;gap:20px;padding:24px;display:grid}.settings-heading,.settings-row{justify-content:space-between;align-items:center;gap:20px;display:flex}.account-dialog{overscroll-behavior:contain;text-align:left;max-height:calc(100dvh - 40px);font-size:15px;overflow-y:auto}.account-heading-copy{min-width:0}.account-close{flex:none}.account-dialog.account-dialog--entry{gap:24px;width:min(450px,100%);padding:24px}.account-dialog--entry .settings-heading{align-items:flex-start;gap:8px}.account-dialog--entry h2{letter-spacing:-.025em;font-size:22px;line-height:1.4}.account-dialog--entry .account-entry-intro{color:var(--text-muted);margin-top:8px;font-size:14px}.account-dialog--entry .account-login{gap:20px}.account-dialog--entry .account-dialog-actions>.ui-button{width:100%}.account-entry-notice{color:var(--text-muted);text-align:center;text-wrap:pretty;font-size:12px}.account-entry-notice a{color:inherit;text-underline-offset:3px}.account-dialog p{margin:0;line-height:1.6}.account-dialog form,.account-login,.account-deletion{gap:12px;display:grid}.account-dialog input:not([type=checkbox]){border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:8px;padding:10px 12px}.account-dialog input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--primary);flex:0 0 18px;margin:0;padding:0}.account-checkbox-row{cursor:pointer;align-items:center;gap:10px;min-height:44px;line-height:1.5;display:flex}.account-login{grid-template-columns:minmax(0,1fr);min-width:0}.google-auth-button{justify-content:center;justify-self:center;width:100%;min-width:0;max-width:400px;min-height:44px;display:flex}.account-profile{border:1px solid var(--border);background:var(--surface);overflow-wrap:anywhere;border-radius:12px;gap:4px;padding:16px;display:grid}.account-profile-name{font-size:18px;font-weight:700}.account-profile p+p{color:var(--text-muted);font-size:13px}.account-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;min-width:0;display:flex}.account-management{border-top:1px solid var(--border);padding-top:16px}.account-onboarding,.account-signup{gap:16px;display:grid}.account-consent-group{border:1px solid var(--border);border-radius:12px;min-width:0;margin:0;padding:12px}.account-consent-group legend{padding-inline:4px;font-weight:600}.account-required{color:var(--text-muted);white-space:nowrap;margin-left:auto;font-size:12px}.account-consent-details{color:var(--text-muted);overflow-wrap:anywhere;font-size:13px;line-height:1.6}.account-consent-details h3{color:var(--text);margin:0 0 8px;font-size:13px}.account-consent-details dl{grid-template-columns:max-content 1fr;gap:6px 12px;margin:0 0 10px;display:grid}.account-consent-details dd{min-width:0;margin:0}.account-helper,.account-management-heading{color:var(--text-muted);font-size:13px}.account-management-heading{border-top:1px solid var(--border);margin:4px 0 0;padding-top:16px;font-weight:600}.settings-heading h2,.settings-row p{margin:0}.settings-close{min-height:36px;color:var(--text-muted);border:1px solid var(--border);background:0 0;padding:6px 12px}.settings-row{border-top:1px solid var(--border);padding-top:18px}.settings-row p{color:var(--text-muted);margin-top:4px;font-size:13px}.sound-icon{flex:none}.sound-volume{border-radius:999px;flex:1;align-items:center;min-width:0;display:flex}.sound-volume input{appearance:none;cursor:pointer;background:0 0;border:0;width:100%;min-height:32px;margin:0;padding:0 16px}.sound-volume input::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--primary) 0 var(--range-value), var(--surface-2) var(--range-value) 100%);border:0;border-radius:999px;width:100%;height:4px}.sound-volume input::-webkit-slider-thumb{appearance:none;background:var(--primary);border:0;border-radius:50%;width:18px;height:18px;margin-top:-7px}.sound-volume input::-moz-range-track{background:var(--surface-2);border:0;border-radius:999px;width:100%;height:4px}.sound-volume input::-moz-range-progress{background:var(--primary);border-radius:999px;height:4px}.sound-volume input::-moz-range-thumb{background:var(--primary);border:0;border-radius:50%;width:18px;height:18px}.sound-volume input:focus-visible{outline:none}.sound-volume input:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px color-mix(in srgb, var(--selected-outline) 45%, transparent)}.sound-volume input:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px color-mix(in srgb, var(--selected-outline) 45%, transparent)}@media (width<=420px){.settings-row{flex-direction:column;align-items:stretch}.ui-segmented{align-self:flex-start}}@media (orientation:landscape) and (height<=600px) and (pointer:coarse){.settings-overlay{padding:8px}.settings-dialog{max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));gap:8px;padding:12px;overflow-y:auto}.settings-heading,.settings-row{gap:8px}.settings-row{padding-top:8px}.settings-row p{display:none}}@media (prefers-reduced-motion:reduce){body,.time-bar-fill{transition:none}}.result-image-preview{grid-column:1/-1}.result-image-preview summary{cursor:pointer}.result-image-preview img{width:min(100%,240px);height:auto;margin:10px auto;display:block}button{min-height:44px;font:inherit;color:var(--primary-text);background:var(--primary);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:10px;padding:10px 16px;transition:transform .1s,filter .14s,box-shadow .14s}@media (hover:hover) and (pointer:fine){button:not(:disabled):hover{filter:brightness(1.12);box-shadow:0 5px 14px color-mix(in srgb, var(--bg) 55%, transparent);transform:translateY(-1px)}}button:not(:disabled):active{filter:brightness(.9);box-shadow:none;transform:translateY(1px)scale(.98)}button:focus-visible{outline:3px solid var(--selected-outline);outline-offset:3px}button:disabled{opacity:.5;cursor:not-allowed}.ui-button--secondary{color:var(--text);background:var(--surface);border:1px solid var(--border)}.ui-button{--button-height:44px;border-style:solid;border-width:1px;justify-content:center;align-items:center;gap:8px;font-weight:700;line-height:1.25;display:inline-flex}.ui-button--primary{color:var(--primary-text);background:var(--primary);border-color:#0000}.ui-button--md{--button-height:44px;min-height:var(--button-height);padding:10px 16px;font-size:14px}.ui-button--lg{--button-height:48px;min-height:var(--button-height);padding:12px 16px;font-size:16px}.ui-button-icon{flex:none;width:20px;height:20px}.ui-button--danger{color:#fff;background:var(--danger);border-color:#0000}.ui-icon-button{min-width:var(--button-height);place-items:center;padding:0;line-height:0;display:grid}.ui-segmented{background:var(--surface-2);border-radius:10px;padding:3px;display:flex}.ui-segmented button{min-height:36px;color:var(--text-muted);background:0 0;border:0;border-radius:8px;padding:6px 10px;font-size:13px}.ui-segmented button[aria-pressed=true]{color:var(--primary-text);background:var(--primary)}@media (prefers-reduced-motion:reduce){button{transition:none}}
