:root{color-scheme:light;--navy:#112832;--navy-soft:#1c3943;--ink:#17303a;--muted:#536a72;--teal:#007969;--teal-dark:#006457;--mint:#dcf6e8;--line:#d7e1e1;--yellow:#ffd579;--paper:#fff;--focus:#b75b00;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px}
*{box-sizing:border-box}body{margin:0;background:#edf3f3;color:var(--ink);line-height:1.55}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{min-height:44px;border:1px solid #b9caca;border-radius:10px;background:#fff;color:var(--ink);padding:.55rem .85rem;font-weight:650;cursor:pointer;line-height:1.3}button:hover:not(:disabled){background:#edf7f4;border-color:var(--teal)}button:disabled{cursor:not-allowed;opacity:.45}.primary{background:var(--teal);color:#fff;border-color:var(--teal)}.primary:hover:not(:disabled){background:var(--teal-dark);color:#fff}a{color:var(--teal-dark);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}button:focus-visible,a:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;top:-80px;left:12px;z-index:10;background:#fff;padding:12px}.skip:focus{top:10px}.site-header{background:var(--navy);color:white;min-height:86px;padding:20px max(24px,calc((100vw - 1140px)/2));display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-weight:760;font-size:1.35rem;letter-spacing:-.04em}.site-header nav{display:flex;gap:24px}.site-header nav a{color:#dcebed;font-size:.9rem;text-decoration:none}.site-header nav a:hover{text-decoration:underline}main{max-width:1188px;margin:auto;padding:32px 24px 24px}.game-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:25px}.eyebrow{font-size:.75rem;font-weight:800;letter-spacing:.14em;margin:0 0 8px;color:var(--teal-dark)}h1{font-size:clamp(1.7rem,3.1vw,2.6rem);letter-spacing:-.055em;line-height:1.12;margin:0 0 9px;font-weight:750}.intro{margin:0;color:var(--muted);font-size:1rem}.session-tag{color:var(--muted);font-size:.875rem;max-width:165px;text-align:right}.game-shell{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}.play-panel{background:var(--paper);border:1px solid var(--line);border-radius:20px;box-shadow:0 7px 22px #11283208;padding:25px 28px}.puzzle-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px}.size-picker{display:flex;gap:12px;align-items:center}.size-picker label{font-size:.875rem;font-weight:650}select{min-height:44px;border:1px solid #b9caca;border-radius:9px;background:#fff;padding:8px 30px 8px 10px;color:var(--ink);font-size:.9rem}#new-puzzle{white-space:nowrap}#new-puzzle span{padding-left:12px;font-size:1.25rem}.puzzle-meta{display:flex;justify-content:space-between;gap:10px;margin:20px 0 12px;font-size:.8rem;color:var(--muted)}.loading{background:#eef8f4;padding:12px;border-radius:10px;font-size:.9rem}.board-region{overflow-x:auto;padding:8px 7px 12px;margin:0 -7px;overscroll-behavior-x:contain;scrollbar-width:thin}.board{border-collapse:separate;border-spacing:0;margin:0 auto;table-layout:fixed;--cell:48px}.board.large{--cell:38px}.board th{font-size:.9rem;font-weight:740;line-height:1.3;font-variant-numeric:tabular-nums}.board .corner{font-size:.7rem;color:var(--muted);font-weight:500;padding:7px;vertical-align:bottom;text-align:right;min-width:60px}.row-clue{padding:0 11px 0 5px;text-align:right;white-space:nowrap;min-width:60px}.row-clue span{display:inline-block;margin-left:5px}.col-clue{width:var(--cell);padding:0 0 10px;vertical-align:bottom;text-align:center}.col-clue span{display:block;line-height:1.35}.clue-done{color:var(--teal);background:#f2faf6}.board td{padding:0;width:var(--cell);height:var(--cell);border-right:1px solid #bacbce;border-bottom:1px solid #bacbce;background:#f5f8f9}.board td.first-col{border-left:2px solid #3e5961}.board tr.first-row td{border-top:2px solid #3e5961}.board td.group-end{border-right:2px solid #3e5961}.board tr.group-end td{border-bottom:2px solid #3e5961}.cell{display:flex;align-items:center;justify-content:center;min-height:0;width:var(--cell);height:var(--cell);padding:0;border:0;border-radius:0;background:transparent;position:relative;font-size:1.5rem;font-weight:450;color:#56737a;touch-action:manipulation}.cell:hover:not(:disabled){background:#e1ecec}.cell.filled{background:var(--teal);box-shadow:inset 0 0 0 3px #fff;color:transparent}.cell.filled:hover:not(:disabled){background:var(--teal-dark)}.cell.empty{background:#f7fafb}.cell.selected:after{content:"";position:absolute;inset:2px;box-shadow:inset 0 0 0 3px #e6a52c;pointer-events:none}.cell.wrong:before{content:"!";position:absolute;inset:7px;display:flex;align-items:center;justify-content:center;background:#fff2ef;color:#a43022;border-radius:50%;font-size:.85rem;font-weight:800;pointer-events:none}.cell:focus-visible{outline:3px solid var(--focus);outline-offset:-3px;z-index:1}.cell:disabled{opacity:.6}.board-help{font-size:.8rem;color:var(--muted);margin:8px 0 18px;text-align:center}.mode-tools{display:flex;gap:8px;justify-content:center;border-top:1px solid #e5eded;padding-top:18px}.mode{display:flex;align-items:center;justify-content:center;gap:8px;flex:1;max-width:155px;font-size:.9rem}.mode.active{background:var(--navy);color:white;border-color:var(--navy)}.mode.active:hover:not(:disabled){background:var(--navy-soft);color:white}.tool-icon{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;font-size:1.5rem;font-weight:450}.fill-icon{background:currentColor;border-radius:2px;width:13px;height:13px}.erase-icon{border:1px dashed currentColor;border-radius:2px;width:13px;height:13px}kbd{font-family:inherit;font-size:.7rem;opacity:.65;font-weight:500}.history-tools{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:10px;flex-wrap:wrap}.history-tools button{border-color:transparent;background:transparent;font-size:.85rem;min-height:40px}.history-tools #reset{color:var(--muted);margin-left:auto}.status{font-size:.875rem;min-height:2.8em;margin:12px 0 0;color:var(--muted)}.complete{background:var(--mint);padding:16px;border-radius:12px;display:flex;gap:14px;align-items:center;margin-top:14px}.complete>span{font-size:2rem;color:var(--teal)}.complete h2{font-size:1.25rem;margin:0}.complete p{font-size:.9rem;margin:3px 0 0}.side-panel{display:grid;gap:18px}.assist-card,.lesson-card,.save-card{padding:23px;border-radius:18px}.assist-card{background:var(--navy);color:#fff}.assist-card .eyebrow{color:#b7e5d6}.session-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:7px 0 22px}.session-stats>div{display:flex;flex-direction:column}.stat-value{font-size:1.7rem;letter-spacing:-.04em;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.3}.stat-label{font-size:.8rem;color:#bed2d7}.assist-actions{display:grid;gap:8px}.assist-actions button{background:var(--navy-soft);border-color:#49616a;color:#fff}.assist-actions button:hover:not(:disabled){background:#2e4a54;color:white;border-color:#9ed7c4}.small{font-size:.8rem;line-height:1.55;color:var(--muted)}.assist-card .small{color:#bdced3;margin-bottom:0}.hint-panel{margin-top:14px;border-top:1px solid #46606a;padding-top:4px}.hint-panel p{font-size:.9rem}.hint-panel>div{display:flex;gap:7px;flex-wrap:wrap}.hint-panel button{font-size:.8rem}.lesson-card{background:var(--yellow);color:#433c28}.lesson-card .eyebrow{color:#735720}.lesson-card h2,.save-card h2{font-size:1.18rem;letter-spacing:-.025em;margin:0 0 10px}.lesson-card p{font-size:.875rem}.lesson-card a{font-size:.875rem;color:#4d432a;font-weight:650}.clue-example{display:flex;gap:4px;margin:16px 0}.sample{width:31px;height:31px;border:1px solid #927638;display:flex;align-items:center;justify-content:center;color:#796331;border-radius:3px;line-height:1}.sample.filled{background:#655126;border-color:#655126}.save-card{border:1px solid var(--line);background:#fff}.save-card .small{margin:0 0 13px}.save-actions{display:flex;flex-wrap:wrap;gap:7px}.save-actions button{font-size:.8rem;min-height:40px;padding:.4rem .55rem}.save-card #save-status{margin:12px 0 0}.under-note{margin:22px auto 0;font-size:.8rem;color:var(--muted);text-align:center;max-width:700px}footer{max-width:1188px;padding:28px 24px 35px;margin:auto;display:flex;gap:24px;justify-content:space-between;flex-wrap:wrap;color:var(--muted);font-size:.8rem}footer>span:first-child{font-weight:700}dialog{max-width:min(440px,calc(100vw - 32px));border:0;border-radius:16px;padding:28px;color:var(--ink);box-shadow:0 20px 70px #0004}dialog::backdrop{background:#091e2a88}dialog h2{font-size:1.45rem;margin:0 0 10px}dialog p{margin:0 0 24px;color:var(--muted)}dialog form{display:flex;gap:10px;justify-content:flex-end}.noscript{position:fixed;bottom:0;left:0;right:0;background:#fff2cc;padding:18px;text-align:center;border-top:2px solid #a77a00}.document{max-width:820px;padding-top:42px}.document h1{margin-bottom:24px}.document h2{font-size:1.35rem;margin:30px 0 10px}.document p,.document li{font-size:1rem}.document li{margin:8px 0}.document .back-link{display:inline-block;margin-top:20px}.doc-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px}.document .key-guide{display:grid;grid-template-columns:minmax(90px,140px) 1fr;gap:10px 18px}.document dt{font-weight:700}.document dd{margin:0}.document kbd{font-size:1rem;opacity:1}
@media(min-width:1150px){.board.large{--cell:42px}.board{--cell:56px}.play-panel{padding:25px 32px}}@media(max-width:880px){.game-shell{grid-template-columns:minmax(0,1fr) 265px;gap:16px}.play-panel{padding:20px 18px}.assist-card,.lesson-card,.save-card{padding:20px}.size-picker{gap:5px;flex-wrap:wrap}.size-picker label{width:100%}.board.large{--cell:34px}.session-tag{display:none}.game-heading{margin-bottom:22px}.board th{font-size:.85rem}.row-clue{padding-right:8px}.row-clue span{margin-left:4px}.mode kbd{display:none}}@media(max-width:720px){.site-header{padding:17px 20px;min-height:76px}.site-header nav{gap:14px}.brand{font-size:1.2rem}.brand img{width:31px;height:31px}.site-header nav a{font-size:.8rem}main{padding:25px 16px 18px}.game-shell{grid-template-columns:1fr}.play-panel{padding:18px 16px}.size-picker{flex-wrap:nowrap;gap:8px}.size-picker label{width:auto}.puzzle-toolbar{gap:9px}.board{--cell:46px}.board.large{--cell:34px}.board-region{padding-bottom:14px}.side-panel{grid-template-columns:1fr 1fr}.assist-card{grid-column:1/-1}.session-stats{padding-bottom:14px}.assist-actions{grid-template-columns:1fr 1fr}.session-stats{max-width:350px}.assist-card .small{margin-top:10px}.hint-panel>div{gap:10px}.lesson-card,.save-card{padding:20px}.session-stats .stat-value{font-size:1.5rem}.game-heading h1{font-size:1.9rem}.intro{font-size:.9rem}.puzzle-meta{margin-top:17px}.mode{font-size:.9rem}.status{min-height:0}.under-note{font-size:.75rem}footer{padding:20px 16px 30px;gap:12px;font-size:.75rem}.document{padding-top:28px}.doc-card{padding:24px}.document .key-guide{grid-template-columns:90px 1fr}}@media(max-width:420px){.site-header nav a:last-child{display:none}.brand{font-size:1.15rem}.size-picker label{display:none}.puzzle-toolbar button{font-size:.85rem}.puzzle-toolbar select{font-size:.85rem;padding-right:20px}#new-puzzle span{padding-left:4px}.side-panel{grid-template-columns:1fr}.assist-card{grid-column:auto}.mode-tools{gap:6px}.mode{padding:.6rem .45rem;font-size:.85rem}.row-clue{min-width:54px}.board .corner{min-width:54px}.history-tools #reset{margin-left:0}.game-heading h1{font-size:1.75rem}.doc-card{padding:20px}}
@media(prefers-reduced-motion:no-preference){button{transition:background-color .12s ease,border-color .12s ease}.complete{animation:arrive .25s ease-out}@keyframes arrive{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}}

/* Optional transfer tools stay collapsed so the playing layout remains compact. */
.save-transfer{margin-top:12px}.save-transfer summary{cursor:pointer;font-weight:600;min-height:36px;display:list-item}.save-transfer summary:focus-visible{outline:3px solid #b35800;outline-offset:3px}.save-transfer button{white-space:normal}
