html,body,#app,#app *{touch-action:pan-y;overscroll-behavior:none}:root{--text:#dbe3ff;--text-h:#f8f9ff;--text-muted:#aab4d3;--bg:#0f1225;--panel:#0e1128e0;--surface:#1b2043b8;--surface-strong:#10142ce6;--btn-bg:#1c2142f2;--btn-border:#8495c933;--input-bg:#151832db;--accent:#7c6af5;--accent-strong:#5c4af1;--accent-soft:#7c6af540;--shadow:0 20px 45px #080c1e73;--glass-border:#b6c1ec2e;--overlay:#03050fa8;--stats-card-bg:linear-gradient(180deg, #181d3fb3, #0e112885);--stats-divider:#a9b4da29;--stats-icon-color:#bcb4ff;--stats-label-color:var(--text-muted);--stats-value-color:var(--text-h);--utility-btn-bg:#161a378f;--utility-btn-border:#8c9cd02e;--utility-btn-text:var(--text-muted);--utility-btn-icon-color:var(--text-muted);--utility-btn-hover-bg:#252d52b3;--utility-btn-hover-text:var(--text-h);--board-given-bg:#6d7bb51f;--board-given-text:#d8dfff;--board-player-text:var(--text-h);--board-related-bg:#7c6af524;--board-selected-bg:#7c6af542;--board-same-value-bg:#7c6af538;--board-same-value-outline:#7c6af58c;--board-error-bg:#ea789f52;--board-error-text:#f9bfd0;--board-box-line:#b6c0e699;--board-note-text:#d6deffc7;--board-notes-related-bg:#a8b2cd24;--board-notes-selected-bg:#b0bad44d;--board-notes-same-value-bg:#a8b2cd38;--board-notes-outline:#c4cde499;--board-complete-highlight:#06d6a06b;--board-complete-outline:#06d6a0bf;--danger-btn-bg:#67213452;--danger-btn-border:#ea789f52;--danger-btn-text:#f9bfd0;--pad-remaining-text:var(--text-muted);--switch-track-bg:var(--input-bg);--switch-track-border:var(--btn-border);--switch-thumb-bg:var(--text-muted);--switch-thumb-active-bg:var(--text-h);--tutorial-col-bg:#ea789f38;--tutorial-col-border:#ea789fd9;--tutorial-row-bg:#f5be5a38;--tutorial-row-border:#f5be5ae6;--tutorial-box-bg:#36c88238;--tutorial-box-border:#36c882e6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);box-sizing:border-box;margin:0;padding:0;font-family:Segoe UI,system-ui,Roboto,sans-serif;font-size:18px;line-height:1.5}body.theme-light{--text:#25304d;--text-h:#10172a;--text-muted:#73809b;--bg:#eef2ff;--panel:#ffffffd6;--surface:#f5f7fff5;--surface-strong:#fffffffa;--btn-bg:#fffffff0;--btn-border:#7483ad3d;--input-bg:#f0f3fcf5;--accent:#7c6af5;--accent-strong:#5c4af1;--accent-soft:#7c6af52e;--shadow:0 20px 45px #404c7d26;--glass-border:#68769f2e;--overlay:#19223d57;--stats-card-bg:linear-gradient(180deg, #fffffffa, #f4f7fff5);--stats-divider:#7a88b63d;--stats-icon-color:#6c5cf2;--stats-label-color:#6d7894;--stats-value-color:#10172a;--utility-btn-bg:#fffffff0;--utility-btn-border:#7483ad3d;--utility-btn-text:#334056;--utility-btn-icon-color:#5f6c88;--utility-btn-hover-bg:#f1f4fffa;--utility-btn-hover-text:#10172a;--board-given-bg:#6c7caf24;--board-given-text:#5c647d;--board-player-text:#10172a;--board-related-bg:#7c6af51f;--board-selected-bg:#7c6af538;--board-same-value-bg:#7c6af533;--board-same-value-outline:#7c6af580;--board-error-bg:#c2678a47;--board-error-text:#8c3f61;--board-box-line:#64719ab8;--board-note-text:#343e5cd1;--board-notes-related-bg:#606a841f;--board-notes-selected-bg:#606a8442;--board-notes-same-value-bg:#606a8433;--board-notes-outline:#58627c8c;--board-complete-highlight:#05a87e52;--board-complete-outline:#059671b3;--danger-btn-bg:#f4e1e9f0;--danger-btn-border:#c2678a57;--danger-btn-text:#8c3f61;--pad-remaining-text:var(--text-muted);--switch-track-bg:var(--input-bg);--switch-track-border:var(--btn-border);--switch-thumb-bg:var(--text-muted);--switch-thumb-active-bg:var(--text-h);--tutorial-col-bg:#d65c842e;--tutorial-col-border:#c64068d9;--tutorial-row-bg:#d69e2833;--tutorial-row-border:#c48e18e6;--tutorial-box-bg:#1ca86e2e;--tutorial-box-border:#149660e6}html,body{width:100%;height:100%;overflow:hidden}body{background:radial-gradient(circle at top, #6366f12e, transparent 36%), var(--bg);color:var(--text);justify-content:center;align-items:center;margin:0;display:flex}.menu{width:100%;max-width:560px;min-height:100dvh;padding:max(3.5rem, env(safe-area-inset-top)) 1.5rem max(2rem, env(safe-area-inset-bottom));box-sizing:border-box;flex-direction:column;justify-content:flex-start;align-items:center;gap:1.4rem;display:flex}.menu-footer{letter-spacing:.04em;color:#10172a9f;opacity:.55;text-align:center;-webkit-user-select:none;user-select:none;margin-top:auto;padding-top:.5rem;font-size:.78rem;font-weight:500}.title-row{justify-content:center;align-items:center;gap:.85rem;display:flex}.title{letter-spacing:-.03em;color:var(--text-h);text-align:center;text-shadow:0 5px 24px #00000059;margin:0;font-size:3.3rem;font-weight:700}.title-art{color:#7b8cf8a6;justify-content:center;align-items:center;width:3.7rem;height:3.7rem;padding:.35rem;display:inline-flex}.title-art svg{width:100%;height:100%}.stats{width:100%;margin-bottom:1.45rem}.stats-card{background:var(--stats-card-bg);border:1px solid var(--glass-border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:16px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:0;padding:.5rem .35rem;display:grid}.stat-column{flex-direction:column;justify-content:center;align-items:center;gap:.3rem;padding:.35rem .45rem;display:flex;position:relative}.stat-column:not(:last-child):after{content:"";background:var(--stats-divider);width:1px;position:absolute;top:.4rem;bottom:.4rem;right:0}.stat-icon{width:1.55rem;height:1.55rem;color:var(--stats-icon-color);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.stat-icon svg{width:.95rem;height:.95rem}.stat-meta{text-align:center;flex-direction:column;align-items:center;gap:.1rem;min-width:0;display:flex}.stat-label{color:var(--stats-label-color);text-transform:none;letter-spacing:0;font-size:.58rem;line-height:1.25}.stat-value{color:var(--stats-value-color);font-size:.98rem;line-height:1.2}.modal-overlay{background:var(--overlay);padding:max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));opacity:0;pointer-events:none;z-index:20;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:fixed;inset:0}.modal-overlay.is-open{opacity:1;pointer-events:auto}.modal-card{background:var(--panel);border:1px solid var(--glass-border);width:min(420px,100vw - 2rem);max-height:min(85dvh,640px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-radius:20px;padding:1rem;overflow-y:auto}.settings-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.settings-header h2{color:var(--text-h);margin:0;font-size:1.25rem}.modal-close{border:1px solid var(--btn-border);background:var(--input-bg);width:2rem;height:2rem;color:var(--text-h);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;font-size:1.2rem;display:inline-flex}.settings-section{background:var(--surface);border:1px solid var(--glass-border);border-radius:16px;padding:.9rem}.settings-section+.settings-section{margin-top:.85rem}.settings-section-title-row{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.settings-section-label{color:var(--text-h);font-size:.95rem;font-weight:700}.settings-section-hint{color:var(--text-muted);font-size:.7rem}.theme-toggle{background:var(--input-bg);border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;width:100%;padding:.25rem;display:inline-grid}.theme-option{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;padding:.55rem .7rem;font-size:.86rem;font-weight:600;display:inline-flex}.theme-option.is-active{background:var(--accent-soft);color:var(--text-h);border-color:#7c6af580}.sound-toggle-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.sound-toggle-label{color:var(--text);font-size:.86rem;font-weight:600}.sound-switch{border:1px solid var(--switch-track-border);background:var(--switch-track-bg);cursor:pointer;border-radius:999px;flex:none;width:3rem;height:1.6rem;padding:0;transition:background .16s,border-color .16s;position:relative}.sound-switch.is-active{background:var(--accent-soft);border-color:var(--accent)}.sound-switch-thumb{background:var(--switch-thumb-bg);border-radius:50%;width:1.15rem;height:1.15rem;transition:transform .16s,background .16s;position:absolute;top:50%;left:.18rem;transform:translateY(-50%)}.sound-switch.is-active .sound-switch-thumb{background:var(--switch-thumb-active-bg);transform:translate(1.32rem,-50%)}.settings-placeholder{justify-content:center;align-items:center;min-height:3.3rem;display:flex}.settings-placeholder-text{color:var(--text-muted);font-size:.9rem}.help-modal{width:min(480px,100vw - 2rem)}.help-intro{color:var(--text);margin:0 0 .9rem;font-size:.88rem;line-height:1.55}.help-rules{gap:.55rem;display:grid}.help-rule-card{background:var(--surface);border:1px solid var(--glass-border);border-radius:14px;align-items:center;gap:.7rem;padding:.7rem .8rem;display:flex}.help-rule-icon{width:1.65rem;height:1.65rem;color:var(--stats-icon-color);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.help-rule-icon svg{width:1rem;height:1rem}.help-rule-text{color:var(--text);font-size:.83rem;line-height:1.45}.help-illustration{background:var(--surface);border:1px solid var(--glass-border);color:var(--text-h);border-radius:16px;justify-content:center;align-items:center;margin:.9rem 0;padding:.65rem;display:flex}.help-illustration svg{width:100%;max-width:180px;height:auto}.help-tips{background:var(--surface);border:1px solid var(--glass-border);border-radius:14px;padding:.85rem .95rem}.help-tips-title{color:var(--text-h);margin-bottom:.55rem;font-size:.9rem;font-weight:700}.help-tips ul{color:var(--text);margin:0;padding-left:1.1rem;font-size:.78rem;line-height:1.5}.help-header{align-items:center}.help-header-left,.help-header-right{align-items:center;gap:.5rem;display:flex}.help-header h2{font-size:1.1rem}.help-page-indicator{color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:center;min-width:2.6ch;font-size:.82rem;font-weight:700}.help-pages{position:relative}.help-page{display:block}.help-page[hidden]{display:none}.tutorial-grid{aspect-ratio:1;background:var(--panel);border:2px solid var(--board-box-line);pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:8px;grid-template-rows:repeat(9,minmax(0,1fr));grid-template-columns:repeat(9,minmax(0,1fr));width:100%;max-width:300px;margin:.4rem auto .8rem;display:grid;overflow:hidden}.tutorial-grid .cell{cursor:default;border-color:#9eacda2e;font-size:clamp(.7rem,3.4vw,1rem)}.tutorial-grid .cell:nth-child(3n){border-right-width:2px;border-right-color:var(--board-box-line)}.tutorial-grid .cell:nth-child(9n){border-right-width:1px}.tutorial-grid .cell:nth-child(n+19):nth-child(-n+27),.tutorial-grid .cell:nth-child(n+46):nth-child(-n+54),.tutorial-grid .cell:nth-child(n+73):nth-child(-n+81){border-bottom-width:2px;border-bottom-color:var(--board-box-line)}.tutorial-grid .cell.tut-col{background:var(--tutorial-col-bg);box-shadow:inset 0 0 0 2px var(--tutorial-col-border)}.tutorial-grid .cell.tut-row{background:var(--tutorial-row-bg);box-shadow:inset 0 0 0 2px var(--tutorial-row-border)}.tutorial-grid .cell.tut-box{background:var(--tutorial-box-bg);box-shadow:inset 0 0 0 2px var(--tutorial-box-border)}.help-rules-list{gap:.4rem;margin:.2rem 0 .6rem;padding:0;list-style:none;display:grid}.help-rules-list li{color:var(--text);align-items:center;gap:.5rem;font-size:.84rem;line-height:1.4;display:flex}.help-rule-chip{white-space:nowrap;border-radius:999px;padding:.12rem .5rem;font-size:.78rem;font-weight:700}.help-rule-box{color:var(--tutorial-box-border);background:var(--tutorial-box-bg)}.help-rule-row{color:var(--tutorial-row-border);background:var(--tutorial-row-bg)}.help-rule-col{color:var(--tutorial-col-border);background:var(--tutorial-col-bg)}.help-note-text{color:var(--text-muted);margin:0;font-size:.82rem;line-height:1.5}.help-hearts-demo{justify-content:center;margin:.6rem 0;display:flex}.help-hearts-demo .game-hearts{gap:.4rem}.help-hearts-demo .heart{width:1.6rem;height:1.6rem}.help-notes-demo,.help-hint-demo{margin-top:.4rem}.help-demo-label{color:var(--text-h);margin-bottom:.4rem;font-size:.82rem;font-weight:700}.help-note-cell-wrap{pointer-events:none;justify-content:center;display:flex}.help-note-cell{border:1px solid var(--board-box-line);background:var(--panel);cursor:default;border-radius:6px;width:3.8rem;height:3.8rem}.help-buttons-row{justify-content:center;gap:.6rem;display:flex}.help-buttons-row .number-pad-button{width:auto;min-width:3rem;padding:.6rem .9rem}.help-sub-text{color:var(--text);margin:.5rem 0 0;font-size:.8rem;line-height:1.5}.help-nav{margin-top:.9rem}.help-dots{justify-content:center;gap:.5rem;margin-bottom:.7rem;display:flex}.help-dot{background:var(--text-muted);opacity:.4;cursor:pointer;border:none;border-radius:999px;width:.55rem;height:.55rem;padding:0;transition:opacity .2s,transform .2s,background .2s}.help-dot.is-active{background:var(--accent);opacity:1;transform:scale(1.25)}.help-dot:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.help-primary{color:#f8fbff;cursor:pointer;background:linear-gradient(#6b5df0eb,#4f46e5e0);border:none;border-radius:12px;width:100%;padding:.8rem 1rem;font-size:1rem;font-weight:700;transition:background .2s,transform .12s}.help-primary:hover{background:linear-gradient(#7966fffa,#5850f5f0)}.help-primary:active{transform:translateY(1px)}.help-primary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.random-modal{width:min(430px,100vw - 2rem)}.difficulty-list{flex-direction:column;gap:.65rem;display:flex}.difficulty-option{border:1px solid var(--btn-border);background:var(--btn-bg);width:100%;color:var(--text-h);cursor:pointer;text-align:left;border-radius:14px;flex-direction:column;align-items:stretch;gap:.25rem;padding:.9rem .95rem;display:flex}.difficulty-topline{justify-content:space-between;align-items:center;gap:1rem;display:flex}.difficulty-label{font-size:1rem;font-weight:700}.difficulty-subtitle{color:var(--text-muted);font-size:.72rem}.difficulty-indicator{gap:.25rem;display:inline-flex}.difficulty-dot{background:#99a7d659;border-radius:999px;width:.45rem;height:.45rem;display:inline-block}.difficulty-dot.filled{background:var(--accent)}.game-screen{width:100%;max-width:980px;min-height:100dvh;padding:max(1rem, env(safe-area-inset-top)) 1rem max(1.4rem, env(safe-area-inset-bottom));box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:.9rem;display:flex}.game-header{box-sizing:border-box;border:1px solid var(--glass-border);background:var(--surface);width:100%;max-width:100%;box-shadow:var(--shadow);border-radius:16px;justify-content:space-between;align-items:center;padding:.7rem .85rem;display:flex}.game-header-meta{flex:1;justify-content:center;align-items:center;gap:.9rem;min-width:0;display:flex}.game-status{box-sizing:border-box;justify-content:space-between;align-items:center;gap:.9rem;width:100%;padding:.15rem .5rem;display:flex}.game-difficulty,.game-timer{color:var(--text-h);letter-spacing:.02em;white-space:nowrap;min-width:0;font-size:.86rem;font-weight:700}.game-timer{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;text-align:left;flex-shrink:0;min-width:4.2ch}.game-difficulty{text-overflow:ellipsis;overflow:hidden}.game-header:after{content:"";flex-shrink:0;width:2.2rem}.game-back-button{border:1px solid var(--btn-border);background:var(--btn-bg);width:2.2rem;height:2.2rem;color:var(--text-h);cursor:pointer;border-radius:999px;flex-shrink:0;font-size:1.2rem}.board-shell{justify-content:center;width:100%;margin-top:.15rem;display:flex}.board-grid{aspect-ratio:1;background:var(--panel);border:2px solid var(--board-box-line);width:min(100%,92vw);max-width:860px;box-shadow:var(--shadow);border-radius:0;grid-template-rows:repeat(9,minmax(0,1fr));grid-template-columns:repeat(9,minmax(0,1fr));margin-inline:auto;display:grid;overflow:hidden}.cell{width:100%;height:100%;min-height:0;color:var(--text-h);cursor:pointer;background:0 0;border:1px solid #9eacda2e;justify-content:center;align-items:center;font-size:clamp(.95rem,2.8vw,1.35rem);font-weight:500;transition:background .16s,color .16s,box-shadow .16s;display:inline-flex}.cell-given{background:var(--board-given-bg);color:var(--board-given-text)}.cell-editable{color:var(--board-player-text);background:0 0}.cell-player{color:var(--accent-strong);background:0 0}.cell.cell-highlighted{background:var(--board-related-bg)}.cell.cell-same-value{background:var(--board-same-value-bg);box-shadow:inset 0 0 0 2px var(--board-same-value-outline)}.cell.is-selected{background:var(--board-selected-bg);box-shadow:inset 0 0 0 2px var(--accent)}.cell.cell-error{background:var(--board-error-bg);color:var(--board-error-text);box-shadow:inset 0 0 0 2px var(--danger-btn-border)}.cell-notes{pointer-events:none;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);width:100%;height:100%;display:grid}.cell-note{color:var(--board-note-text);justify-content:center;align-items:center;font-size:clamp(.42rem,1.15vw,.6rem);font-weight:600;line-height:1;display:flex}.board-grid.notes-mode .cell.cell-highlighted{background:var(--board-notes-related-bg)}.board-grid.notes-mode .cell.cell-same-value{background:var(--board-notes-same-value-bg);box-shadow:inset 0 0 0 2px var(--board-notes-outline)}.board-grid.notes-mode .cell.is-selected{background:var(--board-notes-selected-bg);box-shadow:inset 0 0 0 2px var(--board-notes-outline)}.board-grid.notes-mode .cell.cell-error{background:var(--board-error-bg);box-shadow:inset 0 0 0 2px var(--danger-btn-border)}.cell.cell-shake{animation:.4s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.cell.cell-pop{animation:.25s ease-out pop}@keyframes pop{0%{transform:scale(.82)}55%{transform:scale(1.12)}to{transform:scale(1)}}.cell.cell-digit-complete{z-index:1;animation:digit-complete-bounce .36s ease-out var(--digit-complete-delay,0s) both;position:relative}.cell.cell-digit-complete:after{content:"";z-index:-1;background:var(--board-complete-highlight);box-shadow:inset 0 0 0 2px var(--board-complete-outline);pointer-events:none;animation:digit-complete-glow .36s ease-out var(--digit-complete-delay,0s) both;border-radius:3px;position:absolute;inset:0}@keyframes digit-complete-bounce{0%{transform:scale(1)}45%{transform:scale(1.18)}75%{transform:scale(.96)}to{transform:scale(1)}}@keyframes digit-complete-glow{0%{opacity:0}35%{opacity:1}to{opacity:0}}.confetti{pointer-events:none;z-index:9999;border-radius:2px;width:9px;height:14px;animation:1.6s linear forwards confetti-fall;position:fixed;top:-12px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:.9;transform:translateY(105vh)rotate(540deg)}}.game-hearts{color:var(--danger-btn-text);flex-shrink:0;align-items:center;gap:.2rem;display:inline-flex}.game-hearts .heart{justify-content:center;align-items:center;width:1.15rem;height:1.15rem;transition:opacity .2s,transform .2s;display:inline-flex}.game-hearts .heart svg{width:100%;height:100%}.game-hearts .heart.heart-lost{opacity:.3;color:var(--text-muted)}.board-grid .cell:nth-child(3n){border-right-width:2px;border-right-color:var(--board-box-line)}.board-grid .cell:nth-child(9n){border-right-width:1px}.board-grid .cell:nth-child(n+19):nth-child(-n+27),.board-grid .cell:nth-child(n+46):nth-child(-n+54),.board-grid .cell:nth-child(n+73):nth-child(-n+81){border-bottom-width:2px;border-bottom-color:var(--board-box-line)}.number-pad{grid-template-columns:repeat(5,minmax(0,1fr));gap:.55rem;width:min(100%,760px);margin-top:.1rem;display:grid}.number-pad-button{border:1px solid var(--btn-border);background:var(--btn-bg);min-height:44px;color:var(--text-h);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:.6rem 0;font-size:.98rem;font-weight:700;transition:transform .16s,background .16s,border-color .16s,opacity .16s;display:inline-flex;position:relative}.number-pad-button:hover,.number-pad-button:active{background:var(--utility-btn-hover-bg);transform:translateY(-1px)}.number-pad-button.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.pad-remaining{color:var(--pad-remaining-text);pointer-events:none;font-size:.58rem;font-weight:600;line-height:1;position:absolute;bottom:.14rem;right:.32rem}.pad-remaining.is-empty{display:none}.number-pad-button.clear{background:var(--danger-btn-bg);color:var(--danger-btn-text);border-color:var(--danger-btn-border)}.result-modal{width:min(360px,100vw - 2rem)}.result-message{color:var(--text);margin:0 0 1rem;font-size:.9rem}.result-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.result-button{border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--text-h);cursor:pointer;border-radius:12px;padding:.72rem .9rem;font-weight:700}.retry-button{background:var(--accent-soft)}.exit-modal{width:min(360px,100vw - 2rem)}.exit-cancel-button{background:var(--accent-soft)}.exit-confirm-button{background:var(--danger-btn-bg);border-color:var(--danger-btn-border);color:var(--danger-btn-text)}@media (width<=560px){.game-screen{width:100%;max-width:none;min-height:100dvh;padding:max(.7rem, env(safe-area-inset-top)) .7rem max(.7rem, env(safe-area-inset-bottom))}.game-header{width:100%;padding:.65rem .8rem}.game-status{padding:0 .35rem}.board-shell,.number-pad{width:100%}.board-grid{width:calc(100vw - 1.4rem);max-width:none}.number-pad{gap:.45rem;width:calc(100vw - 1.4rem);max-width:none}.cell{font-size:clamp(1.05rem,6vw,1.4rem)}.notes-toggle-row{width:calc(100vw - 1.4rem);max-width:none}.cell-note{font-size:clamp(.45rem,1.9vw,.66rem)}}.buttons{flex-direction:column;width:100%;display:flex}.button-group{flex-direction:column;display:flex}.game-group{gap:.75rem}.utility-group{gap:.75rem;margin-top:2rem}.menu-btn{width:100%;color:var(--text-h);background:var(--btn-bg);border:1px solid var(--btn-border);cursor:pointer;text-align:center;touch-action:manipulation;border-radius:.9rem;justify-content:center;align-items:center;padding:1rem 1.2rem;font-size:1.08rem;font-weight:600;transition:transform .22s,background-color .22s,border-color .22s,box-shadow .22s;display:flex}.menu-btn:hover{box-shadow:var(--shadow);background:#6366f129;border-color:#a7b4ff66;transform:translateY(-2px)}.menu-btn:active{transform:translateY(0)}.menu-btn:focus-visible{outline-offset:2px;outline:2px solid #828df5e0}.btn-icon{flex-shrink:0;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;margin-inline:1rem;display:inline-flex}.btn-icon svg{width:100%;height:100%}.btn-label{text-align:left;flex:1}.campaign-btn{color:#f8fbff;background:linear-gradient(#6b5df0eb,#4f46e5e0);border-color:#8d80ff8c;justify-content:space-between}.campaign-btn:hover{background:linear-gradient(#7966fffa,#5850f5f0)}.btn-counter{white-space:nowrap;color:#fff;background:#fff3;border-radius:999px;justify-content:center;align-items:center;min-width:4.25rem;padding:.26rem .66rem;font-size:.88rem;font-weight:700;display:inline-flex}.utility-btn{background:var(--utility-btn-bg);border:1px solid var(--utility-btn-border);color:var(--utility-btn-text);padding:.84rem 1rem;font-size:.98rem}.utility-btn:hover{background:var(--utility-btn-hover-bg);color:var(--utility-btn-hover-text);border-color:#93a2da4d}.utility-btn .btn-icon{color:var(--utility-btn-icon-color)}.utility-btn .btn-label{text-align:center}.daily-badges{flex-shrink:0;align-items:center;gap:.26rem;margin-inline-start:auto;padding-left:.5rem;display:inline-flex}.daily-streak-badge{background:var(--accent-soft);color:var(--accent);border:1px solid var(--accent-soft);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:.28rem;padding:.26rem .4rem;font-size:.85rem;font-weight:700;display:inline-flex}.daily-streak-badge .streak-flame{flex-shrink:0;width:.95rem;height:.95rem}.daily-done-badge{width:1.5rem;height:1.5rem;color:var(--board-complete-outline);background:var(--board-complete-highlight);border:1px solid var(--board-complete-outline);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.daily-done-badge svg{width:.95rem;height:.95rem}.daily-failed-badge{width:1.5rem;height:1.5rem;color:var(--danger-btn-text);background:var(--danger-btn-bg);border:1px solid var(--danger-btn-border);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.daily-failed-badge svg{width:.95rem;height:.95rem}.daily-btn.is-completed{border-color:var(--board-complete-outline)}.daily-btn.is-failed{border-color:var(--danger-btn-border)}.daily-btn:disabled{cursor:not-allowed;opacity:.6;color:var(--text-muted);background:var(--utility-btn-bg);border-color:var(--btn-border);box-shadow:none;transform:none}.daily-btn:disabled:hover{background:var(--utility-btn-bg);border-color:var(--btn-border);box-shadow:none;transform:none}@media (width<=700px){.stats{grid-template-columns:1fr}}@media (width<=480px){.menu{padding:2.4rem 1rem 1.4rem}.title{font-size:2.3rem}.title-row{gap:.5rem}.title-art{width:3rem;height:3rem}.menu-btn{padding:.95rem 1rem;font-size:1rem}.btn-counter{min-width:3.75rem;font-size:.78rem}}@media (width<=375px){.title{font-size:1.9rem}}:root,body.theme-light{--tier-easy:var(--board-complete-outline);--tier-medium:var(--accent);--tier-hard:var(--stats-icon-color);--tier-expert:var(--danger-btn-text);--star-filled:var(--accent);--star-empty:var(--text-muted)}.campaign-screen{width:min(980px,100vw);height:100dvh;min-height:0;max-height:100dvh;padding:max(1rem, env(safe-area-inset-top)) 1rem max(1.4rem, env(safe-area-inset-bottom));box-sizing:border-box;flex-direction:column;gap:.9rem;margin-inline:auto;display:flex;overflow:hidden}.campaign-header{box-sizing:border-box;border:1px solid var(--glass-border);background:var(--surface);width:100%;box-shadow:var(--shadow);border-radius:16px;flex:none;justify-content:space-between;align-items:center;gap:.8rem;padding:.7rem .85rem;display:flex}.campaign-header-meta{align-items:center;gap:.9rem;display:flex}.campaign-title{color:var(--text-h);font-size:.95rem;font-weight:800}.campaign-progress{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:700}.campaign-legend{flex-wrap:wrap;flex:none;gap:.75rem;padding:0 .25rem;display:flex}.campaign-legend-item{color:var(--text-muted);align-items:center;gap:.35rem;font-size:.75rem;font-weight:600;display:inline-flex}.campaign-legend-dot{background:var(--tier-color);border-radius:999px;width:.55rem;height:.55rem}.campaign-tier-easy{--tier-color:var(--tier-easy)}.campaign-tier-medium{--tier-color:var(--tier-medium)}.campaign-tier-hard{--tier-color:var(--tier-hard)}.campaign-tier-expert{--tier-color:var(--tier-expert)}.campaign-levels{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border:1px solid var(--glass-border);background:var(--surface);min-height:0;box-shadow:var(--shadow);border-radius:16px;flex:auto;grid-template-columns:repeat(auto-fill,minmax(4.4rem,1fr));align-content:start;gap:.6rem;padding:.35rem;display:grid;overflow-y:auto}.campaign-level{border:1px solid var(--btn-border);border-top:3px solid var(--tier-color);background:var(--btn-bg);height:65px;min-height:44px;color:var(--text-h);cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:.55rem .3rem;font-weight:700;transition:transform .12s,background .12s;display:flex}.campaign-level:hover:not(:disabled){background:var(--accent-soft);transform:translateY(-2px)}.campaign-level.is-locked{cursor:not-allowed;opacity:.55;color:var(--text-muted);background:var(--utility-btn-bg)}.campaign-level.is-completed{background:var(--accent-soft)}.campaign-level-number{font-variant-numeric:tabular-nums;font-size:1rem}.campaign-stars{align-items:center;gap:.1rem;display:inline-flex}.campaign-star{width:.85rem;height:.85rem;color:var(--star-empty);opacity:.6;display:inline-flex}.campaign-star.is-filled{color:var(--star-filled);opacity:1}.campaign-star svg{width:100%;height:100%}.campaign-lock{width:.95rem;height:.95rem;color:var(--text-muted);display:inline-flex}.campaign-lock svg{width:100%;height:100%}.result-stars{justify-content:center;margin-bottom:.9rem;display:flex}.result-stars[hidden]{display:none}.result-stars .campaign-star{width:1.6rem;height:1.6rem}.next-level-button{background:var(--accent-soft);grid-column:1/-1}@media (width<=560px){.campaign-screen{padding:.7rem}.campaign-levels{grid-template-columns:repeat(auto-fill,minmax(3.8rem,1fr));gap:.45rem}}.notes-toggle-row{justify-content:space-evenly;gap:.5rem;width:min(100%,760px);margin-top:.1rem;display:flex}.notes-toggle{color:var(--text-muted);gap:.4rem;padding:.6rem .9rem}.notes-toggle .btn-icon{width:1.05rem;height:1.05rem;display:inline-flex}.notes-toggle .btn-icon svg{width:100%;height:100%}.notes-toggle.is-active{background:var(--accent-soft);color:var(--text-h);border-color:#7c6af580}.notes-toggle:hover,.notes-toggle:active{background:var(--btn-bg);transform:none}.notes-toggle.is-active:hover,.notes-toggle.is-active:active{background:var(--accent-soft)}.notes-toggle:focus{outline:none}.notes-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (hover:hover){.notes-toggle:hover{background:var(--utility-btn-hover-bg)}.notes-toggle.is-active:hover{background:var(--accent-soft)}}.hint-toggle{color:var(--text-muted);gap:.4rem;padding:.6rem .9rem}.hint-toggle .btn-icon{width:1.05rem;height:1.05rem;display:inline-flex}.hint-toggle .btn-icon svg{width:100%;height:100%}.hint-toggle .hint-badge{background:var(--accent);color:#fff;pointer-events:none;border-radius:999px;justify-content:center;align-items:center;min-width:1.18rem;height:1.18rem;padding:0 .28rem;font-size:.64rem;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-.34rem;right:-.34rem;box-shadow:0 1px 3px #00000059}.hint-toggle .hint-badge.is-empty{background:var(--danger-btn-bg);color:var(--danger-btn-text)}.hint-toggle:focus{outline:none}.hint-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (hover:hover){.hint-toggle:hover{background:var(--utility-btn-hover-bg)}}.game-toast{background:var(--surface);max-width:calc(100vw - 2rem);color:var(--text-h);border:1px solid var(--danger-btn-border);box-shadow:var(--shadow);text-align:center;opacity:0;pointer-events:none;z-index:60;border-radius:12px;padding:.6rem 1rem;font-size:.82rem;font-weight:600;transition:opacity .2s,transform .2s;position:fixed;top:1rem;left:50%;transform:translate(-50%)translateY(-10px)}.game-toast.is-visible{opacity:1;transform:translate(-50%)translateY(0)}.loading-screen{flex-direction:column;justify-content:center;align-items:center;gap:1rem;width:100%;min-height:100dvh;padding:0;display:flex}.loading-spinner{border:3px solid var(--glass-border);border-top-color:var(--accent);border-radius:50%;width:46px;height:46px;animation:.8s linear infinite loading-spin}.loading-text{color:var(--text-muted);margin:0;font-size:.9rem;font-weight:600}@keyframes loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loading-spinner{animation-duration:2s}}
