@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-BalHKn7d.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-qxMiU51n.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-400-normal-FfmJh7DR.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-400-normal-DPp7N0cD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/atkinson-hyperlegible-next-latin-ext-600-normal-kZZEtAc7.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-600-normal-BBAQIogt.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/atkinson-hyperlegible-next-latin-600-normal-BBuhw47K.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-600-normal-BhgCag5w.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-mono-latin-ext-400-normal-CpVFOiMk.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-ext-400-normal-ITMuFrSK.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-mono-latin-400-normal-CmMGer93.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-400-normal-Cmjm2dBj.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-mono-latin-ext-700-normal-Cb4hxZGu.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-ext-700-normal-Db6cZPB4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-mono-latin-700-normal-BhOtGXDr.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-700-normal-BQ8cw3oD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f6f3eb;--surface:#fffdf8;--editor:#fffdf8;--ink:#1f2421;--muted:#5c635e;--faint:#858b86;--line:#1f24211f;--line-strong:#1f242142;--hover:#1f24210d;--chip:#efebe1;--accent:#1d594d;--on-accent:#fffdf8;--yours:#a84a00;--yours-fill:#f6aa00;--yours-tint:#fdf1db;--goal:#0050e6;--goal-fill:#005aff;--goal-tint:#e7f0ff;--diff-line:#d3e8ff;--diff-char:#ffd296;--good:#1d594d;--good-bg:#e3ede8;--bad:#b23a00;--bad-bg:#fbe9e0;--soft:#efebe1;--ws:#8a8378;--sans:"Atkinson Hyperlegible Next", ui-sans-serif, system-ui, -apple-system, "Segoe UI", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;--mono:"Atkinson Hyperlegible Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--radius:12px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#151716;--surface:#1c1f1d;--editor:#1c1f1d;--ink:#ebe7dd;--muted:#a9afaa;--faint:#7a807b;--line:#ebe7dd1f;--line-strong:#ebe7dd42;--hover:#ebe7dd0f;--chip:#272b29;--accent:#86cdb6;--on-accent:#0f1f1a;--yours:#ffb048;--yours-fill:#f6aa00;--yours-tint:#33270f;--goal:#74bcff;--goal-fill:#4dc4ff;--goal-tint:#13283d;--diff-line:#1a3552;--diff-char:#6a4510;--good:#86cdb6;--good-bg:#1a2c26;--bad:#ff9a6b;--bad-bg:#3a2016;--soft:#232725;--ws:#8d877b}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#151716;--surface:#1c1f1d;--editor:#1c1f1d;--ink:#ebe7dd;--muted:#a9afaa;--faint:#7a807b;--line:#ebe7dd1f;--line-strong:#ebe7dd42;--hover:#ebe7dd0f;--chip:#272b29;--accent:#86cdb6;--on-accent:#0f1f1a;--yours:#ffb048;--yours-fill:#f6aa00;--yours-tint:#33270f;--goal:#74bcff;--goal-fill:#4dc4ff;--goal-tint:#13283d;--diff-line:#1a3552;--diff-char:#6a4510;--good:#86cdb6;--good-bg:#1a2c26;--bad:#ff9a6b;--bad-bg:#3a2016;--soft:#232725;--ws:#8d877b}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);min-width:320px;color:var(--ink);font-family:var(--sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.6}h1,h2,p,dl,dd,figure{margin:0}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}[hidden]{display:none!important}::selection{background:var(--accent);color:var(--on-accent)}code,kbd{font-family:var(--mono)}p code,li code,.step-text code{background:var(--chip);white-space:pre-wrap;border-radius:4px;padding:.08em .35em;font-size:.9em}kbd{border:1px solid var(--line-strong);background:var(--surface);white-space:nowrap;border-bottom-width:2px;border-radius:5px;padding:.05em .4em;font-size:.82em}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:20;background:var(--ink);color:var(--paper);border-radius:8px;padding:.6rem 1rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-200%)}.skip-link:focus{transform:none}.faint{color:var(--muted)}.page{max-width:1200px;margin-inline:auto;padding-inline:clamp(16px,4vw,40px)}.top{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;padding:26px 0 22px;display:flex}.brand{font-family:var(--mono);letter-spacing:-.01em;align-items:center;font-size:1.3rem;font-weight:700;text-decoration:none;display:inline-flex}.brand:hover{color:var(--ink)}.brand-caret{background:var(--yours-fill);border-radius:1px;width:.6em;height:1.15em;margin-left:3px;display:inline-block}@media (prefers-reduced-motion:no-preference){.brand-caret{animation:1.1s step-end 4 blink}@keyframes blink{50%{opacity:0}}}.tagline{color:var(--muted);font-size:.95rem}.theme-toggle{font:inherit;color:var(--muted);border:1px solid var(--line-strong);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;margin-left:auto;padding:5px 12px;font-size:.85rem;display:inline-flex}.theme-toggle:hover{color:var(--ink);background:var(--hover)}.theme-icon{border:1.5px solid;border-radius:50%;width:13px;height:13px}.theme-auto{background:linear-gradient(90deg,currentColor 50%,#0000 50%)}.theme-dark{background:currentColor}.layout{grid-template-columns:284px minmax(0,1fr);align-items:start;gap:56px;padding:32px 0 72px;display:grid}.main{outline:none;min-width:0}.foot{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px 32px;padding:22px 0 40px;font-size:.85rem;display:flex}.foot p:first-child{max-width:70ch}.index{scrollbar-width:thin;max-height:calc(100vh - 40px);padding-right:6px;position:sticky;top:20px;overflow-y:auto}.index-toggle{display:none}.tabs{background:var(--chip);border-radius:10px;gap:4px;padding:4px;display:flex}.tab{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;flex:1;padding:7px 10px;font-size:.95rem;font-weight:600}.tab:hover{color:var(--ink)}.tab[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000001a}.tab-count{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.82em;font-weight:400}.blurb{margin-top:14px;font-size:.92rem;line-height:1.45}.tally{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.callout{background:var(--good-bg);border-radius:10px;margin-top:14px;padding:10px 12px;font-size:.9rem;line-height:1.45}.topic{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:22px 0 4px 8px;font-size:.72rem;font-weight:600}.items{margin:0;padding:0;list-style:none}.item{border-radius:7px;grid-template-columns:1.1em 1.7em minmax(0,1fr) auto;align-items:baseline;gap:6px;padding:5px 8px;font-size:.94rem;line-height:1.4;text-decoration:none;display:grid}.item:hover{background:var(--hover);color:var(--ink)}.item[aria-current=page]{background:var(--surface);box-shadow:inset 3px 0 0 var(--accent), 0 1px 2px #0000000f;font-weight:600}.mark{text-align:center;color:var(--faint)}.s-par .mark,b.s-par{color:var(--accent)}.s-solved .mark{color:var(--ink)}.s-tried .mark{color:var(--muted)}.num{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.82em;font-weight:400}.score{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:.75rem;font-weight:400}.legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin:22px 8px 4px;font-size:.8rem;display:flex}.legend b{margin-right:4px;font-weight:400}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.78rem;font-weight:600}.ch-head h1{letter-spacing:-.015em;outline:none;margin:6px 0 16px;font-size:clamp(1.75rem,3.2vw,2.4rem);font-weight:600;line-height:1.15}.stats{flex-wrap:wrap;gap:8px 36px;display:flex}.stats div{flex-direction:column;display:flex}.stats dt{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.75rem}.stats dd{font-variant-numeric:tabular-nums;font-size:1.3rem;font-weight:600;line-height:1.3}.star{color:var(--accent)}.pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:28px 0 24px;display:grid}.pane{--role:var(--yours);--role-fill:var(--yours-fill);--role-tint:var(--yours-tint);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0;overflow:hidden}.pane.goal{--role:var(--goal);--role-fill:var(--goal-fill);--role-tint:var(--goal-tint)}.pane figcaption{padding:12px 16px 2px}.tag{letter-spacing:.1em;text-transform:uppercase;color:var(--role);align-items:center;gap:7px;font-size:.74rem;font-weight:700;display:inline-flex}.tag:before{content:"";background:var(--role-fill);border-radius:2px;width:10px;height:10px}.pane.goal .tag:before{border-radius:50%}.code{font-family:var(--mono);padding:6px 0 12px;font-size:.95rem;line-height:1.65;overflow-x:auto}.row{white-space:pre;border-left:3px solid #0000;grid-template-columns:2.5em max-content;padding-right:16px;display:grid}.row.changed{background:var(--role-tint);border-left-color:var(--role-fill)}.ln{text-align:right;color:var(--faint);-webkit-user-select:none;user-select:none;padding-right:12px}.row.empty .tx{color:var(--muted);font-style:italic}.ws{color:var(--ws)}.actions{flex-wrap:wrap;align-items:center;gap:10px 12px;margin:4px 0 20px;display:flex}.btn{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:10px 16px;font-size:.97rem;font-weight:600;display:inline-flex}.btn:hover{background:var(--hover);border-color:var(--muted)}.btn.primary{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.btn.primary:hover{filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn kbd{color:inherit;opacity:.7;background:0 0;border-color:currentColor;border-bottom-width:1px;font-size:.72rem;font-weight:700}.btn.small{padding:5px 11px;font-size:.85rem}.btn.quiet{background:0 0}.enter-hint{color:var(--muted);font-size:.85rem}.hint,.notice{background:var(--soft);border-radius:10px;margin:0 0 20px;padding:14px 16px;line-height:1.55}.notice{border-left:3px solid var(--yours-fill)}.hint code,.lesson code{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.hint-label{margin-right:4px;font-weight:700}.related{color:var(--muted);margin-top:6px;font-size:.9rem}.howto{max-width:66ch;color:var(--muted);font-size:.9rem;line-height:1.6}.stage{margin-top:26px}.vim-frame{background:var(--editor);border:1px solid var(--line-strong);border-radius:var(--radius);min-height:180px;position:relative;overflow:hidden}.vim-frame[data-vim]{justify-content:center;padding:10px 0;display:flex}.vim-canvas{flex:none;display:block}.vim-frame:not([data-vim=ready]) .vim-canvas{visibility:hidden}.vim-input{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;position:absolute;top:0;left:0}.vim-status{text-align:center;color:var(--muted);place-items:center;padding:20px;display:grid;position:absolute;inset:0}.vim-status:empty{display:none}.vim-frame[data-vim=error] .vim-status{color:var(--bad)}.vim-paused{width:100%;font:inherit;color:var(--ink);background:color-mix(in srgb, var(--editor) 80%, transparent);cursor:pointer;border:0;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.vim-paused span{background:var(--surface);border:1px solid var(--line-strong);border-radius:999px;padding:10px 18px;font-weight:600;box-shadow:0 2px 10px #0000001f}.stage-bar{flex-wrap:wrap;align-items:center;gap:8px 22px;margin:12px 0 10px;display:flex}.live{font-variant-numeric:tabular-nums}.live-n{font-family:var(--mono);font-weight:700}.diff-legend{color:var(--muted);flex-wrap:wrap;gap:4px 16px;font-size:.85rem;display:flex}.sw{vertical-align:-2px;border:1px solid var(--line-strong);border-radius:3px;width:14px;height:14px;margin-right:6px;display:inline-block}.sw-line{background:var(--diff-line)}.sw-char{background:var(--diff-char)}.stage-bar .btn{margin-left:auto}.verdict{--v-ink:var(--good);--v-bg:var(--good-bg);border-radius:var(--radius);background:var(--v-bg);outline:none;align-items:flex-start;gap:14px;margin:26px 0 18px;padding:16px 18px;display:flex}.verdict.v-fail{--v-ink:var(--bad);--v-bg:var(--bad-bg)}.v-icon{color:var(--v-ink);font-size:1.5rem;line-height:1.2}.v-title{color:var(--v-ink);font-size:1.2rem;font-weight:700}.v-sub{color:var(--muted)}.your-keys{flex-wrap:wrap;align-items:baseline;gap:8px 12px;display:flex}.your-keys .label{font-weight:600}.pb{color:var(--muted);margin:8px 0 0}.pb-new{color:var(--good);font-weight:700}[data-view=result] .actions{margin-top:22px}.keys{background:var(--chip);white-space:pre-wrap;word-break:break-all;border-radius:6px;padding:.18em .55em;font-size:.95em;line-height:1.9}.k-special{vertical-align:.1em;color:var(--muted);border:1px solid var(--line-strong);background:var(--surface);border-radius:4px;margin:0 .12em;padding:0 .3em;font-size:.76em;font-weight:700;line-height:1.35;display:inline-block}.k-space{color:var(--faint)}.keys.muted{color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);background:0 0}.answers{border-top:1px solid var(--line);margin-top:36px;padding-top:26px}.answers h2{font-size:1.25rem;font-weight:600}.solution{margin:20px 0 26px}.sol-head{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.sol-letter{background:var(--ink);width:1.7rem;height:1.7rem;color:var(--paper);border-radius:50%;place-items:center;font-size:.82rem;font-weight:700;display:grid}.sol-n{color:var(--muted);font-size:.9rem}.par-badge{color:var(--good);font-size:.85rem;font-weight:700}.sol-note{color:var(--muted);font-size:.9rem;font-style:italic}.steps{grid-template-columns:max-content minmax(0,1fr);gap:10px 18px;margin:14px 0 0 calc(1.7rem + 12px);padding:0;list-style:none;display:grid}.steps li{grid-column:1/-1;grid-template-columns:subgrid;align-items:baseline;display:grid}.step-keys{justify-self:start}.step-text{line-height:1.55}.lesson{background:var(--soft);border-radius:10px;gap:12px;margin-top:8px;padding:16px 18px;line-height:1.6;display:flex}.lesson .arrow{color:var(--accent);font-weight:700}.builds-on{color:var(--muted);margin-top:14px;font-size:.9rem}@media (max-width:900px){.layout{grid-template-columns:minmax(0,1fr);gap:24px;padding-top:20px}.index{max-height:none;padding:0;position:static;overflow:visible}.index-toggle{width:100%;font:inherit;color:var(--muted);text-align:left;background:var(--surface);border:1px solid var(--line-strong);cursor:pointer;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 14px;font-size:.92rem;display:grid}.index-toggle-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.chev{border-bottom:2px solid;border-right:2px solid;width:8px;height:8px;transform:translateY(-2px)rotate(45deg)}.index-toggle[aria-expanded=true] .chev{transform:translateY(2px)rotate(-135deg)}.index-body{padding:16px 0 8px;display:none}.index-body.open{display:block}}@media (max-width:640px){body{font-size:1rem}.tagline{display:none}.pair{grid-template-columns:minmax(0,1fr)}.steps{grid-template-columns:minmax(0,1fr);gap:4px;margin-left:0}.steps li{margin-bottom:8px}.stage-bar .btn{margin-left:0}}
