:root{color-scheme:dark;--bg:#0a0a16;--surface:#141425;--ink:#f1f0fa;--muted:#b0aec7;--accent:#b3a5ff;--line:#323148;--selected:#4cc9b0;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 17% 22%,#20192e44,transparent 60%),var(--bg);color:var(--ink);min-width:300px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:1px solid var(--line);background:var(--surface);border-radius:12px;min-height:44px;touch-action:manipulation}button:disabled{opacity:.38;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #fff;outline-offset:4px}a{color:var(--accent)}[hidden]{display:none!important}.skip{position:absolute;left:14px;top:-90px;z-index:5;background:var(--surface);padding:12px}.skip:focus{top:10px}.masthead{max-width:1180px;margin:0 auto;padding:30px 36px;display:flex;align-items:center;gap:16px}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink);font-weight:750;font-size:19px;letter-spacing:3.5px}.edition{font-size:10px;letter-spacing:2px;color:#9592ab;border-left:1px solid var(--line);padding-left:16px}.preview{margin-left:auto;font-size:9px;letter-spacing:1.4px;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:7px 10px}
.layout{max-width:1180px;margin:14px auto 0;display:grid;grid-template-columns:.98fr 1fr;gap:70px;padding:0 36px}.intro{padding-top:72px}.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:9px}.eyebrow>span{width:6px;height:6px;border-radius:50%;background:#4cc9b0}h1{font-size:clamp(36px,4.4vw,55px);line-height:1.12;letter-spacing:-2.5px;font-weight:720;margin:23px 0}h1 em{font-style:normal;color:var(--accent)}.lede{font-size:17px;line-height:1.65;max-width:330px;color:var(--muted)}.lede strong{color:var(--ink);font-weight:550}.desktop-note{display:flex;gap:15px;align-items:center;margin-top:35px}.desktop-note p{font-size:13px;line-height:1.7;color:var(--muted)}.note-rule{width:2px;height:40px;background:linear-gradient(var(--accent),transparent)}.range{margin-top:42px}.range>p{font-size:11px;color:var(--muted)}.sizes{display:flex;gap:9px;align-items:center;margin-top:13px}.sizes span{font-size:12px;padding:10px 9px;border:1px solid #2d2b42;border-radius:9px;color:var(--muted)}.sizes .current{border-color:#8c80bd;color:var(--ink);background:#332949}.range .modes{margin-top:14px;font-size:11px;letter-spacing:.7px}
.play{width:100%;max-width:460px;margin:0 auto}.board-meta{display:flex;justify-content:space-between;padding:12px 2px;font-size:10px;font-weight:600;letter-spacing:1.1px;color:var(--muted)}.board-meta b{margin:0 7px;font-weight:normal}#completionCount{letter-spacing:0}.cue{min-height:109px;padding:16px 18px 17px;background:linear-gradient(115deg,#1c2d2e,#18252d);border:1px solid #2f514f;border-radius:15px 15px 0 0}.cue-label{font-size:9px;letter-spacing:1.7px;font-weight:750;color:#8ce1cc}.cue h2{font-size:19px;line-height:1.3;letter-spacing:-.25px;margin:7px 0 4px}.cue p{color:#b5cfca;font-size:12px;line-height:1.45;margin:0}.board{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;padding:13px;background:#141424;border:1px solid #333247;border-top:0;border-radius:0 0 16px 16px}.cell{position:relative;aspect-ratio:1;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;border:1px solid #414055;border-radius:8px;background:#242438;color:#f4f3ff;font-size:clamp(23px,3vw,30px);font-weight:650;font-variant-numeric:tabular-nums;transition:background .15s,box-shadow .15s}.cell:not(.fixed):hover{background:#39364c}.cell.owned{color:#fff;background:var(--tint);border-color:var(--color)}.cell.owned:hover{background:var(--tint)}.cell .region-letter{position:absolute;top:4px;left:6px;font-size:9px;font-weight:700;color:var(--color)}.cell.fixed:after{content:"";position:absolute;bottom:5px;right:5px;width:3px;height:3px;border-radius:100%;background:var(--color);opacity:.75}.cell.selected{box-shadow:inset 0 0 0 1px var(--color)}.cell.hinted{outline:3px solid #fff;outline-offset:-2px;box-shadow:0 0 18px #fff4;z-index:1}.cell.wrong{animation:nudge .24s ease-in-out}.cell:focus-visible{outline:3px solid white;outline-offset:-2px;z-index:2}.board.solved .cell{transition:filter .4s;filter:brightness(1.12)}
.region-detail{display:flex;justify-content:space-between;align-items:center;padding:15px 2px 10px;gap:14px}#regionName{font-size:12px;color:var(--selected);font-weight:700}.numbers{display:flex;gap:5px}.number{width:25px;height:25px;border:1px dashed #4f4e63;display:grid;place-content:center;border-radius:6px;font-size:11px;color:#b0aec7}.number.present{border:1px solid var(--selected);color:#fff;background:color-mix(in srgb,var(--selected) 20%,#131321)}.number.missing{font-weight:750;color:#fff}.palette{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:6px 0 10px}.swatch{padding:7px 0;display:flex;align-items:center;flex-direction:column;gap:4px;min-height:51px;border-color:#484353;background:#141425;position:relative}.swatch .dot{width:18px;height:18px;border-radius:6px;background:var(--color);color:#141425;font-size:11px;font-weight:850;line-height:18px}.swatch .swatch-count{font-size:9px;color:var(--muted)}.swatch[aria-pressed=true]{border:2px solid var(--color);background:var(--tint);padding:6px 0}.swatch[aria-pressed=true] .swatch-count{color:#fff}.feedback{min-height:44px;padding:5px 2px 8px;font-size:12px;line-height:1.5;color:var(--muted)}.feedback.error{color:#ffaaa8}.feedback.success{color:#8ce1cc}.primary{background:#c1b4ff;color:#171026;border:0;min-height:48px;padding:13px 18px;font-weight:750;width:100%;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:15px}.primary:hover{background:#d1c7ff}.controls{display:flex;gap:8px;margin:0 0 10px}.controls button{flex:1;min-height:44px;font-size:16px;color:var(--muted)}.controls button span{font-size:12px;margin-left:4px}#continue{margin:0 0 10px}.rules{border-top:1px solid #28273c;padding:13px 0;margin-top:10px;color:var(--muted);font-size:12px;line-height:1.6}.rules summary{cursor:pointer;min-height:28px;color:var(--ink)}.rules ol{padding-left:20px}.rules li{padding-bottom:8px}.rules p{font-size:11px}.app-invite{margin-top:15px;padding:19px 18px;background:#161426;border:1px solid #342c4c;border-radius:14px}.app-invite strong{font-size:13px;font-weight:600}.app-invite p{font-size:12px;color:var(--muted);margin:6px 0}.store{display:flex;justify-content:space-between;align-items:center;min-height:44px;border:1px solid #635875;padding:10px 12px;border-radius:9px;font-size:12px;font-weight:650;color:#e7ddff;text-decoration:none;margin-top:15px}.app-invite .price-note{font-size:10px;text-align:center;margin:10px 0 0}.win{padding:20px;border:1px solid #4a3b70;border-radius:14px;background:#1a162d;margin:8px 0 14px}.win .eyebrow{color:#d3c8ff;margin-top:0}.win h2{font-size:23px;letter-spacing:-.7px}.win p{font-size:12px;color:var(--muted)}.win .small{font-size:10px;text-align:center;line-height:1.6}.win textarea{display:block;margin:12px 0 0;width:100%;min-height:150px;background:#101020;border:1px solid #62557c;border-radius:8px;padding:12px;color:var(--ink);font:12px/1.6 ui-monospace,monospace;resize:vertical}
footer{max-width:1180px;margin:48px auto 25px;padding:25px 36px;border-top:1px solid #262537;display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;color:var(--muted);font-size:11px}footer button{margin-left:auto;background:none;border:0;font-size:11px;color:var(--accent);padding:10px 0}footer p{width:100%;font-size:10px;margin:0;line-height:1.5}#previewNote{color:#d9bf8d}.no-js{padding:20px;text-align:center}dialog{background:#191627;border:1px solid #5d507b;border-radius:18px;color:var(--ink);padding:25px;max-width:370px;width:calc(100% - 32px)}dialog::backdrop{background:#050510aa}dialog h2{font-size:21px}dialog p{font-size:13px;color:var(--muted);line-height:1.6}.dialog-actions{display:flex;gap:8px;flex-direction:column;margin-top:22px}.dialog-actions button{font-size:13px;padding:12px}dialog .primary{justify-content:center}
.mobile-range{display:none}.again{width:100%;margin-top:10px;font-size:12px;color:var(--muted);background:transparent}
@keyframes nudge{25%,75%{transform:translateX(-2px)}50%{transform:translateX(2px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:860px){.masthead{padding:20px 22px}.edition{display:none}.layout{grid-template-columns:1fr;max-width:570px;gap:17px;padding:0 22px;margin:0 auto}.intro{padding-top:9px}.eyebrow{font-size:9px;letter-spacing:1.7px;margin:5px 0 10px}h1{font-size:36px;letter-spacing:-1.6px;line-height:1.1;margin:0 0 11px}.desktop-break{display:none}.lede{font-size:13px;line-height:1.5;margin:0;max-width:360px}.desktop-note{display:none}.range{margin:0;display:none}.play{max-width:none}.cell{font-size:28px}.cue h2{font-size:18px}.board-meta{padding:8px 1px}.cue{padding:13px 14px;min-height:96px}.board{padding:10px;gap:4px}footer{padding:20px 22px;margin:28px auto 20px;max-width:570px}.mobile-range{margin-top:20px;display:block}.mobile-range .range{display:block}.mobile-range .range>p{font-size:10px}.mobile-range .sizes{margin-top:8px}.mobile-range .sizes span{padding:8px 10px}.mobile-range .modes{display:none}}
@media(max-width:374px){.masthead{padding:16px 12px}.layout{padding:0 12px}.brand{font-size:16px}.brand img{width:26px;height:26px}.preview{font-size:8px;padding:6px}h1{font-size:31px}.board{padding:6px;gap:2px}.cell{font-size:23px;border-radius:6px}.cell .region-letter{font-size:8px;left:4px;top:3px}.cue h2{font-size:16px}.numbers{gap:4px}.number{width:22px;height:22px}footer{padding:20px 12px}}

.measurement{margin:14px 0;color:var(--muted);font-size:11px;line-height:1.5}.measurement label{display:flex;align-items:center;gap:8px;min-height:32px;cursor:pointer}.measurement input{width:16px;height:16px;accent-color:var(--accent);flex-shrink:0}.measurement p{margin:0 0 0 24px;font-size:10px}.measurement p:empty{display:none}
