:root{color-scheme:light;--paper:#f7f3ea;--ink:#244b46;--muted:#63736a;--line:#d7dbcd;--teal:#b9d9d0;--coral:#edc1ad;--ochre:#e8ce91;--serif:Georgia,'Times New Roman',serif;--sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.35;cursor:default}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #b4613a;outline-offset:4px}button:focus:not(:focus-visible){outline:none}button{touch-action:manipulation}[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;top:10px;left:15px;transform:translateY(-150%);z-index:20;background:var(--ink);color:white;padding:12px}.skip-link:focus{transform:translateY(0)}
.site-header,.site-footer{max-width:1260px;margin:auto;display:flex;align-items:center;justify-content:space-between}.site-header{padding:37px 60px 24px}.wordmark{display:flex;gap:10px;align-items:center;text-decoration:none;font:600 32px/1 var(--serif);letter-spacing:-1.5px}.brand-period{color:#bf6e4d;margin-left:-9px}.brand-mark{display:grid;grid-template-columns:15px 13px;grid-template-rows:13px 15px;gap:3px;margin-right:2px}.brand-mark i{background:var(--teal);border:1px solid var(--ink)}.brand-mark i:first-child{grid-row:span 2}.brand-mark i:nth-child(2){background:var(--ochre)}.brand-mark i:nth-child(3){background:var(--coral)}.rule-link{font-size:13px;font-weight:600;text-decoration:none;border-bottom:1px solid #a6b2a6;padding-bottom:5px}.rule-link span{margin-left:13px;font-size:17px}.rule-link:hover{color:#a45336;border-color:#a45336}
.studio{max-width:1260px;margin:32px auto 62px;padding:0 60px;display:grid;grid-template-columns:minmax(290px,.85fr) minmax(360px,1.15fr);gap:67px;align-items:start}.introduction{padding-top:65px}.eyebrow{font-size:10px;letter-spacing:1.55px;line-height:1.8;font-weight:650;display:flex;gap:10px;align-items:center}.tiny-square{width:7px;height:7px;background:#af704d;flex:none}h1{font:normal clamp(48px,5.1vw,68px)/1.07 var(--serif);letter-spacing:-2.8px;margin:30px 0 23px}h1 em{font-weight:400;color:#467a6c}.intro-copy{font-size:15px;line-height:1.85;max-width:290px;color:#556b60}.rule-sketch{display:flex;align-items:center;gap:20px;margin:48px 0 40px}.sketch-grid{width:126px;height:84px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);background:var(--teal);border:2px solid var(--ink);transform:rotate(-5deg);box-shadow:4px 5px 0 #e6e8dc}.sketch-grid span{border-right:1px solid #769f9240;border-bottom:1px solid #769f9240;display:flex;align-items:center;justify-content:center;font:30px var(--serif)}.rule-sketch p{font:italic 16px/1.6 var(--serif);color:#557265;position:relative;padding-top:10px}.sketch-arrow{position:absolute;left:-5px;top:-22px;font-size:30px;transform:rotate(-15deg)}.side-note{display:flex;gap:18px;font-size:12px;line-height:1.9;padding-top:21px;border-top:1px solid var(--line);max-width:315px}.side-note p{margin:0}.note-number{font-size:10px;font-weight:650;letter-spacing:1px;color:#9b6b4b;padding-top:3px}.interaction-note{max-width:270px;font-size:12px;line-height:1.8;color:var(--muted);margin:21px 0 0 43px}
.game{min-width:0;max-width:560px;width:100%;justify-self:end}.game-settings{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:3px 0 23px}.mode-switch{display:flex;background:#e8eade;border-radius:30px;padding:4px;gap:2px}.mode-switch button{border:0;border-radius:24px;background:transparent;padding:8px 18px;font-size:12px;min-height:36px}.mode-switch button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.mode-switch button[aria-pressed=false]:hover{background:#dce2d3}.size-switch{display:flex;gap:5px}.size-switch button{border:1px solid transparent;background:none;border-radius:4px;padding:9px 10px;font-size:12px;min-height:36px}.size-switch button[aria-pressed=true]{border-color:#a6b7a5;background:#eeeee2}.size-switch button:hover{background:#e5e8db}.board-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.board-caption h2{font-size:12px;line-height:1.5;font-weight:550;margin:0}.board-caption>span{font-size:9px;font-weight:600;letter-spacing:1.5px;color:var(--muted)}
.board-wrap{position:relative}.board-wrap:before{content:'';position:absolute;inset:8px -8px -8px 8px;background:#e5e7d9;border:1px solid #d9decc;z-index:-1}.board{position:relative;width:100%;aspect-ratio:1;border:2px solid var(--ink);background:#fdfbf4;touch-action:none;user-select:none;-webkit-user-select:none;overflow:hidden}.grid-cells{position:absolute;inset:0;display:grid;grid-template-rows:repeat(var(--size),1fr);z-index:2}.grid-row{display:grid;grid-template-columns:repeat(var(--size),1fr);min-height:0}.cell{padding:0;display:flex;align-items:center;justify-content:center;border:0;background:transparent;box-shadow:inset -1px -1px 0 #244b4621;font:normal clamp(23px,3.7vw,39px)/1 var(--serif);font-variant-numeric:lining-nums;position:relative;min-width:0;min-height:0;touch-action:none;border-radius:0}.board[data-size='8'] .cell{font-size:clamp(22px,2.8vw,31px)}.cell:hover{background:#244b4610}.cell:focus-visible{outline:3px solid #a35a36;outline-offset:-4px;z-index:5}.cell.anchor:after{content:'';position:absolute;inset:6px;border:2px dashed var(--ink);border-radius:3px}.cell.filled{color:#183e38}.cell.clue:before{content:'';width:5px;height:5px;position:absolute;right:8px;bottom:8px;border-radius:50%;background:#244b4640;opacity:0}.cell.filled.clue:before{opacity:1}.regions{position:absolute;inset:0;pointer-events:none;z-index:1}.region{position:absolute;background:var(--region-color);border:2px solid #365c4d;box-shadow:inset 0 0 0 2px #ffffff28;animation:grow-in .18s ease-out}.region.hint-target{background:transparent;border:3px dashed #a4512e;z-index:4;box-shadow:inset 0 0 0 3px #fffaf088;animation:none}.region.remove-target{background:#c2543b35;border-color:#99442d}.selection{position:absolute;background:#b6d3c96b;border:2px dashed var(--ink);pointer-events:none;z-index:4}.selection.invalid{background:#e9ac994d;border-color:#a4492e}.selection>span{position:absolute;right:5px;top:5px;background:var(--ink);color:white;border-radius:20px;padding:4px 7px;font:11px var(--sans);box-shadow:0 1px 5px #244b4633}.selection.invalid>span{background:#a4492e}.board.erase-mode .cell{cursor:crosshair}.board.solved{border-color:#47735f}.board.solved .region{animation:finish .6s ease-out}.board-meta{display:flex;justify-content:space-between;font-size:11px;font-weight:500;letter-spacing:.1px;color:#5e6e62;margin-top:18px;padding:0 1px}.timer-label{display:flex;gap:6px;align-items:center;font-variant-numeric:tabular-nums}.timer-label>span{font-size:17px;line-height:1}
.toolbar{display:flex;align-items:center;gap:7px;padding-top:17px}.toolbar button{font-size:12px;border:1px solid transparent;background:none;padding:10px 12px;min-height:40px;border-radius:5px;display:flex;align-items:center;gap:7px}.toolbar button:not(:disabled):hover{background:#e6eadd}.toolbar button[aria-pressed=true]{border-color:var(--ink);background:#e0e7db}.toolbar #undo>span{font-size:20px;line-height:15px}.erase-icon{width:12px;height:9px;border:1px solid currentColor;transform:rotate(-35deg);display:block;border-radius:1px}.toolbar .hint-button{margin-left:auto;background:var(--ink);color:var(--paper);padding:10px 16px}.toolbar .hint-button:not(:disabled):hover{background:#3a6356}.hint-button>span{font-size:18px;line-height:1}.status{font-size:12px;line-height:1.65;min-height:40px;margin:12px 1px 0;color:#5e6e62}.status.error{color:#9a402c}.hint-panel{border-top:1px solid #c6cbbb;border-bottom:1px solid #c6cbbb;padding:15px 0;margin:0 0 16px}.hint-panel p{font-size:13px;line-height:1.7;margin:0 0 12px}.hint-panel>div{display:flex;gap:15px;align-items:center}.hint-panel button{border:1px solid var(--ink);padding:9px 14px;background:var(--ink);color:var(--paper);font-size:12px;border-radius:4px;min-height:40px}.hint-panel .text-button{background:none;color:var(--ink);border-color:transparent;padding-left:0;padding-right:0;text-decoration:underline;text-underline-offset:3px}.completion{display:flex;gap:14px;align-items:center;margin:0 0 19px;padding:19px 0;border-top:1px solid #aab7a2;border-bottom:1px solid #aab7a2}.completion-mark{font-size:25px;color:#427563}.completion h3{font:24px/1.2 var(--serif);letter-spacing:-.5px;margin:0 0 5px}.completion p{font-size:11px;color:var(--muted);margin:0}.completion button{margin-left:auto;font-size:11px;border:0;background:none;padding:10px 0 10px 10px;line-height:1.6;min-width:85px;text-align:right}.completion button:hover{text-decoration:underline}.completion button span{margin-left:7px}.under-board{border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:10px;color:#607060}.under-board button{font-size:11px;font-weight:550;padding:5px 0;min-height:32px;background:none;border:0;white-space:nowrap;color:var(--ink)}.under-board button:hover{text-decoration:underline}.under-board button>span{margin-left:7px}.save-note{font-size:11px;line-height:1.7;color:#915139;margin-bottom:0}.site-footer{padding:25px 60px 30px;border-top:1px solid var(--line);font-size:11px;color:#607060}.site-footer a{text-decoration:none}.site-footer a:hover{text-decoration:underline}.no-script{padding:20px;text-align:center}
.guide{max-width:820px;margin:42px auto 90px;padding:0 40px}.guide .eyebrow{margin-bottom:20px}.guide h1{font-size:59px;margin-bottom:20px}.guide .lead{font-size:18px;line-height:1.75;max-width:610px}.guide h2{font:31px/1.3 var(--serif);letter-spacing:-.7px;margin:44px 0 16px}.guide h3{font-size:16px;margin:25px 0 10px}.guide p,.guide li{font-size:15px;line-height:1.85;color:#536b5e}.guide ol,.guide ul{padding-left:24px}.guide li{padding-left:8px;margin-bottom:10px}.guide strong{color:var(--ink);font-weight:650}.guide-example{display:flex;align-items:center;gap:34px;margin:30px 0;padding:28px 0;border-block:1px solid var(--line)}.guide-example svg{width:180px;flex:none;height:180px}.guide-example figcaption{font-size:14px;line-height:1.85;color:#536b5e}.guide kbd{font:12px var(--sans);padding:2px 5px;border:1px solid #bbc7b5;border-radius:3px;background:#eef0e5}.play-link{display:inline-block;margin-top:20px;background:var(--ink);color:var(--paper);padding:14px 21px;border-radius:5px;text-decoration:none;font-size:13px}.play-link:hover{background:#3a6356}
@keyframes grow-in{from{opacity:.5;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes finish{0%,100%{filter:none}50%{filter:brightness(1.1)}}
@media(min-width:1450px){.studio{margin-top:52px}.introduction{padding-top:45px}}
@media(max-width:1000px){.site-header,.site-footer{padding-left:35px;padding-right:35px}.studio{padding:0 35px;gap:35px;grid-template-columns:minmax(260px,.8fr) minmax(340px,1.1fr)}h1{font-size:53px}.game-settings{gap:8px}.size-switch{gap:1px}.size-switch button{padding:9px 8px}.mode-switch button{padding:8px 14px}.eyebrow{font-size:9px;letter-spacing:1px}}
@media(max-width:760px){.site-header{padding:25px 23px 20px}.wordmark{font-size:28px}.brand-mark{transform:scale(.88);transform-origin:left center;margin-right:-3px}.rule-link{font-size:12px}.studio{display:block;max-width:590px;padding:0 23px;margin:16px auto 45px}.introduction{padding:0}.eyebrow{font-size:9px;letter-spacing:1.1px;margin:0 0 14px}h1{font-size:36px;letter-spacing:-1.5px;line-height:1.1;margin:0 0 10px}h1 br{display:none}.intro-copy{font-size:12px;line-height:1.65;max-width:360px;margin:0 0 22px}.rule-sketch,.side-note{display:none}.interaction-note{margin:9px 0 24px;font-size:11px;max-width:none}.game{max-width:none}.game-settings{margin-bottom:20px}.board-caption{margin-bottom:12px}.cell{font-size:36px}.board[data-size='8'] .cell{font-size:26px}.board-wrap:before{inset:6px -6px -6px 6px}.site-footer{padding:23px;font-size:10px}.toolbar{gap:3px}.toolbar button{padding:10px 11px}.toolbar .hint-button{padding:10px 14px}.under-board{font-size:9px}.guide{padding:0 23px;margin-top:26px}.guide h1{font-size:47px}.guide .lead{font-size:16px}.guide-example{gap:20px}.guide-example svg{width:140px;height:140px}}
@media(max-width:380px){.site-header{padding-inline:16px}.studio{padding-inline:16px}.wordmark{font-size:25px}.rule-link span{margin-left:4px}.game-settings{gap:5px}.size-switch button{font-size:11px;padding:8px 7px}.mode-switch button{font-size:11px;padding:8px 12px}.toolbar button{padding:10px 8px;font-size:11px}.toolbar .hint-button{padding:10px 10px}.cell{font-size:31px}.board[data-size='8'] .cell{font-size:23px}.completion h3{font-size:20px}.guide-example{display:block}.guide-example svg{width:170px;height:170px;margin-bottom:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.save-notice,.storage-notice{padding:14px;border:1px solid #b68547;border-radius:8px;margin-top:15px;background:#fcf4e5;color:#503b20}.save-notice p,.storage-notice p{margin:0 0 10px;font:13px/1.6 system-ui}.save-notice button,.storage-notice button{min-height:44px;padding:9px 14px;font:13px system-ui;border:1px solid currentColor;border-radius:6px;background:transparent;color:inherit;cursor:pointer}

.storage-confirm{max-width:420px;width:calc(100% - 64px);padding:25px;border:1px solid #b7c6be;border-radius:12px;background:#f7f7f1;color:#243d36;box-shadow:0 25px 70px #10271e55}.storage-confirm::backdrop{background:#15251e88}.storage-confirm h2{margin:0 0 14px;font-size:25px}.storage-confirm p{font:15px/1.6 system-ui;margin:0 0 22px}.storage-confirm form>div{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.storage-confirm button{min-height:44px;padding:10px 15px;border:1px solid #355c50;border-radius:7px;background:transparent;color:inherit;font:14px system-ui}.storage-confirm button[value=confirm]{background:#355c50;color:#fff}

/* Keep compact controls usable without changing the puzzle cell geometry. */
.mode-switch button,.size-switch button,.toolbar button,.hint-panel button,.under-board button,.completion button{min-height:44px;min-width:44px}.rule-link{display:inline-flex;align-items:center;min-height:44px}

.under-board{flex-wrap:wrap}.under-board #schedule{flex:1 1 150px}
@media(max-width:680px){.under-board{gap:8px}.under-board #schedule{flex-basis:100%}.under-board button{flex:1 1 130px;min-height:56px;font-size:14px;padding:10px 12px;border:1px solid #a6b7a5;border-radius:5px;text-align:center;white-space:normal;line-height:1.35}}
