:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#17202a;--muted:#6f7d8b;--line:#aeb9c5;--heavy:#1f2937;--panel:#fff;--paper:#f7f9fc;--accent:#3f7cc4;--accent-strong:#2563eb;--button:#d8dde2;--yellow:#fff2a8;--green:#baf1c8;--red:#ffd1d1;--shadow:0 10px 28px #1f2a3714;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.account-panel .panel-title{align-items:flex-start}.account-identity{color:var(--muted);overflow-wrap:anywhere;margin:3px 0 0}.sync-status{color:#34495a;text-align:right;background:#eef3f7;border-radius:999px;max-width:14rem;padding:6px 9px;font-size:12px;font-weight:700}.account-dialog-backdrop{z-index:80;background:#141f2a94;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.account-dialog{background:#fff;border:1px solid #d8e0e7;border-radius:20px;width:min(100%,440px);max-height:min(760px,100dvh - 36px);padding:28px;position:relative;overflow-y:auto;box-shadow:0 24px 80px #121d2647}.account-dialog h2{margin:0 36px 8px 0}.account-dialog-close{border-radius:50%;width:38px;height:38px;font-size:25px;line-height:1;position:absolute;top:14px;right:14px}.account-form{gap:14px;display:grid}.account-form label{gap:6px;font-weight:700;display:grid}.account-form input[type=email],.account-form input[type=password],.account-form input[name=confirmation]{width:100%;min-height:46px;font:inherit;border:1px solid #aebbc7;border-radius:9px;padding:9px 11px}.account-consent{grid-template-columns:auto minmax(0,1fr);align-items:start;font-size:13px;font-weight:500!important}.account-links{justify-content:space-between;gap:12px;margin-top:16px;display:flex}.link-button{min-height:auto;color:var(--accent);background:0 0;border:0;padding:4px 0;text-decoration:underline}.account-error{color:#a12e2c;margin:0}.account-notice{color:#236547;margin:0}.account-conflict-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.account-conflict-grid button{text-align:left;gap:6px;min-height:100px;display:grid}.account-conflict-grid span{color:var(--muted)}@media (width<=480px){.account-dialog-backdrop{align-items:end;padding:0}.account-dialog{width:100%;max-height:calc(100dvh - 24px);padding:24px 18px calc(24px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0}.account-conflict-grid{grid-template-columns:1fr}}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0}button,input{font:inherit}button,.button-link{color:var(--ink);cursor:pointer;touch-action:manipulation;background:#fff;border:1px solid #d5dde6;border-radius:8px;min-height:44px}button:hover,.button-link:hover{border-color:var(--accent)}:focus-visible{outline-offset:3px;outline:3px solid #111827}.button-link{justify-content:center;align-items:center;min-width:max-content;padding:0 14px;text-decoration:none;display:inline-grid}.shell{width:min(1220px,100%);margin:0 auto;padding:22px}.app-header{gap:16px;margin-bottom:18px;display:grid}.brand-row,.panel-title{justify-content:space-between;align-items:center;gap:12px;display:flex}.brand-row h1{color:#788695;letter-spacing:0;margin:0;font-size:clamp(34px,7vw,64px);line-height:1}.icon-button{border-radius:999px;padding:0 15px;font-weight:800}.header-about-link{border:1px solid var(--line);background:var(--panel);min-height:38px;color:var(--ink);align-items:center;text-decoration:none;display:inline-flex}.difficulty-tabs,.game-timer,.tool-row,.shortcut-row,.action-stack{flex-wrap:wrap;gap:8px;display:flex}.difficulty-tabs{flex-wrap:nowrap;justify-content:space-between}.difficulty-tabs button{color:#687586;background:0 0;border:0;min-height:34px;padding:0 4px;font-size:clamp(18px,4vw,30px);font-weight:700}.difficulty-tabs button.active{color:var(--accent)}.game-timer span,.panel-title span{color:#255f9e;background:#eaf1fb;border-radius:999px;padding:7px 10px;font-size:13px;font-weight:800}.game-layout{grid-template-columns:minmax(0,660px) minmax(320px,1fr);align-items:start;gap:22px;display:grid}.play-area,.settings-area{grid-template-columns:minmax(0,1fr);gap:14px;min-width:0;display:grid}.settings-area>label{align-items:center;gap:10px;min-height:38px;font-weight:650;display:flex}.settings-area select{min-height:38px;margin-left:auto;padding:0 10px}.board-frame{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);gap:7px;display:grid}.board-frame.show-counts{grid-template-rows:30px minmax(0,1fr);grid-template-columns:30px minmax(0,1fr)}.count-corner{color:#255f9e;background:#eaf1fb;border-radius:6px;place-items:center;font-weight:900;display:grid}.column-counts,.row-counts{gap:2px;display:grid}.column-counts{grid-column:2;grid-template-columns:repeat(9,minmax(0,1fr))}.row-counts{grid-row:2;grid-template-rows:repeat(9,minmax(0,1fr))}.column-counts span,.row-counts span{color:#536273;background:#fff;border:1px solid #d5dde6;border-radius:5px;place-items:center;min-width:0;min-height:0;font-size:13px;font-weight:800;display:grid}.column-counts span.pair-count,.row-counts span.pair-count{border-color:var(--accent);color:#1d4f8f;background:#eaf1ff}.board{aspect-ratio:1;background:var(--heavy);border:4px solid var(--heavy);box-shadow:var(--shadow);grid-template-columns:repeat(9,1fr);display:grid}@media (hover:hover) and (pointer:fine){.board.value-entry-mode,.board.value-entry-mode .cell{cursor:url(/cursors/pen.svg) 4 28,pointer}.board.note-entry-mode,.board.note-entry-mode .cell{cursor:url(/cursors/pencil.svg) 4 28,pointer}}.board-frame.show-counts .board{grid-area:2/2}.cell{aspect-ratio:1;border:1px solid var(--line);background:#fff;border-radius:0;place-items:center;min-height:0;padding:0;display:grid;position:relative}.cell:nth-child(3n){border-right:3px solid var(--heavy)}.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-bottom:3px solid var(--heavy)}.cell:nth-child(9n){border-right:1px solid var(--line)}.cell.related{background:#eef5ff}.cell.same-digit{background:var(--yellow)}.cell.selected{outline:3px solid var(--accent-strong);outline-offset:-3px;z-index:2}.cell.multi-selected{z-index:1;background:#dff0ff;box-shadow:inset 0 0 0 3px #1d70b8}.cell.issue{background:#fff0f0;box-shadow:inset 0 0 0 3px #d92d20}.value{color:var(--accent);font-size:clamp(24px,6vw,46px);font-weight:650}.cell.given .value{color:#000}.notes{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);width:100%;height:100%;padding:6%;display:grid}.notes i,.mini-cell i{color:#0000;place-items:center;font-style:normal;font-weight:700;display:grid}.notes i{line-height:1}.notes i.on,.mini-cell i.on{color:#5f6d7c}.mobile-controls,.panel{background:var(--panel);box-shadow:var(--shadow);border:1px solid #dde4ee;border-radius:8px;width:100%;min-width:0;padding:14px}.more-panel,.automation-panel .automation-description{margin-bottom:16px}.sub-panel{border-top:1px solid #e4e9ef;margin-top:14px;padding-top:14px}.more-panel .sub-panel:first-of-type{border-top:0;margin-top:0;padding-top:0}.check-panel{background:#fff8f8;border-color:#f4b5b5;margin-bottom:16px}.digits{grid-template-columns:repeat(9,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.digits button{background:var(--button);color:#697785;border:0;min-height:54px;font-size:clamp(28px,6vw,52px);font-weight:500}.digits button.completed{color:#6f7a86;background:#edf0f2}.tool-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.tool-button{color:#697785;background:0 0;border:0;place-items:center;min-height:52px;font-weight:700;display:grid}.tool-button.active,.primary-tool{color:var(--accent)}.shortcut-row button,.tool-row button,.action-stack button{padding:0 14px}.keypad-control-groups{grid-template-columns:minmax(260px,1fr) minmax(280px,1fr);align-items:end;gap:12px;display:grid}.keypad-control-group{gap:6px;min-width:0;display:grid}.keypad-control-label{color:#687586;letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:800}.note-mode-toggle{text-align:left;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:8px 12px;display:flex}.note-mode-toggle.active{border-color:var(--accent);background:#eff6ff}.note-mode-copy{gap:2px;min-width:0;display:grid}.note-mode-copy strong{color:var(--ink);font-weight:800}.note-mode-copy span{color:#526174;font-size:13px;line-height:1.25}.note-mode-indicator{flex:none;align-items:center;gap:7px;display:flex}.note-mode-state{color:#687586;text-align:right;min-width:18px;font-size:12px;font-weight:800}.note-mode-toggle.active .note-mode-state{color:var(--accent)}.toggle-track{background:#aeb9c5;border-radius:999px;width:44px;height:24px;position:relative}.toggle-knob{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #1f2a3747}.note-mode-toggle.active .toggle-track{background:var(--accent)}.note-mode-toggle.active .toggle-knob{transform:translate(20px)}.puzzle-note-actions{flex-wrap:nowrap;gap:8px;display:flex}.puzzle-note-actions button{white-space:nowrap;min-height:36px;padding:0 clamp(4px,1.25vw,8px);font-size:clamp(11px,3.25vw,14px)}.puzzle-note-actions button.active{border-color:var(--accent);color:var(--accent);background:#eff6ff}@media (prefers-reduced-motion:reduce){.toggle-knob{transition:none}}.primary,.wide{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff;font-weight:800}.wide{width:100%}.button-link.primary{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff;font-weight:800}.panel-title{margin-bottom:10px}.panel-title h2{margin:0;font-size:18px}.caption,.empty{color:var(--muted);margin:8px 0 0}.techniques{gap:8px;margin-top:10px;display:grid}.technique-item{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:38px;display:grid}.technique-item label{align-items:center;gap:8px;min-width:0;display:flex}.technique-item small{color:var(--muted);font-size:11px;font-weight:600;display:block}.technique-item button{min-height:32px;padding:0 10px}.hint-card{background:#fbfdff;border:1px solid #dbe4ef;border-radius:8px;margin:10px 0;padding:12px}.hint-card h3{margin:0 0 8px}.hint-card p{color:#334155;margin:8px 0}.eyebrow{color:var(--accent-strong);letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:800}.actions-list{color:#263244;margin:10px 0 0;padding-left:18px}.hint-legend{color:var(--muted);gap:14px;margin:8px 0;font-size:13px;display:flex}.hint-legend i{vertical-align:-1px;border-radius:2px;width:12px;height:12px;margin-right:5px;display:inline-block}.green{background:var(--green)}.red{background:var(--red)}.mini-board{border:3px solid var(--heavy);grid-template-columns:repeat(9,minmax(0,1fr));min-width:0;margin-top:12px;display:grid}.mini-board-wrap{position:relative}.coaching-stage{border-left:4px solid var(--accent)}.why-disclosure{border-top:1px solid #dbe4ef;margin-top:12px;padding-top:10px}.why-summary{color:#334155;background:#f2f7ff;border-left:3px solid #6b8db7;border-radius:0 8px 8px 0;margin:14px 0 0;padding:10px 12px}.why-disclosure summary{color:var(--accent-strong);cursor:pointer;font-weight:800}.relationship-text{color:#475569;margin:10px 0 0;padding-left:20px;font-size:13px}.mini-cell{aspect-ratio:1;border:1px solid var(--line);background:#fff;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);min-width:0;padding:3px;font-size:11px;display:grid}.mini-cell:nth-child(3n){border-right:2px solid var(--heavy)}.mini-cell:nth-child(n+19):nth-child(-n+27),.mini-cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--heavy)}.mini-cell:nth-child(9n){border-right:1px solid var(--line)}.mini-cell strong{z-index:3;grid-area:1/1/-1/-1;place-items:center;font-size:20px;display:grid;position:relative}.mini-cell i{z-index:3;position:relative}.mini-cell.evidence{background:#effcf3}.mini-cell.search-region{outline-offset:-2px;background-color:#eef5ff;background-image:repeating-linear-gradient(135deg,#0000 0 7px,#255f9e1f 7px 9px);outline:1px solid #6b8db7}.mini-cell.eliminate{background:#fff4f4}.mini-cell.fill{background:#eaf1ff}.mini-cell strong.given{color:#172033;font-weight:850}.mini-cell strong.player{color:#255f9e;font-weight:700}.mini-cell strong.placement{color:#174b82;border:2px solid #255f9e;border-radius:50%;margin:12%}.mini-cell i.evidence-candidate{color:#075e24;background:#effcf3;border:1.5px solid #18743c;border-radius:50%;line-height:1}.mini-cell i.elimination-candidate{color:#a32020;font-weight:900;text-decoration:line-through;text-decoration-thickness:2px;position:relative}.relationship-overlay{pointer-events:none;z-index:2;width:calc(100% - 6px);position:absolute;top:15px;left:3px}.relationship{fill:none;stroke:#255f9e;stroke-linecap:round;stroke-width:7px;vector-effect:non-scaling-stroke}.relationship.strong{stroke:#7852a9;stroke-width:9px}.relationship.visibility{stroke:#67758a;stroke-dasharray:15 12;stroke-width:5px}.relationship.weak{stroke:#b46b20;stroke-dasharray:10 9;stroke-width:5px}.relationship.pattern{stroke:#255f9e;stroke-dasharray:4 10;stroke-width:5px}.hint-legend{flex-wrap:wrap}.hint-legend .legend-search{background:repeating-linear-gradient(135deg,#eef5ff 0 4px,#b8cce5 4px 6px);border:1px solid #6b8db7}.hint-legend .legend-evidence{background:#effcf3;border:2px solid #18743c;border-radius:50%}.hint-legend .legend-pattern{border-top:2px dotted #255f9e;height:6px}.hint-legend .legend-strong{background:linear-gradient(#0000 40%,#7852a9 40% 65%,#0000 65%)}.hint-legend .legend-visibility{border-top:2px dashed #67758a;height:6px}.hint-legend .legend-weak{border-top:2px dashed #b46b20;height:6px}.hint-legend .legend-elimination{background:#fff4f4;border:1px solid #a32020;position:relative}.hint-legend .legend-elimination:after{content:"";background:#a32020;width:14px;height:2px;position:absolute;top:5px;left:-1px;transform:rotate(-35deg)}.hint-legend .legend-placement{background:#eaf1ff;border:2px solid #255f9e;border-radius:50%}.mini-cell i.green{color:#075e24}.mini-cell i.red{color:#a32020;text-decoration:line-through}.move-summary{flex-wrap:wrap;gap:8px;display:flex}.run-message{color:#255f9e;margin:10px 0 0;font-weight:700}.import-panel{max-width:820px;margin-bottom:16px}.import-intro{max-width:64ch}.import-mode-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px;display:grid}.import-mode-options button{padding:0 14px;font-weight:800}.import-mode-options button.active{border-color:var(--accent-strong);color:#174c82;background:#eaf2ff}.import-source-panel,.import-review{border-top:1px solid #e4e9ef;margin-top:14px;padding-top:14px}.import-file-label{color:#334155;gap:7px;font-weight:800;display:grid}.import-file-label input[type=file]{width:100%;min-height:44px}.import-preview{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;max-height:220px}.import-disclosure{color:#594313;background:#fff9e8;border:1px solid #d7b76b;border-radius:8px;padding:10px 12px}.import-grid{border:2px solid var(--heavy);background:var(--heavy);border-radius:5px;grid-template-columns:repeat(9,1fr);gap:2px;max-width:580px;margin:10px 0;padding:3px;display:grid}.import-review-header h3{margin:0;font-size:17px}.import-review-header .caption{margin-top:4px}.import-kind-control{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.import-kind-control span{color:#334155;margin-right:2px;font-size:13px;font-weight:700}.import-kind-control button{padding:5px 8px;font-size:12px}.import-kind-control button.active{color:#174c82;background:#e9f2ff;border-color:#255f9e}.import-grid input{aspect-ratio:1;border:1px solid var(--line);text-align:center;border-radius:3px;width:100%;font-size:14px}.import-grid input:nth-child(9n+3),.import-grid input:nth-child(9n+6){border-right:3px solid var(--heavy)}.import-grid input:nth-child(n+28):nth-child(-n+36),.import-grid input:nth-child(n+55):nth-child(-n+63){border-top:3px solid var(--heavy)}.import-grid input[data-import-kind=notes].has-import-content{color:#255f9e;background:#f3f8ff;font-size:11px;font-weight:700}.import-keypad{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;max-width:580px;display:grid}.import-keypad button{font-weight:800}.import-keypad button:last-child{grid-column:span 1}.import-scan-actions,.import-actions{margin-top:14px}.about-panel{margin-bottom:16px}.about-panel p{color:#334155}.about-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.about-grid article,.feedback-box{background:#fbfdff;border:1px solid #e2e8f0;border-radius:8px;padding:12px}.about-grid h3,.feedback-box h3{margin:0 0 6px;font-size:15px}.about-grid p,.feedback-box p{margin:0}.feedback-box{gap:10px;margin-top:10px;display:grid}.primary-nav,.practice-mode-tabs,.answer-row,.lesson-pagination{flex-wrap:wrap;gap:8px;display:flex}.primary-nav{border-bottom:1px solid #dbe4ef}.primary-nav button,.practice-mode-tabs button{color:#526174;background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;padding:0 14px;font-weight:800}.primary-nav button.active,.practice-mode-tabs button.active{border-bottom-color:var(--accent-strong);color:var(--accent-strong)}.learning-shell{grid-template-columns:minmax(220px,280px) minmax(0,760px);align-items:start;gap:20px;display:grid}.lesson-navigation{position:sticky;top:12px}.lesson-navigation>label,.practice-controls>label{color:#526174;margin-bottom:6px;font-size:13px;font-weight:800;display:block}.lesson-navigation select,.practice-controls select{width:100%;min-height:44px;color:var(--ink);font:inherit;background:#fff;border:1px solid #c9d3de;border-radius:8px;padding:0 10px}.lesson-content,.practice-shell,.practice-session,.practice-board-area{min-width:0}.lesson-heading{border-bottom:1px solid #dbe4ef;padding-bottom:16px}.lesson-heading h2,.practice-controls h2{margin:0;font-size:clamp(30px,5vw,48px)}.lesson-pagination{justify-content:center;align-items:center}.lesson-pagination span{color:var(--muted);font-size:13px;font-weight:800}.lesson-pagination-bottom{border-top:1px solid #dbe4ef;margin-top:20px;padding-top:20px}.lesson-visual{margin:20px 0 4px}.lesson-visual-board{width:min(520px,100%);margin:0 auto}.lesson-visual .mini-board{margin-top:0}.lesson-visual .relationship-overlay{top:3px}.lesson-visual .hint-legend{justify-content:center}.lesson-visual figcaption{color:var(--muted);text-align:center;max-width:560px;margin:8px auto 0;font-size:13px;line-height:1.5}.lesson-content>section{overflow-wrap:anywhere;border-bottom:1px solid #e4eaf1;padding:20px 0}.lesson-content h3{margin:0 0 10px;font-size:24px}.lesson-content h4{margin:16px 0 8px}.lesson-content p,.lesson-content li,.practice-shell p{line-height:1.58}.lesson-content dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.lesson-content dl div,.near-miss-note,.certification-list,.practice-result{background:#f8fbff;border:1px solid #dbe4ef;border-radius:8px;padding:12px}.lesson-terms dl{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.lesson-terms dl div{border-left:4px solid #6b8db7}.recognition-checks{padding-left:24px;list-style:"✓  "}.recognition-checks li::marker{color:#18743c;font-weight:900}.lesson-content dt{color:#526174;text-transform:uppercase;font-size:12px;font-weight:800}.lesson-content dd{margin:5px 0 0}.lesson-content details{border-left:3px solid #a9bbcf;padding-left:12px}.lesson-content summary{color:var(--accent-strong);cursor:pointer;font-weight:800}.text-equivalent{background:#f2fbf5;border-left:4px solid #18743c;padding:10px 12px}.try-it{border-bottom:0!important}.try-it button,.practice-controls>button{padding:0 18px}.practice-verification{margin:12px 0}.practice-verification summary{color:var(--accent-strong);cursor:pointer;font-weight:800}.practice-verification .certification-list{margin:10px 0 0}.cell-code{color:var(--muted);white-space:nowrap}.practice-shell{gap:16px;width:min(900px,100%);display:grid}.practice-controls{gap:12px;display:grid}.practice-mode-tabs button{flex:180px}.practice-session{gap:14px;display:grid}.practice-board-area{gap:14px;width:min(720px,100%);display:grid}.certification-list{color:#315f46;flex-wrap:wrap;gap:6px 24px;margin:12px 0;padding-left:34px;list-style:"✓  ";display:flex}.practice-success,.practice-result.correct{color:#136b35;font-weight:750}.practice-result.incorrect{color:#8a3a13}.near-miss-practice .mini-board-wrap{max-width:640px}.answer-row{margin-top:14px}.answer-row button{flex:180px}.celebration-backdrop{z-index:100;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#141f30a8;place-items:center;padding:20px;animation:.28s ease-out both celebration-fade-in;display:grid;position:fixed;inset:0;overflow:hidden}.celebration-card{text-align:center;background:radial-gradient(circle at 50% -10%,#ffe17a94,#0000 42%),linear-gradient(145deg,#fffdf5,#edf6ff 72%);border:2px solid #f1c75b;border-radius:28px;width:min(520px,100%);padding:42px 34px 30px;animation:.62s cubic-bezier(.2,.9,.2,1.15) both celebration-card-arrive;position:relative;overflow:hidden;box-shadow:0 28px 90px #050f1e61}.celebration-card:before{content:"✦";color:#ffe17a;background:#173b68;border-radius:50%;place-items:center;width:64px;height:64px;margin:0 auto 10px;font-size:36px;animation:1.4s ease-in-out infinite alternate celebration-star;display:grid;box-shadow:0 0 0 9px #3f7cc41f}.celebration-kicker{color:#34618f;letter-spacing:.18em;text-transform:uppercase;margin:18px 0 6px;font-size:12px;font-weight:900}.celebration-card h2{color:#173b68;margin:0;font-size:clamp(34px,8vw,50px);line-height:1.05}.celebration-copy{color:#526477;max-width:390px;margin:12px auto 22px;line-height:1.5}.completion-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.completion-stats div{background:#ffffffc7;border:1px solid #d6e1ed;border-radius:14px;padding:13px 8px}.completion-stats dt{color:#718092;letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:850}.completion-stats dd{color:#173b68;margin:5px 0 0;font-size:24px;font-weight:900}.completion-analysis{color:#28623c;background:#eef8ef;border-radius:12px;margin:16px 0 20px;padding:11px 13px;font-weight:750}.completion-install-promo{color:#173b68;text-align:left;background:#f7fbff;border:1px solid #b9d3ec;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;min-height:70px;margin:-5px 0 18px;padding:10px 12px;display:grid}.completion-install-promo img,.offline-install-box img{border-radius:11px;width:46px;height:46px;box-shadow:0 3px 12px #173b682e}.completion-install-promo strong,.completion-install-promo small{display:block}.completion-install-promo small{color:#60758a;margin-top:3px;font-size:12px;line-height:1.35}.completion-install-promo>span:last-child{font-size:28px;font-weight:500}.celebration-actions{justify-content:center;gap:9px;display:flex}.celebration-actions button{padding:0 17px}.install-backdrop{z-index:110;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#141f309e;place-items:end center;padding:16px;animation:.22s ease-out both celebration-fade-in;display:grid;position:fixed;inset:0}.install-card{width:min(480px,100%);max-height:calc(100dvh - 32px);padding:26px 24px calc(22px + env(safe-area-inset-bottom));background:#fff;border:1px solid #d5e2ef;border-radius:26px;animation:.34s cubic-bezier(.2,.85,.25,1) both install-sheet-arrive;position:relative;overflow:auto;box-shadow:0 24px 80px #050f1e66}.install-close{color:#4d6176;background:#eef3f8;border:0;border-radius:50%;width:38px;min-height:38px;padding:0;font-size:24px;position:absolute;top:14px;right:14px}.install-app-icon{border-radius:15px;width:64px;height:64px;margin-bottom:16px;display:block;box-shadow:0 6px 20px #173b6833}.install-kicker{color:#3f7cc4;letter-spacing:.12em;text-transform:uppercase;margin:0 0 5px;font-size:12px;font-weight:900}.install-card h2{color:#173b68;max-width:390px;margin:0;font-size:clamp(27px,7vw,36px);line-height:1.12}.install-benefit{color:#526477;margin:12px 0 20px;line-height:1.5}.ios-install-swipe-hint{color:#60748a;letter-spacing:.04em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:800}.ios-install-walkthrough{overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:thin;grid-auto-columns:minmax(205px,62%);grid-auto-flow:column;gap:12px;margin:0 -4px;padding:2px 4px 14px;display:grid;overflow-x:auto}.ios-install-step{scroll-snap-align:start;background:#f4f7fa;border:1px solid #d7e2ed;border-radius:16px;min-width:0;margin:0;overflow:hidden}.ios-install-step a{aspect-ratio:852/1849;background:#e8edf2;display:block;overflow:hidden}.ios-install-step img{object-fit:cover;width:100%;height:100%;display:block}.ios-install-step figcaption{color:#284d76;grid-template-columns:28px minmax(0,1fr);gap:2px 8px;padding:11px;font-size:13px;display:grid}.ios-install-step figcaption span{color:#fff;background:#286bb1;border-radius:50%;grid-row:1/3;place-items:center;width:28px;height:28px;font-weight:900;display:grid}.ios-install-step figcaption strong,.ios-install-step figcaption small{min-width:0}.ios-install-step figcaption small{color:#60748a;font-size:11px;line-height:1.35}.install-steps{gap:10px;margin:0;padding:0;list-style:none;display:grid}.install-steps li{color:#405367;border:1px solid #e0e8f0;border-radius:14px;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:12px;padding:11px 12px;line-height:1.4;display:grid}.install-step-number,.install-step-icon{color:#2867a8;background:#eaf3fc;border-radius:11px;place-items:center;width:38px;height:38px;font-weight:900;display:grid}.install-step-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:23px;height:23px}.install-plus{font-size:25px;font-weight:500}.install-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:20px;display:flex}.install-actions a{color:#34618f;margin-right:auto;font-weight:750}.offline-install-box{background:#f7fbff;border:1px solid #d6e3ef;border-radius:12px;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;margin:14px 0;padding:12px;display:grid}.offline-install-box p{color:#637589;margin:3px 0 0;font-size:13px;line-height:1.35}.save-offline-footer{border-top:1px solid #dbe4ef;justify-content:center;margin-top:48px;padding-top:22px;display:flex}.save-offline-button{color:#245f9f;background:#f7fbff;border-color:#b9d3ec;border-radius:999px;justify-content:center;align-items:center;gap:9px;min-width:190px;padding:0 20px;font-weight:800;display:inline-flex}.save-offline-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:20px;height:20px}.content-links{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin-top:18px;display:grid}.content-links .button-link{text-align:center;width:100%;min-width:0;padding:8px 12px}.campaign-shell{gap:18px;max-width:980px;margin:0 auto;display:grid}.campaign-hero{background:#f4f8ff;border-color:#cbd9e8}.campaign-hero h2,.campaign-recommendation h3{margin:4px 0 10px}.campaign-hero>:last-child,.campaign-recommendation>:last-child,.campaign-data-controls>:last-child{margin-bottom:0}.campaign-privacy-note{color:#4b5d70;font-size:14px}.campaign-shell .caption{color:#5d6c7a}.campaign-start-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.campaign-start-option{background:#f3f8fe;border:1px solid #b8cfe8;border-radius:12px;padding:18px}.campaign-puzzle-start{align-content:start;gap:18px;display:grid}.campaign-puzzle-start h3,.campaign-puzzle-start p{margin:0}.campaign-puzzle-start h3{margin-top:6px}.campaign-puzzle-start label{gap:6px;font-weight:700;display:grid}.campaign-puzzle-start select{width:100%}.campaign-optional-placement{border:1px solid #d9e1ea;border-radius:12px;padding:14px 16px}.campaign-optional-placement>summary{cursor:pointer;gap:4px;display:grid}.campaign-optional-placement>summary>span:first-child{gap:6px;display:grid}.campaign-optional-placement>summary strong{font-size:18px}.campaign-optional-placement>summary small{color:#536579;font-weight:500;line-height:1.35}.campaign-option-cta{color:#1769e8;font-weight:800}.campaign-optional-placement[open]>summary{margin-bottom:10px}.campaign-start-options .campaign-optional-placement[open]{grid-column:1/-1}.campaign-preferences{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:22px;display:grid}.campaign-preferences label,.campaign-recognition-check label,.campaign-correction label{gap:6px;font-weight:700;display:grid}.campaign-preferences select,.campaign-recognition-check select,.campaign-correction select{width:100%}.campaign-placement-heading{align-items:end;margin-bottom:12px}.campaign-placement-heading h3,.campaign-placement-heading p{margin:0}.campaign-technique-list{gap:8px;display:grid}.campaign-technique-row{border:1px solid #dce4ed;border-radius:10px;grid-template-columns:minmax(170px,1fr) minmax(360px,1.5fr);align-items:center;gap:14px;margin:0;padding:10px 12px;display:grid}.campaign-technique-row legend{display:contents}.campaign-technique-row legend span{font-weight:800}.campaign-technique-row legend small{color:#68788a;font-weight:600}.campaign-status-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.campaign-status-choices label{cursor:pointer;background:#fff;border:1px solid #cfd8e3;border-radius:8px;justify-content:center;align-items:center;gap:6px;min-height:38px;padding:6px 8px;display:flex}.campaign-status-choices label:has(input:checked){background:#edf5ff;border-color:#3f7cc4}.campaign-recognition-check{background:#f7f9fc;border-radius:12px;grid-template-columns:minmax(0,1fr) minmax(180px,240px) auto;align-items:end;gap:14px;margin-top:20px;padding:16px;display:grid}.campaign-recognition-check h3,.campaign-recognition-check p{margin:0}.campaign-primary-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.campaign-inline-error{color:#9d2424;font-weight:700}.campaign-recommendation{border-color:#9ebfe2;box-shadow:0 12px 30px #2c4e741a}.campaign-recommendation-topline{color:#52667a;justify-content:space-between;align-items:center;gap:12px;font-size:14px;font-weight:700;display:flex}.campaign-activity-badge,.campaign-state{color:#275d95;background:#e7f1fc;border-radius:999px;align-items:center;width:fit-content;min-height:28px;padding:4px 10px;font-size:13px;font-weight:800;display:inline-flex}.campaign-focus{color:#394d62}.campaign-reflection{background:#f3fbf5;border-color:#9bc8a7}.campaign-reflection h3,.campaign-reflection p{margin:4px 0 8px}.campaign-summary-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.campaign-path-editor{margin-top:10px}.campaign-path-editor>summary{cursor:pointer;font-weight:700}.campaign-path-editor .campaign-correction{margin-top:10px}.campaign-summary-grid div{text-align:center;background:#f5f7fa;border-radius:10px;gap:2px;padding:12px;display:grid}.campaign-summary-grid strong{font-size:24px}.campaign-summary-grid span{color:#5c6d7e;font-size:13px}.campaign-graph{gap:10px;display:grid}.campaign-skill-row{border:1px solid #dde5ed;border-radius:12px;grid-template-columns:minmax(0,1fr) minmax(300px,auto);align-items:center;gap:16px;padding:14px;display:grid}.campaign-skill-row h3,.campaign-skill-row p{margin:0 0 5px}.campaign-correction{grid-template-columns:minmax(150px,1fr) auto;align-items:end;gap:8px;display:grid}.campaign-state-mastered{color:#28673a;background:#e5f5e9}.campaign-state-review-due{color:#78510a;background:#fff2d9}.campaign-history ol{gap:8px;padding-left:22px;display:grid}.campaign-history time{color:#647486;font-size:13px;display:block}.campaign-transcript-controls{border-top:1px solid #d9e1ea;margin-top:18px;padding-top:18px}.campaign-transcript-controls h4,.campaign-transcript-controls p{margin:0}.campaign-transcript-controls p{color:#536579;margin-top:6px}.campaign-activity-banner{background:#f2f7fd;border:1px solid #9ebfe2;border-radius:12px;justify-content:space-between;align-items:center;gap:18px;margin:0 0 20px;padding:14px 16px;display:flex}.campaign-activity-banner p{margin:3px 0 0}.danger-button{color:#8a2020;border-color:#d7a7a7}@keyframes install-sheet-arrive{0%{opacity:0;transform:translateY(36px)}}.celebration-spark{background:var(--spark-color,#f1c75b);width:10px;height:18px;transform:translate(-50%, -50%) rotate(var(--spark-angle));border-radius:4px;animation:1.2s ease-out both celebration-spark;position:absolute;top:50%;left:50%}.celebration-spark:nth-child(3n+2){--spark-color:#4f8bd1}.celebration-spark:nth-child(3n){--spark-color:#61b779}.celebration-spark:first-child{--spark-angle:0deg}.celebration-spark:nth-child(2){--spark-angle:30deg}.celebration-spark:nth-child(3){--spark-angle:60deg}.celebration-spark:nth-child(4){--spark-angle:90deg}.celebration-spark:nth-child(5){--spark-angle:120deg}.celebration-spark:nth-child(6){--spark-angle:150deg}.celebration-spark:nth-child(7){--spark-angle:180deg}.celebration-spark:nth-child(8){--spark-angle:210deg}.celebration-spark:nth-child(9){--spark-angle:240deg}.celebration-spark:nth-child(10){--spark-angle:270deg}.celebration-spark:nth-child(11){--spark-angle:300deg}.celebration-spark:nth-child(12){--spark-angle:330deg}@keyframes celebration-fade-in{0%{opacity:0}}@keyframes celebration-card-arrive{0%{opacity:0;transform:translateY(28px)scale(.88)rotate(-2deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes celebration-star{to{transform:rotate(12deg)scale(1.08);box-shadow:0 0 0 13px #3f7cc414}}@keyframes celebration-spark{0%{opacity:1;transform:translate(-50%, -50%) rotate(var(--spark-angle)) translateY(0) scale(.5)}to{opacity:0;transform:translate(-50%, -50%) rotate(var(--spark-angle)) translateY(-290px) scale(1.15)}}@media (prefers-reduced-motion:reduce){.celebration-backdrop,.celebration-card,.celebration-card:before,.celebration-spark,.install-backdrop,.install-card{animation:none}}@media (width<=980px){body{background:#fff}.shell{padding:26px 18px}.game-layout,.learning-shell{grid-template-columns:1fr}.lesson-navigation{position:static}.settings-area{order:2}.play-area{width:100%;max-width:720px;margin:0 auto}}@media (width<=620px){.shell{padding:26px 14px 120px}.app-header{gap:18px}.brand-row h1{font-size:40px}.difficulty-tabs button{font-size:18px}.board{border-width:3px}.board-frame.show-counts{grid-template-rows:24px minmax(0,1fr);grid-template-columns:24px minmax(0,1fr);gap:4px}.column-counts span,.row-counts span{border-radius:4px;font-size:11px}.value{font-size:34px}.notes{padding:8% 6%;font-size:10px}.mobile-controls,.panel{box-shadow:none;border-color:#e4e9ef;padding:12px}.digits{gap:5px}.digits button{border-radius:7px;min-height:46px;font-size:34px}.tool-grid{gap:4px}.celebration-card{padding:34px 18px 22px}.celebration-actions{flex-direction:column-reverse}.celebration-actions button{width:100%}.install-backdrop{padding:8px}.install-card{padding:24px 18px calc(18px + env(safe-area-inset-bottom));border-radius:24px 24px 18px 18px}.offline-install-box{grid-template-columns:46px minmax(0,1fr)}.offline-install-box>:last-child{grid-column:1/-1;width:100%}.save-offline-footer{margin-top:36px}.save-offline-button{width:100%}.content-links{grid-template-columns:1fr}.tool-button{min-height:48px;font-size:13px}.shortcut-row button,.tool-row button,.action-stack button{min-height:36px;padding:0 10px}.keypad-control-groups{grid-template-columns:1fr}.mini-cell{padding:1px;font-size:9px}.mini-cell strong{font-size:16px}.about-grid{grid-template-columns:1fr}.primary-nav button{flex:1}.lesson-content dl{grid-template-columns:1fr;display:grid}.campaign-preferences,.campaign-start-options,.campaign-technique-row,.campaign-recognition-check,.campaign-skill-row,.campaign-correction{grid-template-columns:1fr}.campaign-technique-row legend{justify-content:space-between;align-items:center;gap:8px;padding:0 5px;display:flex}.campaign-status-choices{grid-template-columns:1fr}.campaign-status-choices label{justify-content:flex-start}.campaign-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-primary-actions,.campaign-activity-banner{flex-direction:column;align-items:stretch}.campaign-primary-actions button,.campaign-activity-banner button,.campaign-puzzle-start button,.campaign-data-controls .tool-row button{width:100%}}
