@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-400-normal-DRC__1Mx.woff2) format("woff2"),url(/assets/instrument-sans-latin-400-normal-D1W7dsQl.woff) format("woff")}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/instrument-sans-latin-500-normal-Dk9ku72i.woff2) format("woff2"),url(/assets/instrument-sans-latin-500-normal-Z6ESRlEs.woff) format("woff")}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/instrument-sans-latin-600-normal-B7fBEWYG.woff2) format("woff2"),url(/assets/instrument-sans-latin-600-normal-B9e8oLYv.woff) format("woff")}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/instrument-sans-latin-700-normal-CYfAanHo.woff2) format("woff2"),url(/assets/instrument-sans-latin-700-normal-DfAjL1vF.woff) format("woff")}:root{--ground: #efede8;--surface: #faf9f6;--shade: #e4e0d7;--ink: #1f1d1a;--on-ink: #faf9f6;--muted: #69645b;--line: #dcd8d0;--off: #a39e94;--disabled: #bdb8ae;--tight: #a86a12;--danger: #b23a2e;--danger-bg: #fbedeb;--danger-line: #ebc4be;--danger-ink: #7e2419;--primary: #1f1d1a;--state-bg: #1f1d1a;--state-ink: #faf9f6;--state-line: transparent;--box-0: #e0a030;--box-0-shade: #b47a12;--box-1: #3c74c8;--box-1-shade: #2a579b;--box-2: #b3427f;--box-2-shade: #8a2e60;--ring-classic: #c99332;--box-mark: #faf9f6;--font: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--radius-tile: 14px;--radius-btn: 14px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ground: #171614;--surface: #252320;--shade: #36332e;--ink: #e6e1d8;--on-ink: #171614;--muted: #a39d92;--line: #36332e;--off: #6e6960;--disabled: #4d4943;--tight: #d5a055;--danger: #c7867f;--danger-bg: #33231f;--danger-line: #563530;--danger-ink: #e3ada6;--primary: #d6d1c7;--state-bg: #3a3631;--state-ink: #e6e1d8;--state-line: #e6e1d8;--box-0: #cda258;--box-0-shade: #a27931;--box-1: #7894bf;--box-1-shade: #496a9c;--box-2: #b07896;--box-2-shade: #874f6d;--ring-classic: #bb9a5f;color-scheme:dark}}:root[data-theme=dark]{--ground: #171614;--surface: #252320;--shade: #36332e;--ink: #e6e1d8;--on-ink: #171614;--muted: #a39d92;--line: #36332e;--off: #6e6960;--disabled: #4d4943;--tight: #d5a055;--danger: #c7867f;--danger-bg: #33231f;--danger-line: #563530;--danger-ink: #e3ada6;--primary: #d6d1c7;--state-bg: #3a3631;--state-ink: #e6e1d8;--state-line: #e6e1d8;--box-0: #cda258;--box-0-shade: #a27931;--box-1: #7894bf;--box-1-shade: #496a9c;--box-2: #b07896;--box-2-shade: #874f6d;--ring-classic: #bb9a5f;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--ground);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:2px}svg.icon{display:block;flex:0 0 auto}#app{height:100%}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.js .intro{visibility:hidden}.intro{max-width:430px;margin:0 auto;padding:20px;font-size:17px;line-height:1.5}.intro h1{margin:0 0 12px;font-size:36px;letter-spacing:-.02em}.intro a{color:inherit}.play,.archive{display:contents}.screen{height:100%;max-width:430px;margin:0 auto;display:flex;flex-direction:column;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) 0 max(20px,env(safe-area-inset-left));overflow:hidden}.header{display:flex;align-items:flex-start;justify-content:space-between}.header-titles{display:flex;flex-direction:column;gap:3px;min-width:0}.wordmark{margin:0;font-size:20px;line-height:28px;font-weight:700;letter-spacing:-.02em}.back{height:28px;margin-left:-4px;padding:0 4px 0 0;display:flex;align-items:center;gap:2px;border:none;background:transparent;font-size:20px;font-weight:700;letter-spacing:-.02em;cursor:pointer}.dateline{font-size:14px;color:var(--muted);white-space:nowrap}.dateline-row{display:flex;align-items:center}.step{width:44px;height:44px;margin:-14px -8px;padding:0;border:none;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;touch-action:manipulation}.step:first-of-type{margin-left:-2px}.step:hover:not(:disabled){color:var(--ink)}.step:disabled{color:var(--disabled);cursor:default}.step-text{height:44px;margin:-14px 0 -14px 8px;padding:0 8px;border:none;background:transparent;color:var(--muted);font-size:14px;font-weight:500;cursor:pointer;touch-action:manipulation}.step-text:hover:not(:disabled){color:var(--ink)}.step-text:disabled{color:var(--disabled);cursor:default}.icon-btn{width:44px;height:44px;margin:-8px -12px 0 0;padding:0;border:none;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer}.hud{margin-top:22px;display:flex;align-items:baseline;justify-content:space-between}.hud-left{display:flex;align-items:baseline;gap:8px}.hud-num{font-size:44px;line-height:1;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.hud-num.tight{color:var(--tight)}.hud-num.out,.hud-label.out{color:var(--danger)}.hud-label,.hud-moves{font-size:15px;color:var(--muted);font-variant-numeric:tabular-nums}.board-wrap{flex:1 1 auto;min-height:0;container-type:size;margin:12px 0;display:grid;place-items:center}.message{height:42px;margin:0 0 10px;display:flex;align-items:center;font-size:15px;line-height:1.35}.message.tall{height:60px}.message.strong{font-weight:500}.message.danger{color:var(--danger)}.message.muted{color:var(--muted)}.controls{display:grid;grid-template-columns:minmax(0,1fr) 180px minmax(0,1fr);align-items:center;gap:12px}.controls.dimmed{opacity:.35;pointer-events:none}.col{display:flex;flex-direction:column;gap:10px}.tile{height:85px;padding:0 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border-radius:var(--radius-tile);background:var(--surface);border:1.5px solid transparent;color:var(--ink);font-size:14px;font-weight:500;cursor:pointer;touch-action:manipulation}.tile .name{font-weight:600}.tile .val{font-variant-numeric:tabular-nums;opacity:.7;margin-left:5px}.key,.move-hint{display:none}.tile:disabled,.tile.spent{color:var(--off);cursor:default}.tile.ghost{background:transparent;border:1px solid var(--line);color:var(--muted)}.tile.state-on{background:var(--state-bg);color:var(--state-ink);border-color:var(--state-line)}.tile.hard-on{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger-ink)}.dpad{width:180px;height:180px;display:grid;grid-template-columns:repeat(3,60px);grid-template-rows:repeat(3,60px)}.dpad button{border:none;padding:0;background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;touch-action:none;user-select:none}.dpad .up{grid-area:1 / 2;border-radius:18px 18px 0 0}.dpad .left{grid-area:2 / 1;border-radius:18px 0 0 18px}.dpad .right{grid-area:2 / 3;border-radius:0 18px 18px 0}.dpad .down{grid-area:3 / 2;border-radius:0 0 18px 18px}.dpad .hub{grid-area:2 / 2;background:var(--surface);display:grid;place-items:center}.dpad .hub:after{content:"";width:14px;height:14px;border-radius:7px;background:var(--ground)}.dpad button:active{background:var(--shade)}.result{height:232px;padding-top:4px;display:flex;flex-direction:column}.result h2{margin:0;font-size:30px;line-height:1.1;font-weight:700;letter-spacing:-.02em}.result .line{margin:8px 0 0;font-size:16px;line-height:1.4;font-weight:500}.result .sub{margin:2px 0 0;font-size:15px;line-height:1.4;color:var(--muted)}.result .spacer{flex:1 1 auto}.btn-primary{flex:none;height:52px;display:flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:var(--radius-btn);background:var(--primary);color:var(--on-ink);font-size:16px;font-weight:600;cursor:pointer}.btn-text{flex:none;height:44px;margin-top:6px;display:flex;align-items:center;justify-content:center;gap:8px;border:none;background:transparent;color:var(--ink);font-size:15px;font-weight:600;cursor:pointer}.tabs{flex:0 0 auto;display:flex;margin:14px calc(-1*max(20px,env(safe-area-inset-right))) 0 calc(-1*max(20px,env(safe-area-inset-left)));padding:0 20px max(6px,env(safe-area-inset-bottom));border-top:1px solid var(--line)}.tabs button{flex:1 1 0;height:50px;padding:0;border:none;background:transparent;color:var(--muted);font-size:15px;font-weight:500;cursor:pointer}.tabs button[aria-selected=true]{color:var(--ink);font-weight:600;box-shadow:inset 0 2px 0 var(--ink)}.board{display:grid;gap:4px;touch-action:none;container-type:inline-size}.cell{--u: max(1px, calc(100cqw / 340));position:relative;border-radius:20%}.cell.floor{background:var(--surface)}.cell.arrow-tile{background:var(--shade)}.cell.stand{outline:calc(2 * var(--u)) dashed var(--ink);outline-offset:calc(-5 * var(--u))}.ring{position:absolute;inset:24%;border-radius:50%;border:calc(var(--ring-w) * var(--u)) solid var(--c)}.glyph{position:absolute;left:50%;top:50%;translate:-50% -50%}.goal-glyph{background:var(--c)}.chevron{position:absolute;border-style:solid;border-width:calc(var(--aw) * var(--u)) calc(var(--aw) * var(--u)) 0 0;border-color:var(--ink);border-radius:1px;z-index:3}.chevron.covered{border-color:var(--surface)}.box{position:absolute;inset:11%;border-radius:22%;background:var(--c);box-shadow:inset 0 calc(-1 * var(--sh) * var(--u)) 0 var(--cs);z-index:2}.box.hinted{outline:calc(3 * var(--u)) solid var(--ink);outline-offset:calc(3 * var(--u))}.box-glyph{background:var(--box-mark);opacity:.92}.check,.hint-arrow{position:absolute;border-style:solid;border-color:var(--box-mark);border-radius:1px}.check{left:37%;top:19%;width:24%;height:44%;border-width:0 calc(var(--ck) * var(--u)) calc(var(--ck) * var(--u)) 0;rotate:45deg}.hint-arrow{width:30%;height:30%;border-width:calc(var(--ck) * var(--u)) calc(var(--ck) * var(--u)) 0 0}.token{position:absolute;inset:14%;z-index:2}.token .disc{position:absolute;inset:2%;border-radius:50%;background:var(--ink)}.token .ring2{position:absolute;inset:20%;border-radius:50%;border:calc(3 * var(--u)) solid var(--surface)}.token .core{position:absolute;inset:36%;border-radius:50%;background:var(--ink)}.archive-head{margin-top:36px;display:flex;flex-direction:column;gap:6px}.archive-head h1{margin:0;font-size:30px;line-height:1.1;font-weight:700;letter-spacing:-.02em}.archive-head p{margin:0;font-size:15px;line-height:1.4;color:var(--muted)}.month{margin-top:28px;display:flex;flex-direction:column}.month-nav{display:flex;align-items:center;justify-content:space-between;margin:0 -12px 8px;font-size:17px;font-weight:600}.month-nav button{width:44px;height:44px;padding:0;border:none;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer}.month-nav button:disabled{color:var(--disabled);cursor:default}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px 4px}.cal .wd{height:24px;display:grid;place-items:center;font-size:13px;font-weight:500;color:var(--muted)}.cal button{height:44px;padding:0;border-radius:22px;border:none;background:transparent;color:var(--ink);font-size:16px;font-weight:500;font-variant-numeric:tabular-nums;cursor:pointer}.cal button:disabled{color:var(--disabled);font-weight:400;cursor:default}.cal button.solved{background:var(--state-bg);color:var(--state-ink);font-weight:600}.cal button.today{border:1.5px solid var(--ink);font-weight:600}.legend{margin:18px 0 0;display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}.legend:before{content:"";width:12px;height:12px;border-radius:6px;background:var(--state-bg)}.fill{flex:1 1 auto}.help{margin-top:28px;padding-bottom:max(20px,env(safe-area-inset-bottom));overflow-y:auto;font-size:15px;line-height:1.5}.help h1{margin:0 0 16px;font-size:30px;line-height:1.1;letter-spacing:-.02em}.help h2{margin:24px 0 8px;font-size:17px;line-height:1.3;font-weight:600}.help p{margin:0 0 12px;max-width:60ch}@media(max-height:740px)and (max-width:899px),(max-height:579px){.screen{padding-top:max(14px,env(safe-area-inset-top))}.hud{margin-top:12px}.hud-num{font-size:36px}.board-wrap{margin:8px 0}.message{height:36px;margin-bottom:6px;font-size:14px}.controls{grid-template-columns:minmax(0,1fr) 144px minmax(0,1fr)}.dpad{width:144px;height:144px;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(3,48px)}.tile{height:67px;gap:4px;font-size:13px}.message.tall{height:57px}.result{height:186px}.btn-primary{height:48px}.btn-text{margin-top:2px}.tabs button{height:44px}}@media(min-width:900px)and (min-height:580px){:root{--rail: 300px;--rail-gap: 72px;--board: min(720px, calc(100dvh - 120px) , calc(100vw - 440px) );--board-max: var(--board)}.screen{max-width:calc(var(--rail) + var(--rail-gap) + var(--board) + 64px);padding:0 32px;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:72px auto;align-content:center}.header{grid-row:1;grid-column:1;align-items:center}.header-titles{flex-direction:row;align-items:baseline;gap:14px}.wordmark,.back{font-size:24px}.icon-btn{margin:0 -12px 0 0}.tabs{grid-row:1;grid-column:1;justify-self:end;align-self:center;margin:0 44px 0 0;padding:0;border:none;gap:4px}.tabs button{flex:none;height:44px;padding:0 14px}.tabs button:hover{color:var(--ink)}.tabs button[aria-selected=true]{box-shadow:inset 0 -2px 0 var(--ink)}.play,.archive{grid-row:2;display:grid;grid-template-columns:var(--rail) var(--board);column-gap:var(--rail-gap);height:var(--board)}.play{grid-template-rows:auto auto minmax(0,1fr)}.board-wrap{grid-column:2;grid-row:1 / -1;width:var(--board);height:var(--board);margin:0}.board{gap:6px}.hud,.message,.controls,.result{grid-column:1}.hud{grid-row:1;margin:0;flex-direction:column;align-items:flex-start;gap:6px}.hud-left{flex-direction:column;gap:10px}.hud-num{font-size:104px;line-height:.82;letter-spacing:-.04em}.hud-label{font-size:17px;font-weight:500;color:var(--ink)}.hud-label.out{color:var(--danger)}.message{grid-row:2;display:block;height:auto;margin:24px 0 0}.message.tall{height:auto}.controls{grid-row:3;align-self:end;display:flex;flex-direction:column;align-items:stretch;gap:2px}.col{display:contents}.tile,.tile.ghost{height:44px;margin:0 -12px;padding:0 12px;flex-direction:row;justify-content:flex-start;gap:12px;background:transparent;border:1.5px solid transparent;border-radius:10px;color:var(--ink);font-size:15px}.tile:disabled,.tile.spent{color:var(--off)}.tile:hover:not(:disabled,.spent,.state-on,.hard-on){background:var(--shade)}.tile.state-on{background:var(--state-bg);color:var(--state-ink);border-color:var(--state-line)}.tile.hard-on{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger-ink)}.dpad{order:1;margin-top:12px;align-self:center}.result{grid-row:2 / -1;align-self:end;height:auto;padding:0}.result h2{font-size:36px}.result .spacer{flex:none;height:20px}.btn-primary:hover{opacity:.88}.btn-text:hover{text-decoration:underline}.archive-head{margin:0;grid-column:1}.archive-head h1,.help h1{font-size:36px}.month{grid-column:2;margin:0}.cal{gap:8px 6px}.cal button{--day: min(72px, calc((var(--board) - 180px) / 6));width:var(--day);height:var(--day);justify-self:center;border-radius:50%;font-size:17px}.cal button:hover:not(:disabled,.solved){background:var(--shade)}.help{grid-row:2;margin:0;padding-bottom:0;height:var(--board);display:grid;grid-template-columns:var(--rail) minmax(0,60ch);column-gap:var(--rail-gap);align-content:start;font-size:17px}.help h1{grid-row:1 / span 9}.help h2,.help p{grid-column:2}.help p{margin-bottom:16px}.fill{display:none}}@media(min-width:900px)and (min-height:580px)and (pointer:fine){.dpad{display:none}.key{display:block;margin-left:auto;font:inherit;font-size:14px;font-weight:500;color:var(--muted)}.tile.state-on .key{color:inherit}.move-hint{display:block;margin:14px 0 0;font-size:14px;line-height:1.4;color:var(--muted)}.cell{cursor:pointer}}@media(min-width:900px)and (min-height:580px)and (pointer:coarse){.controls{display:grid;grid-template-columns:1fr 1fr;gap:4px}.tile,.tile.ghost{margin:0}.dpad{grid-column:1 / -1;justify-self:center}}@media(min-width:900px)and (min-height:580px)and (max-height:720px){.hud-num{font-size:76px}.message{margin-top:16px;font-size:14px}.result h2{font-size:30px}}
