code,pre,kbd,textarea,.cm-editor,.code-window,.code-window *,.cw-static,.cw-static *,.code-editor,.code-lines,.parsons-code{font-variant-ligatures:none!important;font-feature-settings:"liga" 0,"calt" 0!important}.code-block,.code-editor,.code-output,.code-warnings,.code-traceback{font-family:var(--font-mono);font-size:.95rem;line-height:1.5;tab-size:4}.code-block{background:var(--code-bg);color:var(--ink);border-radius:var(--radius);padding:.75rem 1rem;margin:.5rem 0;overflow-x:auto;white-space:pre}pre.code-block.cw-static{margin:.5rem 0;padding:8px 0;border:1px solid var(--cx-border);border-radius:8px;background:var(--cx-bg);color:var(--cx-fg);font-size:14px}pre.cw-static code{font:inherit;color:inherit;background:none;border:0;padding:0}.trace{margin:.75rem 0}.trace:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius)}.trace-view{position:relative}.trace-marker{position:absolute;left:0;right:0;top:8px;height:1.55em;font-size:14px;pointer-events:none;box-shadow:inset 3px 0 0 var(--cx-warn),inset 0 0 0 1px var(--cx-warn)}.trace-marker[hidden]{display:none}.trace-code .trace-line.is-current:before{color:var(--cx-lineno-active);font-weight:700}.trace-panel .trace-frame{padding:8px 14px 0;font:12px var(--cx-ui);color:var(--cx-term-dim)}.trace-panel .trace-vars{display:grid;gap:2px;padding:6px 14px 12px;font:13.5px/1.5 var(--font-mono);color:var(--cx-term-fg)}.trace-panel .trace-vars code{font:inherit;color:inherit;background:none;border:0;padding:0}.trace-panel .trace-name{font-weight:600}.trace-panel .trace-none{color:var(--cx-term-dim)}.trace-alias{font-size:.85em;color:var(--cx-warn);margin-left:.5rem}.trace-panel .trace-var{border-left:2px solid transparent;padding-left:6px}.trace-panel .trace-var.is-changed{border-left-color:var(--cx-warn)}.trace-ret{margin-left:2ch;color:var(--cx-comment);font-style:italic}.cw-line.is-playing{box-shadow:inset 3px 0 0 var(--cx-tab-accent)}@keyframes cw-flash{0%{background:var(--cx-selection)}to{background:transparent}}@media(prefers-reduced-motion:no-preference){html:not([data-motion=reduce]) .trace-marker{transition:transform .2s ease-out}html:not([data-motion=reduce]) .trace-panel .trace-var.is-changed{animation:cw-flash .3s ease-out}}.trace-bar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.trace-probe{margin-top:.5rem;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.code-editor{width:100%;box-sizing:border-box;display:block;background:var(--code-bg);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);padding:.75rem;resize:vertical;caret-color:var(--caret-color)}.code-editor:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.code-keys{display:none;gap:.25rem;flex-wrap:wrap;margin-top:.25rem}@media(max-width:640px){.code-keys{display:flex}}.code-key{min-width:2.5rem;min-height:2.5rem;font-family:var(--font-mono)}.code-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin:.5rem 0}.code-output:empty,.code-warnings:empty,.code-note:empty,.code-status:empty{display:none}.code-output{background:var(--code-bg);color:var(--ink);border-radius:var(--radius);padding:.5rem .75rem;white-space:pre-wrap;margin:.5rem 0}.code-warnings{font-size:.85rem;color:var(--accent-text);white-space:pre-wrap;margin:.25rem 0}.code-traceback{font-size:.85rem;opacity:.85;white-space:pre-wrap}.code-note,.code-status{font-size:.9rem;opacity:.85;margin:.25rem 0}.code-got code,.code-explain code{font-family:var(--font-mono)}.parsons{margin-top:12px;display:grid;gap:8px}.parsons-slot{list-style:decimal;padding-left:26px;margin:0;display:grid;gap:6px;min-height:8px}.parsons-bank{display:flex;flex-direction:column;gap:6px}.parsons-chip{display:block;width:100%;min-height:2.5rem;text-align:left;color:var(--ink);cursor:pointer;background:var(--bg-4);border:1px dashed var(--line-strong);border-radius:var(--radius-sm);padding:6px 12px}.parsons-chip.placed{background:var(--bg-3);border-style:solid}.parsons-chip:hover{border-color:var(--blue)}.parsons-chip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.parsons-slot.ok .parsons-chip,.parsons-slot.ok>.parsons-line>.parsons-code{border-color:var(--green);background:var(--green-soft)}.parsons-code{font-family:var(--font-mono);font-size:.95rem;white-space:pre}.code-lines code{font-family:var(--font-mono);white-space:pre}.code-window{--cx-ui: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;border:1px solid var(--cx-border);border-radius:8px;margin:.5rem 0}.code-window>:first-child{border-radius:7px 7px 0 0}.code-window>:last-child{border-radius:0 0 7px 7px;overflow:hidden}.cw-tab{border-top-left-radius:7px}.cw-bar{display:flex;align-items:stretch;justify-content:space-between;background:var(--cx-tab);min-height:35px}.cw-tab{display:flex;align-items:center;gap:6px;padding:0 14px;background:var(--cx-tab-active);color:var(--cx-tab-fg);box-shadow:inset 0 1px 0 var(--cx-tab-accent);font:13px/1 var(--cx-ui)}.cw-tab-icon{display:inline-flex;color:var(--cx-type)}.cw-tools{display:flex;align-items:center;padding-right:4px;position:relative}.cw-gear{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;background:transparent;border:0;border-radius:4px;color:var(--cx-tab-dim);cursor:pointer}.cw-gear:hover,.cw-gear[aria-expanded=true]{color:var(--cx-tab-fg)}.cw-gear:focus-visible,.cw-choice:focus-visible{outline:1px solid var(--cx-tab-accent);outline-offset:-1px}.cw-menu{position:absolute;right:4px;top:100%;z-index:20;min-width:12rem;padding:4px 0;background:var(--cx-tab-active);border:1px solid var(--cx-border);border-radius:6px;box-shadow:0 6px 18px #00000059}.cw-menu[hidden]{display:none}.cw-choice{display:block;width:100%;text-align:left;padding:7px 12px 7px 28px;min-height:2.25rem;background:transparent;border:0;color:var(--cx-tab-fg);font:13px var(--cx-ui);cursor:pointer;position:relative}.cw-choice:hover{background:var(--cx-selection)}.cw-choice[aria-pressed=true]:before{content:"";position:absolute;left:11px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--cx-tab-accent)}.cw-body{background:var(--cx-bg)}.cw-body:focus-within{box-shadow:inset 0 0 0 1px var(--cx-tab-accent)}.code-window textarea.code-editor{background:var(--cx-bg);color:var(--cx-fg);caret-color:var(--cx-caret);border:0;border-radius:0;padding:8px 12px 8px 3.25rem;font-size:14px;resize:vertical}.code-window textarea.code-editor:focus-visible{outline:none}.code-window textarea.code-editor[aria-invalid=true]{text-decoration:underline wavy var(--cx-err)}.cw-static{margin:0;padding:8px 0;background:var(--cx-bg);color:var(--cx-fg);counter-reset:cwline;font:14px/1.55 var(--font-mono);white-space:pre;overflow-x:auto}.cw-line{display:block;padding-right:16px}.cw-line:before{counter-increment:cwline;content:counter(cwline);display:inline-block;min-width:2ch;padding:0 12px 0 16px;text-align:right;color:var(--cx-lineno);user-select:none}.code-output-row{margin-top:.5rem}.code-window .parsons-slot{list-style:none;margin:0;padding:8px 0;min-height:4.6em;counter-reset:pline;display:block}.code-window .parsons-slot:empty:before{content:"Tap a line below to put it here.";display:block;padding:4px 16px;font:13px var(--cx-ui);color:var(--cx-lineno)}.code-window .parsons-line{counter-increment:pline;display:flex;align-items:stretch}.code-window .parsons-line:before{content:counter(pline);min-width:2ch;padding:6px 12px 0 16px;text-align:right;font:14px/1.55 var(--font-mono);color:var(--cx-lineno);user-select:none}.code-window .parsons-slot .parsons-chip{flex:1;min-height:2.25rem;padding:4px 8px;border:0;border-radius:0;background:transparent;color:var(--cx-fg)}.code-window .parsons-slot .parsons-chip:hover{background:var(--cx-selection)}.code-window .parsons-slot.ok{box-shadow:inset 3px 0 0 var(--cx-ok)}.parsons-panel .parsons-bank{padding:8px 14px 12px}.code-window .parsons-bank .parsons-chip{background:var(--cx-bg);color:var(--cx-fg);border:1px dashed var(--cx-border);border-radius:4px}.code-window .parsons-bank .parsons-chip:hover{border-color:var(--cx-tab-accent)}.code-window .parsons-chip:focus-visible{outline:1px solid var(--cx-tab-accent);outline-offset:-1px}.code-window .parsons-code{font:14px/1.55 var(--font-mono)}.parsons>.btn{margin-top:.5rem;justify-self:start}.cw-term{background:var(--cx-term);color:var(--cx-term-fg);border-top:1px solid var(--cx-border)}.cw-term-head{display:flex;gap:16px;padding:6px 14px 0}.cw-term-tab{font:11px/1 var(--cx-ui);letter-spacing:.06em;text-transform:uppercase;color:var(--cx-term-fg);padding-bottom:6px;box-shadow:inset 0 -1px 0 var(--cx-tab-accent)}.cw-screen{margin:0;padding:8px 14px 10px;min-height:2.6em;background:transparent;color:var(--cx-term-fg);font:13.5px/1.5 var(--font-mono);white-space:pre-wrap;word-break:break-word}.cw-cmd{color:var(--cx-term-dim)}.cw-err{color:var(--cx-err)}.cw-warn{color:var(--cx-warn)}.cw-ok{color:var(--cx-ok)}.cw-prompt{padding:0 14px 12px;display:grid;gap:4px}.cw-prompt-label{font:12px var(--cx-ui);color:var(--cx-term-dim)}.cw-input{width:100%;box-sizing:border-box;background:var(--cx-bg);color:var(--cx-fg);caret-color:var(--cx-caret);border:1px solid var(--cx-border);border-radius:4px;padding:6px 10px;font:14px/1.5 var(--font-mono);resize:vertical}.cw-input:focus-visible{outline:1px solid var(--cx-tab-accent);outline-offset:0}@media(max-width:640px){.cw-input,.code-window textarea.code-editor{font-size:16px}}.code-plots:empty{display:none}.pp{margin:10px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-2)}.pp-title{font-weight:600;color:var(--ink);margin:0 0 6px}.pp-svg{width:100%;height:auto;display:block}.pp-grid{stroke:var(--line);stroke-width:1}.pp-axis{stroke:var(--line-strong);stroke-width:1}.pp-tick,.pp-axis-label{fill:var(--ink-soft);font:11px var(--font-mono)}.pp-axis-label{fill:var(--ink)}.pp-line{fill:none;stroke-width:2;stroke-linejoin:round}.pp-pt{stroke:var(--bg-2);stroke-width:.8}.pp-line.pp-s0{stroke:var(--accent)}.pp-pt.pp-s0,.pp-swatch.pp-s0{fill:var(--accent);background:var(--accent)}.pp-line.pp-s1{stroke:var(--blue)}.pp-pt.pp-s1,.pp-swatch.pp-s1{fill:var(--blue);background:var(--blue)}.pp-line.pp-s2{stroke:var(--green)}.pp-pt.pp-s2,.pp-swatch.pp-s2{fill:var(--green);background:var(--green)}.pp-line.pp-s3{stroke:var(--violet)}.pp-pt.pp-s3,.pp-swatch.pp-s3{fill:var(--violet);background:var(--violet)}.pp-line.pp-s4{stroke:var(--red)}.pp-pt.pp-s4,.pp-swatch.pp-s4{fill:var(--red);background:var(--red)}.pp-line.pp-s5{stroke:var(--ink-soft)}.pp-pt.pp-s5,.pp-swatch.pp-s5{fill:var(--ink-soft);background:var(--ink-soft)}.pp-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px;font-size:13px;color:var(--ink-soft)}.pp-legend:empty{display:none}.pp-key{display:inline-flex;align-items:center;gap:6px}.pp-swatch{display:inline-block;width:10px;height:10px;border-radius:50%}.pp-line-swatch{width:16px;height:3px;border-radius:2px}.pp-note{margin:6px 0 0;font-size:13px;color:var(--ink-soft)}.code-pad:empty{display:none}.dpad{margin:10px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-2)}.dpad-label{margin:0 0 6px;color:var(--ink-soft)}.dpad-canvas{display:block;width:min(256px,100%);aspect-ratio:1;border:1px solid var(--line-strong);border-radius:var(--radius-xs);background:var(--bg);touch-action:none;cursor:crosshair}.dpad-buttons{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.dpad-status{margin:6px 0 0;color:var(--ink-soft);min-height:1.2em}.cw-wide{background:transparent;border:0;border-radius:4px;color:var(--cx-tab-dim);cursor:pointer;font:12px/1 var(--cx-ui);padding:0 10px;min-height:32px}.cw-wide:hover,.cw-wide[aria-pressed=true]{color:var(--cx-tab-fg)}.cw-wide:focus-visible{outline:1px solid var(--cx-tab-accent);outline-offset:-1px}body.code-wide-open{overflow:hidden}.code-step-wide{position:fixed;inset:0;z-index:2000;background:var(--bg);overflow:auto;padding:16px;display:grid;grid-template-columns:minmax(14rem,22rem) minmax(0,1fr);gap:10px 20px;align-content:start}.code-step-wide>*{grid-column:2;min-width:0}.code-step-wide>.code-task{grid-column:1;grid-row:1 / span 40;position:sticky;top:0;align-self:start;max-height:calc(100vh - 32px);overflow:auto;padding-right:4px}.code-task-title{margin:0 0 8px;font-size:1.05rem}.code-step-wide .code-window{display:grid;grid-template-columns:minmax(0,3fr) minmax(16rem,2fr)}.code-step-wide .cw-bar{grid-column:1 / -1}.code-step-wide .cw-body{grid-column:1;min-width:0}.code-step-wide .cw-term{grid-column:2;grid-row:2;border-top:0;border-left:1px solid var(--cx-border);max-height:calc(100vh - 14rem);overflow:auto}.code-step-wide .cm-editor{height:calc(100vh - 14rem)}.code-step-wide .cm-editor .cm-scroller{overflow:auto}.code-step-wide textarea.code-editor{min-height:calc(100vh - 14rem)}@media(max-width:1000px){.code-step-wide{grid-template-columns:minmax(0,1fr)}.code-step-wide>*,.code-step-wide>.code-task{grid-column:1;grid-row:auto;position:static;max-height:none}.code-step-wide .code-window{display:block}.code-step-wide .cw-term{max-height:none;border-left:0;border-top:1px solid var(--cx-border)}.code-step-wide .cm-editor{height:auto;max-height:70vh}.code-step-wide textarea.code-editor{min-height:50vh}}.code-setup{margin:0 0 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-2)}.code-setup-sum{cursor:pointer;padding:8px 12px;color:var(--ink-soft);font:13px/1.3 var(--font-mono)}.code-setup[open] .code-setup-sum{border-bottom:1px solid var(--line)}.code-setup pre{margin:0;max-height:50vh;overflow:auto;border-radius:0 0 var(--radius-sm) var(--radius-sm)}.code-step-wide>.code-actions{position:sticky;bottom:0;z-index:2;margin:0;padding:10px 0;background:var(--bg)}.lk{position:relative}.lk-label-in{display:block;font-size:13px;color:var(--ink-soft);margin:0 0 4px}.lk-in{width:100%;box-sizing:border-box;font:15px/1.3 var(--font-mono);padding:9px 12px;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.lk-in:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.lk-list{position:absolute;left:0;right:0;z-index:30;margin:4px 0 0;padding:4px 0;list-style:none;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lift);max-height:22rem;overflow:auto}.lk-opt{display:flex;justify-content:space-between;gap:12px;padding:7px 12px;cursor:pointer}.lk-opt[aria-selected=true],.lk-opt:hover{background:var(--surface-3)}.lk-opt-name{font-family:var(--font-mono);color:var(--ink)}.lk-opt-sub{font-size:12px;color:var(--ink-soft);white-space:nowrap}.lk-result{margin-top:10px}.lk-card{padding:12px 14px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm)}.lk-kind{margin:0;font-size:12px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.lk-name{margin:2px 0 6px;font-size:1.1rem}.lk-says{margin:0 0 8px}.lk-label{margin:8px 0 4px;font-size:12px;color:var(--ink-soft)}.lk-code{margin:0;border-radius:var(--radius-xs)}.lk-out{margin:0;padding:8px 12px;font:13px/1.5 var(--font-mono);white-space:pre-wrap;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-xs)}.lk-first{margin:10px 0 0;font-size:13px;color:var(--ink-soft)}.lk-at{margin:0;font-style:italic;color:var(--ink-soft)}.lk-none{margin:0;color:var(--ink-soft)}.lk-wrap{position:relative;z-index:50}.lk-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:40;width:min(460px,92vw);padding:12px;background:var(--surface-1);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lift);color:var(--ink)}.code-lookup{margin:8px 0;padding:12px;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-sm)}.lk-page{max-width:48rem;margin:0 auto;padding:8px 16px 40px}.lk-intro{color:var(--ink-soft)}.lk-h2{margin-top:28px;font-size:1.1rem}.lk-words{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}.lk-word{font:inherit;font-size:13px;padding:4px 10px;border-radius:999px;cursor:pointer;color:var(--ink);background:var(--surface-2);border:1px solid var(--line)}.lk-word:hover{background:var(--surface-3)}.tr-page{max-width:52rem;margin:0 auto;padding:8px 16px 48px}.tr-intro,.tr-sub,.tr-note,.tr-textinfo{color:var(--ink-soft)}.tr-warn{padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg-2)}.tr-set{margin:16px 0;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm)}.tr-set legend{padding:0 6px;font-weight:600}.tr-radio{display:block;margin:4px 0}.tr-sub{font-size:13px}.tr-own-lab,.tr-file,.tr-steps-lab{display:block;margin-top:10px;font-size:14px}.tr-own{width:100%;box-sizing:border-box;margin-top:4px;font:13px/1.5 var(--font-mono);color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius-xs);padding:8px}.tr-actions{display:flex;gap:8px;margin:12px 0}.tr-status{min-height:1.4em}.tr-chart .pp{margin:8px 0}.tr-write{margin-top:20px}.tr-write label{margin-right:6px}.tr-prompt{font:14px var(--font-mono);padding:6px 8px;color:var(--ink);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius-xs)}.tr-out{white-space:pre-wrap;overflow-wrap:anywhere;min-height:6em;padding:10px 12px;margin:10px 0;font:14px/1.6 var(--font-mono);color:var(--ink);background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm)}.pp-imgs{display:flex;flex-wrap:wrap;gap:10px}.pp-img{margin:0;width:112px}.pp-img svg{display:block;width:112px;height:auto}.pp-img-bg{fill:var(--bg)}.pp-cell.pp-s0{fill:var(--accent)}.pp-cell.pp-s1{fill:var(--blue)}.pp-img-title{margin-top:4px;font-size:12px;color:var(--ink-soft);text-align:center;overflow-wrap:anywhere}
