:root{--bg-primary:#f3f0e7;--bg-accent:#e8eef7;--surface:#ffffffe6;--surface-strong:#fff;--surface-soft:#f8fafc;--surface-muted:#eef2f7;--border:#94a3b847;--border-strong:#0f172a;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--accent:#2563eb;--accent-soft:#dbeafe;--accent-soft-strong:#bfdbfe;--highlight:#e8f1ff;--highlight-value:#60a5fa80;--same-number-bg:#3b82f652;--same-number-ring:#2563ebe0;--same-number-text:#1d4ed8;--same-number-icon-glow:#3b82f647;--related-bg:#93c5fd33;--conflict-bg:#fca5a5f5;--error-bg:#fecacaeb;--error-text:#dc2626;--given-bg:#e2e8f0;--player-entry:#1d4ed8;--danger:#dc2626;--shadow:0 20px 45px #0f172a14;color:var(--text-primary);background:radial-gradient(circle at top, var(--bg-primary) 0%, #f7f4ee 38%, var(--bg-accent) 100%);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}:root[data-theme=dark]{--bg-primary:#0f172a;--bg-accent:#111827;--surface:#0f172ae6;--surface-strong:#111827;--surface-soft:#172033;--surface-muted:#1f2937;--border:#94a3b838;--border-strong:#cbd5e1;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--accent:#60a5fa;--accent-soft:#1d4ed8;--accent-soft-strong:#2563eb;--highlight:#b4cdff1a;--highlight-value:#60a5fa8a;--same-number-bg:#60a5fa57;--same-number-ring:#bfdbfef0;--same-number-text:#dbeafe;--same-number-icon-glow:#bfdbfe57;--related-bg:#7db2ff2e;--conflict-bg:#991b1bc7;--error-bg:#7f1d1db8;--error-text:#ff6b6b;--given-bg:#1f2937;--player-entry:#93c5fd;--danger:#f87171;--shadow:0 24px 48px #02061759}*{box-sizing:border-box}html,body,#root{width:100%;height:auto;min-height:100%}html{-webkit-overflow-scrolling:touch;height:auto;min-height:100%;overflow:hidden scroll}body{min-width:320px;height:auto;min-height:100dvh;color:var(--text-primary);margin:0;overflow:hidden visible}button,input,textarea,select{font:inherit}a{color:inherit}#root{width:100%;height:auto;min-height:100dvh;overflow:visible}.app-shell{width:100%;max-width:1180px;height:auto;min-height:auto;padding:14px 14px calc(32px + env(safe-area-inset-bottom));margin:0 auto;overflow:hidden visible}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:22px}.eyebrow{color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase;margin:0 0 6px;font-size:.7rem;font-weight:800}h1,h2{color:var(--text-primary);letter-spacing:-.035em;margin:0}h1{font-size:clamp(1.9rem,6.4vw,3.8rem);line-height:.98}h2{font-size:clamp(1.08rem,3.7vw,1.5rem);line-height:1.1}.subtitle,.card-copy,.rule-note,.modal-copy,.entry-card p,.section-copy{color:var(--text-secondary)}.subtitle{max-width:620px;margin:4px 0 0;font-size:clamp(.94rem,2.2vw,1.08rem);line-height:1.35}.panel-label,.stat-label{color:var(--text-muted);font-size:.82rem;font-weight:750}.primary-button,.secondary-button,.neutral-button,.numpad-button{cursor:pointer;text-align:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;border-radius:14px;justify-content:center;align-items:center;min-height:38px;font-size:1rem;font-weight:700;transition:transform .14s,background-color .14s,color .14s,box-shadow .14s;display:inline-flex}.primary-button:hover,.secondary-button:hover,.neutral-button:hover,.numpad-button:hover{transform:translateY(-1px)}.primary-button{background:var(--accent);color:#fff;padding:10px 14px;box-shadow:0 12px 22px #2563eb33}.secondary-button,.neutral-button{padding:10px 14px}.secondary-button{background:var(--surface-soft);border:1px solid var(--border);color:var(--accent)}.neutral-button{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-primary)}.secondary-button.active,.neutral-button.active{background:var(--accent-soft);color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--accent)}.numpad-button.active{color:var(--text-primary);background:#5b8def33;box-shadow:inset 0 0 0 2px #5b8defb3,0 6px 14px #5b8def24}:root[data-theme=dark] .numpad-button.active{color:var(--text-primary);background:#7db2ff38;box-shadow:inset 0 0 0 2px #7db2ffd1,0 6px 16px #60a5fa2e}.wide-button{width:100%}.home-shell{height:auto;min-height:auto;padding-bottom:calc(32px + env(safe-area-inset-bottom));flex-direction:column;justify-content:flex-start;gap:10px;display:flex;overflow:hidden visible}.home-hero{padding:2px 2px 0}.home-entry-list{gap:8px;display:grid}.entry-card{justify-content:space-between;align-items:center;gap:10px;min-height:88px;padding:12px 14px;display:flex}.entry-card-featured{background:linear-gradient(135deg, #2563eb1a, transparent 58%), var(--surface)}.entry-card-strong{background:linear-gradient(135deg, #60a5fa12, transparent 54%), var(--surface)}.entry-card-soft{box-shadow:0 12px 28px #0f172a0d}.entry-card h2{font-size:clamp(1.04rem,3.5vw,1.28rem)}.entry-card p{margin:4px 0 0;font-size:.88rem;line-height:1.28}.entry-button{flex-shrink:0;width:100%;min-width:0}.detail-shell{height:auto;min-height:auto;padding-top:10px;padding-bottom:calc(22px + env(safe-area-inset-bottom));align-content:start;gap:12px;display:grid;overflow-y:visible}.back-button{border-radius:999px;width:fit-content;min-height:36px;padding:8px 14px;font-size:.9rem;font-weight:700}.detail-card{gap:18px;padding:20px;display:grid}.detail-heading{gap:5px;display:grid}.detail-info,.info-stack,.best-times{gap:8px;display:grid}.info-row,.best-time-row{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:14px;display:flex}.info-row strong,.best-time-row strong{color:var(--text-primary);text-align:right}.detail-section{gap:10px;display:grid}.detail-section h2{font-size:1.08rem}.section-copy{margin:5px 0 0}.skin-detail-card,.skin-section,.skin-option-list,.skin-actions{display:grid}.skin-detail-card{gap:20px}.skin-option-list{gap:10px}.skin-option{gap:12px;padding:16px;display:grid}.skin-option h3{color:var(--text-primary);margin:0;font-size:1rem}.skin-option p{color:var(--text-secondary);margin:4px 0 0;font-size:.9rem;line-height:1.35}.skin-option.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft-strong)}.skin-actions{gap:8px}.split-section{align-items:center}.settings-detail-card{gap:22px}.difficulty-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.rule-note{margin:0;font-size:.92rem}.game-shell{max-width:1100px;height:auto;min-height:auto;padding:6px 10px calc(24px + env(safe-area-inset-bottom));overflow:hidden visible}.game-layout,.game-main,.game-sidebar{align-content:start;gap:6px;min-width:0;display:grid}.game-status{grid-template-columns:auto 1fr;align-items:center;gap:1px 8px;padding:0 0 6px;display:grid}.game-status strong,.game-status span{min-width:0}.game-status strong{color:var(--text-primary);font-size:.94rem;line-height:1.1}.game-status span{color:var(--text-secondary);grid-column:2;font-size:.82rem;font-weight:700;line-height:1.15}.compact-button{border-radius:999px;min-height:32px;padding:6px 10px;font-size:.82rem}.board-card{width:100%;margin-top:0;padding:0;overflow:visible}.board-frame{aspect-ratio:1;box-sizing:border-box;width:min(100vw - 24px,620px);max-width:100%;margin:0 auto}.board-frame.board-skin-classic{box-shadow:none;background:0 0;border-radius:18px;padding:0}.playable-board{box-sizing:border-box;width:100%;height:100%;display:flex}.playable-board.playable-board-classic{background:var(--surface-strong);border-radius:18px;overflow:hidden}.board-frame.board-skin-wooden{background:url(./skins/boards/wooden-paper-board-plain.png) 50%/100% 100% no-repeat;border-radius:0;padding:4%;position:relative;box-shadow:0 18px 34px #0f172a1f}.playable-board.playable-board-wooden{background:#fff6e56b;border-radius:4px;overflow:hidden}:root[data-theme=dark] .board-frame.board-skin-wooden{box-shadow:0 18px 34px #02061761}:root[data-theme=dark] .playable-board.playable-board-wooden{background:#fff6e557}.board{aspect-ratio:1;border:2px solid var(--border-strong);background:var(--surface-strong);border-radius:14px;grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);width:100%;max-width:100%;height:100%;margin:0 auto;display:grid;overflow:hidden}.board-frame.board-skin-classic .board{background:var(--surface-strong);border-color:var(--border-strong);border-radius:18px;margin:0}.board-frame.board-skin-wooden .board{background:#fffaf080;border-color:#463c2d6b;border-radius:4px;width:100%;max-width:none;margin:0}.board-frame.board-skin-wooden .cell{background-color:#fffaf080;border-color:#463c2d6b}.board-frame.board-skin-wooden .cell:hover{background-color:#fff6e994}.board-frame.board-skin-wooden .cell.given:not(.related-cell):not(.same-number-cell):not(.conflict-cell):not(.error-cell):not(.selected-cell){color:#4b3625;background-color:#e6d8c294}.board-frame.board-skin-wooden .cell.same-number-cell:not(.error-cell):not(.conflict-cell):not(.selected-cell){background-color:#5695ff47;box-shadow:inset 0 0 0 2px #2563ebd1,inset 0 0 18px #ffffff29}.board-frame.board-skin-wooden .cell.same-number-cell .cell-value,.board-frame.board-skin-wooden .cell.same-number-cell .cell-value-text,.board-frame.board-skin-wooden .cell.same-number-cell .digit-fallback{color:#1e40af}.board-frame.board-skin-wooden .cell.same-number-cell .cell-icon,.board-frame.board-skin-wooden .cell.same-number-cell .number-icon{filter:drop-shadow(0 0 10px #3b82f647)brightness(1.08)saturate(1.08)}.board-frame.board-skin-wooden .cell.player-entry:not(.related-cell):not(.same-number-cell):not(.conflict-cell):not(.error-cell):not(.selected-cell){background-color:#fffaf075}.board-frame.board-skin-wooden .cell.box-edge-right{border-right-color:#141414e0}.board-frame.board-skin-wooden .cell.box-edge-bottom{border-bottom-color:#141414e0}.board-frame.board-skin-wooden img{opacity:1}:root[data-theme=dark] .board-frame.board-skin-wooden .board{background:#fffaf057;border-color:#463c2d6b}:root[data-theme=dark] .board-frame.board-skin-wooden .cell{background-color:#fffaf070;border-color:#463c2d6b}:root[data-theme=dark] .board-frame.board-skin-wooden .cell:hover{background-color:#fff6e98f}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.given:not(.related-cell):not(.same-number-cell):not(.conflict-cell):not(.error-cell):not(.selected-cell){color:#3f2d1d;background-color:#e6d8c299}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.same-number-cell:not(.error-cell):not(.conflict-cell):not(.selected-cell){background-color:#60a5fa57;box-shadow:inset 0 0 0 2px #bfdbfee6,inset 0 0 20px #bfdbfe29}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.same-number-cell .cell-value,:root[data-theme=dark] .board-frame.board-skin-wooden .cell.same-number-cell .cell-value-text,:root[data-theme=dark] .board-frame.board-skin-wooden .cell.same-number-cell .digit-fallback{color:#eff6ff}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.same-number-cell .cell-icon,:root[data-theme=dark] .board-frame.board-skin-wooden .cell.same-number-cell .number-icon{filter:drop-shadow(0 0 12px #bfdbfe57)brightness(1.14)saturate(1.14)}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.player-entry:not(.related-cell):not(.same-number-cell):not(.conflict-cell):not(.error-cell):not(.selected-cell){background-color:#fffaf06b}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.box-edge-right{border-right-color:#141414eb}:root[data-theme=dark] .board-frame.board-skin-wooden .cell.box-edge-bottom{border-bottom-color:#141414eb}.cell{border:1px solid var(--border);background:var(--surface-strong);box-sizing:border-box;min-width:0;min-height:0;color:var(--text-primary);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:0;justify-content:center;align-items:center;padding:0;font-size:clamp(18px,5vw,32px);font-weight:700;line-height:1;transition:background-color .15s,color .15s;display:flex;position:relative;overflow:hidden}.cell>span,.numpad-button>span{justify-content:center;align-items:center;width:100%;height:100%;display:inline-flex}.cell-value{width:100%;height:100%;color:inherit;justify-content:center;align-items:center;line-height:1;display:inline-flex;position:relative}.cell-value-text{font-size:clamp(22px,6.2vw,36px);font-weight:800}.cell-value-icon{font-size:0}.digit-fallback{width:100%;height:100%;color:inherit;justify-content:center;align-items:center;font-size:clamp(22px,6.2vw,36px);font-weight:800;line-height:1;display:none}.cell-icon,.number-icon{object-fit:contain;width:76%;height:76%;display:block}.numpad-number-icon{width:68%;height:68%}.numpad-number-value{justify-content:center;align-items:center;width:100%;height:100%;font-size:clamp(1.08rem,4.8vw,1.35rem);font-weight:700;line-height:1;display:inline-flex}.cell:hover{background:var(--surface-soft)}.cell.related-cell{background:var(--related-bg)}.cell.same-number-cell{background:var(--same-number-bg);box-shadow:inset 0 0 0 2px var(--same-number-ring), inset 0 0 22px #ffffff24;z-index:2}.cell.same-number-cell .cell-value,.cell.same-number-cell .cell-value-text,.cell.same-number-cell .digit-fallback{color:var(--same-number-text);font-weight:900}.cell.same-number-cell .cell-icon,.cell.same-number-cell .number-icon{filter:drop-shadow(0 0 10px var(--same-number-icon-glow)) brightness(1.06) saturate(1.08);transform:scale(1.05)}.cell.selected-cell{background:var(--highlight-value);z-index:3;box-shadow:inset 0 0 0 3px #2563ebf5,inset 0 0 26px #dbeafe38}.cell.selected-cell.same-number-cell{background:#60a5fa94;box-shadow:inset 0 0 0 3px #2563ebfa,inset 0 0 30px #dbeafe38}:root[data-theme=dark] .cell.related-cell{background:var(--related-bg)}:root[data-theme=dark] .cell.same-number-cell{background:var(--same-number-bg);box-shadow:inset 0 0 0 2px var(--same-number-ring), inset 0 0 26px #bfdbfe29}:root[data-theme=dark] .cell.same-number-cell .cell-value,:root[data-theme=dark] .cell.same-number-cell .cell-value-text,:root[data-theme=dark] .cell.same-number-cell .digit-fallback{color:var(--same-number-text)}:root[data-theme=dark] .cell.same-number-cell .cell-icon,:root[data-theme=dark] .cell.same-number-cell .number-icon{filter:drop-shadow(0 0 12px var(--same-number-icon-glow)) brightness(1.14) saturate(1.14)}:root[data-theme=dark] .cell.selected-cell{background:var(--highlight-value);z-index:3;box-shadow:inset 0 0 0 3px #bfdbfefa,inset 0 0 26px #bfdbfe2e}:root[data-theme=dark] .cell.selected-cell.same-number-cell{background:#60a5fa99;box-shadow:inset 0 0 0 3px #bfdbfefc,inset 0 0 30px #bfdbfe33}.board-frame.board-skin-only .cell.related-cell{background:#3b82f61f!important}.board-frame.board-skin-only .cell.same-number-cell{background:#3b82f64d!important;box-shadow:inset 0 0 0 2px #2563ebdb,inset 0 0 20px #ffffff29!important}.board-frame.board-skin-only .cell.same-number-cell .cell-value,.board-frame.board-skin-only .cell.same-number-cell .cell-value-text,.board-frame.board-skin-only .cell.same-number-cell .digit-fallback{color:#1e40af}.board-frame.board-skin-only .cell.same-number-cell .cell-icon,.board-frame.board-skin-only .cell.same-number-cell .number-icon{filter:drop-shadow(0 0 10px #3b82f647)brightness(1.08)saturate(1.08)}.board-frame.board-skin-only .cell.selected-cell{background:#3b82f65c!important;box-shadow:inset 0 0 0 3px #2563ebf5,inset 0 0 24px #ffffff29!important}.board-frame.board-skin-only .cell.selected-cell.same-number-cell{background:#3b82f66b!important;box-shadow:inset 0 0 0 3px #2563ebfa,inset 0 0 28px #ffffff29!important}.board-frame.board-skin-only .cell.error-cell,.board-frame.board-skin-only .cell.error-cell.related-cell,.board-frame.board-skin-only .cell.error-cell.same-number-cell,.board-frame.board-skin-only .cell.error-cell.selected-cell,.board-frame.board-skin-only .cell.conflict-cell,.board-frame.board-skin-only .cell.conflict-cell.related-cell,.board-frame.board-skin-only .cell.conflict-cell.same-number-cell,.board-frame.board-skin-only .cell.conflict-cell.selected-cell{color:#b91c1c!important;background:#f871713d!important;box-shadow:inset 0 0 0 2px #ef4444eb!important}.board-frame.board-skin-only .cell.error-cell .cell-value,.board-frame.board-skin-only .cell.conflict-cell .cell-value,.board-frame.board-skin-only .cell.error-cell .digit-fallback,.board-frame.board-skin-only .cell.conflict-cell .digit-fallback{color:#b91c1c!important}:root[data-theme=dark] .board-frame.board-skin-only .cell.related-cell{background:#60a5fa1f!important}:root[data-theme=dark] .board-frame.board-skin-only .cell.same-number-cell{background:#60a5fa52!important;box-shadow:inset 0 0 0 2px #bfdbfeeb,inset 0 0 24px #bfdbfe29!important}:root[data-theme=dark] .board-frame.board-skin-only .cell.same-number-cell .cell-value,:root[data-theme=dark] .board-frame.board-skin-only .cell.same-number-cell .cell-value-text,:root[data-theme=dark] .board-frame.board-skin-only .cell.same-number-cell .digit-fallback{color:#eff6ff}:root[data-theme=dark] .board-frame.board-skin-only .cell.same-number-cell .cell-icon,:root[data-theme=dark] .board-frame.board-skin-only .cell.same-number-cell .number-icon{filter:drop-shadow(0 0 12px #bfdbfe57)brightness(1.14)saturate(1.14)}:root[data-theme=dark] .board-frame.board-skin-only .cell.selected-cell{background:#60a5fa6b!important;box-shadow:inset 0 0 0 3px #bfdbfefa,inset 0 0 26px #bfdbfe2e!important}:root[data-theme=dark] .board-frame.board-skin-only .cell.selected-cell.same-number-cell{background:#60a5fa7a!important;box-shadow:inset 0 0 0 3px #bfdbfefc,inset 0 0 28px #bfdbfe2e!important}:root[data-theme=dark] .board-frame.board-skin-only .cell.error-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.error-cell.related-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.error-cell.same-number-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.error-cell.selected-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.conflict-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.conflict-cell.related-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.conflict-cell.same-number-cell,:root[data-theme=dark] .board-frame.board-skin-only .cell.conflict-cell.selected-cell{color:#ffe4e6!important;background:#f8717147!important;box-shadow:inset 0 0 0 2px #fca5a5f2!important}:root[data-theme=dark] .board-frame.board-skin-only .cell.error-cell .cell-value,:root[data-theme=dark] .board-frame.board-skin-only .cell.conflict-cell .cell-value,:root[data-theme=dark] .board-frame.board-skin-only .cell.error-cell .digit-fallback,:root[data-theme=dark] .board-frame.board-skin-only .cell.conflict-cell .digit-fallback{color:#ffe4e6!important}.cell.given{color:var(--text-primary);font-weight:850}.cell.given:not(.related-cell):not(.same-number-cell):not(.conflict-cell):not(.error-cell):not(.selected-cell){background:var(--given-bg)}.cell.player-entry{color:var(--player-entry);background-color:#93c5fd42;box-shadow:inset 0 0 0 2px #2563ebd9}.cell.mistake,.cell.error-cell,.cell.error-cell.related-cell,.cell.error-cell.same-number-cell,.cell.error-cell.selected-cell,.cell.error-cell.conflict-cell{z-index:5;background:var(--error-bg)!important;color:var(--error-text)!important;box-shadow:inset 0 0 0 2px #ef4444e6!important}.cell.conflict-cell,.cell.conflict-cell.related-cell,.cell.conflict-cell.same-number-cell,.cell.conflict-cell.selected-cell{z-index:6;animation:.65s ease-out conflict-pulse;background:var(--conflict-bg)!important;color:var(--error-text)!important;box-shadow:inset 0 0 0 2px #b91c1cf5,0 0 0 1px #b91c1c1f!important}.cell.error-cell .cell-value,.cell.conflict-cell .cell-value,.cell.error-cell .digit-fallback,.cell.conflict-cell .digit-fallback,.cell.error-cell,.cell.conflict-cell{font-weight:800;color:var(--error-text)!important}.cell.error-cell img,.cell.conflict-cell img{filter:none}:root[data-theme=dark] .cell.mistake,:root[data-theme=dark] .cell.error-cell,:root[data-theme=dark] .cell.error-cell.related-cell,:root[data-theme=dark] .cell.error-cell.same-number-cell,:root[data-theme=dark] .cell.error-cell.selected-cell,:root[data-theme=dark] .cell.error-cell.conflict-cell{z-index:5;background:var(--error-bg)!important;color:var(--error-text)!important;box-shadow:inset 0 0 0 2px #f87171f2!important}:root[data-theme=dark] .cell.conflict-cell,:root[data-theme=dark] .cell.conflict-cell.related-cell,:root[data-theme=dark] .cell.conflict-cell.same-number-cell,:root[data-theme=dark] .cell.conflict-cell.selected-cell{z-index:6;background:var(--conflict-bg)!important;color:var(--error-text)!important;box-shadow:inset 0 0 0 2px #fca5a5f2,0 0 0 1px #fca5a524!important}:root[data-theme=dark] .cell.error-cell .cell-value,:root[data-theme=dark] .cell.conflict-cell .cell-value,:root[data-theme=dark] .cell.error-cell .digit-fallback,:root[data-theme=dark] .cell.conflict-cell .digit-fallback,:root[data-theme=dark] .cell.error-cell,:root[data-theme=dark] .cell.conflict-cell{font-weight:800;color:var(--error-text)!important}.cell.box-edge-right{border-right:2px solid var(--border-strong)}.cell.box-edge-bottom{border-bottom:2px solid var(--border-strong)}.cell:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,.neutral-button:focus-visible,.numpad-button:focus-visible{z-index:1;outline:3px solid var(--accent);outline-offset:-3px}.notes-grid{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);place-items:center;gap:1px;width:100%;height:100%;padding:3px;display:grid}.note-value{color:var(--text-muted);font-size:clamp(.42rem,1.9vw,.72rem);font-weight:650;line-height:1}.mobile-controls{display:block}.desktop-controls{display:none}.game-controls{gap:6px;margin-top:2px;padding:0;display:grid}.numpad{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:0;display:grid}.numpad-button{background:var(--surface-soft);height:40px;min-height:40px;color:var(--text-primary);box-shadow:inset 0 0 0 1px var(--border);font-size:clamp(1.08rem,4.8vw,1.35rem)}.clear-button{width:100%;height:38px;min-height:38px}.action-grid{gap:6px;display:grid}.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}@keyframes feedback-shake-pulse{0%{transform:translate(0);box-shadow:0 0 #ef444400}20%{transform:translate(-2px);box-shadow:0 0 0 2px #ef444438}40%{transform:translate(2px);box-shadow:0 0 0 3px #ef44442e}60%{transform:translate(-1px)}80%{transform:translate(1px)}to{transform:translate(0);box-shadow:0 0 #ef444400}}.message-box{border:1px solid var(--border);background:var(--surface-soft);min-height:36px;color:var(--text-secondary);border-radius:14px;margin-top:2px;padding:8px 10px;font-size:.9rem;font-weight:650;line-height:1.25}.feedback-message.is-neutral{color:var(--text-secondary)}.feedback-message.is-success{color:#1e3a8a;background:#eff6fff5;border:1px solid #60a5fa52}.feedback-message.is-error{color:#7f1d1d;background:#fef2f2f5;border:1px solid #f871716b;animation:.42s ease-out feedback-shake-pulse}:root[data-theme=dark] .feedback-message.is-success{color:#dbeafe;background:#1e40af47;border:1px solid #60a5fa6b}:root[data-theme=dark] .feedback-message.is-error{color:#fecaca;background:#7f1d1d61;border:1px solid #f8717180}@media (width>=768px){.cell-value-text,.digit-fallback{font-size:clamp(24px,2.4vw,38px)}}.modal-backdrop{z-index:20;background:#0f172a75;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.completion-modal{width:min(100%,540px);padding:24px;animation:.18s ease-out modal-in;position:relative;overflow:hidden}.completion-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.stat-card{border:1px solid var(--border);background:var(--surface-soft);border-radius:16px;gap:4px;padding:10px;display:grid}.stat-card strong{color:var(--text-primary)}.best-time-badge{background:var(--accent-soft);color:var(--text-primary);border-radius:14px;margin:0 0 16px;padding:11px 13px;font-weight:800}.modal-actions{gap:6px;display:grid}.celebration-burst{opacity:.92;justify-content:center;align-items:center;display:flex;position:absolute;top:18px;right:20px}.celebration-burst span{justify-content:center;align-items:center;font-size:1.5rem;line-height:1;animation:.42s ease-out celebration-pop;display:inline-flex;transform:rotate(10deg)}.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}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes conflict-pulse{0%{box-shadow:inset 0 0 #ef444400}35%{box-shadow:inset 0 0 0 999px #ef44442e}to{box-shadow:inset 0 0 #ef444400}}@keyframes celebration-pop{0%{opacity:0;transform:translateY(-4px)rotate(2deg)scale(.9)}to{opacity:1;transform:translateY(0)rotate(10deg)scale(1)}}@media (width>=760px){.app-shell{padding:22px}.home-entry-list{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-button{width:auto;min-width:150px}.detail-card{max-width:760px;margin:0 auto}.split-section{grid-template-columns:1fr auto}.modal-actions{grid-template-columns:1fr 1fr}}@media (width>=980px){.home-shell{justify-content:center}.home-entry-list{grid-template-columns:repeat(4,minmax(0,1fr))}.entry-card{flex-direction:column;align-items:stretch;min-height:150px}.entry-button{width:100%}.game-shell{padding-top:18px}.game-layout{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start;gap:16px}.game-main{gap:10px}.game-status{grid-template-columns:auto 1fr auto;padding:2px 0 6px}.game-status span{grid-column:auto;justify-self:end}.board{width:100%;max-width:560px}.mobile-controls{display:none}.desktop-controls{display:block}.game-sidebar{gap:12px;position:sticky;top:18px}.game-controls{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:22px;gap:10px;padding:14px}.numpad{gap:8px}.numpad-button{height:44px;min-height:44px}}@media (width<=768px){.game-shell{min-height:auto;padding:4px 12px calc(48px + env(safe-area-inset-bottom));scroll-padding-bottom:calc(48px + env(safe-area-inset-bottom));overflow:hidden visible}.game-layout,.game-main{gap:5px}.game-main{padding-bottom:calc(56px + env(safe-area-inset-bottom))}.game-status{gap:1px 8px;padding:0 0 6px}.game-status strong{font-size:.88rem;line-height:1.12}.game-status span{font-size:.76rem;line-height:1.12}.back-button{height:34px;min-height:34px;padding:6px 12px;font-size:.8rem}.compact-button{height:32px;min-height:32px;padding:4px 9px;font-size:.78rem}.board{border-radius:12px;width:min(100vw - 24px,620px);max-width:100%}.board-frame.board-skin-wooden{border-radius:0;padding:4%}.board-frame.board-skin-classic,.playable-board.playable-board-classic{border-radius:18px}.board-frame.board-skin-wooden .board{border-radius:4px;width:100%}.cell,.cell-value-text,.digit-fallback{font-size:clamp(18px,5vw,32px)}.mobile-controls{margin-top:2px}.game-controls{gap:6px;padding-bottom:0}.numpad{gap:6px}.numpad-button{border-radius:14px;height:38px;min-height:38px;font-size:1.3rem}.clear-button,.game-controls .secondary-button,.game-controls .primary-button,.game-controls .neutral-button{border-radius:14px;height:38px;min-height:38px;padding:7px 10px;font-size:.95rem}.action-grid{gap:6px}.message-box{border-radius:12px;min-height:34px;margin-top:2px;padding:8px 10px;font-size:.9rem;line-height:1.25}}@media (width<=520px){.home-shell{min-height:auto;padding-top:12px;padding-bottom:calc(48px + env(safe-area-inset-bottom));justify-content:flex-start;overflow-y:visible}.entry-card{flex-direction:column;align-items:stretch;min-height:0;padding:12px 13px}.entry-button{width:100%;min-width:0}}@media (width<=420px){.app-shell{min-height:auto;padding-left:10px;padding-right:10px}.detail-card,.entry-card{border-radius:18px}.detail-card{padding:18px}.game-shell{padding-left:10px;padding-right:10px;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.board{border-radius:12px;width:min(100vw - 20px,620px)}.board-frame.board-skin-wooden{padding:8px}.board-frame.board-skin-classic,.playable-board.playable-board-classic{border-radius:18px}.board-frame.board-skin-wooden .board{width:100%}.game-controls{gap:6px}.numpad-button{height:38px;min-height:38px}.completion-stats{grid-template-columns:1fr}}@media (width<=380px){.game-shell{padding-left:8px;padding-right:8px;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.game-layout,.game-main{gap:5px}.board{width:min(100vw - 16px,620px)}.numpad-button,.primary-button,.secondary-button,.neutral-button{height:38px;min-height:38px}}.splash-screen{background:radial-gradient(circle at top, var(--bg-primary) 0%, #f7f4ee 38%, var(--bg-accent) 100%);z-index:9999;opacity:1;visibility:visible;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .5s cubic-bezier(.4,0,.2,1),visibility .5s;display:flex;position:fixed;top:0;left:0}:root[data-theme=dark] .splash-screen{background:radial-gradient(circle at top,#1e293b 0%,#0f172a 60%,#020617 100%)}.splash-screen.fade-out{opacity:0;visibility:hidden}.splash-content{text-align:center;flex-direction:column;align-items:center;width:90%;max-width:320px;display:flex}.splash-logo-container{justify-content:center;align-items:center;margin-bottom:24px;display:flex;position:relative}.splash-logo-svg{width:80px;height:80px;color:var(--accent);filter:drop-shadow(0 0 15px #2563eb40);animation:2s ease-in-out infinite pulse-glow}:root[data-theme=dark] .splash-logo-svg{filter:drop-shadow(0 0 20px #60a5fa59)}.splash-title{letter-spacing:-.03em;color:var(--text-primary);margin:0 0 8px;font-size:1.8rem;font-weight:800}.splash-subtitle{color:var(--text-secondary);margin:0 0 40px;font-size:.95rem}.splash-progress-container{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.splash-progress-track{background:var(--surface-muted);border-radius:999px;width:100%;height:6px;overflow:hidden;box-shadow:inset 0 1px 2px #0000000d}:root[data-theme=dark] .splash-progress-track{background:var(--surface-soft)}.splash-progress-bar{background:linear-gradient(90deg, var(--accent) 0%, #3b82f6 100%);border-radius:999px;width:0%;height:100%;transition:width .2s ease-out;box-shadow:0 0 8px #2563eb66}.splash-status-text{letter-spacing:.05em;color:var(--text-muted);text-transform:uppercase;min-height:1.2rem;font-size:.8rem;font-weight:700}@keyframes pulse-glow{0%,to{opacity:.95;transform:scale(1)}50%{opacity:1;filter:drop-shadow(0 0 25px #2563eb73);transform:scale(1.05)}}
