:root{--bg:#f3f2ee;--card:#fbfaf7;--ink:#24211d;--muted:#5f5a52;--faint:#a8a39a;--rule:#dedbd3;--line:#9a5a2c;--contour-tint:#8a4f27;--label-tint:#6b3a1c;--halo-tint:#fff;--coast:#2f4a57;--waterline:#6a9bb0;--hit:#46713d;--sea:#dbe9ef;--sea-ink:#3f7590;--sea-3d:#a9cfe0;--land:#ecebe4;--hot:#8a6918;--warm:#a8552a;--cold:#a54a3f;--shade-blend:multiply;--shade-opacity:.55;--paper-grain:none;--mono:"IBM Plex Mono", ui-monospace, monospace;--cond:"IBM Plex Sans Condensed", "IBM Plex Sans", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#121417;--card:#171a1f;--ink:#e9e4d8;--muted:#8e9198;--faint:#5d6169;--rule:#2a2f37;--line:#8aa8ff;--contour-tint:#2b52b8;--label-tint:#22449c;--halo-tint:#fbf7e8;--coast:#0b0d10;--waterline:#4f78a6;--hit:#5cbf86;--sea:#1b2d43;--sea-ink:#8fb3dc;--sea-3d:#2d5688;--land:#2a313b;--hot:#e2b93b;--warm:#ec8a4a;--cold:#ea6a5c;--shade-blend:normal;--shade-opacity:.5;--paper-grain:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#121417;--card:#171a1f;--ink:#e9e4d8;--muted:#8e9198;--faint:#5d6169;--rule:#2a2f37;--line:#8aa8ff;--contour-tint:#2b52b8;--label-tint:#22449c;--halo-tint:#fbf7e8;--coast:#0b0d10;--waterline:#4f78a6;--hit:#5cbf86;--sea:#1b2d43;--sea-ink:#8fb3dc;--sea-3d:#2d5688;--land:#2a313b;--hot:#e2b93b;--warm:#ec8a4a;--cold:#ea6a5c;--shade-blend:normal;--shade-opacity:.5;--paper-grain:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--paper-grain), var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;font:14px/1.4 IBM Plex Sans,system-ui,sans-serif;overflow:hidden}.keyboard-open body{overflow:auto}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}:focus-visible{outline:2px solid var(--line);outline-offset:2px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.sheet{--side:clamp(320px, 26vw, 400px);--gap:clamp(36px, 4vw, 64px);--map:min(calc(var(--app-h,100dvh) - 140px), calc(100vw - 56px - var(--gap) - var(--side)));--block:calc(var(--map) + var(--gap) + var(--side));height:var(--app-h,100dvh);padding:env(safe-area-inset-top) env(safe-area-inset-right) max(env(safe-area-inset-bottom), var(--inset-floor,0px)) env(safe-area-inset-left);grid-template-rows:auto minmax(0,1fr) auto;display:grid}.titlebar{width:min(var(--block), 100% - 56px);border-bottom:1.5px solid var(--ink);justify-content:space-between;align-items:baseline;gap:16px;margin:0 auto;padding:14px 0 10px;display:flex}.brand{align-items:baseline;gap:14px;min-width:0;display:flex}.wordmark{font:700 22px/1 var(--cond);letter-spacing:.14em;text-transform:uppercase;margin:0}.sheet-no,.sheet-date,.next{color:var(--muted);white-space:nowrap;font-size:12.5px}.sheet-no .puzzle-no{font-family:var(--mono);color:var(--ink)}.bar-right{align-items:baseline;gap:18px;display:flex}.next .countdown{color:var(--ink)}.text-btn{font:600 12.5px var(--cond);letter-spacing:.08em;text-transform:uppercase;background:0 0;border:0;border-bottom:1px solid #0000;padding:0}.text-btn:hover{border-bottom-color:var(--ink)}.theme-switch{border:1px solid var(--rule);gap:2px;padding:2px;display:flex}.theme-switch button{font:600 11px var(--cond);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:0 0;border:0;padding:2px 7px 1px}.theme-switch button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.text-btn,.theme-switch button,.link-btn,.legal-links a{position:relative}.text-btn:after,.theme-switch button:after,.link-btn:after,.legal-links a:after{content:"";position:absolute;inset:-5px -4px}.theme-switch button:after{inset:-5px 0}@media (pointer:coarse){.text-btn:after,.theme-switch button:after{top:-13px;bottom:-13px}}.imprint{width:min(var(--block), 100% - 56px);border-top:1px solid var(--rule);font:11.5px var(--mono);color:var(--muted);justify-content:space-between;align-items:baseline;gap:16px;margin:0 auto;padding:6px 0 10px;display:flex}.imprint .legal-links{gap:16px;margin:0;display:flex}.imprint .legal-links a{font:600 11.5px var(--cond);letter-spacing:.08em;text-transform:uppercase;text-decoration:none}.imprint .legal-links a:hover{color:var(--ink);text-decoration:underline}.layout{grid-template-columns:var(--map) var(--side);justify-content:center;gap:var(--gap);min-height:0;padding:16px 28px 12px;display:grid}.board{min-height:0}.map-wrap{width:100%}.map-frame{grid-template-rows:14px auto;grid-template-columns:14px minmax(0,1fr);gap:6px;display:grid}.ref{font:10px var(--mono);color:var(--faint);margin:0;padding:0;list-style:none;display:grid}.ref-x{text-align:center;grid-column:2;grid-template-columns:repeat(8,1fr);align-items:end;padding:0 5px}.ref-y{text-align:right;grid-row:2;grid-template-rows:repeat(8,1fr);align-items:center;padding:5px 0}.map-card{aspect-ratio:1;background-color:var(--card);border:1px solid var(--ink);outline:2px solid var(--ink);outline-offset:3px;isolation:isolate;background-image:var(--paper-grain), linear-gradient(var(--rule) 1px, transparent 1px), linear-gradient(90deg, var(--rule) 1px, transparent 1px);background-position:0 0,-1px -1px,-1px -1px;background-size:160px 160px,12.5% 12.5%,12.5% 12.5%;grid-area:2/2;margin:5px;position:relative;overflow:hidden}.map-card:after{content:"";z-index:1;pointer-events:none;background:var(--paper-grain);box-shadow:inset 0 0 70px color-mix(in srgb, var(--ink) 9%, transparent);opacity:.7;position:absolute;inset:0}:root[data-theme=dark] .map-card:after{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .map-card:after{display:none}}.kind-badge{z-index:2;background:var(--card);border:1px solid var(--ink);font:600 11px var(--cond);letter-spacing:.14em;text-transform:uppercase;padding:3px 8px 2px;position:absolute;top:10px;left:10px}.kind-badge[hidden]{display:none}.hint-line{height:18px;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:10px 0 0 20px;font-size:13px;overflow:hidden}.hint-line b{color:var(--ink);font-weight:600}.hint-line .mono{color:var(--ink);margin-right:6px}#map{--k:1;width:100%;height:100%;display:block}#map .fill{stroke:none}#map .sea{fill:var(--sea)}#map .shade{opacity:var(--shade-opacity);mix-blend-mode:var(--shade-blend)}#map .waterline{fill:none;stroke:var(--waterline);stroke-width:calc(.35px * var(--k))}#map .line{fill:none;stroke:var(--line);stroke-width:calc(.3px * var(--k));stroke-linejoin:round}#map .line.major{stroke-width:calc(.6px * var(--k))}#map.tinted .line{stroke:var(--contour-tint)}#map .line.coast{stroke-width:calc(.7px * var(--k));stroke:var(--coast)}#map .label{font-family:var(--mono);font-weight:500;font-size:calc(3.2px * var(--k));fill:var(--line);text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:var(--card);stroke-width:calc(1.1px * var(--k));stroke-linejoin:round}#map.tinted .label{fill:var(--label-tint);stroke:var(--halo-tint)}#map .sea-label{letter-spacing:.3em;fill:var(--sea-ink);text-anchor:middle;dominant-baseline:central;font-family:Georgia,Times New Roman,serif;font-style:italic}#map .scale-bg{fill:var(--card);opacity:.9}#map .scale-line{stroke:var(--ink);stroke-width:.6px;fill:none}#map .scale-text{font:500 3.2px var(--mono);fill:var(--ink);text-anchor:middle}.terrain{background:var(--card);touch-action:none;cursor:grab;position:absolute;inset:0}.terrain:active{cursor:grabbing}.terrain canvas{width:100%;height:100%;display:block}.scale-note{background:var(--card);font:10px var(--mono);color:var(--muted);pointer-events:none;margin:0;padding:2px 6px;position:absolute;bottom:10px;left:10px}.view-toggle{z-index:2;border:1px solid var(--ink);background:var(--card);font:600 11px var(--cond);letter-spacing:.14em;text-transform:uppercase;padding:3px 8px 2px;position:absolute;top:10px;right:10px}.view-toggle[hidden]{display:none}.side{flex-direction:column;min-height:0;display:flex}.sec{border-bottom:1px solid var(--ink);font:600 12px var(--cond);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;align-items:baseline;margin:0 0 6px;padding-bottom:5px;display:flex}.sec .mono{letter-spacing:0;color:var(--muted);font-size:11.5px;font-weight:400}.note{color:var(--muted);margin:6px 0 0;font-size:12px}.play{padding-bottom:14px}.guess-form{gap:6px;display:flex}.guess-form[hidden]{display:none}.combo{flex:1;min-width:0;position:relative}.combo input{width:100%;height:42px;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--faint);border-radius:2px;padding:0 12px;font-size:16px}.combo input::placeholder{color:var(--muted)}.combo input:focus{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);outline:none}.guess-form button,.ink-btn{background:var(--ink);height:42px;color:var(--bg);font:600 13px var(--cond);letter-spacing:.1em;text-transform:uppercase;border:0;border-radius:2px;padding:0 18px}.guess-form button:hover,.ink-btn:hover{opacity:.88}.ink-btn.wide{width:100%}.answer-hint{color:var(--muted);margin:6px 0 0;font-size:12.5px}.answer-hint[hidden]{display:none}.error{min-height:17px;color:var(--cold);margin:2px 0 0;font-size:12.5px}.suggestions{z-index:10;background:var(--card);border:1px solid var(--ink);max-height:min(300px,40dvh);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink) 12%, transparent);margin:0;padding:0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.suggestions[hidden]{display:none}.suggestions li{cursor:pointer;border-top:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:12px;padding:7px 10px;display:flex}.suggestions li:first-child{border-top:0}.suggestions li[aria-selected=true]{background:color-mix(in srgb, var(--line) 12%, transparent)}.suggestions li.used{opacity:.45}.s-name{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:65%;font-weight:500;overflow:hidden}.s-name i{color:var(--muted);font-weight:400}.s-name mark,.s-meta mark{color:var(--line);background:0 0;font-weight:600}.s-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}.result{justify-content:space-between;align-items:center;gap:14px;display:flex}.result[hidden]{display:none}.result h2{font:700 20px var(--cond);letter-spacing:.04em;margin:0}.result p{color:var(--muted);margin:2px 0 0;font-size:13px}.tabs{border-bottom:1px solid var(--ink);margin-bottom:10px;display:flex}.tabs button{font:600 12px var(--cond);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:7px 0 6px}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink)}.pane{flex-direction:column;min-height:0;display:none}.side[data-tab=guesses] .pane[data-pane=guesses],.side[data-tab=legend] .pane[data-pane=legend],.side[data-tab=locator] .pane[data-pane=locator]{flex:1;display:flex;overflow-y:auto}.tabs~.pane .sec{display:none}.log{margin:0;padding:0;list-style:none}.log li{border-bottom:1px solid var(--rule);grid-template-columns:16px minmax(0,1fr) auto 18px 38px;align-items:center;gap:10px;height:32px;font-size:13.5px;display:grid}.log .n{font:11px var(--mono);color:var(--muted)}.log .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.log .name b{font-weight:600}.log .name small{color:var(--muted);margin-left:6px;font-size:12px}.log .km{font:12.5px var(--mono);color:var(--muted);text-align:right}.log .dir svg{width:14px;height:14px;display:block}.log .prox{font:500 12.5px var(--mono);text-align:right}.log .hot{color:var(--hot)}.log .warm{color:var(--warm)}.log .cold{color:var(--cold)}.log li.hit .name b,.log li.hit .prox{color:var(--hit)}.log li.empty{border-bottom-style:dotted}.legend{margin:0;padding:0;list-style:none}.legend li{height:30px;color:var(--faint);grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.legend li.on{color:var(--ink)}.legend li.next{color:var(--muted)}.legend li .lg-label{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.legend li .lg-state{font:11.5px var(--mono)}.legend li:not(.on) .sw{opacity:.4}.sw{border:1px solid var(--ink);background-color:var(--card);width:30px;height:18px;position:relative;overflow:hidden}.sw-0{background-image:repeating-radial-gradient(ellipse at 45% 65%, transparent 0 5px, var(--line) 5px 6px)}.sw-1{background-image:repeating-radial-gradient(ellipse at 45% 65%, transparent 0 2px, var(--line) 2px 2.8px)}.sw-2:after{content:"500";font:500 9.5px var(--mono);color:var(--line);place-items:center;display:grid;position:absolute;inset:0}.sw-4{background-image:linear-gradient(135deg,#fffaf0 0%,#d8c9a3 45%,#7d6a4a 100%)}.sw-5:after{content:"";border:1px solid var(--ink);background:linear-gradient(var(--ink), var(--ink)) center / 100% 1px no-repeat, linear-gradient(var(--ink), var(--ink)) center / 1px 100% no-repeat;border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:50%;translate:-50% -50%}.locator{border:1px solid var(--ink);background:var(--card);width:100%;display:block}.locator .sphere{fill:var(--sea)}.locator .graticule{fill:none;stroke:var(--card);stroke-width:.5px;opacity:.7}.locator .land{fill:var(--land)}.locator .ring{fill:none;stroke-width:1.1px}.locator .pin circle{stroke:var(--card);stroke-width:1px}.locator .pin text{font:600 6.5px var(--mono);fill:#fff;text-anchor:middle;dominant-baseline:central}.locator .answer path{fill:var(--hit);stroke:var(--card);stroke-width:1px}.locator .hot{stroke:var(--hot)}.locator .pin.hot circle{fill:var(--hot)}.locator .warm{stroke:var(--warm)}.locator .pin.warm circle{fill:var(--warm)}.locator .cold{stroke:var(--cold)}.locator .pin.cold circle{fill:var(--cold)}.locator .pin.hit circle{fill:var(--hit)}.locator .pin{stroke:none}.ring-key{font:400 11px var(--mono);letter-spacing:0;text-transform:none;color:var(--muted)}.ring-key i{border-radius:50%;width:7px;height:7px;margin:0 3px 0 7px;display:inline-block}.ring-key i.hot{background:var(--hot)}.ring-key i.warm{background:var(--warm)}.ring-key i.cold{background:var(--cold)}@media (width>=900px) and (height>=860px){.tabs{display:none}.side .pane[data-pane]{flex:none;display:flex;overflow:visible}.pane+.pane{margin-top:18px}.tabs~.pane .sec{display:flex}}@media (width>=900px) and (height<=859.98px){.tabs button[data-tab=guesses]{display:none}.side .pane[data-pane=guesses]{flex:none;order:1;margin-bottom:16px;display:flex;overflow:visible}.side .pane[data-pane=guesses] .sec{display:flex}.tabs{order:2}.side .pane[data-pane=legend],.side .pane[data-pane=locator]{order:3}}@media (width<=899.98px){.titlebar{width:auto;margin:0 14px;padding:10px 0 8px}.imprint{width:auto;margin:0 14px;padding:5px 0 8px;font-size:10.5px}.imprint .legal-links{gap:12px}.imprint .legal-links a{font-size:10.5px}.wordmark{letter-spacing:.12em;font-size:18px}.sheet-date,.next{display:none}.theme-switch button{padding:2px 5px 1px}.bar-right{gap:14px}.layout{flex-direction:column;justify-content:flex-start;gap:10px;padding:10px 14px;display:flex}.board{flex:0 1000 calc(100vw + 10px);place-items:center;min-height:160px;display:grid;container-type:size}.map-wrap{width:min(100cqw,100cqh - 26px)}.map-frame{grid-template-rows:0 auto;grid-template-columns:0 minmax(0,1fr);gap:0}.ref{display:none}.hint-line{margin:8px 0 0 5px;font-size:12.5px}.side{max-height:calc(var(--app-h,100dvh) * .52);flex:auto}.pane .log{flex-direction:column;flex:1;display:flex}.play{padding-bottom:8px}.answer-hint{display:none}.log li{flex:1 1 0;height:auto;min-height:30px;max-height:44px}.legend li{height:28px}}dialog{border:1px solid var(--ink);background:var(--card);width:min(420px,100vw - 28px);max-height:calc(100dvh - 28px);color:var(--ink);box-shadow:6px 6px 0 color-mix(in srgb, var(--ink) 15%, transparent);border-radius:2px;padding:22px}dialog::backdrop{background:color-mix(in srgb, var(--bg) 70%, transparent)}dialog h2{font:700 20px var(--cond);letter-spacing:.12em;text-transform:uppercase;margin:0 0 12px}dialog h3.sec{margin-top:18px}dialog ul{margin:10px 0;padding-left:18px}dialog li{margin:7px 0}dialog form{margin-top:18px}dialog .lede{margin:0 0 14px;font-size:15px}.rules{border-top:1px solid var(--rule);padding:0;list-style:none}dialog .rules li{border-bottom:1px solid var(--rule);margin:0;padding:9px 0}.rules b{font:600 11.5px var(--cond);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;display:block}.field textarea::placeholder{color:var(--faint)}.link-btn{font:inherit;color:var(--ink);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint);background:0 0;border:0;padding:0}.link-btn:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.field{margin-top:14px;display:block}.field span{font:600 11.5px var(--cond);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;display:block}.field span i{letter-spacing:0;text-transform:none;color:var(--muted);font:italic 400 11.5px IBM Plex Sans,sans-serif}.field select,.field textarea,.field input{width:100%;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--faint);border-radius:2px;padding:8px 10px;font-size:16px}.field textarea{resize:vertical;min-height:92px}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}#suggest .error{margin:10px 0 0}#suggest .error:empty{display:none}.suggest-form .ink-btn:disabled{opacity:.55;cursor:progress}dialog .note a,.legal-links a{color:inherit;text-underline-offset:2px;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint)}.legal-links{margin-top:10px}.field select:focus,.field textarea:focus,.field input:focus{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);outline:none}.suggest-form .actions{justify-content:flex-end;align-items:center;gap:20px;margin-top:16px;display:flex}.stat-row{border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);grid-template-columns:repeat(4,1fr);display:grid}.stat-row div{text-align:center;padding:10px 0}.stat-row div+div{border-left:1px solid var(--rule)}.stat-row b{font:500 26px var(--mono);line-height:1.2;display:block}.stat-row b small{color:var(--muted);margin-left:1px;font-size:14px}.stat-row span{font:600 10.5px var(--cond);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}#stats-empty{margin:14px 0 0}.dist{gap:5px;display:grid}.bar-row{font:12px var(--mono);grid-template-columns:14px 1fr 3ch;align-items:center;gap:10px;display:grid}.bar-row .n{color:var(--muted);text-align:center}.bar-row .track{background:color-mix(in srgb, var(--rule) 55%, transparent);height:14px}.bar-row .track i{background:var(--faint);height:100%;display:block}.bar-row .count{text-align:right}.bar-row.zero .count{color:var(--faint)}.bar-row.mine .n,.bar-row.mine .count{color:var(--ink);font-weight:600}.bar-row.mine .track i{background:var(--ink)}.stats-foot [hidden]{display:none}.stats-foot{border-top:1px solid var(--rule);align-items:center;gap:18px;padding-top:14px;display:flex}.next-in{margin:0 auto 0 0;display:grid}.next-in span{font:600 10.5px var(--cond);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.next-in b{font-size:15px;font-weight:500}.toast{left:50%;top:calc(56px + env(safe-area-inset-top));z-index:20;background:var(--ink);color:var(--bg);font:500 12.5px var(--mono);opacity:0;pointer-events:none;padding:7px 14px;transition:opacity .18s,transform .18s;position:fixed;transform:translate(-50%,-8px)}.toast.show{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.toast{transition:none}}@media (width<=429.98px){.sheet-no{display:none}.wordmark{letter-spacing:.08em}.bar-right{gap:11px}.text-btn{letter-spacing:.06em}.theme-switch{border:0;padding:0}.theme-switch button{font:600 12.5px var(--cond);letter-spacing:.08em;color:var(--ink);padding:0}.theme-switch button[aria-pressed=true]{display:none}}
