:root{color-scheme:light;--bg:#f5f7fb;--surface:#fff;--ink:#17243b;--muted:#65738a;--line:#e1e6ef;--blue:#2764df;--blue-soft:#edf3ff;--peer:#f0f4fa;--selected:#d6e5ff;--given:#1f2d43;--red:#ac253c;--red-bg:#ffedf0;--shadow:0 16px 50px #1b33590b;--radius:16px}
[data-theme=dark]{color-scheme:dark;--bg:#101b2c;--surface:#19263b;--ink:#edf2fc;--muted:#acbad0;--line:#33425a;--blue:#91b7ff;--blue-soft:#233b60;--peer:#243247;--selected:#324d77;--given:#f2f5ff;--red:#ffadbc;--red-bg:#512b3a;--shadow:0 16px 50px #0002}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#101b2c;--surface:#19263b;--ink:#edf2fc;--muted:#acbad0;--line:#33425a;--blue:#91b7ff;--blue-soft:#233b60;--peer:#243247;--selected:#324d77;--given:#f2f5ff;--red:#ffadbc;--red-bg:#512b3a;--shadow:0 16px 50px #0002}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px;line-height:1.6}button,input,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.2}h2{font-size:clamp(26px,3vw,34px);letter-spacing:-1.2px}h3{font-size:16px;letter-spacing:-.25px}p{color:var(--muted)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:15px;top:-80px;background:var(--surface);padding:12px;z-index:100}.skip-link:focus{top:10px}.header{position:sticky;top:0;background:var(--surface);border-bottom:1px solid var(--line);z-index:20}.header-inner{max-width:1180px;margin:auto;min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 30px}.brand{display:inline-flex;align-items:center;gap:9px;font-size:22px;font-weight:750;letter-spacing:-.8px;white-space:nowrap}.brand>span{color:var(--blue);margin-left:-6px}.header nav{display:flex;gap:30px;font-size:13px;font-weight:600;color:var(--muted)}.header nav a[aria-current=page]{color:var(--blue)}.header nav a:hover,.footer-links button:hover{color:var(--blue)}.header-actions{display:flex;gap:16px;align-items:center}.icon-button{width:40px;height:40px;display:inline-grid;place-items:center;border:0;border-radius:10px;background:transparent;font-size:22px}.icon-button:hover{background:var(--peer)}#theme .i-sun,#theme[data-mode=dark] .i-moon{display:none}#theme[data-mode=dark] .i-sun{display:block}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:48px;padding:12px 23px;border-radius:9px;border:1px solid var(--line);font-size:14px;font-weight:650;background:var(--surface);transition:transform .15s,background .15s}.button:hover{transform:translateY(-1px)}.button.primary{background:#2764df;border-color:#2764df;color:white;box-shadow:0 5px 12px #2764df20}.button.primary:hover{background:#1c53c6}.button.small{min-height:40px;padding:9px 17px;font-size:12px}.wide{width:100%;justify-content:space-between}.text-button{border:0;background:none;color:var(--blue);font-weight:650;font-size:13px;padding:10px 0;min-height:44px;white-space:nowrap}.play-section{max-width:1140px;margin:auto;padding:26px 30px 0}.hero{text-align:center;margin-bottom:22px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.9px;color:var(--blue);display:block}.hero .eyebrow{display:flex;justify-content:center;align-items:center;gap:9px}.status-dot{background:#41a381;width:6px;height:6px;border-radius:100%}h1{font-size:clamp(34px,4vw,48px);letter-spacing:-2px;margin:10px 0 10px;font-weight:780}h1 span{color:var(--blue)}.hero p{font-size:15px;line-height:1.75}.game-shell{max-width:940px;margin:auto;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);padding:22px 26px;border-radius:20px;display:grid;grid-template-columns:minmax(0,1fr) 284px;gap:32px}.board-column{min-width:0;width:min(100%,max(340px,calc(100dvh - 380px)));justify-self:center}.game-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.tiny-label{font-size:11px;font-weight:750;letter-spacing:1.3px;color:var(--muted)}.game-heading h2{font-size:21px;letter-spacing:-.6px;margin-top:5px}.game-heading .text-button{font-size:11px}.game-meta{display:flex;gap:22px;align-items:center;min-height:48px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.badge{border-radius:5px;background:#e8f5ee;color:#256b49;padding:3px 11px;font-size:11px;font-weight:700}.meta-item{display:flex;gap:7px;align-items:center}.meta-item strong{font-weight:600;color:var(--ink)}.game-meta .icon-button{margin-left:auto;font-size:15px;width:30px;height:30px}.board-wrap{position:relative;border:2px solid var(--ink);border-radius:5px;overflow:hidden;aspect-ratio:1}.board{display:grid;grid-template-rows:repeat(9,1fr);width:100%;height:100%;background:var(--surface)}.board-row{display:grid;grid-template-columns:repeat(9,1fr);min-height:0}.cell{position:relative;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:clamp(20px,2.6vw,29px);font-weight:500;line-height:1;color:var(--blue);cursor:pointer;user-select:none;transition:background .12s}.cell:nth-child(3n){border-right:2px solid var(--ink)}.cell:last-child{border-right:0}.board-row:nth-child(3n) .cell{border-bottom:2px solid var(--ink)}.board-row:last-child .cell{border-bottom:0}.cell.given{color:var(--given);font-weight:650}.cell.peer{background:var(--peer)}.cell.match{background:var(--blue-soft);font-weight:750}.cell.selected{background:var(--selected);box-shadow:inset 0 0 0 2px var(--blue);z-index:1}.cell:focus-visible{outline:3px solid var(--blue);outline-offset:-4px;z-index:2}.cell.conflict{color:var(--red);background:var(--red-bg)}.cell.conflict:after{content:"!";position:absolute;right:3px;top:2px;font-size:11px;font-weight:800}.cell .pencil-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);height:90%;width:90%;text-align:center;font-size:clamp(8px,1vw,10px);line-height:1.25;color:var(--muted)}.pencil-grid span{display:grid;place-items:center}.pause-cover{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface);gap:14px;text-align:center;padding:15px}.pause-cover>span{font-size:40px;color:var(--blue)}.pause-cover h3{font-size:24px}.pause-cover p{font-size:13px}.progress-row{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin:16px 0 5px}.progress-row strong{color:var(--blue)}progress{display:block;appearance:none;width:100%;height:4px;border:0;border-radius:5px;overflow:hidden;background:var(--line)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--blue);transition:width .25s}progress::-moz-progress-bar{background:var(--blue)}.keyboard-tip{text-align:center;font-size:11px;margin-top:14px}.keyboard-tip>span{margin-right:5px}.control-column{display:flex;flex-direction:column;gap:16px}.control-card{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:18px}.card-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:17px}.card-heading h3{font-size:13px}.tiny-pill{font-size:11px;font-weight:700;letter-spacing:.8px;border:1px solid var(--line);border-radius:4px;padding:3px 5px;color:var(--muted)}select{display:block;width:100%;margin:6px 0 7px;background:var(--surface);border:1px solid var(--line);padding:9px 12px;border-radius:7px;color:var(--ink);font-size:13px;min-height:44px}.muted{color:var(--muted)}.control-card>.muted{font-size:11px;min-height:18px;margin-bottom:14px}.control-card>.button{font-size:12px;min-height:42px;padding:10px 14px}.divider{height:1px;background:var(--line);margin:19px 0 10px}.challenge-card>.privacy-note{margin-top:12px}.tools-card{padding-top:10px}.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.tool-grid button{display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;padding:9px 1px;min-height:68px;border:1px solid transparent;border-radius:8px;background:transparent;font-size:11px;color:var(--muted)}.tool-grid button:hover,.tool-grid button[aria-pressed=true]{background:var(--surface);border-color:var(--line);color:var(--blue)}.tool-grid button>span:first-child{font-size:22px;line-height:1.1;color:var(--ink)}kbd,.tool-grid small{font:inherit;font-size:11px;color:var(--muted)}.number-pad{display:grid;grid-template-columns:repeat(9,1fr);gap:4px;margin-top:16px}.number-pad button{border:1px solid var(--line);border-radius:5px;background:var(--surface);font-size:14px;font-weight:650;color:var(--blue);padding:9px 0;min-height:44px;position:relative}.number-pad button small{position:absolute;top:2px;right:4px;font-size:10px;font-weight:600;line-height:1;color:var(--muted)}.number-pad button.active small{color:inherit;opacity:.8}.number-pad button.active{background:var(--blue);color:var(--surface)}.number-pad button:hover{border-color:var(--blue)}.privacy-note{font-size:11px;text-align:center;margin-top:14px}.stats-card{border:1px solid var(--line);border-radius:12px;padding:15px 18px}.stats-card .card-heading{margin-bottom:12px}.stats-card .icon-button{width:28px;height:28px;font-size:17px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);text-align:center}.stats-grid>div+div{border-left:1px solid var(--line)}.stats-grid strong{display:block;font-size:21px;letter-spacing:-.5px}.stats-grid span{font-size:11px;color:var(--muted)}.streak{border-top:1px solid var(--line);margin-top:14px;padding-top:12px;display:flex;justify-content:space-between;font-size:11px}.streak>span{color:var(--muted)}.streak strong{font-weight:600}.best-times{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:11px;margin-top:10px;color:var(--muted)}.best-times>span{display:flex;justify-content:space-between;gap:4px}.trust-strip{display:flex;justify-content:center;gap:38px;font-size:11px;color:var(--muted);padding:26px 0 42px}.content-section{max-width:1080px;margin:auto;padding:54px 30px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px}.section-heading h2{margin-top:10px;font-size:28px}.section-heading p{font-size:12px}.rules-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.info-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px;position:relative}.step{font-size:11px;font-weight:700;letter-spacing:1.3px;color:var(--muted)}.info-card h3{font-size:15px;margin:17px 0 10px}.info-card p{font-size:12px;line-height:1.8}.mini-row{height:78px;display:flex;align-items:center;justify-content:center;gap:6px;white-space:pre;font-size:13px;letter-spacing:1px;color:var(--muted)}.mini-row b{background:var(--blue-soft);color:var(--blue);padding:6px 5px;border-radius:4px}.column-art{height:78px;display:flex;align-items:center;justify-content:center;gap:3px;flex-direction:column;font-size:12px;line-height:1}.column-art span,.column-art b{width:30px;text-align:center;padding:4px;border:1px solid var(--line)}.column-art b{background:var(--blue-soft);color:var(--blue)}.mini-box{height:78px;display:grid;grid-template-columns:repeat(3,23px);grid-template-rows:repeat(3,23px);justify-content:center;align-content:center;font-size:11px;text-align:center}.mini-box>*{border:1px solid var(--line)}.mini-box b{background:var(--blue-soft);color:var(--blue)}.quick-tip{display:flex;align-items:center;gap:16px;background:var(--blue-soft);padding:17px 21px;border-radius:9px;margin-top:20px}.quick-tip>span{font-size:25px;color:var(--blue)}.quick-tip p{font-size:11px}.quick-tip strong{color:var(--ink)}.strategy-section{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:16px}.strategy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.strategy-grid article,.strategy-cta{border:1px solid var(--line);padding:24px;border-radius:12px}.strategy-grid article>span{display:block;color:var(--blue);font-size:11px;font-weight:700;margin-bottom:19px}.strategy-grid h3{font-size:15px;margin-bottom:11px}.strategy-grid p{font-size:12px;line-height:1.85}.strategy-cta{background:#13223b;color:white;position:relative;display:flex;flex-direction:column;justify-content:end;min-height:210px;overflow:hidden}.strategy-cta>span{position:absolute;right:22px;top:15px;color:#98bbff;font-size:30px}.strategy-cta h3{font-size:25px;line-height:1.25;letter-spacing:-.8px}.strategy-cta p{color:#a6b8d4}.faq-section{display:grid;grid-template-columns:1fr 1.6fr;gap:50px;padding-top:68px;padding-bottom:75px}.faq-section h2{margin:12px 0 16px}.faq-section>.muted{font-size:12px}.faq-list details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;padding:18px 24px 18px 0;font-size:13px;font-weight:650;position:relative}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:0;color:var(--muted);font-weight:400;font-size:20px;top:12px}details[open] summary:after{content:'−'}.faq-list p{font-size:12px;line-height:1.8;padding:0 18px 18px 0}footer{background:var(--surface);border-top:1px solid var(--line)}.footer-inner{max-width:1080px;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:25px;flex-wrap:wrap;padding:33px 30px}.footer-inner .brand{font-size:18px}.footer-inner p{font-size:11px;margin-top:8px}.footer-links{display:flex;gap:18px}.footer-links button{border:0;background:transparent;padding:10px 0;min-height:44px;color:var(--muted);font-size:11px}.footer-inner>small{font-size:11px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:18px;padding:25px;width:min(540px,calc(100% - 32px));max-height:85dvh;background:var(--surface);color:var(--ink);box-shadow:0 30px 120px #0004}dialog::backdrop{background:#0a152b99;backdrop-filter:blur(5px)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}dialog h2{font-size:27px;margin-bottom:18px}dialog h3{margin:18px 0 8px}dialog p,dialog li{font-size:13px;margin-bottom:12px;color:var(--muted)}.modal-actions{display:flex;gap:10px;justify-content:end;flex-wrap:wrap;margin-top:23px}.completion-icon{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;color:#277453;background:#e7f7ee;font-size:29px;margin:0 auto 20px;animation:pop .4s ease-out}.completion{text-align:center}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:20px 0}.result-grid strong{display:block;color:var(--ink);font-size:22px}.result-grid span{font-size:11px;color:var(--muted)}.danger{color:var(--red);border-color:var(--red)}.storage-warning,.noscript{padding:12px 20px;background:var(--surface);border:1px solid var(--line);font-size:12px}.storage-warning{position:fixed;bottom:10px;left:10px;right:10px;z-index:30;max-width:500px;box-shadow:var(--shadow)}@keyframes pop{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}
@media(min-width:801px){.hero .eyebrow{display:none!important}.game-heading .tiny-label{display:none}}
@media(min-width:1200px){.number-pad{grid-template-columns:repeat(3,1fr);gap:6px}.number-pad button{font-size:20px;min-height:44px;padding:5px}.control-card{padding:18px}.tool-grid button{min-height:58px}.game-shell{max-width:960px;grid-template-columns:minmax(0,1fr) 284px}.board-wrap{margin-top:3px}.game-heading h2{font-size:23px}}
@media(max-width:800px){.header-inner{padding:0 20px}.header nav{gap:17px}.header nav a{font-size:11px}.game-shell{gap:20px;padding:20px;grid-template-columns:minmax(0,1fr) 230px}.control-card{padding:13px}.game-heading{align-items:start}.game-heading h2{font-size:17px}.game-heading .tiny-label{font-size:11px}.game-heading .text-button{font-size:11px}.game-meta{gap:15px}.keyboard-tip{font-size:11px}.number-pad{grid-template-columns:repeat(3,1fr)}.number-pad button{padding:3px;min-height:38px}.tool-grid button{min-height:56px}.control-card>.muted{font-size:11px}.section-heading h2{font-size:25px}.info-card,.strategy-grid article,.strategy-cta{padding:19px}.strategy-grid{grid-template-columns:repeat(2,1fr)}.footer-inner{gap:20px}}
@media(max-width:620px){.number-pad button small{top:1px;right:2px;font-size:9px}.board-column{width:100%}.hero .eyebrow,.hero p,.game-heading>div{display:none}.game-heading{justify-content:flex-end;margin-bottom:-8px}.play-section{padding-top:16px!important}.hero{margin-bottom:14px!important}h1{font-size:25px!important;margin:0 auto!important;letter-spacing:-1px!important}h1 span{display:inline!important}.control-column{display:contents}.board-column{order:1}.tools-card{order:2}.challenge-card{order:3}.stats-card{order:4}html{scroll-padding-top:115px}.header-inner{min-height:65px;gap:10px;flex-wrap:wrap;padding:12px 18px 0}.brand{font-size:20px}.brand img{width:28px;height:28px}.header-actions{gap:6px}.header-actions .button{min-height:36px;font-size:11px;padding:8px 12px}.header nav{order:3;justify-content:space-between;width:100%;padding:0 4px;gap:10px}.header nav a{font-size:11px;min-height:35px;display:flex;align-items:center}.header .icon-button{width:36px;height:36px}.play-section{padding:28px 15px 0}.hero{margin-bottom:24px}.eyebrow{font-size:11px;letter-spacing:1.4px}h1{font-size:35px;letter-spacing:-1.8px;max-width:360px;margin:14px auto}h1 span{display:block}.hero p{font-size:12px}.desktop-break{display:none}.game-shell{display:flex;flex-direction:column;padding:16px;gap:18px;border-radius:15px}.game-heading h2{font-size:20px}.game-heading .tiny-label{font-size:11px}.game-heading .text-button{font-size:11px}.game-meta{min-height:57px;font-size:11px;gap:24px}.cell{font-size:clamp(22px,6vw,30px)}.cell .pencil-grid{font-size:clamp(8px,2vw,10px)}.keyboard-tip{display:none}.progress-row{margin-top:13px}.control-column{gap:14px}.control-card{padding:16px}.control-card .card-heading{margin-bottom:10px}.control-card select{margin-bottom:5px}.control-card>.muted{font-size:11px}.control-card>.button{font-size:13px}.tool-grid{grid-template-columns:repeat(6,1fr);gap:2px}.tool-grid button{min-height:50px;font-size:11px;padding:6px 1px}.tool-grid kbd{display:none}.tool-grid small{font-size:11px}.number-pad{grid-template-columns:repeat(9,1fr);gap:4px;margin-top:12px}.number-pad button{min-height:44px;font-size:20px}.privacy-note{font-size:11px}.stats-card{padding:14px 16px}.stats-grid strong{font-size:24px}.stats-grid span,.streak{font-size:11px}.best-times{font-size:11px}.trust-strip{gap:10px;font-size:11px;justify-content:space-between;padding:22px 0 10px}.content-section{padding:40px 20px}.section-heading{display:block}.section-heading p{margin-top:14px}.section-heading h2{font-size:26px}.rules-grid{grid-template-columns:1fr;gap:12px}.info-card{padding:20px;display:grid;grid-template-columns:1fr 90px;gap:4px 12px}.info-card .step{grid-column:1}.info-card h3{grid-column:1;grid-row:2;margin:10px 0}.info-card p{grid-column:1;grid-row:3}.mini-row{font-size:11px;letter-spacing:0;gap:2px;white-space:normal;flex-wrap:wrap;width:80px;align-content:center}.mini-row b{padding:3px}.info-card>div{grid-column:2;grid-row:1 / 4;align-self:center}.mini-box{grid-template-columns:repeat(3,25px);grid-template-rows:repeat(3,25px)}.quick-tip{padding:14px;gap:12px}.strategy-grid{grid-template-columns:1fr;gap:12px}.strategy-grid article{padding:20px;display:grid;grid-template-columns:25px 1fr;gap:0 12px}.strategy-grid article>span{grid-row:1 / 3;margin-top:2px}.strategy-grid article h3{margin-bottom:8px}.strategy-grid article p{grid-column:2}.strategy-cta{min-height:170px}.faq-section{display:block}.faq-list{margin-top:20px}.faq-section h2 br{display:none}.footer-inner{padding:28px 20px;display:block}.footer-links{gap:15px;flex-wrap:wrap;margin:15px 0 8px}.footer-links button{font-size:11px}.result-grid{gap:5px}.result-grid strong{font-size:20px}dialog{padding:20px}}
@media(max-width:380px){.header-inner{padding-left:14px;padding-right:14px}.header-inner>.brand{font-size:17px;gap:7px}.header-inner>.brand img{width:24px;height:24px}.header-actions{gap:2px}.header-actions .button{padding:8px 10px}.header-actions .button>span{display:none}.game-heading h2{font-size:17px}.game-meta{gap:17px}.tool-grid button{font-size:11px}.number-pad{gap:3px}.number-pad button{font-size:18px}.trust-strip{font-size:11px;gap:6px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.not-found{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:24px}.not-found .brand{margin-bottom:24px}.not-found h1{margin:0}
.steps-list{list-style:none;counter-reset:step;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.steps-list li{counter-increment:step;border:1px solid var(--line);border-radius:12px;padding:22px 22px 22px 64px;position:relative}.steps-list li:before{content:counter(step,decimal-leading-zero);position:absolute;left:22px;top:22px;color:var(--blue);font-weight:750;font-size:13px}.steps-list h3{font-size:15px;margin-bottom:8px}.steps-list p{font-size:13px;line-height:1.8}
.level-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.level-links a{position:relative;display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px 40px 20px 20px;transition:border-color .15s,transform .15s}.level-links a:hover{border-color:var(--blue);transform:translateY(-2px)}.level-links strong{font-size:15px}.level-links span{font-size:12px;color:var(--muted)}.level-links .arrow{position:absolute;right:16px;top:18px;color:var(--blue);font-size:16px}
.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.week-grid div{border:1px solid var(--line);border-radius:10px;padding:14px 10px;text-align:center;display:flex;flex-direction:column;gap:4px}.week-grid strong{font-size:13px}.week-grid span{font-size:12px;color:var(--blue);font-weight:650}.week-note{margin-top:18px;font-size:13px}.week-note a,.footer-nav a:hover{color:var(--blue)}.week-note a{text-decoration:underline}
.daily-date{font-size:15px;font-weight:650;color:var(--ink);margin-bottom:14px}.daily-stats{display:grid;grid-template-columns:1fr 1fr;text-align:center;margin-bottom:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.daily-stats div{padding:10px 4px}.daily-stats div+div{border-left:1px solid var(--line)}.daily-stats strong{display:block;font-size:20px;font-variant-numeric:tabular-nums}.daily-stats span{font-size:11px;color:var(--muted)}.daily-card>.button{font-size:12px;min-height:42px;padding:10px 14px}
.footer-nav{display:flex;gap:18px;flex-wrap:wrap}.footer-nav a{font-size:12px;color:var(--muted);padding:10px 0}
@media(max-width:800px){.week-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:620px){.steps-list{grid-template-columns:1fr;gap:12px}.steps-list li{padding:18px 18px 18px 54px}.steps-list li:before{left:18px;top:18px}.level-links{grid-template-columns:1fr 1fr;gap:10px}.level-links a{padding:16px 30px 16px 16px}.week-grid{grid-template-columns:repeat(2,1fr)}.header nav{overflow-x:auto;scrollbar-width:none;gap:16px;justify-content:flex-start}.header nav::-webkit-scrollbar{display:none}.header nav a{white-space:nowrap}.footer-nav{margin-top:15px;gap:15px}}
/* Solver */
.cell.solved{color:var(--blue);font-weight:500}.cell.step{animation:stepflash 1.2s ease-out}@keyframes stepflash{0%{background:#ffe8a3}100%{background:var(--selected)}}
.solver-status{margin-top:14px;padding:12px 14px;border-radius:9px;background:var(--bg);border:1px solid var(--line);font-size:13px;color:var(--ink);min-height:48px}.solver-status[data-tone=ok]{border-color:#41a381;background:#e8f5ee;color:#1f5c3e}.solver-status[data-tone=warn]{border-color:#d9a200;background:#fff6db;color:#6b4e00}.solver-status[data-tone=error]{border-color:var(--red);background:var(--red-bg);color:var(--red)}
[data-theme=dark] .solver-status[data-tone=ok]{background:#173a2b;color:#9ee2bf}[data-theme=dark] .solver-status[data-tone=warn]{background:#3d3212;color:#ffd97a}
.solver-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.solver-actions .button{min-height:42px;padding:8px 10px;font-size:12px;gap:6px}.solver-pad{grid-template-columns:repeat(5,1fr)!important}.solver-pad .pad-erase{color:var(--muted)}
.solver-import{display:block;width:100%;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;resize:vertical}
.tool-shell .game-heading{margin-bottom:12px}
@media(max-width:620px){.solver-pad{grid-template-columns:repeat(10,1fr)!important}}
/* Printable */
.print-tool{max-width:1000px;margin:auto;display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;align-items:start}
.print-controls{position:sticky;top:96px;display:flex;flex-direction:column;gap:12px}.print-field select{margin-top:4px}.print-check{display:flex;gap:9px;align-items:center;font-size:13px;cursor:pointer}.print-check input{width:18px;height:18px;accent-color:var(--blue)}
.print-buttons{display:flex;flex-direction:column;gap:8px}.print-buttons .button{min-height:44px;font-size:13px}.print-status{font-size:12px}
.print-area{display:flex;flex-direction:column;gap:22px}
.sheet{background:#fff;color:#111;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:6px;padding:5% 6%;aspect-ratio:8.5/11;display:flex;flex-direction:column}
.sheet-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid #111;padding-bottom:6px;margin-bottom:10px;font-size:13px;color:#333}.sheet-head strong{font-size:17px;color:#111;letter-spacing:-.4px}.sheet-head strong span{color:#2764df}
.sheet-grids{flex:1;display:flex;flex-wrap:wrap;justify-content:space-evenly;align-content:space-evenly;gap:8px 4%}
.sheet-foot{text-align:center;font-size:11px;color:#666;border-top:1px solid #ccc;padding-top:6px;margin-top:8px}
.pgrid-wrap{margin:0;display:flex;flex-direction:column;align-items:center;gap:4px}.pgrid-wrap figcaption{font-size:11px;color:#555}
.pgrid{container-type:inline-size;width:100%;aspect-ratio:1;display:grid;grid-template-columns:repeat(9,1fr);border:2px solid #111;background:#fff}
.pgrid span{display:grid;place-items:center;border-right:1px solid #9a9a9a;border-bottom:1px solid #9a9a9a;font-size:6.2cqw;font-weight:600;color:#111;line-height:1}
.pgrid span:nth-child(9n){border-right:0}.pgrid span:nth-last-child(-n+9){border-bottom:0}.pgrid span.br{border-right:2px solid #111}.pgrid span.bb{border-bottom:2px solid #111}.pgrid.is-solution span{font-weight:500;color:#333}
.per-1 .pgrid-wrap{width:88%}.per-2 .pgrid-wrap{width:52%}.per-4 .pgrid-wrap{width:46%}.per-6 .pgrid-wrap{width:40%}.per-solutions .pgrid-wrap{width:30%}
@media(max-width:800px){.print-tool{grid-template-columns:1fr}.print-controls{position:static}}
@media print{
  @page{margin:12mm}
  html,body{background:#fff!important;color:#111!important}
  body>*:not(main),main>*:not(.play-section),.play-section>*:not(.print-tool),.print-controls,.hero,.trust-strip{display:none!important}
  .play-section{padding:0!important;max-width:none}.print-tool{display:block;max-width:none}.print-area{gap:0;display:block}
  .sheet{border:0;box-shadow:none;border-radius:0;padding:0;aspect-ratio:auto;height:252mm;break-after:page;page-break-after:always}
  .sheet:last-child{break-after:auto;page-break-after:auto}
  .per-6 .pgrid-wrap{width:37%}
}
/* Strategy guides */
.read-more{display:inline-block;margin-top:12px;font-size:12px;font-weight:650;color:var(--blue)}
.crumbs{display:flex;justify-content:center;gap:8px;font-size:12px;color:var(--muted);margin-bottom:10px}.crumbs a:hover{color:var(--blue)}
.article{max-width:780px}.article h2{font-size:24px;letter-spacing:-.6px;margin:34px 0 12px}.article h2:first-child{margin-top:0}.article p,.article li{font-size:15px;line-height:1.8;color:var(--ink)}.article p{margin-bottom:14px}.article ol{padding-left:22px;margin:0 0 16px}.article li{margin-bottom:8px}.article strong{color:var(--ink)}
.diag{margin:22px 0 26px;display:flex;flex-direction:column;align-items:center;gap:10px}.diag figcaption{font-size:13px;color:var(--muted);text-align:center;max-width:560px;line-height:1.6}.diag-note{display:block;font-style:italic}
.diag-grid,.diag-row{display:grid;border:2px solid var(--ink);background:var(--surface)}.diag-grid{grid-template-columns:repeat(9,1fr);width:min(100%,430px);aspect-ratio:1}.diag-row{grid-template-columns:repeat(9,1fr);width:min(100%,560px);aspect-ratio:9/1}
.dg{position:relative;display:grid;place-items:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;container-type:inline-size}.diag-row .dg{border-bottom:0}.dg:nth-child(9n){border-right:0}.diag-grid .dg:nth-last-child(-n+9){border-bottom:0}.dg.br{border-right:2px solid var(--ink)}.dg.bb{border-bottom:2px solid var(--ink)}
.dg b{font-size:55cqw;font-weight:650;color:var(--ink);line-height:1}.dg.m-target{background:var(--blue-soft)}.dg.m-pattern{background:#fff3c4}.dg.m-block{background:var(--peer)}.dg.m-block b{color:var(--blue)}
[data-theme=dark] .dg.m-pattern{background:#4a3e14}
.cands{display:grid;grid-template-columns:repeat(3,1fr);width:92%;height:92%;font-style:normal}.cands em{display:grid;place-items:center;font-style:normal;font-size:27cqw;color:var(--muted);line-height:1}.cands em.h{color:var(--blue);font-weight:800}.cands em.x{color:var(--red);text-decoration:line-through;font-weight:700}
.article-cta{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:var(--blue-soft);border-radius:12px;padding:20px 22px;margin:34px 0 22px}.article-cta div{display:flex;flex-direction:column;gap:2px}.article-cta strong{font-size:16px}.article-cta span{font-size:13px;color:var(--muted)}
.article-nav{display:grid;grid-template-columns:1fr 1fr;gap:14px}.article-nav a{border:1px solid var(--line);border-radius:12px;padding:14px 18px;display:flex;flex-direction:column;gap:2px;background:var(--surface)}.article-nav a:hover{border-color:var(--blue)}.article-nav a.next{text-align:right}.article-nav span{font-size:11px;color:var(--muted);letter-spacing:.5px;text-transform:uppercase}.article-nav strong{font-size:15px;color:var(--blue)}
body[data-page=article] .play-section,body[data-page=hub] .play-section{padding-bottom:0}
.cands em{font-size:30cqw}.diag{max-width:100%}.diag-scroll{max-width:100%;overflow-x:auto;padding-bottom:4px}
body[data-page=article] .article{padding-top:22px}body[data-page=hub] main>.content-section{padding-top:30px;padding-bottom:30px}
@media(max-width:620px){.diag-row{width:540px}.diag-grid{width:100%}}
.footer-links .install-app{color:var(--blue);font-weight:650}
/* 6×6 Sudoku */
.mini-board .board-row .cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:clamp(26px,4vw,40px)}
.mini-board .board-row .cell:last-child{border-right:0}.mini-board .board-row:last-child .cell{border-bottom:0}
.mini-board .cell.box-r{border-right:2px solid var(--ink)}.mini-board .cell.box-b{border-bottom:2px solid var(--ink)}
.mini-board .mini-pencil{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);font-size:clamp(10px,1.5vw,14px)}
.mini-pad{grid-template-columns:repeat(3,1fr)!important}.mini-pad button{font-size:22px;min-height:52px}
.mini-stats{grid-template-columns:1fr 1fr}.mini-shell .best-times{grid-template-columns:1fr}
@media(max-width:620px){.mini-pad{grid-template-columns:repeat(6,1fr)!important}.mini-board .cell{font-size:clamp(28px,8vw,40px)}}
.pgrid.pgrid-6{grid-template-columns:repeat(6,1fr)}.pgrid-6 span{font-size:9cqw}.pgrid-6 span:nth-child(9n){border-right:1px solid #9a9a9a}.pgrid-6 span:nth-child(6n){border-right:0}.pgrid-6 span:nth-last-child(-n+9){border-bottom:1px solid #9a9a9a}.pgrid-6 span:nth-last-child(-n+6){border-bottom:0}.pgrid-6 span.br{border-right:2px solid #111}.pgrid-6 span.bb{border-bottom:2px solid #111}
.mini-board{grid-template-rows:repeat(6,1fr)}.mini-board .board-row{grid-template-columns:repeat(6,1fr)}
/* Killer Sudoku */
.killer-board .cell{font-size:clamp(18px,2.4vw,27px)}
.cage-edge{position:absolute;inset:3px;pointer-events:none;border:0 dashed transparent}
.cage-edge.t{border-top:1.5px dashed var(--muted);top:3px}.cage-edge.b{border-bottom:1.5px dashed var(--muted)}.cage-edge.l{border-left:1.5px dashed var(--muted)}.cage-edge.r{border-right:1.5px dashed var(--muted)}
.cage-edge:not(.t){top:-1px}.cage-edge:not(.b){bottom:-1px}.cage-edge:not(.l){left:-1px}.cage-edge:not(.r){right:-1px}
.cage-sum{position:absolute;top:4px;left:5px;font-size:clamp(9px,1.05vw,12px);font-weight:700;line-height:1;color:var(--ink);background:var(--surface);padding:0 1px;z-index:1}
.cell.peer .cage-sum,.cell.in-cage .cage-sum{background:transparent}.cell.in-cage{background:var(--blue-soft)}.cell.in-cage .cage-edge{border-color:var(--blue)!important}
.cell.cage-bad .cage-edge{border-color:var(--red)!important}.cell.cage-bad .cage-sum{color:var(--red)}
.killer-board .pencil-grid{padding-top:12%}
.killer-status{margin-top:12px;padding:10px 14px;border-radius:9px;background:var(--bg);border:1px solid var(--line);font-size:13px;color:var(--muted);min-height:44px}.killer-status strong{color:var(--ink)}
@media(max-width:620px){.killer-board .cell{font-size:clamp(17px,5vw,24px)}.cage-sum{font-size:9px;top:2px;left:3px}.cage-edge{inset:2px}}
.pgrid-killer span{position:relative;font-size:5.6cqw}.pcage{position:absolute;inset:-1px;pointer-events:none;font-style:normal}.pcage.t{border-top:1px dashed #333;top:2px}.pcage.b{border-bottom:1px dashed #333;bottom:2px}.pcage.l{border-left:1px dashed #333;left:2px}.pcage.r{border-right:1px dashed #333;right:2px}
.psum{position:absolute;top:3px;left:3px;font-size:2.3cqw;font-weight:700;line-height:1;background:#fff;padding:0 1px;color:#111}.pgrid-killer.is-solution .pcage{opacity:.35}
@media(max-width:620px){.killer-status{font-size:12px;padding:7px 10px;min-height:0;margin-top:8px}.killer-shell .progress-row{margin-top:8px}}
@media(max-width:620px){.killer-shell .progress-row,.killer-shell progress{display:none}.killer-shell .game-meta{min-height:44px}}
/* Consent banner */
.consent-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:40;max-width:560px;margin:0 auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 60px #0003;padding:18px 20px}
.consent-banner p{font-size:13px;color:var(--muted);line-height:1.6}.consent-banner strong{color:var(--ink)}
.consent-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}.consent-actions .button{min-height:42px;padding:8px 18px;font-size:13px}
