:root{color-scheme:light dark;--paper:light-dark(#f3f1ec,#0a0c0b);--sheet:light-dark(#fff,#131715);--fill:light-dark(#e8e5de,#1c211f);--rule:light-dark(#dad6cd,#262c29);--rule-strong:light-dark(#b9b4a8,#3d4541);--ink:light-dark(#121614,#f3f3ef);--ink-2:light-dark(#474f4a,#b8bfba);--ink-3:light-dark(#5a625e,#959e99);--brass:light-dark(#8f6418,#e2bd6f);--brass-ink:light-dark(#7a5514,#e2bd6f);--on-brass:light-dark(#fffaf0,#17130b);--green:light-dark(#23733f,#8fd0a0);--violet:light-dark(#5a46a0,#c3b4ec);--red:light-dark(#b2361f,#f39c87);--stage:#151a18;--stage-2:#1e2421;--stage-rule:#ffffff17;--stage-ink:#f1f0ea;--stage-ink-2:#b9c0bb;--stage-brass:#e2bd6f;--stage-green:#8fd0a0;--stage-red:#f39c87;--stage-violet:#c3b4ec;--editor:#1d2320;--editor-rule:#ffffff14;--code:#e8eae4;--code-dim:#8e9893;--ins:#234029;--ins-ink:#c0e6c7;--del:#4a2620;--del-ink:#f6baac;--mode-normal:var(--brass);--mode-insert:var(--green);--mode-visual:var(--violet);--mode-replace:var(--red);--mode:var(--mode-normal);--key:#2b322f;--key-top:#353d39;--key-edge:#0b0d0c;--key-ink:#f1f0ea;--key-down:#e2bd6f;--key-ink-down:#17130b;--syntax-keyword:#cfa3f0;--syntax-string:#9ad3a6;--syntax-number:#f0ad6c;--syntax-comment:#8e9893;--syntax-property:#86b7e8;--syntax-definition:#e6c07b;--syntax-tag:#f39c87;--syntax-attribute:#e2bd6f;--syntax-variable:#afcce5;--font-display:"SF Pro Display", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Display", "Inter Display", "Segoe UI", Inter, ui-sans-serif, system-ui, sans-serif;--font-text:"SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI Variable Text", "Segoe UI", Inter, ui-sans-serif, system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--text-cap:.8125rem;--text-sm:.9375rem;--text-md:1rem;--text-body:1.125rem;--text-h3:1.25rem;--text-lead:1.5rem;--text-h2:clamp(1.75rem, 1.35rem + 1.4vw, 2.5rem);--text-h1:clamp(2.25rem, 1.6rem + 2.4vw, 3.5rem);--text-display:clamp(2.75rem, 1.5rem + 4.6vw, 5.5rem);--text-score:clamp(3rem, 2rem + 3.4vw, 5rem);--weight-display:700;--weight-head:700;--weight-h3:650;--tracking-display:-.035em;--tracking-head:-.025em;--leading-tight:1.05;--leading-snug:1.3;--leading-normal:1.55;--leading-reading:1.6;--leading-code:1.6;--measure:66ch;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2.5rem;--space-7:4rem;--space-8:6rem;--space-9:9rem;--gutter:clamp(1rem, 3vw, 2.5rem);--radius-sm:5px;--radius-cap:9px;--radius-md:10px;--radius-lg:16px;--radius-stage:clamp(18px, 2.4vw, 32px);--radius-full:999px;--cap-shadow:inset 0 1px 0 #ffffff1f, inset 0 -3px 0 #00000059, 0 3px 0 var(--key-edge), 0 6px 14px -4px #00000073;--cap-shadow-down:inset 0 1px 0 #ffffff59, inset 0 -1px 0 #00000040, 0 0 0 var(--key-edge), 0 2px 6px -2px #0006;--cap-travel:3px;--shadow-lit:0 40px 80px -30px #000c, 0 0 0 1px #ffffff0f;--backdrop:light-dark(#12161473,#0009);--shadow-overlay:0 2px 4px light-dark(#1e180c14,#0000004d), 0 24px 48px -16px light-dark(#1e180c4d,#0009);--dur-fast:.14s;--dur-base:.24s;--dur-reveal:.42s;--dur-reward:.64s;--dur-step:.3s;--ease-out:cubic-bezier(.2, .8, .2, 1);--ease-press:cubic-bezier(.4, 0, .2, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-reward:cubic-bezier(.7, 0, .2, 1)}:root[data-mode=insert],[data-mode=insert]{--mode:var(--mode-insert)}:root[data-mode=visual],[data-mode=visual]{--mode:var(--mode-visual)}:root[data-mode=replace],[data-mode=replace]{--mode:var(--mode-replace)}:root[data-mode=normal],[data-mode=normal]{--mode:var(--mode-normal)}[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-base:0s;--dur-reveal:0s;--dur-reward:0s;--cap-travel:0px}}.stage{color-scheme:dark;--paper:var(--stage);--sheet:var(--stage-2);--fill:#ffffff12;--rule:var(--stage-rule);--rule-strong:#fff3;--ink:var(--stage-ink);--ink-2:var(--stage-ink-2);--ink-3:var(--stage-ink-2);--brass:var(--stage-brass);--brass-ink:var(--stage-brass);--on-brass:var(--key-ink-down);--green:var(--stage-green);--red:var(--stage-red);--violet:var(--stage-violet);border-radius:var(--radius-stage);background:radial-gradient(120% 80% at 50% 0%, var(--stage-2), var(--stage) 70%);color:var(--ink);padding:clamp(1.25rem,3vw,2.5rem);position:relative}.stage-lg{padding:clamp(1.5rem,5vw,5rem) clamp(1rem,3vw,2.5rem) clamp(1.5rem,4vw,4rem)}.stage :not(pre)>code:not([class]){background:#ffffff17}.stage .editor-frame[data-kind=editor]{box-shadow:var(--shadow-lit), inset 0 2px 0 var(--mode)}.stage .editor-frame[data-kind=result]{background:0 0}.editor-frame{color-scheme:dark;border:1px solid var(--editor-rule);border-radius:var(--radius-lg);background:var(--editor);min-width:0;color:var(--code);margin:0;overflow:hidden}.editor-frame[data-kind=editor]{box-shadow:inset 0 2px 0 var(--mode);transition:box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-fast) var(--ease-out)}.editor-frame[data-kind=result]{background:var(--stage);border:1px dashed #ffffff3d}.editor-frame[data-kind=result] .editor-bar{border-bottom-style:dashed;border-bottom-color:#ffffff29}.editor-bar{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:2.5rem;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);border-bottom:1px solid var(--editor-rule);display:flex}.editor-label,.frame-label{text-overflow:ellipsis;white-space:nowrap;font:500 var(--text-cap) / 1.4 var(--font-text);color:var(--code-dim);overflow:hidden}.mode-chip{align-items:center;gap:var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--mode) 16%, transparent);color:var(--mode);font:700 .6875rem / 1.3 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;transition:background-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);flex:none;margin-left:auto;padding:.2rem .6rem;display:inline-flex}.mode-chip:before{content:"";border-radius:var(--radius-full);background:var(--mode);width:.4rem;height:.4rem}.editor-bar>:not(.editor-label):not(.frame-label):not(.mode-chip)+.mode-chip{margin-left:0}.code-preview{padding:calc(var(--space-3) + 4px) 0;font:var(--code-size,var(--text-md)) / var(--leading-code) var(--font-mono);font-variant-ligatures:none;color:var(--code)}.code-line{white-space:pre;display:flex}.code-gutter{box-sizing:content-box;min-width:20px;padding:0 var(--space-2) 0 var(--space-3);border-right:1px solid var(--editor-rule);text-align:right;color:var(--code-dim);font-size:var(--text-cap);line-height:calc(var(--code-size,var(--text-md)) * var(--leading-code));font-variant-numeric:tabular-nums;flex:none;margin-right:5px}.code-text{text-overflow:clip;overflow:hidden}.code-cursor{background:color-mix(in srgb, var(--mode) 80%, transparent);color:var(--editor);border-radius:2px}:is([data-mode=insert],[data-mode=replace]) .code-cursor{color:inherit;box-shadow:inset 2px 0 0 var(--mode);background:0 0}.code-preview mark{color:inherit;border-radius:3px}.code-preview .diff-old{background:var(--del);color:var(--del-ink)}.code-preview .diff-new{background:var(--ins);color:var(--ins-ink)}.editor-frame :is(.CodeMirror,.code-preview) .cm-keyword{color:var(--syntax-keyword)}.editor-frame :is(.CodeMirror,.code-preview) :is(.cm-string,.cm-string-2){color:var(--syntax-string)}.editor-frame :is(.CodeMirror,.code-preview) :is(.cm-number,.cm-atom){color:var(--syntax-number)}.editor-frame :is(.CodeMirror,.code-preview) .cm-comment{color:var(--syntax-comment);font-style:italic}.editor-frame :is(.CodeMirror,.code-preview) :is(.cm-property,.cm-builtin){color:var(--syntax-property)}.editor-frame :is(.CodeMirror,.code-preview) .cm-def{color:var(--syntax-definition)}.editor-frame :is(.CodeMirror,.code-preview) .cm-tag{color:var(--syntax-tag)}.editor-frame :is(.CodeMirror,.code-preview) .cm-attribute{color:var(--syntax-attribute)}.editor-frame :is(.CodeMirror,.code-preview) :is(.cm-variable-2,.cm-variable-3,.cm-type){color:var(--syntax-variable)}.editor-frame :is(.CodeMirror,.code-preview) :is(.cm-operator,.cm-punctuation,.cm-variable,.cm-bracket){color:var(--code)}.keyseq{align-items:center;gap:var(--keyseq-gap,.3rem);vertical-align:middle;flex-wrap:wrap;display:inline-flex}.keyseq-text{--keyseq-gap:.2rem;vertical-align:baseline}.keyseq-text .cap{--cap-h:1.9em;box-shadow:inset 0 1px 0 #ffffff1f, inset 0 -2px 0 #00000059, 0 2px 0 var(--key-edge);border-radius:6px;margin-bottom:3px;font-size:.8em}.keyseq-text .cap[data-kind=named]{font-size:.72em}.keyseq-text .cap[data-state=down]{box-shadow:var(--cap-shadow-down)}.keyseq-sm{--keyseq-gap:.25rem}.keyseq-sm .cap{--cap-h:1.75rem;border-radius:7px}.keyseq-md .cap{--cap-h:2.125rem}.keyseq-lg{--keyseq-gap:.5rem}.keyseq-lg .cap{--cap-h:2.75rem;border-radius:11px}@media (width<=40rem){.keyseq-lg{--keyseq-gap:.375rem}.keyseq-lg .cap{--cap-h:2.25rem}}.keyseq-gap{color:var(--ink-3)}.keyseq-group{align-items:center;gap:inherit;flex-wrap:nowrap;display:inline-flex}.keyseq:has(>.keyseq-group){column-gap:.75rem}.keyseq-group{column-gap:var(--keyseq-gap,.3rem)}:is(.vim-editor,.replay-player)[data-lines="1"]{--editor-lines:1}:is(.vim-editor,.replay-player)[data-lines="2"]{--editor-lines:2}:is(.vim-editor,.replay-player)[data-lines="3"]{--editor-lines:3}:is(.vim-editor,.replay-player)[data-lines="4"]{--editor-lines:4}:is(.vim-editor,.replay-player)[data-lines="5"]{--editor-lines:5}:is(.vim-editor,.replay-player)[data-lines="6"]{--editor-lines:6}:is(.vim-editor,.replay-player)[data-lines="7"]{--editor-lines:7}:is(.vim-editor,.replay-player)[data-lines="8"]{--editor-lines:8}.player-key{border-radius:var(--radius-cap);color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:inline-grid}.player-key:disabled{cursor:inherit}.player-key>.cap{pointer-events:none}.player-key:not(:disabled):hover>.cap:not([data-state=down]){background:var(--key-top)}.player-count{padding-left:var(--space-2);font:var(--text-cap) / 1.5 var(--font-text);color:var(--code-dim);white-space:nowrap;align-self:center}.player-bar{justify-content:center;align-items:center;gap:var(--space-1) var(--space-4);flex-wrap:wrap;display:flex;position:relative}.player-controls{align-items:center;gap:.125rem;display:inline-flex}.player-button.button-sm{min-width:2rem;padding-inline:var(--space-2);color:var(--ink-2)}.player-button .icon{width:1rem;height:1rem}.player-button[data-state=paused] .player-pause,.player-button[data-state=playing] .player-play{display:none}.player-speed.button-sm{font-variant-numeric:tabular-nums;min-width:2.75rem}.player-hint{font:var(--text-cap) / 1.5 var(--font-text);color:var(--ink-3);white-space:nowrap;flex-wrap:wrap;align-items:center;gap:.25em;display:flex}@media (hover:none) and (pointer:coarse),(width<=40rem){.player-hint{display:none}}.replay-screen{z-index:4;background:var(--editor);position:absolute;inset:0}.replay-screen[hidden]{display:none}.replay-screen .CodeMirror div.CodeMirror-cursors{visibility:visible}.replay-screen .CodeMirror .CodeMirror-selected{background:color-mix(in srgb, var(--violet) 34%, transparent)}.replay-player{cursor:default}.replay-player .edit-replay-frame{cursor:pointer}.replay-player .code-preview{min-height:calc(var(--editor-lines,1) * var(--leading-code) * var(--code-size,var(--text-md)) + 2 * var(--space-3) + 8px)}.code-preview mark.sel{background:color-mix(in srgb, var(--violet) 34%, transparent)}.replay-player .player-bar{min-height:2rem}.replay-player .player-hint{top:calc(100% + var(--space-1));opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out);flex-wrap:nowrap;position:absolute;left:50%;translate:-50%}.replay-player:focus-within .player-hint{opacity:1}.editor-mount{position:relative}.player-panel{inset-inline:var(--space-3);bottom:var(--space-3);z-index:5;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--editor-rule);border-radius:var(--radius-md);background:var(--stage-2);box-shadow:var(--shadow-overlay);display:grid;position:absolute}.player-panel .player-keys{gap:var(--space-1) .3rem;flex-wrap:wrap;display:flex}.player-panel .player-bar{justify-content:space-between}.player-panel .player-keys{max-height:calc(2 * (1.75rem + 4px) + var(--space-1));overflow-y:auto}.crumb{gap:var(--space-2);font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-3);flex-wrap:wrap;display:flex}.crumb a{color:var(--ink-2);text-decoration:none}.crumb a:hover{color:var(--brass-ink);text-decoration:underline}.field{align-items:center;gap:var(--space-1) var(--space-2);font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-2);flex-wrap:wrap;display:inline-flex}.field>span{white-space:nowrap}.field select{min-height:2.25rem;padding:0 2rem 0 var(--space-3);border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--sheet) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23889488' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 6.5 8 10l3.5-3.5'/%3E%3C/svg%3E") no-repeat right .6rem center / 1rem;color:var(--ink);appearance:none;cursor:pointer}.field select:hover{border-color:var(--ink-3)}.task{min-height:3.2em;font:var(--text-md) / var(--leading-normal) var(--font-text);color:var(--ink);max-width:var(--measure)}.buffers{gap:var(--space-3);display:grid}.practice-foot{align-items:center;gap:var(--space-3) var(--space-4);grid-template-columns:minmax(0,1fr) auto;min-height:2.5rem;display:grid}.actions{justify-content:space-between;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.actions-main,.actions-nav{gap:var(--space-2);flex-wrap:wrap;display:flex}.help-bar{justify-items:start;gap:var(--space-3);display:grid}.help-bar>.help{justify-self:stretch}.help{gap:var(--space-2);max-width:var(--measure);padding:var(--space-3) var(--space-4);border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--sheet);display:grid}.help-rung{gap:var(--space-1);font:var(--text-sm) / var(--leading-normal) var(--font-text);color:var(--ink);display:grid}.help-rung+.help-rung{padding-top:var(--space-2);border-top:1px solid var(--rule)}.help-label{font:600 var(--text-cap) / 1.4 var(--font-text);color:var(--ink-3)}.help-route{align-items:baseline;gap:var(--space-1);flex-wrap:wrap;display:flex}.help-cost{margin-left:var(--space-2);font-size:var(--text-cap);color:var(--ink-2);font-variant-numeric:tabular-nums}.help-note{color:var(--ink-2)}.shortcuts{font:var(--text-cap) / 1.5 var(--font-text);color:var(--ink-2)}.shortcuts summary{cursor:pointer;width:fit-content;color:var(--ink-2)}.shortcuts summary:hover{color:var(--ink)}.shortcuts dl{gap:var(--space-1) var(--space-4);margin:var(--space-3) 0 var(--space-2);grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));display:grid}.shortcuts dl>div{gap:var(--space-2);grid-template-columns:6.5rem minmax(0,1fr);align-items:baseline;display:grid}.shortcuts dd{margin:0}.result{min-height:1.5em;font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-2)}.result[data-tone=error]{color:var(--red)}@media (width<=40rem){.practice-foot{grid-template-columns:minmax(0,1fr) auto}.practice-foot .result{grid-column:1/-1}}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:var(--rule-strong) transparent;accent-color:var(--brass);caret-color:var(--brass)}body{background:var(--paper);min-height:100dvh;color:var(--ink);font:var(--text-body) / var(--leading-normal) var(--font-text);font-feature-settings:"kern", "liga";-webkit-font-smoothing:antialiased;margin:0}::selection{background:color-mix(in srgb, var(--brass) 28%, transparent);color:var(--ink)}h1,h2,h3,h4{font-family:var(--font-display);text-wrap:balance;margin:0}h1{font-size:var(--text-h1);font-weight:var(--weight-display);line-height:var(--leading-tight);letter-spacing:var(--tracking-display)}h2{font-size:var(--text-h2);font-weight:var(--weight-head);letter-spacing:var(--tracking-head);line-height:1.12}h3,.prose-subhead{font:var(--weight-h3) var(--text-h3) / var(--leading-snug) var(--font-display);letter-spacing:-.012em}p{text-wrap:pretty;margin:0}a{color:inherit;text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);text-underline-offset:.22em;transition:color var(--dur-fast) var(--ease-out), text-decoration-color var(--dur-fast) var(--ease-out);text-decoration-thickness:1px}a:hover{color:var(--brass-ink);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:var(--radius-sm)}button,input,select,textarea{font:inherit;color:inherit}button{touch-action:manipulation}code,pre{font-family:var(--font-mono);font-variant-ligatures:none}code{font-size:.88em}:not(pre)>code:not([class]){border-radius:var(--radius-sm);background:color-mix(in srgb, var(--ink) 7%, transparent);padding:.08em .32em}table,.tnum{font-variant-numeric:tabular-nums}strong,b{font-weight:650}kbd,.cap{--cap-h:1.9em;min-width:var(--cap-h);height:var(--cap-h);padding:0 calc(var(--cap-h) * .28);border-radius:var(--radius-cap);background:linear-gradient(var(--key-top), var(--key) 70%);box-shadow:inset 0 1px 0 #ffffff1f, inset 0 -2px 0 #00000059, 0 2px 0 var(--key-edge);color:var(--key-ink);font:600 .8em / 1 var(--font-mono);font-variant-ligatures:none;text-align:center;white-space:nowrap;vertical-align:.05em;transition:transform var(--dur-fast) var(--ease-press), box-shadow var(--dur-fast) var(--ease-press), background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), opacity var(--dur-base) var(--ease-out);border:0;place-items:center;margin-bottom:3px;display:inline-grid;position:relative}kbd{border-radius:6px}.cap{--cap-h:2.125rem;font-size:calc(var(--cap-h) * .44);box-shadow:var(--cap-shadow);margin-bottom:4px}.cap[data-kind=typed]{letter-spacing:.02em;font-weight:450}.cap[data-kind=named]{font-family:var(--font-text);font-size:calc(var(--cap-h) * .36);font-weight:650}kbd[data-state=down],.cap[data-state=down]{transform:translateY(var(--cap-travel));box-shadow:var(--cap-shadow-down);background:var(--key-down);color:var(--key-ink-down)}[data-playing] .cap:not([data-state]),[data-playing] kbd:not([data-state],.shortcut){opacity:.45}kbd.shortcut{border:1px solid var(--rule-strong);border-radius:var(--radius-sm);min-width:0;height:auto;box-shadow:none;color:var(--ink-3);font:500 .82em / 1.5 var(--font-text);vertical-align:baseline;background:0 0;margin:0;padding:0 .4em;display:inline-block;transform:none}.prose{font:var(--text-body) / var(--leading-reading) var(--font-text);max-width:var(--measure)}.prose>*+*{margin-top:var(--space-4)}.prose h3,.prose h4,.prose .prose-subhead{margin-top:var(--space-6);color:var(--ink)}.prose h3+*,.prose h4+*,.prose .prose-subhead+*{margin-top:var(--space-2)}.prose .lead{font:500 var(--text-lead) / var(--leading-snug) var(--font-display);letter-spacing:-.015em;color:var(--ink)}.prose em{color:var(--brass-ink);font-style:normal;font-weight:600}.prose strong{font-weight:650}.prose pre{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--editor-rule);border-radius:var(--radius-md);background:var(--editor);color:var(--code);font-size:var(--text-sm);line-height:var(--leading-code);color-scheme:dark;overflow-x:auto}.prose details{border-top:1px solid var(--rule);padding-top:var(--space-3)}.prose summary{cursor:pointer;font:600 var(--text-sm) / var(--leading-normal) var(--font-text);color:var(--ink-2)}.prose .eyebrow{font:var(--text-cap) / var(--leading-normal) var(--font-text);color:var(--ink-3);display:block}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}::view-transition-old(root){animation:var(--dur-fast) var(--ease-in-out) both vt-fade-out}::view-transition-new(root){animation:var(--dur-base) var(--ease-out) both vt-fade-in}}@keyframes vt-fade-out{to{opacity:0}}@keyframes vt-fade-in{0%{opacity:0;transform:translateY(4px)}}.account-dialog{width:min(34rem, calc(100vw - 2 * var(--space-4)))}.account-dialog .dialog-body,.account-panel .dialog-body{gap:var(--space-4);display:grid}.account-dialog .dialog-body>*+*,.account-panel .dialog-body>*+*{margin-top:0}.account-lead{font:var(--text-md) / var(--leading-normal) var(--font-text);color:var(--ink-2);max-width:var(--measure)}.account-dialog p,.account-panel p{max-width:var(--measure)}.account-panel{gap:var(--space-3);max-width:40rem;display:grid}.account-panel-title{font:650 var(--text-lead) / var(--leading-snug) var(--font-display)}.settings-form{gap:var(--space-3);display:grid}.settings-form[hidden]{display:none}.settings-field{gap:var(--space-1);display:grid}.settings-field label{font:500 var(--text-sm) / 1.4 var(--font-text);color:var(--ink)}.settings-field input{min-height:2.5rem;padding:0 var(--space-3);border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--sheet);color:var(--ink);font:var(--text-md) / 1.4 var(--font-text)}.settings-field input:hover{border-color:var(--ink-3)}.settings-field input::placeholder{color:var(--ink-3)}#accountCode{max-width:10rem;font:600 var(--text-body) / 1.4 var(--font-mono);letter-spacing:.2em;font-variant-numeric:tabular-nums}#accountCodeAddress{font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-2)}.account-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}#accountStatus,#changedTabStatus{min-height:1.5em;font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink)}#accountStatus:empty{min-height:0}#accountChallenge:empty{display:none}.account-privacy{font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-2)}.text-button{color:var(--brass-ink);font:inherit;text-underline-offset:.2em;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.account-dialog .muted,.account-panel .muted{font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-2)}.account-conflict{gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--fill);display:grid}.account-conflict p{font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink)}#accountConflicts:empty,#deviceRecovery:empty{display:none}#accountConflicts{gap:var(--space-2);display:grid}.account-signout{gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--rule);display:grid}.account-signout label{align-items:center;gap:var(--space-2);font:500 var(--text-sm) / 1.4 var(--font-text);color:var(--ink);display:flex}.account-signout input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--brass)}.account-signout p{font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-2)}.account-dialog .dialog-body>.button,.account-panel .dialog-body>.button{justify-self:start}.account-panel .dialog-body{color:var(--ink-2);padding:0}.account-status{flex:none;justify-content:flex-end;width:9.5rem;margin-left:auto;display:flex}.account-status-button{align-items:center;gap:var(--space-2);min-height:2.25rem;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--ink-2);font:500 var(--text-sm) / 1.4 var(--font-text);white-space:nowrap;cursor:pointer;transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);background:0 0;border:0;display:inline-flex}.account-status-button:hover{color:var(--ink);background:var(--fill)}.account-status[data-state=pending] .account-status-button{visibility:hidden}.account-status-dot{border-radius:var(--radius-full);background:var(--ink-3);width:.5rem;height:.5rem;display:none}.account-status:not([data-state=guest],[data-state=pending]) .account-status-dot{display:block}.account-status[data-state=synced] .account-status-dot{background:var(--green)}.account-status[data-state=syncing] .account-status-dot{background:var(--brass)}.account-status[data-state=offline] .account-status-dot{background:var(--ink-3)}.account-status[data-state=attention] .account-status-dot{background:var(--red)}.account-status[data-state=attention] .account-status-button{color:var(--ink)}@media (prefers-reduced-motion:no-preference){.account-status[data-state=syncing] .account-status-dot{animation:account-pulse 1.2s var(--ease-in-out) infinite alternate}}@keyframes account-pulse{to{opacity:.35}}.skip-link{top:-10rem;left:var(--space-3);z-index:100;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);background:var(--brass);color:var(--on-brass);font:600 var(--text-sm) / 1.5 var(--font-text);text-decoration:none;position:absolute}.skip-link:focus{top:var(--space-2)}.site-header{border-bottom:1px solid var(--rule);background:var(--paper);view-transition-name:site-header}.site-header-inner,.site-footer-inner,.site-main{max-width:72rem;padding-inline:var(--gutter);margin-inline:auto}.site-header-inner{align-items:center;gap:var(--space-5);min-height:4rem;display:flex}.brand{font:750 1.0625rem / 1 var(--font-display);letter-spacing:.06em;color:var(--ink);text-decoration:none}.brand-dot{color:var(--mode);transition:color var(--dur-base) var(--ease-out)}.brand:hover{color:var(--ink)}.site-nav ul,.site-footer ul{gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}.site-nav a{padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);color:var(--ink-2);font:500 var(--text-sm) / 1.4 var(--font-text);transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);text-decoration:none;display:block;position:relative}.site-nav a:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 6%, transparent)}.site-nav a[aria-current=page]{color:var(--ink);font-weight:650}.site-nav a[aria-current=page]:after{content:"";border-radius:var(--radius-full);background:var(--brass);width:.3rem;height:.3rem;margin-left:-.15rem;position:absolute;bottom:.1rem;left:50%}.site-main{padding-block:var(--space-6) var(--space-8)}.site-main:focus{outline:none}body.wide .site-header-inner,body.wide .site-footer-inner,body.wide .site-main{max-width:90rem}.site-footer{border-top:1px solid var(--rule);color:var(--ink-3);font:var(--text-sm) / 1.5 var(--font-text)}.site-footer-inner{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-5);min-height:5rem;padding-block:var(--space-5);flex-wrap:wrap;display:flex}.site-footer p{color:var(--ink-2);font-weight:500}.site-footer ul{flex-wrap:wrap}.site-footer a{padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);color:var(--ink-2);text-decoration:none;display:block}.site-footer a:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 6%, transparent)}@media (width<=40rem){.site-header-inner{gap:0 var(--space-3);padding-block:var(--space-2) 0;flex-wrap:wrap}.brand{padding-block:var(--space-3);order:0}.account-status{order:1}.site-nav{margin-inline:calc(-1 * var(--space-3));scrollbar-width:none;flex-basis:100%;order:2;overflow-x:auto}.site-nav ul{gap:0}.site-nav a{white-space:nowrap}.site-main{padding-block:var(--space-5) var(--space-7)}}@media (width<=24rem){.site-nav a{padding-inline:var(--space-2)}.site-nav{margin-inline:calc(-1 * var(--space-2))}}.account-page{gap:var(--space-4);max-width:40rem;padding-block:var(--space-6);display:grid}.account-page-lead{font:450 var(--text-h3) / 1.45 var(--font-text);color:var(--ink-2)}.account-page-panel{min-height:22rem;padding-top:var(--space-4);border-top:1px solid var(--rule)}.sheet-head{gap:var(--space-3);padding-bottom:var(--space-6);display:grid}.sheet-lead{max-width:var(--measure);font:450 var(--text-lead) / 1.35 var(--font-text);color:var(--ink-2)}.sheet{gap:var(--space-7);display:grid}.sheet-group{gap:var(--space-4);display:grid}.sheet-group h2{font-size:var(--text-h3);line-height:var(--leading-snug);letter-spacing:-.012em}.sheet-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));margin:0;padding:0;list-style:none;display:grid}.sheet-tile{align-content:start;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--sheet);grid-template-rows:auto 1fr auto;display:grid}.sheet-tile .keyseq{min-height:2.5rem}.sheet-does{font:var(--text-sm) / 1.45 var(--font-text);color:var(--ink)}.sheet-tile .key-lesson{font:var(--text-cap) / 1.4 var(--font-text);color:var(--ink-3);text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);justify-self:start}.sheet-tile .key-lesson:hover{color:var(--brass-ink)}.sheet-foot{display:none}@media (width<=40rem){.sheet-grid{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr))}.sheet-tile{min-height:0;padding:var(--space-3)}}@media print{@page{margin:12mm}.site-header,.site-footer,.skip-link,.sheet-lead{display:none}body{color:#000;background:#fff}.site-main{max-width:none;padding:0}.sheet-head{padding-bottom:4mm}.sheet-head h1{font-size:18pt}.sheet{columns:3;column-gap:8mm;font-size:8.5pt;display:block}.sheet-group{break-inside:avoid;margin-bottom:4mm;display:block}.sheet-group h2{border-bottom:.25mm solid #000;margin-bottom:1mm;padding-bottom:.5mm;font-size:10pt}.sheet-grid{display:block}.sheet-tile{break-inside:avoid;background:0 0;border:0;border-bottom:.2mm solid #ccc;border-radius:0;grid-template-rows:none;grid-template-columns:22mm minmax(0,1fr);gap:2mm;min-height:0;padding:.6mm 0;display:grid}.sheet-tile .keyseq{flex-wrap:nowrap;gap:.6mm;min-height:0}.sheet-does{color:#000;font-size:8pt}.sheet kbd{min-width:0;height:auto;box-shadow:none;color:#000;background:#fff;border:.25mm solid #999;border-radius:1mm;margin:0;padding:0 1mm;font-size:7.5pt;line-height:1.4}.key-lesson{display:none}.sheet-foot{color:#444;margin-top:4mm;font-size:7pt;display:block}}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:2.75rem;padding:var(--space-2) var(--space-5);border:1px solid var(--rule-strong);border-radius:var(--radius-full);background:var(--fill);color:var(--ink);font:600 var(--text-sm) / 1.25 var(--font-text);white-space:nowrap;cursor:pointer;user-select:none;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-press);text-decoration:none;display:inline-flex}.button:hover{border-color:var(--ink-3);color:var(--ink);background:color-mix(in srgb, var(--fill) 82%, var(--ink) 8%)}.button:active{transform:translateY(1px)}.button-primary{border-color:var(--brass);background:var(--brass);color:var(--on-brass)}.button-primary:hover{border-color:var(--brass);background:color-mix(in srgb, var(--brass) 86%, var(--ink));color:var(--on-brass)}.button-quiet{color:var(--ink-2);background:0 0;border-color:#0000;font-weight:500}.button-quiet:hover{background:color-mix(in srgb, var(--ink) 7%, transparent);border-color:#0000}.button-sm{min-height:2rem;padding:var(--space-1) var(--space-3);font-size:var(--text-cap)}.button-lg{min-height:3.25rem;padding:var(--space-2) var(--space-6);font-size:var(--text-body)}.button:disabled,.button[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}.button[aria-busy=true]{cursor:progress;position:relative}.button[aria-busy=true]:after{content:"";border-radius:var(--radius-full);background:linear-gradient(90deg, transparent, var(--ink-2), transparent) 0 0 / 50% 100% no-repeat;height:2px;animation:button-busy 1.1s var(--ease-in-out) infinite;position:absolute;inset:auto 20% .3rem}.button-primary[aria-busy=true]:after{background-image:linear-gradient(90deg, transparent, var(--on-brass), transparent)}@keyframes button-busy{0%{background-position:-100% 0}to{background-position:200% 0}}@media (prefers-reduced-motion:reduce){.button[aria-busy=true]:after{background-position:50% 0;animation:none}}.icon{vertical-align:-.125em;flex:none;width:1em;height:1em}.link{color:var(--ink);text-decoration-line:underline}.link:hover{color:var(--brass-ink)}.link-previous,.link-next{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;font:500 var(--text-sm) / 1.4 var(--font-text);color:var(--ink-2);text-decoration:none;display:inline-flex}.link-previous:hover,.link-next:hover{color:var(--brass-ink)}.link-previous .icon,.link-next .icon{transition:transform var(--dur-fast) var(--ease-out)}.link-previous:hover .icon{transform:translate(-2px)}.link-next:hover .icon{transform:translate(2px)}.shortcut-hint{font:var(--text-sm) / 1.4 var(--font-text);color:var(--ink-3);white-space:nowrap}.score{--score:4.5rem;width:var(--score);height:var(--score);flex:none;place-items:center;display:inline-grid;position:relative}.score-sm{--score:2.75rem}.score-lg{--score:6.5rem}.score-num{font:650 calc(var(--score) * .5) / 1 var(--font-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--ink)}.score-ring{width:100%;height:100%;position:absolute;inset:0;overflow:visible;transform:rotate(-90deg)}.score-ring circle{fill:none;stroke:var(--brass);stroke-width:2.5px;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:0}.score-sm .score-ring circle{stroke-width:3.5px}.score[data-diff=over]{box-shadow:inset 0 0 0 1.5px var(--ink-3);border-radius:3px}.score[data-diff=over] .score-ring,.score:not([data-diff=under]) .score-ring-2,.score[data-under="1"] .score-ring-2{display:none}.score[data-diff=par] .score-ring circle{stroke:var(--ink-3);stroke-width:1.5px}.score-sm[data-diff=over]{transform:scale(.86)}[data-playing] .score-ring circle{animation:score-draw var(--dur-reward) var(--ease-reward) both}[data-playing] .score-ring .score-ring-2{animation-delay:calc(var(--dur-reward) * .6)}[data-playing] .score-num{animation:score-in var(--dur-reveal) var(--ease-out) both}@keyframes score-draw{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}@keyframes score-in{0%{opacity:0;transform:translateY(8px)}}.edit-replay{gap:var(--space-4);cursor:pointer;justify-items:center;min-width:0;margin:0;display:grid}.edit-replay-screen{width:100%;min-width:0;display:grid}.edit-replay-screen>*{grid-area:1/1;min-width:0}.edit-replay-live{display:grid}.edit-replay-live+.edit-replay-frame{z-index:1;position:relative}.edit-replay[data-live] .edit-replay-frame,.edit-replay[data-live] .replay-toggle{visibility:hidden}.edit-replay-lg{--code-size:1.25rem}.replay-caption{font:var(--text-sm) / 1.4 var(--font-text);color:var(--ink-3);text-align:center}.edit-replay .code-preview{overflow-x:auto}.edit-replay{position:relative}.replay-toggle{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);color:var(--ink-3);font:500 var(--text-cap) / 1.5 var(--font-text);cursor:pointer;transition:color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);background:0 0;border:0;justify-self:center}.replay-toggle:hover{color:var(--ink);background:var(--fill)}.replay-toggle-room{min-height:calc(var(--text-cap) * 1.5 + 2 * var(--space-1));justify-items:center;display:grid}.skeleton-lines{flex-direction:column;gap:.55em;width:100%;display:flex}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--fill) 0%, color-mix(in srgb, var(--fill) 55%, var(--paper)) 50%, var(--fill) 100%) 0 0 / 200% 100%;height:.8em;animation:skeleton-show var(--dur-base) var(--ease-out) .3s both, skeleton-sweep 1.6s var(--ease-in-out) .3s infinite;display:block}.skeleton-full{width:100%}.skeleton-short{width:62%}.skeleton-word{vertical-align:middle;width:9ch;display:inline-block}.skeleton-block{border-radius:var(--radius-md);height:100%;min-height:4rem}@keyframes skeleton-show{0%{opacity:0}}@keyframes skeleton-sweep{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:0s .3s both skeleton-show}}.progress{appearance:none;border-radius:var(--radius-full);background:var(--fill);width:100%;height:.375rem;color:var(--green);border:0;display:block;overflow:hidden}.progress::-webkit-progress-bar{background:var(--fill);border-radius:var(--radius-full)}.progress::-webkit-progress-value{background:var(--green);border-radius:var(--radius-full)}.progress::-moz-progress-bar{background:var(--green);border-radius:var(--radius-full)}.keycount{align-items:baseline;gap:var(--space-2);font:var(--text-sm) / 1.4 var(--font-text);color:var(--ink-3);font-variant-numeric:tabular-nums;display:inline-flex}.keycount-value{text-align:right;min-width:2ch;font:700 var(--text-lead) / 1 var(--font-display);letter-spacing:-.02em;color:var(--ink)}.keycount-reference{margin-left:var(--space-2);padding-left:var(--space-2);border-left:1px solid var(--rule)}.scorecard{border:1px solid var(--ink);border-radius:var(--radius-md);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.scorecard-cell{justify-items:start;gap:var(--space-2);padding:var(--space-4);grid-template-rows:auto 3.25rem auto auto;min-width:0;display:grid}.scorecard-cell+.scorecard-cell{border-left:1px solid var(--rule)}.scorecard-n{font:600 var(--text-cap) / 1 var(--font-text);color:var(--ink-3);font-variant-numeric:tabular-nums}.scorecard-tech{font:600 var(--text-sm) / 1.3 var(--font-text);color:var(--ink)}.scorecard-meta{gap:var(--space-1);display:grid}.scorecard-par,.scorecard-diff{font:var(--text-sm) / 1.3 var(--font-text);color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}.scorecard-cell[data-diff=under] .scorecard-diff{color:var(--brass-ink);font-weight:650}@media (width<=48rem){.scorecard{grid-auto-flow:row}.scorecard-cell{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);grid-template-rows:none;grid-template-columns:1.25rem minmax(0,1fr) auto 4.5rem}.scorecard-cell+.scorecard-cell{border-left:0;border-top:1px solid var(--rule)}.scorecard-cell .score{--score:2.75rem}.scorecard-meta{justify-self:end;justify-items:end}}.reward{align-items:center;gap:var(--space-4) var(--space-5);grid-template-columns:auto minmax(0,1fr);display:grid}.reward-words{gap:var(--space-1);min-width:0;display:grid}.reward-title{font:700 var(--text-lead) / 1.2 var(--font-display);letter-spacing:-.02em;color:var(--ink)}.reward-par{font:var(--text-body) / 1.4 var(--font-text);color:var(--ink-2);font-variant-numeric:tabular-nums}.reward-routes{gap:var(--space-2);margin-top:var(--space-3);display:grid}.reward-route{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.reward-route-label{width:3rem;font:500 var(--text-cap) / 1 var(--font-text);color:var(--ink-3)}.reward-next{align-items:center;gap:var(--space-3);flex-wrap:wrap;grid-column:1/-1;display:flex}[data-playing] .reward-route .cap{animation:reward-cap var(--dur-reveal) var(--ease-out) both;animation-delay:calc(var(--dur-reward) * .5)}@keyframes reward-cap{0%{transform:translateY(-6px)}}@media (width<=30rem){.reward{grid-template-columns:minmax(0,1fr)}.reward .score-lg{--score:5rem}}.dots{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.dots li{border-radius:var(--radius-full);border:1.5px solid var(--ink-3);width:.75rem;height:.75rem;transition:background-color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out)}.dots li[data-state=current]{border-color:var(--brass);background:color-mix(in srgb, var(--brass) 30%, transparent);transform:scale(1.15)}.dots li[data-state=done]{border-color:var(--green);background:var(--green)}.card{gap:var(--space-2);padding:var(--space-5);border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--sheet);color:var(--ink);flex-direction:column;text-decoration:none;display:flex}.card-link{transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out)}.card-link:hover{border-color:var(--brass);color:var(--ink)}.card-link:hover .card-title{color:var(--brass-ink)}.card-meta{font:var(--text-cap) / 1.5 var(--font-mono);color:var(--ink-3);font-variant-numeric:tabular-nums}.card-title{font:650 var(--text-lead) / var(--leading-snug) var(--font-display);transition:color var(--dur-fast) var(--ease-out)}.card-body{color:var(--ink-2);font-size:var(--text-sm)}.card-body:empty{display:none}.dialog{width:min(32rem, calc(100vw - 2 * var(--space-4)));max-height:calc(100dvh - 2 * var(--space-6));border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--sheet);color:var(--ink);box-shadow:var(--shadow-overlay);opacity:1;transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), overlay var(--dur-base) allow-discrete, display var(--dur-base) allow-discrete;padding:0;transform:none}.dialog:not([open]){opacity:0;transform:translateY(8px)scale(.98)}@starting-style{.dialog[open]{opacity:0;transform:translateY(8px)scale(.98)}}.dialog::backdrop{background:var(--backdrop);transition:opacity var(--dur-base) var(--ease-out)}@starting-style{.dialog[open]::backdrop{opacity:0}}.dialog-head{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--rule);display:flex}.dialog-title{font:650 var(--text-lead) / var(--leading-snug) var(--font-display)}.dialog-close{border-radius:var(--radius-md);width:2.25rem;height:2.25rem;color:var(--ink-2);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:grid}.dialog-close:hover{background:var(--fill);color:var(--ink)}.dialog-body{padding:var(--space-5);color:var(--ink-2)}.dialog-body>*+*{margin-top:var(--space-3)}.dialog-actions{justify-content:flex-end;gap:var(--space-2);padding:0 var(--space-5) var(--space-5);flex-wrap:wrap;display:flex}.toast-region{z-index:50;inset:auto var(--space-4) var(--space-4) auto;align-items:flex-end;gap:var(--space-2);width:min(24rem, calc(100vw - 2 * var(--space-4)));pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--sheet);color:var(--ink);box-shadow:var(--shadow-overlay);font:var(--text-sm) / 1.45 var(--font-text);pointer-events:auto;transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);display:flex}@starting-style{.toast{opacity:0;transform:translateY(8px)}}.toast[data-leaving]{opacity:0;transform:translateY(4px)}.toast:before{content:"";border-radius:var(--radius-full);background:var(--ink-3);flex:none;width:.5rem;height:.5rem}.toast[data-tone=success]:before{background:var(--green)}.toast[data-tone=error]:before{background:var(--red)}.toast-message{flex:1}.toast-action{min-width:0;color:var(--brass-ink);text-wrap:balance;font-weight:600;text-decoration:none}.toast-action:hover{text-decoration:underline}.toast-dismiss{border-radius:var(--radius-md);width:2rem;height:2rem;color:var(--ink-3);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:grid}.toast-dismiss:hover{background:var(--fill);color:var(--ink)}.design-head{gap:var(--space-3);max-width:var(--measure);padding-bottom:var(--space-6);display:grid}.design-head p{color:var(--ink-2);font:450 var(--text-h3) / 1.45 var(--font-text)}.design-section{gap:var(--space-5);padding-bottom:var(--space-7);display:grid}.design-stage{justify-items:center;gap:var(--space-5);display:grid}.design-stage .edit-replay{width:min(100%,52rem)}.design-stage-task{font:600 var(--text-lead) / 1.3 var(--font-display);text-align:center}.design-stage-actions{justify-content:center;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.design-grid{gap:var(--space-4);display:grid}@media (width>=64rem){.design-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.design-stack,.ds-stack{gap:var(--space-3);justify-items:start;display:grid}.design-stack{justify-items:stretch}.design-play{margin-top:var(--space-4)}.themes{gap:var(--space-5);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=72rem){.themes{grid-template-columns:repeat(2,minmax(0,1fr))}}.theme{gap:var(--space-6);min-width:0;padding:var(--space-5);border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--paper);color:var(--ink);grid-template-columns:minmax(0,1fr);align-content:start;display:grid}.theme-title{font:650 var(--text-sm) / 1.5 var(--font-text);letter-spacing:.04em;color:var(--ink-2)}.specimen{gap:var(--space-3);grid-template-columns:minmax(0,1fr);display:grid}.specimen>h3{padding-bottom:var(--space-2);border-bottom:1px solid var(--rule)}.specimen>h4,.specimen>h4+*{min-width:0}.specimen>h4{margin-top:var(--space-4);font:650 var(--text-sm) / 1.5 var(--font-text);color:var(--ink-2)}:is(.ds-tokens,.swatches,.spaces,.radii,.motion) code:not([class]){font-size:var(--text-cap);color:var(--ink-3);background:0 0;padding:0}.ds-note{font-size:var(--text-sm);color:var(--ink-2)}.ds-sample-text{font:var(--text-body) / 1.6 var(--font-text);color:var(--ink)}.ds-row{align-items:center;gap:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}.ds-row-between{justify-content:space-between}.ds-cell{justify-items:center;gap:var(--space-2);font:var(--text-cap) / 1.3 var(--font-text);color:var(--ink-3);display:inline-grid}.swatches{gap:var(--space-2) var(--space-4);grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));margin:0;padding:0;list-style:none;display:grid}.swatch{column-gap:var(--space-3);grid-template-rows:auto auto;grid-template-columns:2rem minmax(0,1fr);align-items:center;display:grid}.swatch .ds-chip{grid-row:span 2}.ds-chip{width:2rem;height:2rem;margin-right:var(--space-2);vertical-align:middle;border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--chip);flex:none;display:inline-block}.swatch-name{font:500 var(--text-cap) / 1.4 var(--font-mono);color:var(--ink);overflow-wrap:anywhere}.ds-tokens{border-collapse:collapse;width:100%;font:var(--text-sm) / 1.4 var(--font-text)}.ds-tokens th,.ds-tokens td{padding:var(--space-2) var(--space-3) var(--space-2) 0;border-bottom:1px solid var(--rule);text-align:left;vertical-align:middle}.ds-tokens th{color:var(--ink-3);font-weight:500}.ds-ratio{margin-right:var(--space-3);font-variant-numeric:tabular-nums;color:var(--ink-2);display:inline-block}.ds-ratio[data-pass=false]{color:var(--red);font-weight:650}.spec-scroll{overflow-x:auto}.type-scale{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid}.type-scale li{gap:var(--space-1);min-width:0;display:grid}.type-sample{overflow-wrap:anywhere}.type-meta{font:var(--text-cap) / 1.4 var(--font-text);color:var(--ink-3)}.type-meta b{color:var(--ink-2)}.type-display{font:var(--weight-display) var(--text-display) / var(--leading-tight) var(--font-display);letter-spacing:var(--tracking-display)}.type-h1{font:var(--weight-display) var(--text-h1) / var(--leading-tight) var(--font-display);letter-spacing:var(--tracking-display)}.type-h2{font:var(--weight-head) var(--text-h2) / 1.12 var(--font-display);letter-spacing:var(--tracking-head)}.type-h3{font:var(--weight-h3) var(--text-h3) / var(--leading-snug) var(--font-display)}.type-lead{font:600 var(--text-lead) / var(--leading-snug) var(--font-display)}.type-body{font:var(--text-body) / var(--leading-normal) var(--font-text)}.type-sm{font:600 var(--text-sm) / 1.3 var(--font-text)}.type-cap{font:var(--text-cap) / 1.4 var(--font-text)}.type-code{font:var(--text-md) / var(--leading-code) var(--font-mono);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--editor);color:var(--code);justify-self:start}.spaces{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.spaces li{align-items:center;gap:var(--space-3);grid-template-columns:9rem minmax(0,1fr);display:grid}.space-bar{background:var(--brass);border-radius:2px;height:.75rem}[data-space=space-1]{width:var(--space-1)}[data-space=space-2]{width:var(--space-2)}[data-space=space-3]{width:var(--space-3)}[data-space=space-4]{width:var(--space-4)}[data-space=space-5]{width:var(--space-5)}[data-space=space-6]{width:var(--space-6)}[data-space=space-7]{width:var(--space-7)}[data-space=space-8]{width:var(--space-8)}[data-space=space-9]{width:var(--space-9)}.radii{gap:var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.radii li{justify-items:start;gap:var(--space-2);display:grid}.radius-sample{border:1px solid var(--rule);background:var(--fill);width:4rem;height:2.5rem}[data-radius=radius-sm]{border-radius:var(--radius-sm)}[data-radius=radius-cap]{border-radius:var(--radius-cap)}[data-radius=radius-md]{border-radius:var(--radius-md)}[data-radius=radius-lg]{border-radius:var(--radius-lg)}[data-radius=radius-stage]{border-radius:var(--radius-stage)}[data-radius=radius-full]{border-radius:var(--radius-full)}.motion{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.motion li{align-items:center;gap:var(--space-3);grid-template-columns:minmax(0,12rem) minmax(0,1fr);display:grid}.motion-track{border:1px solid var(--rule);border-radius:var(--radius-full);background:var(--sheet);cursor:pointer;height:1.5rem;padding:0;position:relative}.motion-track span{border-radius:var(--radius-full);background:var(--brass);width:1rem;height:1rem;transition:transform var(--dur-base) var(--ease-out);position:absolute;top:.2rem;left:.25rem}.motion-track:hover span,.motion-track:focus-visible span{transform:translate(calc(min(12rem,40vw) - 2rem))}[data-motion=dur-fast] span{transition-duration:var(--dur-fast)}[data-motion=dur-reveal] span{transition-duration:var(--dur-reveal)}[data-motion=dur-reward] span{transition-duration:var(--dur-reward)}[data-motion=dur-step] span{transition-duration:var(--dur-step)}[data-motion=ease-press] span{transition-timing-function:var(--ease-press)}[data-motion=ease-in-out] span{transition-timing-function:var(--ease-in-out)}[data-motion=ease-reward] span{transition-timing-function:var(--ease-reward);transition-duration:var(--dur-reward)}.reward-sample{padding:var(--space-5);border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--sheet)}.cards{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));display:grid}.toast-static{width:auto;max-width:24rem;box-shadow:none}.skeleton-sample{gap:var(--space-4);padding:var(--space-4);border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--sheet);grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:stretch;display:grid}.progress-samples div{align-items:center;gap:var(--space-3);font:var(--text-cap) / 1.4 var(--font-text);color:var(--ink-3);font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1fr) 4rem;display:grid}@media (width<=40rem){.theme{padding:var(--space-4);margin-inline:calc(-1 * var(--space-2))}.motion li,.spaces li{grid-template-columns:minmax(0,1fr)}}.typed-route{align-items:baseline;gap:var(--space-1);flex-wrap:wrap;display:inline-flex}.typed-route-text{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--fill) 55%, transparent);font:.875rem / 1.4 var(--font-mono);color:var(--ink);white-space:pre;padding:.0625rem .3125rem}.shorter-example{gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-5);border-top:1px dashed var(--rule);display:grid}.shorter-example h3{font:400 var(--text-body) / var(--leading-snug) var(--font-display);color:var(--ink)}.shorter-panes{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));display:grid}.shorter-pane{color-scheme:dark;border:1px solid var(--editor-rule);border-radius:var(--radius-lg);background:var(--editor);min-width:0;color:var(--code);margin:0;overflow:hidden}.shorter-pane-after{background:var(--stage);border:1px dashed #ffffff3d}.shorter-pane figcaption{justify-content:space-between;gap:var(--space-1) var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--editor-rule);font:500 var(--text-cap) / 1.5 var(--font-text);color:var(--code-dim);flex-wrap:wrap;display:flex}.shorter-pane-after figcaption{border-bottom:1px dashed #ffffff29}.shorter-pane .code-preview{padding-block:var(--space-3)}.shorter-pane .code-text{white-space:pre-wrap;overflow-wrap:anywhere}.shorter-verdict{font-weight:600}.shorter-verdict[data-tone=same]{color:var(--green)}.shorter-verdict[data-tone=different]{color:var(--red)}.shorter-table{border-collapse:collapse;width:100%;font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink)}.shorter-table th,.shorter-table td{padding:var(--space-2) var(--space-3) var(--space-2) 0;border-bottom:1px solid var(--rule);text-align:left;vertical-align:baseline}.shorter-table thead th{font:500 var(--text-cap) / 1.5 var(--font-text);color:var(--ink-3);padding-top:0}.shorter-table tbody th{color:var(--ink-2);white-space:nowrap;font-weight:500}.shorter-table .n{text-align:right;font:600 var(--text-md) / 1.4 var(--font-mono);font-variant-numeric:tabular-nums;padding-right:0}.shorter-table thead .n{font:500 var(--text-cap) / 1.5 var(--font-text)}.shorter-sum tr:first-child>*{border-top:1px solid var(--ink-3)}.shorter-found>*{background:color-mix(in srgb, var(--green) 7%, transparent)}.shorter-found th{padding-left:var(--space-2);color:var(--ink)}.shorter-saved{margin-left:var(--space-2);font:600 var(--text-cap) / 1.4 var(--font-text);color:var(--green);white-space:nowrap}.shorter-objects{gap:var(--space-2);max-width:var(--measure);flex-wrap:wrap;display:flex}.shorter-card{gap:var(--space-1);max-width:var(--measure);padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb, var(--green) 45%, var(--rule));border-radius:var(--radius-lg);background:color-mix(in srgb, var(--green) 8%, var(--sheet));display:grid}.shorter-card-label{font:500 var(--text-cap) / 1.5 var(--font-text);color:var(--ink-3)}.shorter-card-head{font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-2);font-variant-numeric:tabular-nums}.shorter-card-head b{color:var(--ink);font-weight:600}.shorter-card-tip{font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-2)}.shorter-card-tip b{color:var(--ink);font-weight:600}.shorter-card-tip code{font-size:.82em}.shorter-note{color:var(--ink-2)}.shorter-try-links{gap:var(--space-1) var(--space-6);flex-wrap:wrap;display:flex}.shorter-try-links .link-next{font-size:var(--text-md);color:var(--ink)}@media (width<=30rem){.shorter-table thead{display:none}.shorter-table tr{column-gap:var(--space-3);padding-block:var(--space-2);border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto;display:grid}.shorter-table th,.shorter-table td{border:0;padding:0}.shorter-table tbody th{font-size:var(--text-cap);grid-column:1/-1}.shorter-sum tr:first-child{border-top:1px solid var(--ink-3)}.shorter-sum tr:first-child>*{border-top:0}.shorter-found{padding-inline:var(--space-2);background:color-mix(in srgb, var(--green) 7%, transparent)}.shorter-found>*{background:0 0}.shorter-found th{padding-left:0}}.key-list{margin:0;display:grid}.key-row{gap:var(--space-1) var(--space-4);padding:var(--space-3) 0;border-top:1px solid var(--rule);grid-template-columns:minmax(7rem,max-content) minmax(0,1fr);align-items:center;display:grid}.key-row:first-child{border-top:0}.key-row dt{min-width:7rem}.key-row dd{font:var(--text-body) / var(--leading-normal) var(--font-text);color:var(--ink);margin:0}.key-lesson{font:var(--text-cap) / 1.5 var(--font-text);color:var(--ink-2);text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);margin-top:.125rem;display:block}.key-lesson:hover{color:var(--brass-ink)}@media (width<=40rem){.key-row{grid-template-columns:minmax(0,1fr)}}.guide{gap:var(--space-7);max-width:48rem;display:grid}.guide-head{gap:var(--space-4);display:grid}.guide-keys{margin-top:var(--space-2)}.guide .crumb{gap:var(--space-2);font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-3);flex-wrap:wrap;display:flex}.guide .crumb a{color:var(--ink-2);text-decoration:none}.guide .crumb a:hover{color:var(--brass-ink);text-decoration:underline}.guide-answer{gap:var(--space-3);max-width:var(--measure);display:grid}.guide-answer p{font:var(--text-body) / var(--leading-reading) var(--font-text);color:var(--ink)}.guide-answer p:first-child{font:600 var(--text-h3) / 1.45 var(--font-display);letter-spacing:-.01em}.guide-section,.guide-try,.guide-example{gap:var(--space-4);display:grid}.guide-stage .edit-replay{--code-size:1.0625rem}.guide-text,.guide-exceptions{max-width:var(--measure);font:var(--text-body) / var(--leading-reading) var(--font-text);color:var(--ink)}.guide-note{color:var(--ink-2)}.guide-exceptions{gap:var(--space-3);margin:0;padding-left:1.25rem;display:grid}.guide-exceptions li::marker{color:var(--brass-ink)}.guide-try-link .button{white-space:normal;text-align:left}.guide-more{gap:var(--space-5) var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--rule);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));display:grid}.guide-more section{gap:var(--space-3);align-content:start;display:grid}.guide-more h2{font-size:var(--text-h3)}.guide-more ul{gap:var(--space-2);font:var(--text-md) / var(--leading-normal) var(--font-text);margin:0;padding:0;list-style:none;display:grid}.guide-more a{color:var(--ink)}.guide-more a:hover,.guide a:hover{color:var(--brass-ink)}@media (width<=40rem){.guide-stage .edit-replay{--code-size:.875rem}.guide-stage .code-text{white-space:pre-wrap;overflow-wrap:anywhere}}.guides-head{gap:var(--space-3);padding-bottom:var(--space-6);display:grid}.guides-lead{max-width:var(--measure);font:450 var(--text-lead) / 1.35 var(--font-text);color:var(--ink-2)}.guides-list{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(20rem,100%),1fr));margin:0;padding:0;list-style:none;display:grid}.guides-list li{gap:var(--space-4);padding:var(--space-5);border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--sheet);transition:border-color var(--dur-fast) var(--ease-out);grid-template-rows:auto 1fr;display:grid;position:relative}.guides-list li:has(a:hover){border-color:var(--brass)}.guides-list a{gap:var(--space-2);color:var(--ink);align-content:start;text-decoration:none;display:grid}.guides-list a:after{content:"";border-radius:inherit;position:absolute;inset:0}.guides-title{font:650 var(--text-h3) / var(--leading-snug) var(--font-display);letter-spacing:-.012em}.guides-description{font:var(--text-sm) / var(--leading-normal) var(--font-text);color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.guides-list a:hover .guides-title{color:var(--brass-ink)}.guides-list a:focus-visible{outline:none}.guides-list li:has(a:focus-visible){outline:2px solid var(--brass);outline-offset:3px}.guides-about{gap:var(--space-3);padding-top:var(--space-7);display:grid}.guides-about h2{font:600 var(--text-sm) / 1.5 var(--font-text);color:var(--ink)}.guides-about-lead{max-width:var(--measure);font:var(--text-md) / var(--leading-normal) var(--font-text);color:var(--ink-2)}.CodeMirror{color:#000;direction:ltr;height:300px;font-family:monospace}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:#fff}.CodeMirror-gutters{white-space:nowrap;background-color:#f7f7f7;border-right:1px solid #ddd}.CodeMirror-linenumber{text-align:right;color:#999;white-space:nowrap;min-width:20px;padding:0 3px 0 5px}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{background:#7e7;width:auto;border:0!important}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:0 0}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:0 0}.cm-fat-cursor{caret-color:#0000}@-webkit-keyframes blink{0%{}50%{background-color:#0000}to{}}@-moz-keyframes blink{0%{}50%{background-color:#0000}to{}}@keyframes blink{0%{}50%{background-color:#0000}to{}}.cm-tab{text-decoration:inherit;display:inline-block}.CodeMirror-rulers{position:absolute;inset:-50px 0 0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;position:absolute;top:0;bottom:0}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error,.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{background:#fff;position:relative;overflow:hidden}.CodeMirror-scroll{z-index:0;outline:none;height:100%;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;position:relative;overflow:scroll!important}.CodeMirror-sizer{border-right:50px solid #0000;position:relative}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{z-index:6;outline:none;display:none;position:absolute}.CodeMirror-vscrollbar{top:0;right:0;overflow:hidden scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow:scroll hidden}.CodeMirror-scrollbar-filler{bottom:0;right:0}.CodeMirror-gutter-filler{bottom:0;left:0}.CodeMirror-gutters{z-index:3;min-height:100%;position:absolute;top:0;left:0}.CodeMirror-gutter{white-space:normal;vertical-align:top;height:100%;margin-bottom:-50px;display:inline-block}.CodeMirror-gutter-wrapper{z-index:4;position:absolute;background:0 0!important;border:none!important}.CodeMirror-gutter-background{z-index:4;position:absolute;top:0;bottom:0}.CodeMirror-gutter-elt{cursor:default;z-index:4;position:absolute}.CodeMirror-gutter-wrapper ::selection{background-color:#0000}.CodeMirror-gutter-wrapper ::selection{background-color:#0000}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{font-family:inherit;font-size:inherit;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual;background:0 0;border-width:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;margin:0;position:relative;overflow:visible}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{z-index:0;position:absolute;inset:0}.CodeMirror-linewidget{z-index:2;padding:.1px;position:relative}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{visibility:hidden;width:100%;height:0;position:absolute;overflow:hidden}.CodeMirror-cursor{pointer-events:none;position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;z-index:3;position:relative}div.CodeMirror-dragcursors,.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.cm-searching{background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:0 0}.CodeMirror-dialog{background:inherit;z-index:15;color:inherit;padding:.1em .8em;position:absolute;left:0;right:0;overflow:hidden}.CodeMirror-dialog-top{border-bottom:1px solid #eee;top:0}.CodeMirror-dialog-bottom{border-top:1px solid #eee;bottom:0}.CodeMirror-dialog input{width:20em;color:inherit;background:0 0;border:none;outline:none;font-family:monospace}.CodeMirror-dialog button{font-size:70%}vim-editor{display:block}.vim-editor{--editor-lines:6;position:relative}.vim-editor:focus-within{border-color:color-mix(in srgb, var(--mode) 55%, var(--editor-rule))}.vim-editor .replay-screen .CodeMirror{height:100%;min-height:0}.editor-mount{min-height:calc(var(--editor-lines) * var(--leading-code) * var(--code-size,var(--text-md)) + 2 * var(--space-3))}.editor-mount>.skeleton-lines{padding:var(--space-4);max-width:40ch}.vim-editor .CodeMirror{height:auto;min-height:calc(var(--editor-lines) * var(--leading-code) * var(--code-size,var(--text-md)) + 2 * var(--space-3));padding:var(--space-3) 0;background:var(--editor);color:var(--code);font:var(--code-size,var(--text-md)) / var(--leading-code) var(--font-mono);font-variant-ligatures:none}.vim-editor .CodeMirror-gutters{border-right:1px solid var(--editor-rule);background:var(--editor)}.vim-editor .CodeMirror-linenumber{padding:0 var(--space-2) 0 var(--space-3);color:var(--code-dim);font-size:var(--text-cap)}.vim-editor .CodeMirror-cursor{border-left:2px solid var(--mode)}.vim-editor .cm-fat-cursor .CodeMirror-cursor{background:color-mix(in srgb, var(--mode) 75%, transparent);border:0;width:auto}.vim-editor .cm-fat-cursor-mark{background:color-mix(in srgb, var(--mode) 40%, transparent)}.vim-editor .CodeMirror-selected{background:color-mix(in srgb, var(--violet) 26%, transparent)}.vim-editor .CodeMirror-focused .CodeMirror-selected,.vim-editor .CodeMirror-line::selection,.vim-editor .CodeMirror-line>span::selection{background:color-mix(in srgb, var(--violet) 34%, transparent)}.vim-editor .CodeMirror-matchingbracket{outline:1px solid var(--brass);color:var(--code)!important}.vim-editor .CodeMirror-dialog{border-color:var(--editor-rule);background:var(--stage-2);color:var(--code);font:var(--text-sm) / 1.5 var(--font-mono)}.vim-editor .CodeMirror-dialog input{color:var(--code);font:inherit;background:0 0;border:0}.finish-slot{display:grid}.finish-slot>*{grid-area:1/1;min-width:0}.finish-slot:has(>.finish[data-open=true])>:not(.finish){visibility:hidden}.finish{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb, var(--green) 45%, var(--rule));border-radius:var(--radius-lg);background:color-mix(in srgb, var(--green) 8%, var(--sheet));visibility:hidden;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.finish[data-open=true]{visibility:visible;animation:finish-in var(--dur-base) var(--ease-out) both}.finish-check{width:1.5rem;height:1.5rem;color:var(--green)}.finish-check circle{fill:color-mix(in srgb, var(--green) 16%, transparent)}.finish-check path{stroke:currentColor;stroke-width:2.25px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1}.finish[data-open=true] .finish-check path{animation:finish-draw var(--dur-base) var(--ease-out) var(--dur-fast) both}.finish-copy{gap:.125rem;min-width:0;display:grid}.finish-title,.finish-head{font:600 var(--text-sm) / 1.4 var(--font-text);color:var(--ink);font-variant-numeric:tabular-nums}.finish-route{align-items:center;gap:var(--space-1);font:var(--text-cap) / 1.6 var(--font-text);color:var(--ink-2);flex-wrap:wrap;display:flex}.finish-actions,.finish-next{justify-content:flex-end;align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.finish-hint{font-size:var(--text-cap)}.finish-stack{grid-template-columns:auto minmax(0,1fr);align-content:center}.finish-stack .finish-actions{grid-column:1/-1;justify-content:flex-start}.finish-card{align-content:start;align-items:start;row-gap:var(--space-3);grid-template-columns:auto minmax(0,1fr);container-type:inline-size}.finish-card .finish-check{margin-top:.0625rem}.finish-card .finish-copy{gap:var(--space-1)}.finish-card .finish-head{height:1.4em}.finish-card .finish-actions{flex-wrap:nowrap;height:2rem}.finish-par{color:var(--ink-2);font-weight:400}.finish-tip{--tip-lines:3;height:calc(var(--tip-lines) * 1.5em);max-width:var(--measure);font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-2);-webkit-line-clamp:var(--tip-lines);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.finish-tip b{color:var(--ink);font-weight:600}.finish-tip code{font-size:.82em;line-height:1}.finish-card .finish-actions{grid-column:1/-1;justify-content:space-between}.finish-card .finish-next{margin-left:auto}.finish-watch[aria-pressed=true]{border-color:color-mix(in srgb, var(--brass) 55%, var(--rule))}@media (width<=40rem){.finish{grid-template-columns:auto minmax(0,1fr)}.finish-actions{grid-column:1/-1;justify-content:flex-start}.finish-card .finish-actions{height:calc(4rem + var(--space-2));justify-content:flex-start;align-items:flex-start;gap:var(--space-2);flex-direction:column}.finish-card .finish-next{margin-left:0}.finish-card .finish-hint{display:none}}@container (width<=36rem){.finish-tip{--tip-lines:4}}@container (width<=26rem){.finish-tip{--tip-lines:5}}@container (width<=21rem){.finish-tip{--tip-lines:7}}@container (width<=17rem){.finish-tip{--tip-lines:8}}@media (hover:none) and (pointer:coarse){.finish-hint{display:none}}.finish-reward{column-gap:var(--space-4);row-gap:var(--space-2);grid-template-columns:auto minmax(0,1fr)}.finish-mark{place-items:center;width:4.5rem;height:4.5rem;display:grid}.finish-mark>*{grid-area:1/1}.finish-reward .finish-check{width:2.5rem;height:2.5rem}.finish-reward[data-score=over] .finish-score,.finish-reward:not([data-score=over]) .finish-check{visibility:hidden}.finish-reward .finish-head{height:auto;min-height:1.4em;font:700 var(--text-body) / 1.4 var(--font-display)}.finish-reward .finish-par{font:400 var(--text-sm) / 1.4 var(--font-text)}.finish-best{margin-left:var(--space-2);border-radius:var(--radius-full);background:color-mix(in srgb, var(--brass) 18%, transparent);color:var(--brass-ink);font:650 var(--text-cap) / 1.5 var(--font-text);white-space:nowrap;padding:.1rem .55rem}.finish-routes{gap:var(--space-1);margin-top:var(--space-1);display:grid}.finish-route-row{--route-line:1.75rem;align-items:flex-start;gap:var(--space-3);min-height:2.125rem;padding-block:calc((2.125rem - var(--route-line)) / 2);min-width:0;display:flex}.finish-route-label{width:2.5rem;font:500 var(--text-cap) / var(--route-line) var(--font-text);color:var(--ink-3);flex:none}.finish-route-row .keyseq{row-gap:var(--space-1);flex-wrap:wrap;flex:1;min-width:0}.finish-route-row .keyseq>*{flex:none;max-width:100%}.finish-route-row .cap[data-kind=typed]{height:auto;min-height:var(--cap-h);white-space:normal;overflow-wrap:anywhere;text-align:left}.finish-reward{align-self:start}.finish-reward:not([data-open=true]){display:none}.finish-reward .finish-tip{-webkit-line-clamp:none;height:auto;display:block;overflow:visible}.finish-reward .finish-tip:is(:empty,[data-same]){display:none}.finish.finish-reward[data-playing] :is(kbd,.cap){opacity:1}.finish-player{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);flex:auto;min-width:0;display:none}.finish-reward[data-watching] .finish-player{display:flex}.finish-reward[data-watching] .finish-next{display:none}.finish-card.finish-reward[data-watching] .finish-actions{row-gap:var(--space-2);flex-wrap:wrap;height:auto;min-height:2rem}.finish.finish-reward[data-watching] .finish-route-row [data-playing] .cap:not([data-state]){opacity:.45}.finish-reward .finish-tip{grid-column:1/-1;max-width:none}@media (width<=40rem){.finish-reward .finish-actions{flex-direction:row;justify-content:space-between;align-items:center;height:2rem}}@container (width<=17rem){.finish-reward .finish-actions{height:calc(4rem + var(--space-2));flex-direction:column;justify-content:flex-start;align-items:flex-start}}@container (width<=26rem){.finish-reward .finish-mark{width:2.75rem;height:2.75rem;margin-right:calc(var(--space-2) - var(--space-4))}.finish-reward .finish-score{--score:2.75rem}.finish-reward .finish-check{width:1.75rem;height:1.75rem}}@media (prefers-reduced-motion:no-preference){.finish-reward{--dur-reward:.36s;--dur-reveal:.28s}.finish-reward[data-playing] .score-ring .score-ring-2{animation-delay:40ms}}.finish-reward[data-open=true] .finish-route-row .cap{animation:reward-cap var(--dur-reveal) var(--ease-out) both;animation-delay:calc(var(--dur-reward) * .3)}.finish-reward[data-open=true]{animation-name:reward-in}.finish-reward[data-playing] .score-num{animation-name:reward-num}@keyframes reward-in{0%{transform:translateY(4px)}}@keyframes reward-num{0%{transform:translateY(6px)scale(.85)}}@keyframes finish-in{0%{opacity:0;transform:translateY(4px)}}@keyframes finish-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.action{gap:var(--space-2)}.action .action-key{font-size:.92em}.action:not(:disabled):hover .action-key{color:var(--ink-2)}.lesson-head{justify-items:center;gap:var(--space-3);padding-bottom:var(--space-6);text-align:center;display:grid}.lesson-head .crumb{justify-content:center}.lesson-progress{justify-content:center;align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.lesson-progress .progress{width:8rem}.status{font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-2);font-variant-numeric:tabular-nums;min-height:1.5em}.lesson[data-complete=true] .status{color:var(--green)}.lesson-body{gap:var(--space-7);display:grid}.lesson-teach{gap:var(--space-5) var(--space-7);align-items:start;display:grid}@media (width>=64rem) and (width<=71.999rem){.lesson-teach{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}}@media (width>=72rem){.lesson-body{align-items:start;gap:var(--space-6);grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}.lesson-show{padding:clamp(1.25rem,3vw,2.5rem) clamp(1rem,2.5vw,2rem)}.lesson-show .edit-replay{--code-size:1.125rem}.lesson-read{gap:var(--space-4);min-width:0;max-width:var(--measure);align-content:start;display:grid}.lesson-lead{font:650 var(--text-h3) / 1.4 var(--font-display);letter-spacing:-.01em;text-wrap:pretty}.lesson-lead kbd{font-size:.68em}.lesson-note{font:var(--text-body) / var(--leading-reading) var(--font-text);color:var(--ink-2)}.lesson-read .key-list{margin-top:var(--space-2)}.lesson-read .key-row dd{font-size:var(--text-md);color:var(--ink-2)}.lesson-read .key-row{padding:var(--space-2) 0;grid-template-columns:minmax(5.5rem,max-content) minmax(0,1fr)}.lesson-read .key-row dt{min-width:5.5rem}.lesson-prereq{font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-3)}.lesson-prereq strong{color:var(--ink-2);font-weight:600}.lesson-before,.lesson-more{border-top:1px solid var(--rule)}.lesson-before>summary,.lesson-more>summary{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-6) var(--space-3) 0;font:600 var(--text-sm) / 1.4 var(--font-text);color:var(--ink-2);cursor:pointer;flex-wrap:wrap;list-style:none;display:flex;position:relative}.lesson-before>summary::-webkit-details-marker,.lesson-more>summary::-webkit-details-marker{display:none}.lesson-before>summary:after,.lesson-more>summary:after{content:"";top:calc(var(--space-3) + .45em);border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);width:.5rem;height:.5rem;transition:transform var(--dur-base) var(--ease-out);position:absolute;right:.25rem;transform:translateY(-25%)rotate(45deg)}.lesson-before[open]>summary:after,.lesson-more[open]>summary:after{transform:translateY(25%)rotate(-135deg)}.lesson-before>summary:hover,.lesson-more>summary:hover{color:var(--ink)}.lesson-before-body,.lesson-more-body{padding-bottom:var(--space-4)}.lesson-before-body{font:var(--text-md) / var(--leading-reading) var(--font-text);color:var(--ink-2)}.lesson-more-body{font-size:var(--text-md);color:var(--ink-2)}.lesson-more-body .lead{font:inherit;color:inherit}.lesson-more-body pre{white-space:pre-wrap;overflow-wrap:anywhere}.lesson-guides{gap:var(--space-2);padding:0 0 var(--space-4);font:var(--text-md) / 1.5 var(--font-text);margin:0;list-style:none;display:grid}.lesson-guides a{color:var(--ink-2)}.lesson-guides a:hover{color:var(--brass-ink)}.lesson .practice{gap:var(--space-4);scroll-margin-top:var(--space-4);padding:clamp(1.25rem,3vw,2.5rem);display:grid}.practice-top{align-items:center;gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;min-height:3rem;display:grid}.practice-where{align-items:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;min-width:0;display:flex}.practice-title{font:600 var(--text-sm) / 1.4 var(--font-text);letter-spacing:0;color:var(--ink-2);font-variant-numeric:tabular-nums}.exercises{flex-wrap:wrap;gap:.125rem;margin:0;padding:0;list-style:none;display:flex}.exercise{border-radius:var(--radius-full);cursor:pointer;background:0 0;border:0;place-items:center;width:1.5rem;height:1.5rem;padding:0;display:grid;position:relative}.exercise:before{content:"";border-radius:var(--radius-full);border:1.5px solid var(--ink-3);width:.75rem;height:.75rem;transition:background-color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out)}.exercise:hover:before{border-color:var(--ink)}.exercise[data-done=true]:before{border-color:var(--green);background:var(--green)}.exercise[aria-current=true]:before{border-color:var(--brass);background:color-mix(in srgb, var(--brass) 35%, transparent);transform:scale(1.2)}.exercise[aria-current=true][data-done=true]:before{background:var(--green)}.practice-score{align-items:baseline;gap:var(--space-3);display:flex}.practice-score .keycount-value{font-size:var(--text-h2);letter-spacing:-.03em;line-height:.9}.practice-score .keycount{font-size:var(--text-sm);color:var(--ink-2)}.practice-par{font:var(--text-sm) / 1 var(--font-text);color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}.practice-task{display:grid}.practice-task>*{grid-area:1/1;min-width:0}.practice-path{align-items:center;gap:var(--space-2) var(--space-4);visibility:hidden;opacity:0;flex-wrap:wrap;display:flex}.practice-path-label{font:600 var(--text-lead) / 1.3 var(--font-display);letter-spacing:-.015em;color:var(--green);white-space:nowrap}.path-stops{gap:var(--space-3);margin:0;padding:0;list-style:none;display:flex;position:relative}.path-stops:before{content:"";background:var(--rule-strong);height:2px;position:absolute;top:50%;left:.6rem;right:.6rem}.path-stops li{border:2px solid var(--ink-3);border-radius:var(--radius-full);background:var(--stage);width:1.25rem;height:1.25rem;color:var(--stage);place-items:center;display:grid;position:relative}.path-stops li .icon{stroke-width:2.5px;opacity:0;width:.75rem;height:.75rem}.path-stops li[data-state=done]{border-color:var(--green);background:var(--green)}.path-stops li[data-state=done] .icon{opacity:1}.path-stops li[data-current]{border-color:var(--brass)}.lesson[data-moment] .practice-task>.task{visibility:hidden;opacity:0}.lesson[data-moment] .practice-path{visibility:visible;opacity:1;transition:opacity var(--dur-reveal) var(--ease-out)}.lesson[data-moment] .path-stops li[data-current]{animation:path-check var(--dur-reward) var(--ease-reward) both}@keyframes path-check{0%{background:var(--stage);border-color:var(--brass);transform:scale(.6)}60%{transform:scale(1.25)}to{transform:none}}.lesson .task{max-width:none;min-height:1.3em;font:600 var(--text-lead) / 1.3 var(--font-display);letter-spacing:-.015em}.lesson .task code{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--ink) 10%, transparent);padding:.05em .3em;font-size:.85em}.lesson .buffers{gap:var(--space-4);align-items:stretch}@media (width>=64rem) and (width<=71.999rem){.lesson .buffers{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lesson .buffers>.vim-editor,.lesson .buffers>.practice-tools{grid-column:1}.lesson .buffers>.finish-slot{grid-area:1/2/span 2}}.lesson .buffers>.vim-editor{height:100%}.lesson .finish-under{gap:var(--space-2);grid-template-rows:auto auto;align-content:start;align-self:start;display:grid}@media (width>=64rem) and (width<=71.999rem){.lesson .finish-under{grid-template-rows:minmax(0,1fr) auto;align-self:stretch}}.lesson .finish-slot:has(>.finish[data-open=true])>.finish-under{visibility:visible}.lesson .finish-slot:has(>.finish[data-open=true])>.finish-under>.target{visibility:hidden}.target-label{margin:0}.target pre{padding:var(--space-3) var(--space-4);font:var(--text-md) / var(--leading-code) var(--font-mono);white-space:pre;color:var(--code);margin:0;overflow-x:auto}.practice-tools{justify-content:center;align-items:flex-start;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.practice-tools .help-bar{justify-items:center}.practice-tools .help-bar>.help{order:2;width:min(36rem,100%)}.lesson .practice-tools .action{color:var(--ink-2);background:0 0;border-color:#0000}.lesson :is(.practice-tools,.practice-footer) .action{position:relative}.lesson :is(.practice-tools,.practice-footer) .action-key{z-index:1;border-radius:var(--radius-sm);background:var(--stage-2,var(--fill));white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out);padding:.125rem .375rem;position:absolute;top:calc(100% + .125rem);left:50%;translate:-50%}.lesson :is(.practice-tools,.practice-footer) .action:is(:hover,:focus-visible) .action-key{opacity:1}.lesson .practice-tools .action:hover:not(:disabled){background:var(--fill);color:var(--ink)}.lesson .practice-foot{text-align:center;min-height:1.5em;display:block}.lesson[data-solved=true] .result{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.lesson-exercise{gap:var(--space-3);min-width:0;display:grid}.practice-footer{justify-content:space-between;align-items:flex-start;gap:var(--space-3) var(--space-5);padding:0 var(--space-2);flex-wrap:wrap;display:flex}.practice-footer .actions-nav{gap:var(--space-1);order:0}.practice-footer .action{color:var(--ink-2);background:0 0;border-color:#0000}.practice-footer .action:hover:not(:disabled){background:var(--fill);color:var(--ink)}.practice-footer .field{font-size:var(--text-cap);color:var(--ink-3)}.practice-footer .field select{background-color:var(--fill);min-height:2rem;font-size:var(--text-cap);border-color:#0000}.practice-footer .shortcuts{flex-basis:100%;order:3}@media (width>=64rem){.practice-footer .shortcuts{flex-basis:auto;order:0}.practice-footer .shortcuts[open]{flex-basis:100%;order:3}}.pager{justify-content:space-between;gap:var(--space-5);margin-top:var(--space-7);padding-top:var(--space-4);border-top:1px solid var(--rule);display:flex}.pager .link-next{text-align:right;margin-left:auto}@media (width<=40rem){.lesson .practice{margin-inline:calc(-1 * var(--space-2))}.lesson .task{font-size:var(--text-h3)}}.course-head{gap:var(--space-3);padding-bottom:var(--space-6);display:grid}.course-lead{font:450 var(--text-lead) / 1.35 var(--font-text);color:var(--ink-2)}.course-next{gap:var(--space-5);margin-bottom:var(--space-7);padding:clamp(1.5rem,4vw,3.5rem);display:grid}.course-next-title{--lines:2;max-width:22ch;height:calc(var(--lines) * 1.08em);font-size:var(--text-h1);-webkit-line-clamp:var(--lines);-webkit-box-orient:vertical;line-height:1.08;display:-webkit-box;overflow:hidden}.course-continue{align-items:center;gap:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}.course-continue .button{min-width:18rem}.course-note{min-height:3em;font:var(--text-body) / 1.5 var(--font-text);color:var(--ink-2);flex:18rem;align-items:center;display:flex}.course-map{margin:0;padding:0;list-style:none;display:grid;position:relative}.course-map:before{content:"";background:var(--rule-strong);width:2px;position:absolute;top:1.5rem;bottom:1.5rem;left:1.375rem}.module>section{gap:var(--space-4) var(--space-6);padding-block:var(--space-5) var(--space-6);grid-template-columns:minmax(0,22rem) minmax(0,1fr);display:grid}.module+.module>section{border-top:1px solid var(--rule)}.module-head{align-content:start;gap:var(--space-2) var(--space-4);grid-template-columns:2.75rem minmax(0,1fr);display:grid;position:relative}.module-number{border:2px solid var(--rule-strong);border-radius:var(--radius-full);background:var(--paper);width:2.75rem;height:2.75rem;font:700 var(--text-sm) / 1 var(--font-display);font-variant-numeric:tabular-nums;color:var(--ink);grid-row:span 3;place-items:center;display:grid}.module h2{font-size:var(--text-h3);line-height:var(--leading-snug);letter-spacing:-.012em;align-self:center}.module-progress{min-height:1.4em;font:var(--text-sm) / 1.4 var(--font-text);color:var(--ink-3);font-variant-numeric:tabular-nums}.module-dots{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.module-dots li{border-radius:var(--radius-full);border:1.5px solid var(--ink-3);width:.625rem;height:.625rem}.module-dots li[data-state=started]{border-color:var(--brass);background:color-mix(in srgb, var(--brass) 35%, transparent)}.module-dots li[data-state=done]{border-color:var(--green);background:var(--green)}.module[data-state=done] .module-number{border-color:var(--green);background:var(--green);color:var(--paper)}.module[data-state=started] .module-number{border-color:var(--brass)}.module-lessons{gap:0 var(--space-5);counter-reset:lesson;grid-template-columns:repeat(auto-fill,minmax(min(16rem,100%),1fr));margin:0;padding:0;list-style:none;display:grid}.module-lessons li{counter-increment:lesson;border-bottom:1px solid var(--rule)}.module-lessons a{align-items:center;gap:var(--space-3);min-height:3rem;padding:var(--space-2) 0;color:var(--ink);font:500 var(--text-md) / 1.4 var(--font-text);text-decoration:none;display:flex}.module-lessons a:before{content:counter(lesson);border-radius:var(--radius-full);background:var(--fill);width:1.75rem;height:1.75rem;color:var(--ink-2);font:600 var(--text-cap) / 1 var(--font-text);font-variant-numeric:tabular-nums;flex:none;place-items:center;display:grid}.module-lessons a:has([data-state=done]):before{content:"";background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='white' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.75 8.5 6.75 11.5l5.5-6.5'/%3E%3C/svg%3E") center / .875rem no-repeat}.module-lessons a:has([data-state=done]) .lesson-name{color:var(--ink-2)}.module-lessons a:has([data-state=started]):before{background:color-mix(in srgb, var(--brass) 22%, var(--fill));color:var(--ink)}.module-lessons a:hover .lesson-name{color:var(--brass-ink)}.lesson-name{flex:1;min-width:0}.lesson-mark{text-align:right;width:2.75rem;height:1.6em;font:600 var(--text-cap) / 1.6 var(--font-text);color:var(--ink-3);font-variant-numeric:tabular-nums;flex:none}.lesson-mark[data-state=done]{color:var(--green)}.module-boss{font:500 var(--text-sm) / 1.4 var(--font-text);color:var(--brass-ink);grid-column:2}.lesson-mark[data-state=started]{color:var(--brass-ink)}@media (width<=48rem){.module>section{grid-template-columns:minmax(0,1fr)}.module-lessons{padding-left:calc(2.75rem + var(--space-4))}}@media (width<=40rem){.course-next-title{--lines:3;font-size:var(--text-h2)}.course-continue .button{width:100%;min-width:0}.course-note{min-height:6em;font-size:var(--text-sm);align-items:flex-start}}.challenge-meta{font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-3)}.challenge-meta a{color:var(--ink-2)}.challenge-meta a:hover{color:var(--brass-ink)}.challenge-status{min-height:3em;font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-2)}.challenge-status a{color:var(--ink)}.challenge-mission{min-height:calc(4 * var(--leading-normal) * 1em);max-width:var(--measure);font:var(--text-md) / var(--leading-normal) var(--font-text);color:var(--ink);white-space:pre-line}.challenge-requirements h3{margin-bottom:var(--space-2);font:600 var(--text-cap) / 1.5 var(--font-text);color:var(--ink-3)}.challenge-requirements ul{gap:var(--space-1);font:var(--text-sm) / var(--leading-normal) var(--font-text);color:var(--ink-2);margin:0;padding:0;list-style:none;display:grid}.challenge-requirements li{grid-template-columns:1.25rem minmax(0,1fr);align-items:baseline;display:grid}.challenge-mark{border:1px solid var(--ink-3);border-radius:var(--radius-full);width:.6rem;height:.6rem;transform:translateY(-.05em)}.challenge-requirements li[data-met=true]{color:var(--ink)}.challenge-requirements li[data-met=true] .challenge-mark{border-color:var(--green);background:var(--green)}.challenge-requirements li[data-met=false] .challenge-mark{border-color:var(--red)}.challenge-done{gap:var(--space-3);padding:var(--space-4);border:1px solid color-mix(in srgb, var(--green) 45%, var(--rule));border-radius:var(--radius-lg);background:color-mix(in srgb, var(--green) 8%, var(--sheet));display:grid}.challenge-done[hidden]{display:none}.challenge[data-unavailable=true] .challenge-done{border-color:var(--rule);background:var(--sheet)}.challenge-done-title{font:650 var(--text-lead) / var(--leading-snug) var(--font-display);color:var(--ink)}.challenge-done p{font:var(--text-sm) / var(--leading-normal) var(--font-text);color:var(--ink-2)}.challenge-note{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid color-mix(in srgb, var(--green) 30%, var(--rule));display:grid}.challenge-note h3{font:600 var(--text-sm) / 1.5 var(--font-text);color:var(--ink)}.challenge-route-keys{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.challenge-route-keys span{margin-left:var(--space-2);color:var(--ink-3);font-size:var(--text-cap)}.challenge-done .challenge-caveat{font-size:var(--text-cap);color:var(--ink-3)}.challenge-done-actions{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.challenge-done-actions .button{white-space:normal;text-align:left}.challenge-route{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.challenge-line{padding:0 var(--space-1);border-radius:var(--radius-sm);background:var(--fill);color:var(--ink);font:500 var(--text-cap) / 1.6 var(--font-text);cursor:pointer;border:0}.challenge-line:hover{color:var(--brass-ink)}.challenge-panel .result{min-height:1.5em}.challenge-editor{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}.challenge-editor .vim-editor{--editor-lines:var(--challenge-lines,24)}.challenge-editor[data-lines="8"]{--challenge-lines:8}.challenge-editor[data-lines="12"]{--challenge-lines:12}.challenge-editor[data-lines="18"]{--challenge-lines:18}.challenge-editor[data-lines="24"]{--challenge-lines:24}.challenge-editor[data-lines="30"]{--challenge-lines:30}.challenge-editor[data-lines="40"]{--challenge-lines:40}.challenge-editor[data-lines="50"]{--challenge-lines:50}.challenge-target-label{margin:0}.challenge-target pre{height:calc(var(--challenge-lines,24) * 1.6em + 2 * var(--space-3));padding:var(--space-3) var(--space-4);font:.875rem / 1.6 var(--font-mono);font-variant-ligatures:none;color:var(--ink-2);white-space:pre;margin:0;overflow:auto}.challenges-start{margin-top:var(--space-1)}.challenges-group{gap:var(--space-3);display:grid}.challenges-group h2{font:600 var(--text-sm) / 1.5 var(--font-text);color:var(--ink)}.challenges .hub-choice{padding:var(--space-4) 0;grid-template-columns:minmax(0,1fr)}.challenges .hub-copy h3{font:650 var(--text-lead) / var(--leading-snug) var(--font-display)}.challenges .hub-copy h3 a{color:var(--ink);text-decoration:none}.challenges .hub-copy h3 a:hover{color:var(--brass-ink);text-decoration:underline}.challenges .hub-copy .challenges-meta{font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-3)}.challenges-done:not(:empty):before{content:" · "}.own-text-task{font:var(--text-md) / var(--leading-normal) var(--font-text);color:var(--ink)}.own-text-tools{gap:var(--space-2);flex-wrap:wrap;display:flex}.own-text-report{gap:var(--space-3);align-content:start;min-height:9rem;display:grid}.own-text-report h3{font:600 var(--text-sm) / 1.5 var(--font-text);color:var(--ink)}.own-text-report p{font:var(--text-sm) / var(--leading-normal) var(--font-text);color:var(--ink-2)}.own-text-miss{gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--rule);border-radius:var(--radius-lg);background:var(--sheet);display:grid}.own-text-miss-head{align-items:baseline;gap:var(--space-2) var(--space-3);font:600 var(--text-sm) / 1.5 var(--font-text);color:var(--ink);flex-wrap:wrap;display:flex}.own-text-miss-head span{color:var(--green);font-variant-numeric:tabular-nums;font-weight:500}.own-text-route{align-items:baseline;gap:var(--space-2);font:var(--text-cap) / 1.6 var(--font-text);color:var(--ink-3);grid-template-columns:9rem minmax(0,1fr);display:grid}.own-text-route>span:last-child{align-items:center;gap:var(--space-1);color:var(--ink-2);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.own-text-route kbd{font-size:.75rem}.own-text-editor .vim-editor{--editor-lines:24}.own-text .result{color:var(--ink-3);font-size:var(--text-cap);font-variant-numeric:tabular-nums}.own-text .shortcuts p{max-width:var(--measure)}.session-head{gap:var(--space-2);padding-bottom:var(--space-5);display:grid}.session-title{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-5);flex-wrap:wrap;display:flex}.session-lead{max-width:var(--measure);font:450 var(--text-h3) / 1.45 var(--font-text);color:var(--ink-2)}.session-body{gap:var(--space-5);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=64rem){.session-body{gap:var(--space-6);grid-template-columns:minmax(24rem,32rem) minmax(0,1fr)}.session-panel{top:var(--space-4);position:sticky}}.session-panel{gap:var(--space-4);padding:var(--space-5);border:1px solid var(--rule);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--sheet) 55%, var(--paper));display:grid;position:relative}.session-status{align-content:start;align-items:baseline;gap:var(--space-1) var(--space-4);min-height:6.5rem;font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-2);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.session[data-kind=sprint] .session-status{min-height:4.75rem}.session-status b{color:var(--ink);font-weight:600}.session-steps{gap:var(--space-1);display:inline-flex}.session-step{border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--sheet);min-width:1.75rem;height:1.75rem;color:var(--ink-3);font:600 var(--text-cap) / 1 var(--font-mono);place-items:center;display:inline-grid}.session-step[data-state=current]{border-color:var(--brass);color:var(--ink);background:color-mix(in srgb, var(--brass) 12%, var(--sheet))}.session-step[data-state=done]{border-color:color-mix(in srgb, var(--green) 45%, var(--rule));color:var(--green);background:color-mix(in srgb, var(--green) 10%, var(--sheet))}.session-mix{color:var(--ink-3);font-size:var(--text-cap);flex-basis:100%}.session-mix b{color:var(--ink-2)}.session-clock{font:600 var(--text-lead) / 1 var(--font-mono);color:var(--ink);font-variant-numeric:tabular-nums}.session-file{min-height:1.5em;font:var(--text-cap) / 1.5 var(--font-mono);color:var(--ink-3);overflow-wrap:anywhere}.session-panel .task{min-height:calc(3 * var(--leading-normal) * 1em)}.session-change{grid-template-rows:auto 1fr;height:14rem;display:grid}.session-change-label{margin:0}.session-change-rows{padding:var(--space-2) 0;font:.875rem / 1.6 var(--font-mono);font-variant-ligatures:none;overflow:auto}.session-row{padding-right:var(--space-3);grid-template-columns:2.5rem 1.25rem minmax(0,1fr);align-items:baseline;display:grid}.session-row-n{padding-right:var(--space-2);text-align:right;font-size:var(--text-cap);color:var(--ink-3);font-variant-numeric:tabular-nums}.session-row-mark{color:var(--ink-3);text-align:center}.session-row-code{white-space:pre;text-overflow:ellipsis;color:var(--ink-2);overflow:hidden}.session-row[data-kind=removed] .session-row-code{color:var(--ink-3)}.session-row[data-kind=added] .session-row-code{color:var(--ink)}.session-row del,.session-row ins{border-radius:var(--radius-sm);text-decoration:none}.session-row del{background:color-mix(in srgb, var(--red) 18%, transparent);color:var(--ink);text-decoration:line-through;text-decoration-color:color-mix(in srgb, var(--red) 60%, transparent)}.session-row ins{background:color-mix(in srgb, var(--green) 20%, transparent);color:var(--ink)}.session-row mark{color:var(--ink);box-shadow:inset 0 -2px 0 var(--brass);background:0 0}.session-change-note{padding:var(--space-2) var(--space-4) 0;font:var(--text-sm) / var(--leading-normal) var(--font-text);color:var(--ink-2)}.session-count{align-items:baseline;gap:var(--space-3);grid-column:2;display:inline-flex}.session-par{min-width:5.5rem;font:var(--text-cap) / 1.4 var(--font-text);color:var(--ink-3);font-variant-numeric:tabular-nums}.session-panel .finish-card .finish-tip{--tip-lines:4}.session-end{align-content:start;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--sheet);display:grid;position:absolute;inset:0;overflow:auto}.session-end[hidden]{display:none}.session-end:focus{outline:none}.session-end h2{font:650 var(--text-lead) / var(--leading-snug) var(--font-display);color:var(--ink)}.session-end h3{margin-top:var(--space-1);font:600 var(--text-sm) / 1.5 var(--font-text);color:var(--ink)}.session-end p,.session-end li{color:var(--ink-2)}.session-end p b,.session-end li b{color:var(--ink);font-weight:600}.session-end code{overflow-wrap:anywhere;font-size:.88em}.session-tighten{gap:var(--space-1);margin:calc(-1 * var(--space-2)) 0 0;font:var(--text-sm) / var(--leading-normal) var(--font-text);padding-left:1.1rem;display:grid}.session-tighten li::marker{color:var(--brass-ink)}.session-why{margin-top:calc(-1 * var(--space-2));font:var(--text-sm) / var(--leading-normal) var(--font-text)}.session-end-actions{gap:var(--space-2) var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.session-end-actions .button{white-space:normal;text-align:left}.session-table{border-collapse:collapse;width:100%;font:var(--text-sm) / 1.5 var(--font-text);font-variant-numeric:tabular-nums}.session-table th,.session-table td{padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--rule);text-align:left}.session-table th{font-weight:600;font-size:var(--text-cap);color:var(--ink-3)}.session-table td.n,.session-table th.n{text-align:right}.medal{padding:0 var(--space-2);border:1px solid var(--rule);border-radius:var(--radius-full);font:600 var(--text-cap) / 1.5 var(--font-text);display:inline-block}.medal[data-medal="3"]{border-color:var(--brass);color:var(--brass-ink);background:color-mix(in srgb, var(--brass) 12%, var(--sheet))}.medal[data-medal="2"]{color:var(--ink-2);background:var(--fill)}.medal[data-medal="1"]{color:var(--ink-3)}.session-table abbr{cursor:help;text-decoration:none}.session-adapt{gap:var(--space-1);font:var(--text-cap) / var(--leading-normal) var(--font-text);color:var(--ink-2);margin:0;padding-left:1.1rem;display:grid}.session-adapt li::marker{color:var(--violet)}.session-boss-medal .medal{font-size:var(--text-sm);padding:var(--space-1) var(--space-3)}.session-editor .vim-editor{--editor-lines:30}.session-editor .cm-searching{background:color-mix(in srgb, var(--brass) 22%, transparent)}.session-note{margin-top:var(--space-5);font:var(--text-cap) / 1.5 var(--font-text);color:var(--ink-3)}.session[data-ready=false] .actions .button{pointer-events:none}.session[data-solved=true] .result{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.session[data-locked=true] .session-editor .CodeMirror{opacity:.6}@media (width<=40rem){.session-panel{padding:var(--space-4);margin-inline:calc(-1 * var(--space-2))}.session-change{height:13rem}}.hub{gap:var(--space-6);max-width:52rem;padding-block:var(--space-5) 0;display:grid}.hub-head{gap:var(--space-3);display:grid}.hub-lead{max-width:var(--measure);font:450 var(--text-h3) / 1.45 var(--font-text);color:var(--ink-2)}.hub-status{min-height:calc(2 * var(--leading-normal) * 1em);max-width:var(--measure);font:var(--text-md) / var(--leading-normal) var(--font-text);color:var(--ink-2);font-variant-numeric:tabular-nums}.hub-status b{color:var(--ink);font-weight:600}.hub-choices{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none;display:grid}.hub-choice{align-items:center;gap:var(--space-3) var(--space-6);padding:var(--space-5) 0;border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr) 17rem;display:grid}.hub-copy{gap:var(--space-1);display:grid}.hub-copy h2{align-items:baseline;gap:var(--space-2) var(--space-3);font:650 var(--text-lead) / var(--leading-snug) var(--font-display);color:var(--ink);flex-wrap:wrap;display:flex}.hub-copy p{max-width:58ch;font:var(--text-md) / var(--leading-normal) var(--font-text);color:var(--ink-2)}.hub-action{justify-content:flex-end;display:flex}.hub-action .button{min-width:12rem}.hub-focus{gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;display:grid}.hub-focus .field,.hub-focus select{width:100%;min-width:0}.hub-focus select{min-height:2.5rem}.hub-focus .button{min-width:0}@media (width<=48rem){.hub-choice{grid-template-columns:minmax(0,1fr)}.hub-action{justify-content:flex-start}.hub-focus{max-width:24rem}}@media (width<=40rem){.hub-status{min-height:calc(4 * var(--leading-normal) * 1em)}}.notice{gap:var(--space-6);max-width:var(--measure);display:grid}.notice-head{gap:var(--space-2);display:grid}.notice-meta{font:var(--text-sm) / 1.5 var(--font-text);color:var(--ink-3)}.notice-body section{gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--rule);display:grid}.notice-body section+section{margin-top:var(--space-6)}.notice-analytics{margin-bottom:var(--space-6)}.notice-body.prose h2{font:650 var(--text-lead) / var(--leading-snug) var(--font-display);color:var(--ink);letter-spacing:0;margin:0}.notice-body a{color:var(--ink)}.notice-body a:hover{color:var(--brass-ink)}.home-hero{justify-items:center;gap:var(--space-4);padding:var(--space-6) 0 var(--space-6);text-align:center;display:grid}.home-hero h1{max-width:13ch;font-size:var(--text-display)}.home-sub{font:450 var(--text-lead) / 1.35 var(--font-text);color:var(--ink-2);text-wrap:balance}.home-stage{margin-inline:calc(-1*clamp(0rem,2vw,1.5rem))}.demo{justify-items:center;gap:var(--space-5);max-width:56rem;margin:0 auto;display:grid}.demo-task{font:600 var(--text-lead) / 1.3 var(--font-display);letter-spacing:-.015em;text-align:center}.demo .edit-replay{gap:var(--space-5);--code-size:1.125rem;width:100%}.demo .vim-editor{--editor-lines:3}.demo .edit-replay-frame{cursor:text}.demo .edit-replay-frame .code-preview{min-height:calc(3 * var(--leading-code) * var(--code-size) + 2 * var(--space-3))}.demo .edit-replay-screen>*{height:100%}.demo-target{width:100%}.demo-target .code-preview{--code-size:var(--text-md)}.demo-target .editor-frame{height:100%}.demo-status{justify-content:center;align-items:center;gap:var(--space-2) var(--space-4);min-height:2.25rem;font:var(--text-sm) / 1.4 var(--font-text);color:var(--ink-2);text-align:center;flex-wrap:wrap;display:flex}.demo-count{font-variant-numeric:tabular-nums}.demo-count [data-part=count]{font:700 var(--text-lead) / 1 var(--font-display);color:var(--ink)}.demo[data-live=true] .demo-hint{display:none}.demo:not([data-live=true]) :is(.demo-count,.demo-result){display:none!important}.demo-result:empty{display:none}.demo-result[data-tone=error]{color:var(--red)}.demo[data-done=true] .demo-count [data-part=count]{color:var(--green)}.demo[data-done=true] .demo-result{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.demo[data-done=true] .vim-editor{border-color:color-mix(in srgb, var(--green) 55%, var(--editor-rule))}.hero-actions{justify-content:center;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.home-section{gap:var(--space-6);padding-top:var(--space-8);display:grid}.home-section>h2{text-align:center}.section-line{margin-top:calc(-1 * var(--space-4));color:var(--ink-2);text-align:center}.how-steps{gap:var(--space-6) var(--space-5);counter-reset:how;grid-template-columns:minmax(0,1fr);margin:0;padding:0;list-style:none;display:grid}@media (width>=56rem){.how-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}.how-step{gap:var(--space-2);text-align:center;grid-template-rows:auto auto 1fr;grid-template-columns:minmax(0,1fr);justify-items:center;display:grid;position:relative}.how-step p{max-width:30ch;color:var(--ink-2);font-size:var(--text-md)}.how-step h3{margin-top:var(--space-3)}.how-visual{color-scheme:dark;justify-content:center;align-items:center;gap:var(--space-5);width:100%;height:9rem;padding:var(--space-4);border-radius:var(--radius-lg);background:radial-gradient(120% 90% at 50% 0%, var(--stage-2), var(--stage) 75%);color:var(--stage-ink);display:flex}.how-step,.how-visual>*{min-width:0}.how-editor{text-align:left;width:100%;max-width:20rem}.how-editor .code-preview{--code-size:.9375rem;white-space:nowrap}.how-editor .code-text{text-overflow:ellipsis;overflow:hidden}.how-mark{justify-items:center;gap:var(--space-1);font:var(--text-cap) / 1.3 var(--font-text);color:var(--stage-ink-2);display:grid}.how-mark .score{--score:3.5rem}.how-mark .score-num{color:var(--stage-ink)}@media (width>=56rem){.how-step+.how-step:before{content:"";top:4.5rem;left:calc(-1 * var(--space-5) / 2 - .35rem);border-top:2px solid var(--rule-strong);border-right:2px solid var(--rule-strong);width:.7rem;height:.7rem;position:absolute;transform:translateY(-50%)rotate(45deg)}}.course-path{grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid;position:relative}.course-path:before{content:"";background:var(--rule-strong);height:2px;position:absolute;top:1.375rem;left:7.14286%;right:7.14286%}.path-stop a{justify-items:center;gap:var(--space-2);padding:0 var(--space-2) var(--space-2);border-radius:var(--radius-md);color:var(--ink);text-align:center;text-decoration:none;display:grid;position:relative}.path-mark{border:2px solid var(--rule-strong);border-radius:var(--radius-full);background:var(--paper);width:2.75rem;height:2.75rem;font:700 var(--text-sm) / 1 var(--font-display);font-variant-numeric:tabular-nums;transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);place-items:center;display:grid}.path-start .path-mark{border-color:var(--brass);background:var(--brass);color:var(--on-brass)}.path-title{font:650 var(--text-sm) / 1.3 var(--font-display);text-wrap:balance}.path-stop a:hover .path-mark{border-color:var(--brass)}.path-stop a:hover .path-title{color:var(--brass-ink)}@media (width<=56rem){.course-path{gap:var(--space-2);grid-template-columns:minmax(0,1fr);width:100%;max-width:28rem;margin-inline:auto}.course-path:before{top:1.375rem;bottom:1.375rem;left:calc(var(--space-2) + 1.375rem - 1px);width:2px;height:auto;right:auto}.path-stop a{place-items:center start;gap:var(--space-4);padding:var(--space-1) var(--space-2);text-align:left;grid-template-columns:2.75rem minmax(0,1fr)}.path-title{font-size:var(--text-md)}}.faq-list{border-bottom:1px solid var(--rule);width:100%;max-width:44rem;margin:0 auto}.faq-item{border-top:1px solid var(--rule)}.faq-item summary{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-1);font:600 var(--text-body) / 1.4 var(--font-text);cursor:pointer;list-style:none;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"";width:.6rem;height:.6rem;margin-right:var(--space-2);border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);transition:transform var(--dur-base) var(--ease-out);flex:none;transform:translateY(-25%)rotate(45deg)}.faq-item[open] summary:after{transform:translateY(25%)rotate(-135deg)}.faq-item summary:hover{color:var(--brass-ink)}.faq-item p{padding:0 var(--space-1) var(--space-4);color:var(--ink-2)}@media (hover:none) and (pointer:coarse),(width<=40rem){.demo .edit-replay-live,.demo-status,.demo-hint{display:none}.demo .edit-replay{--code-size:.8125rem}.demo .edit-replay-frame .code-preview{min-height:0}.demo .code-text{white-space:pre-wrap;overflow-wrap:anywhere}.demo-target .code-preview{--code-size:.8125rem}.demo .keyseq-lg .cap{--cap-h:2.25rem}}
/*$vite$:1*/