:root{color-scheme:dark;--gold:#e8cc84;--cream:#f9f4e5;--muted:#afc2b2;--ink:#f9f4e5;--board-size: min(472px,calc(100svh - 230px))}
*{box-sizing:border-box}body{margin:0;background:#0b3528;background-image:radial-gradient(ellipse at 40% 18%,#32644765,transparent 65%);color:var(--cream);font:14px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;border:1px solid #c4d5b92c;border-radius:10px;min-height:44px;background:#ffffff07;padding:10px 14px;transition:background .15s,transform .15s,box-shadow .15s}button:hover{background:#ffffff13}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}a{color:inherit}.gold{color:var(--gold)}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;pointer-events:none}
.site-header{display:flex;align-items:center;gap:28px;height:70px;padding:0 max(24px,calc((100vw - 1240px)/2));border-bottom:1px solid #cbdabb16;background:#072d2280}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;font-weight:750;font-size:21px;white-space:nowrap}.brand-logo{width:35px;height:36px;object-fit:contain}.site-nav{display:flex;gap:22px;margin-left:auto}.site-nav a{text-decoration:none;font-size:12px;color:#c1d2c1}.community-tools{margin-left:auto;gap:14px;font-size:12px}.site-header:has(.community-tools){flex-wrap:nowrap}.community-tools [data-account-link]{padding:7px 13px;max-width:130px}
main{max-width:1050px;padding:0 28px;margin:auto}.game-heading{max-width:calc(var(--board-size) + 324px);margin:23px auto 20px;display:flex;justify-content:space-between;align-items:center;gap:16px}.eyebrow{color:var(--gold);font-size:9px;font-weight:650;letter-spacing:2px;margin:0 0 5px}.game-heading h1{font:normal 42px/1.1 Georgia,serif;letter-spacing:-1px;margin:0}.game-heading h1 span{color:var(--gold)}.quiet{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;background:transparent}.game-layout{display:grid;grid-template-columns:var(--board-size) 280px;column-gap:36px;max-width:max-content;margin:auto;align-items:start}.board-panel{width:var(--board-size);min-width:0}.board-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;height:37px}.difficulty{display:flex;align-items:center;gap:9px;min-height:36px;padding:7px 12px;border-radius:20px;background:#e8cc8410;color:#e9dfbb;font-size:12px}.difficulty .icon{width:12px;height:12px;transform:rotate(90deg)}.difficulty-dot{width:6px;height:6px;border-radius:50%;background:#b6d9a4}.clock{display:flex;align-items:center;gap:10px;font-variant-numeric:tabular-nums;color:#d3decc;font-size:14px;letter-spacing:1px}.clock button{width:34px;min-height:34px;padding:7px;border-radius:50%;display:grid;place-items:center}.clock .icon{width:16px;height:16px}.sudoku-board{width:100%;aspect-ratio:1;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));border:2px solid #d4c797;border-radius:8px;overflow:hidden;background:#f7f4e8;box-shadow:0 4px 0 #a3926290,0 18px 60px #00190f55;isolation:isolate}.grid-row{display:contents}.cell{position:relative;display:grid;place-items:center;border:0;border-right:1px solid #9aa88e6b;border-bottom:1px solid #9aa88e6b;border-radius:0;padding:0;min-height:0;min-width:0;background:#f7f4e8;color:#277077;font-size:clamp(20px,calc(var(--board-size)/17),30px);font-weight:500;line-height:1;user-select:none;transition:background .12s}.cell.given{color:#223e2e;font-weight:650}.cell.major-right{border-right:2px solid #60715c}.cell.major-bottom{border-bottom:2px solid #60715c}.cell.last-col{border-right:0}.cell.last-row{border-bottom:0}.cell.peer{background:#e7ecdc}.cell.same{background:#c5dbc0}.cell:hover{background:#e6ddb7}.cell.selected{background:#edcf87;box-shadow:inset 0 0 0 2px #b6913d;z-index:1}.cell.conflict{color:#b53b32;background:#f6dcd2}.cell.conflict::after{content:"!";position:absolute;top:3px;right:3px;font-size:9px;font-weight:800}.cell.hint-cell{box-shadow:inset 0 0 0 3px #51a787}.cell:focus-visible{outline:0;box-shadow:inset 0 0 0 3px #aa7930;z-index:2}.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;padding:3px;color:#587665;font-weight:500;font-size:clamp(7px,calc(var(--board-size)/48),11px)}.notes-grid span{display:grid;place-items:center}.board-bottom{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:#b6c7ad;margin:14px 1px 7px}.save-note{font-size:9px;color:#8fab98}.progress-track{height:3px;border-radius:3px;background:#ffffff0d;overflow:hidden}.progress-track>span{height:100%;display:block;width:0;background:linear-gradient(90deg,#759e78,#e8cc84);transition:width .3s}
.controls{padding-top:2px}.control-heading{display:flex;align-items:center;gap:15px;margin-bottom:18px}.control-heading h2{font:normal 23px/1.25 Georgia,serif;margin:7px 0 0;max-width:200px}.control-heading .eyebrow{font-size:8px;letter-spacing:1.5px}.mini-grid{font:11px/1.8 Georgia,serif;color:#d5ca93;letter-spacing:3px;text-align:center;transform:rotate(9deg);padding:5px 4px 5px 8px;border:1px solid #e6d59740;border-radius:6px;flex-shrink:0}.primary{color:#30422b;font-weight:700;background:linear-gradient(#f2df9d,#d7b663);border-color:#f0dea280;box-shadow:inset 0 1px 0 #fff6d180,0 3px 0 #847143,0 7px 20px #00180b40}.primary:hover{background:linear-gradient(#fff0b3,#e4c677);transform:translateY(-1px)}.new-game{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:20px}.tools{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tools button{min-width:0;padding:10px 3px;min-height:63px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:11px;background:linear-gradient(#ffffff0b,#ffffff03);box-shadow:0 2px 0 #07271b}.tools button[aria-pressed=true]{border-color:#dbc17a;background:#e2c47620;color:#ffe7a3}.number-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.number-pad button{display:flex;align-items:center;justify-content:center;gap:13px;height:56px;font-size:27px;font-weight:500;border:1px solid #b6cba13b;background:linear-gradient(#385b40,#2c4c36);box-shadow:inset 0 1px 0 #ffffff10,0 2px 0 #072a1c}.number-pad button:hover{background:#486749}.number-pad button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}.number-pad small{font-size:9px;color:#b7c6a4}.number-pad .number-complete{opacity:.35}.input-tip{font-size:11px;text-align:center;color:#c2cdb5;margin:14px 0 10px;min-height:17px}.preferences{display:flex;justify-content:space-between;gap:8px;border-top:1px solid #d0d6b520;padding-top:7px}.preferences .quiet{padding:6px;min-height:36px;font-size:11px;border:0;color:#b5c5ae}.preferences .icon{width:17px;height:17px}.keyboard-tip{font-size:10px;color:#8da68e;line-height:1.9;margin:10px 0 0}kbd{font:inherit;color:#bdcbb3}.game-status{grid-column:1/-1;text-align:center;font-size:11px;color:#b9cbb7;min-height:20px;margin:20px 0 0;max-width:100%}
.sudoku-guide{margin:68px 0 35px;padding-top:32px;border-top:1px solid #c5d2b91c;display:grid;grid-template-columns:1fr 1fr;gap:55px}.sudoku-guide h2,.sudoku-faq h2{font:normal 29px/1.2 Georgia,serif;margin:10px 0 15px}.sudoku-guide p,.sudoku-faq p{font-size:13px;color:#b5c8b5;line-height:1.8}.guide-cards article{position:relative;padding-left:38px;margin-bottom:20px}.guide-cards article>span{position:absolute;left:0;top:1px;font:italic 23px Georgia,serif;color:#c3b47d}.guide-cards h3{font-size:13px;margin:0 0 4px}.guide-cards p{font-size:12px;margin:0}.sudoku-faq{max-width:750px;margin:40px auto}.sudoku-faq details{border-bottom:1px solid #c2d1b820;padding:14px 0}.sudoku-faq summary{cursor:pointer;font-size:13px;color:#dedec2}.sudoku-faq p{margin-bottom:0}footer{display:flex;align-items:center;gap:20px;border-top:1px solid #c5d2b91c;padding:24px 0;color:#9bb09c;font-size:10px}footer .footer-brand{font-size:15px;font-weight:650;text-decoration:none;color:#d2dfc9}footer nav{display:flex;gap:16px;margin-left:auto}footer nav a{text-decoration:none}
dialog{color:var(--cream);background:radial-gradient(ellipse at 50% 0,#3d5c3e,#123d2b 80%);width:calc(100% - 32px);max-width:480px;max-height:calc(100dvh - 32px);border:1px solid #ddce846b;border-radius:21px;box-shadow:0 30px 100px #0008;padding:30px;overflow:auto}dialog::backdrop{background:#041e17c7;backdrop-filter:blur(6px)}dialog h2{font:normal 32px/1.15 Georgia,serif;margin:8px 0 15px;letter-spacing:-.5px}dialog p{color:#c3d2bd;font-size:13px;line-height:1.8;white-space:pre-line}.dialog-close{position:absolute;right:12px;top:12px;min-height:34px;width:34px;padding:0;border-radius:50%;font-size:24px;line-height:1}#dialog-label{color:var(--gold);padding-right:32px;font-size:9px}#dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}#dialog-actions button{font-size:12px;font-weight:600}.difficulty-options{display:grid;gap:10px;margin-top:20px}.difficulty-option{display:flex;align-items:center;justify-content:space-between;gap:15px;text-align:left;padding:15px}.difficulty-option strong{font:23px Georgia,serif;color:#f3e8b5}.difficulty-option span{display:block;font-size:11px;color:#b7cbb2;margin-top:5px}.difficulty-option .icon{color:var(--gold);width:15px}.difficulty-option.current{border-color:var(--gold);background:#d8bf7620}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;margin:20px 0}.setting-row input{accent-color:#d9bc6d;width:20px;height:20px}.board-hidden .sudoku-board{visibility:hidden}.hint-location{display:block;font-size:11px;color:#cbd9b9;padding:12px;border:1px solid #d0d9ad33;border-radius:8px;margin-top:14px}.win-dialog{text-align:center}.win-dialog h2{color:#ffe4a0}.win-mark{margin:5px auto 18px;width:84px;height:84px;display:grid;place-items:center;color:#e8cc84;background:#ddc17818;border:1px solid #e8cc8460;border-radius:50%;font:42px Georgia,serif;animation:win-pop .65s ease-out both}.win-results{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #c4d6b42b;border-radius:12px;padding:14px 4px;background:#072c2255;margin-top:20px}.win-results strong{display:block;color:#f5e4b4;font-size:20px}.win-results span{font-size:10px;color:#b7c6a9}.win-dialog #dialog-actions{justify-content:center}.confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;pointer-events:none;width:7px;height:12px;border-radius:2px}.cell.group-complete{animation:group-glow .7s ease-out}@keyframes group-glow{0%,100%{filter:none}40%{background:#badc9d}}@keyframes win-pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.noscript{padding:20px;background:#164430;text-align:center}
@media(max-width:1050px){:root{--board-size:min(472px,calc(100svh - 230px),calc(100vw - 342px))}.site-nav{gap:15px}.site-nav a:nth-child(n+3){display:none}.community-board-link{display:none}.site-header{padding:0 24px}.game-layout{column-gap:26px;grid-template-columns:var(--board-size) 260px}.game-heading{max-width:calc(var(--board-size) + 286px)}}
@media(min-width:701px) and (max-height:760px){:root{--board-size:min(435px,calc(100svh - 210px),calc(100vw - 342px))}.game-heading{margin:15px auto}.control-heading{margin-bottom:10px}.control-heading h2{font-size:20px}.new-game{margin-bottom:12px;min-height:40px}.tools button{min-height:50px;padding:6px 3px}.number-pad{margin-top:12px;gap:6px}.number-pad button{height:43px;font-size:24px}.keyboard-tip{display:none}.input-tip{margin:9px 0 6px}.game-status{margin-top:12px}}
@media(max-width:700px){:root{--board-size:min(calc(100vw - 32px),calc(100svh - 326px))}.site-header{height:54px;padding:0 16px;gap:10px}.brand{font-size:17px;gap:6px}.brand-logo{width:28px;height:29px}.site-nav{display:none}.community-tools{margin-left:auto;font-size:10px}.community-tools [data-account-link]{max-width:105px;padding:5px 10px}.site-header:has(.community-tools){gap:8px}main{padding:0 16px}.game-heading{max-width:430px;margin:15px auto 13px}.game-heading .eyebrow{font-size:7px;letter-spacing:1.5px}.game-heading h1{font-size:32px}.game-heading .quiet{font-size:10px;padding:5px 8px;min-height:34px}.game-heading .icon{width:16px;height:16px}.game-layout{display:flex;flex-direction:column;align-items:center;gap:0;max-width:430px}.board-top{height:30px;margin-bottom:8px}.difficulty{min-height:30px;font-size:11px;padding:5px 10px}.clock{font-size:12px}.clock button{min-height:30px;width:30px;padding:6px}.board-bottom{margin-top:9px;font-size:9px;margin-bottom:5px}.save-note{font-size:8px}.controls{display:grid;grid-template-columns:1fr auto;gap:8px;width:100%;padding:13px 0 0}.control-heading,.keyboard-tip,.input-tip{display:none}.new-game{grid-column:2;grid-row:3;font-size:10px;min-height:32px;padding:5px 10px;margin:0}.new-game .icon{width:14px;height:14px}.tools{grid-column:1/-1;grid-row:1;grid-template-columns:repeat(6,1fr);gap:5px}.tools button{min-height:45px;font-size:9px;padding:5px 2px;gap:2px;border-radius:8px}.tools .icon{width:17px;height:17px}.number-pad{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(9,1fr);gap:4px;margin:0}.number-pad button{height:43px;min-height:43px;font-size:23px;gap:0;padding:0;border-radius:8px}.number-pad small{display:none}.preferences{grid-column:1;grid-row:3;border:0;padding:0;justify-content:flex-start;gap:5px}.preferences .quiet{min-height:32px;font-size:10px;padding:4px}.preferences .icon{width:15px;height:15px}.game-status{font-size:10px;margin:10px 0 0;min-height:16px}.sudoku-guide{margin-top:45px;grid-template-columns:1fr;gap:25px;padding-top:25px}.sudoku-guide h2,.sudoku-faq h2{font-size:26px}.sudoku-guide p{font-size:12px}footer{flex-wrap:wrap;gap:12px}footer nav{width:100%;margin:0}dialog{padding:26px 20px}dialog h2{font-size:28px}#dialog-actions{flex-wrap:wrap}#dialog-actions button{flex:1}.win-results strong{font-size:18px}}
@media(min-width:701px) and (max-height:500px){:root{--board-size:calc(100svh - 118px)}.site-header{height:48px}.brand{font-size:17px}.brand-logo{height:27px;width:27px}.game-heading{display:none}.game-layout{padding-top:10px;grid-template-columns:var(--board-size) 300px;gap:0 32px}.board-top{height:28px;margin-bottom:7px}.difficulty{min-height:28px;padding:4px 10px}.clock button{min-height:28px;width:28px;padding:5px}.board-bottom{margin:8px 0 4px}.control-heading,.keyboard-tip,.input-tip{display:none}.new-game{min-height:33px;margin-bottom:10px;font-size:12px;padding:5px}.tools button{min-height:42px;gap:2px;font-size:10px}.tools .icon{height:16px;width:16px}.number-pad{margin-top:10px;gap:5px}.number-pad button{height:36px;min-height:36px;font-size:23px}.preferences{margin-top:8px;padding:0}.game-status{margin-top:7px;font-size:10px}.sudoku-guide{margin-top:45px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.confetti{display:none}}
/* Keep the complete keypad and game actions in view on short phones. */
@media(max-width:700px){:root{--board-size:min(calc(100vw - 32px),calc(100svh - 330px))}.game-heading{margin:8px auto}.game-heading .eyebrow{display:none}.game-heading h1{font-size:30px}.game-heading .quiet{white-space:nowrap}.controls{padding-top:10px}.game-status{margin-top:7px}}
/* Compact landscape phones keep the keypad beside the grid. */
@media(max-width:700px) and (max-height:500px) and (orientation:landscape){:root{--board-size:calc(100svh - 122px)}.site-header{height:42px}.brand{font-size:16px}.brand-logo{width:25px;height:26px}.game-heading{display:none}.game-layout{display:grid;grid-template-columns:var(--board-size) minmax(0,250px);column-gap:20px;max-width:max-content;padding-top:10px;align-items:start}.controls{display:flex;flex-direction:column;padding:0;gap:0}.new-game{min-height:30px;margin:0 0 8px}.tools{grid-template-columns:repeat(3,1fr);gap:5px}.tools button{min-height:37px;padding:4px 2px;font-size:9px}.tools .icon{width:15px;height:15px}.number-pad{grid-template-columns:repeat(3,1fr);margin-top:8px;gap:5px}.number-pad button{height:33px;min-height:33px;font-size:22px}.number-pad small{display:block;margin-left:12px}.preferences{justify-content:space-between;margin-top:6px}.preferences .quiet{min-height:27px}.board-bottom{margin:6px 0 3px;font-size:8px}.game-status{grid-column:1/-1;margin-top:5px}}
@media(max-width:700px) and (max-height:500px) and (orientation:landscape){.tools button{flex-direction:row;gap:5px}}
