:root{font-family:"Avenir Next","Segoe UI",sans-serif;line-height:1.5;font-synthesis:none;color:#19394d;background:#edf6fa;color-scheme:light;--ink:#19394d;--muted:#4e6a7b;--sun:#fff0a0;--wall:#203f55}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}button,select{font:inherit;color:inherit}button,select{min-height:44px}button{border:1px solid #91aab5;border-radius:20px;background:#f7fbfd;padding:9px 15px;cursor:pointer;touch-action:manipulation}button:hover:not(:disabled){background:#dcecf3}button:disabled{opacity:.43;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #285ba4;outline-offset:3px}.skip{position:fixed;top:-80px;left:16px;background:white;z-index:40;padding:12px}.skip:focus{top:12px}header{max-width:1030px;margin:auto;padding:16px 10px 10px;display:flex;align-items:center;justify-content:space-between}header a{display:inline-flex;align-items:center;min-height:44px}.brand{font-size:1.42rem;font-weight:800;letter-spacing:-.055em;text-decoration:none;gap:10px}.brand svg{width:28px;height:28px;fill:#f5c147;stroke:#365c74;stroke-width:2}header>a:not(.brand){font-size:.87rem}main,footer{max-width:1000px;margin:auto}.intro{display:flex;align-items:baseline;gap:25px;padding:8px 0 20px}.intro h1{font-size:clamp(2rem,4.5vw,3rem);font-weight:760;letter-spacing:-.06em;line-height:1.1;margin:0}.intro p{margin:0;color:var(--muted);font-size:.93rem}.game{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:42px;border-top:1px solid #a8c1cb;padding-top:18px}.board-column{min-width:0}.settings{display:flex;justify-content:space-between;gap:10px;align-items:center}.mode{display:flex;gap:3px;background:#d5e7ef;padding:3px;border-radius:25px}.mode button{border:0;background:transparent;padding:5px 15px}.mode button[aria-pressed=true]{background:white;box-shadow:0 1px 3px #49697738;font-weight:650}label{display:flex;align-items:center;gap:8px;font-size:.84rem}select{background:transparent;border:1px solid #8eacba;border-radius:18px;padding:4px 11px}.puzzle-label{display:flex;justify-content:space-between;color:var(--muted);font-size:.79rem;margin:13px 0 8px}.light-table{background:#c7dfe9;padding:18px;border-radius:27px;max-width:535px;margin:auto;box-shadow:0 8px 0 #b5cfdc}.board{display:flex;flex-direction:column;aspect-ratio:1;gap:3px;border:3px solid #668797;background:#668797;border-radius:10px;overflow:hidden;outline:none}.grid-row{display:flex;flex:1;min-height:0;gap:3px}.cell{flex:1;position:relative;min-width:0;min-height:0;padding:0;border:0;border-radius:3px;background:#dae7ed;isolation:isolate}.cell:hover:not(:disabled){background:#cadfe9}.cell.lit{background:#fff0a0}.cell.lit:hover{background:#ffe986}.cell.wall{background:var(--wall);color:#f5f9fa}.cell.wall:hover{background:#315771}.cell.selected{box-shadow:inset 0 0 0 3px #326eb3}.cell.wall.selected{box-shadow:inset 0 0 0 3px #d4eaff}.cell:focus-visible{outline:3px dashed #285ba4;outline-offset:-5px}.cell.wall:focus-visible{outline-color:#ffffff}.cell.hinted{box-shadow:inset 0 0 0 4px #ab5b00}.cell.conflict{box-shadow:inset 0 0 0 3px #b73632}.number{font:650 clamp(25px,4vw,38px)/1 ui-monospace,"Courier New",monospace}.bulb-icon{display:none;width:48%;height:65%;max-width:55px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);overflow:visible;fill:#f8bf2e;stroke:#544318;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.bulb .bulb-icon{display:block}.cross-mark{font:500 clamp(27px,4vw,36px)/1 "Arial",sans-serif;color:#365669;pointer-events:none}.lit-tag{display:none;position:absolute;bottom:5px;right:6px;font-size:11px;line-height:1;color:#6e5719;font-weight:650;pointer-events:none}.lit:not(.bulb) .lit-tag{display:block}.flag{display:none;position:absolute;left:4px;top:4px;background:#9e302b;color:white;font:bold 12px/1.2 Arial;padding:1px 4px;border-radius:3px;pointer-events:none}.conflict .flag{display:block}.board-caption{display:flex;justify-content:space-between;color:var(--muted);font-size:.78rem;margin-top:15px}.status{min-height:1.8em;font-size:.94rem;margin:17px 0 13px}.status.error{color:#973326}.status.complete{color:#2a6340;font-weight:650}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions button{flex:1;font-size:.88rem;white-space:nowrap}.primary{background:#245376;border-color:#245376;color:#fff}.primary:hover:not(:disabled){background:#356d92}.game aside{padding-top:4px}.game h2{font-size:1.25rem;letter-spacing:-.035em;margin:0 0 10px}.cell-panel{padding-bottom:20px;border-bottom:1px solid #aec6d1}#selected-cell{min-height:3em;font-size:.85rem;color:var(--muted);margin:0 0 14px}.mark-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.mark-buttons button{font-size:.83rem;padding:7px 8px}.navigator{display:flex;justify-content:center;gap:9px;margin-top:14px}.navigator button{min-width:48px;height:46px;padding:4px;font-size:20px}.small{color:var(--muted);font-size:.8rem;margin-bottom:0}.rule-note{margin:21px 0}.rule-note p{color:#455f70;font-size:.89rem}.hint-box{padding:10px 13px;background:#fff2be;border-left:4px solid #b38519;margin:18px 0;font-size:.88rem}.hint-box>div,.save-problem>div{display:flex;gap:7px;flex-wrap:wrap}.hint-box button,.save-problem button{flex:1;font-size:.83rem}.save-problem{margin:18px 0;padding:10px 13px;background:#f9e7db;border-left:4px solid #a85630;font-size:.85rem;color:#6a3524}.keyboard{border-top:1px solid #aec6d1;padding-top:10px}summary{min-height:44px;display:flex;align-items:center;font-size:.85rem;cursor:pointer}details p{font-size:.85rem;color:#455f70}pre{font:12px/1.5 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere}#play-today{margin-top:16px}footer{display:flex;gap:24px;color:var(--muted);font-size:.84rem;padding:21px 0 27px}footer a{min-height:44px;display:flex;align-items:center}dialog{max-width:480px;width:calc(100% - 32px);border:1px solid #7f9eae;border-radius:18px;padding:25px;background:#f1f8fb;color:var(--ink)}dialog::backdrop{background:#0c2c46c9}dialog h2{font-size:1.5rem;letter-spacing:-.04em;margin:0 0 14px}dialog p{font-size:.94rem}dialog form>div{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}dialog [data-action]{border-color:#9c6041;color:#823c24}.rules{max-width:700px;padding:10px 0 30px}.rules h1{font-size:clamp(2rem,5vw,3rem);letter-spacing:-.055em;line-height:1.15}.rules h2{font-size:1.4rem;letter-spacing:-.035em;margin-top:30px}.rules li{margin:10px 0}.example{display:flex;align-items:center;gap:25px;margin:24px 0;border-block:1px solid #acc6d2;padding:24px 0}.example svg{width:220px;max-width:43%;flex-shrink:0}.example figcaption{font-size:.93rem;color:#455f70}.play-link{display:inline-flex;min-height:46px;align-items:center;padding:10px 17px;border-radius:24px;background:#245376;color:white;text-decoration:none}[hidden]{display:none!important}
@media(max-width:1060px){header,main,footer{margin-left:28px;margin-right:28px}.game{gap:25px;grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:780px){header,main,footer{margin-left:16px;margin-right:16px}header{padding:9px 0 4px}.brand{font-size:1.3rem}.intro{display:block;padding:7px 0 14px}.intro h1{font-size:2rem}.intro p{font-size:.84rem;margin-top:5px}.game{display:block;padding-top:10px}.light-table{padding:11px;border-radius:19px}.board{gap:2px;border-width:2px;border-radius:6px}.grid-row{gap:2px}.puzzle-label{margin:9px 0 7px}.cell{border-radius:2px}.board-caption{font-size:.75rem}.status{font-size:.88rem;margin:14px 0 10px}.actions{gap:5px}.actions button{font-size:.82rem;padding:8px}.game aside{margin-top:24px}.cell-panel{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.cell-panel h2{grid-column:1}#selected-cell{grid-column:1;min-height:0}.mark-buttons{grid-row:1/3;grid-column:2}.navigator,.cell-panel .small{grid-column:1/-1}.cell-panel .small{text-align:center}.navigator{margin-top:8px}.example{gap:15px}.example figcaption{font-size:.84rem}}
@media(max-width:390px){.cell-panel{display:block}.mark-buttons{margin:10px 0}.light-table{padding:8px}.lit-tag{bottom:3px;right:4px;font-size:10px}}
@media(prefers-reduced-motion:no-preference){button{transition:background-color .13s}}
