@font-face{font-family:Source Code Pro;src:url(/fonts/source-code-pro/SourceCodePro-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Source Code Pro;src:url(/fonts/source-code-pro/SourceCodePro-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{color-scheme:light;--chassis: #e6e4de;--paper: #f8f7f4;--module: #fcfbf9;--sheet: #ffffff;--sunk: #f1efea;--line: #dcd9d2;--line-strong: #8a857b;--ink: #1c1b19;--ink-2: #4a4741;--ink-3: #686359;--key: #22211f;--key-hover: #3a3834;--key-light: #ffffff;--key-light-hover: #f4f2ee;--key-edge: #bdb8ae;--focus: #2459d1;--focus-soft: #dce6fb;--mark: #f2c94c;--mark-fill: #fbebb5;--mark-edge: #9a7209;--pass: #1d7349;--pass-soft: #e1f1e7;--fail: #b8382a;--fail-soft: #fbe7e2;--caution: #855500;--caution-soft: #faf0db;--code-bg: #ffffff;--code-gutter: #f4f2ee;--code-gutter-ink: #686359;--code-current: #fbf6e3;--code-selection: #cfdcf7;--syn-kw: #7a3e9d;--syn-fn: #1f5fa8;--syn-num: #9c4f06;--syn-str: #2e7d32;--syn-com: #6e695f;--syn-bi: #0d6b6b;--sans: "Source Sans 3", "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", "Liberation Sans", system-ui, sans-serif;--mono: "Source Code Pro", ui-monospace, Menlo, Consolas, "Liberation Mono", monospace;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--s7: 48px;--s8: 64px;--r-key: 9px;--r-mod: 12px;--m: 1;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1);--ease-settle: cubic-bezier(.34, 1.36, .64, 1);--d-press: calc(90ms * var(--m));--d-fast: calc(.14s * var(--m));--d-ui: calc(.2s * var(--m));--d-move: calc(.28s * var(--m));--d-teach: calc(.42s * var(--m));--d-sheet: calc(.42s * var(--m));font-family:var(--sans);font-size:100%;line-height:1.5;color:var(--ink);background:var(--chassis);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-kerning:normal}@media(prefers-reduced-motion:reduce){:root{--m: 0}}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100dvh}h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.012em;text-wrap:balance;color:var(--ink)}p{margin:0;text-wrap:pretty}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}[hidden]{display:none!important}code,pre,kbd,samp{font-family:var(--mono)}code{font-size:.9em}::selection{background:var(--code-selection);color:var(--ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.icon{width:1.125em;height:1.125em;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.num{font-variant-numeric:tabular-nums lining-nums}.prose code,.inline-code{background:var(--sunk);border-radius:5px;padding:.08em .32em;font-size:.88em;white-space:nowrap}.scroll-y{overflow-y:auto;scrollbar-width:thin;scrollbar-color:#b9b4aa transparent}.skip-link{position:absolute;left:12px;top:10px;z-index:50;transform:translateY(-160%);background:var(--sheet);color:var(--focus);font-weight:650;padding:10px 14px;border-radius:8px;border:2px solid var(--focus);text-decoration:none}.skip-link:focus{transform:none}.key{--kh: 40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--kh);padding:0 16px;border-radius:var(--r-key);border:1px solid var(--key-edge);background:var(--key-light);color:var(--ink);font-size:.9375rem;font-weight:600;line-height:1.1;letter-spacing:.003em;box-shadow:0 1px 0 var(--key-edge),0 1px 3px #1c1b190d;text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:transform var(--d-fast) var(--ease-out),box-shadow var(--d-fast) var(--ease-out),background-color var(--d-fast) ease,color var(--d-fast) ease,border-color var(--d-fast) ease}.key:active:not(:disabled):not([aria-disabled=true]),.key.is-pressed{transform:translateY(1px);box-shadow:0 0 0 var(--key-edge),inset 0 1px 2px #1c1b1914;transition-duration:var(--d-press)}.key--primary{background:var(--key);color:#fff;border-color:var(--key);box-shadow:0 1px #000,0 2px 6px #1c1b1929}.key--primary:active:not(:disabled),.key--primary.is-pressed{box-shadow:0 0 #000,inset 0 1px 3px #0006}.key--stop{color:var(--fail);border-color:#d9a79e}.key--quiet{background:transparent;border-color:transparent;box-shadow:none;color:var(--ink-2);padding:0 10px}.key--sm{--kh: 34px;padding:0 12px;font-size:.875rem;border-radius:8px}.key--lg{--kh: 48px;padding:0 22px;font-size:1rem;border-radius:11px}.key .key-sub{font-weight:500;font-size:.8125rem;opacity:.78}.key:disabled,.key[aria-disabled=true]{background:var(--sunk);color:#8a857b;border-color:var(--line);box-shadow:none;cursor:not-allowed}.key--primary:disabled{background:#6d6a64;color:#f1efea;border-color:#6d6a64}.key.is-busy{cursor:progress}@media(hover:hover)and (pointer:fine){.key:hover:not(:disabled):not([aria-disabled=true]),.key.is-hover{background:var(--key-light-hover)}.key.key--primary:hover:not(:disabled):not([aria-disabled=true]),.key.key--primary.is-hover{background:var(--key-hover);color:#fff}.key.key--quiet:hover:not(:disabled):not([aria-disabled=true]),.key.key--quiet.is-hover{background:#1c1b190f;color:var(--ink)}}@media(pointer:coarse){.key{--kh: 44px}.key--sm{--kh: 40px}}.key:focus-visible,.key.is-focus{outline:2px solid var(--focus);outline-offset:2px}.icon-key{width:34px;height:34px;display:inline-grid;place-items:center;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ink-2)}@media(hover:hover)and (pointer:fine){.icon-key:hover{background:#1c1b190f;color:var(--ink)}}@media(pointer:coarse){.icon-key{width:44px;height:44px}}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:var(--sunk);color:var(--ink-2);font-size:.8125rem;font-weight:600;line-height:1.35;white-space:nowrap}.chip--mark{background:var(--mark-fill);color:var(--ink)}.chip--pass{background:var(--pass-soft);color:var(--pass)}.chip--fail{background:var(--fail-soft);color:var(--fail)}.chip--caution{background:var(--caution-soft);color:var(--caution)}.chip--outline{background:transparent;box-shadow:inset 0 0 0 1px var(--line)}.label{font-size:.8125rem;font-weight:650;color:var(--ink-2);letter-spacing:.01em}.muted{color:var(--ink-3)}.banner{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px 12px;padding:12px 16px;border-radius:12px;border:1px solid var(--line);background:var(--sheet);font-size:.9375rem;line-height:1.45}.banner .icon{margin-top:2px}.banner--caution{border-color:#e2cc9a;background:var(--caution-soft)}.banner--caution>.icon{color:var(--caution)}.banner--pass{border-color:#b7dcc5;background:var(--pass-soft)}.banner--pass>.icon{color:var(--pass)}.banner--fail{border-color:#eab8ae;background:var(--fail-soft)}.banner--fail>.icon{color:var(--fail)}.banner-body{flex:1 1 220px;min-width:0}.banner-title{font-weight:650}.banner-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-left:auto}.tabs{position:relative;display:flex;gap:2px;padding:3px;background:var(--sunk);border-radius:10px}.tab{position:relative;z-index:1;flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 10px;border:0;background:transparent;border-radius:8px;font-size:.875rem;font-weight:600;color:var(--ink-2);white-space:nowrap;transition:color var(--d-fast) ease}.tab[aria-selected=true]{color:var(--ink)}.tab .tab-count{font-weight:600;color:var(--ink-3);font-variant-numeric:tabular-nums}.tab-indicator{position:absolute;z-index:0;top:3px;left:0;height:calc(100% - 6px);width:10px;border-radius:8px;background:var(--sheet);box-shadow:0 1px 2px #1c1b191f,0 0 0 1px #1c1b190a;transform-origin:left center;transition:transform var(--d-ui) var(--ease-in-out)}@media(hover:hover)and (pointer:fine){.tab:hover{color:var(--ink)}}@media(pointer:coarse){.tab{min-height:40px}}.disclose{border-top:1px solid var(--line)}.disclose>button{display:flex;width:100%;align-items:center;gap:10px;padding:12px 0;border:0;background:none;text-align:left;font-weight:650;font-size:.9375rem}.disclose>button .icon{color:var(--ink-3);transition:transform var(--d-ui) var(--ease-out)}.disclose>button[aria-expanded=true] .icon{transform:rotate(90deg)}.disclose-body{overflow:hidden}.disclose-inner{padding:0 0 14px 28px;color:var(--ink-2)}.field{display:inline-flex;flex-direction:column;gap:6px}.input{height:44px;min-width:7ch;padding:0 12px;border-radius:9px;border:1px solid var(--line-strong);background:var(--sheet);font-family:var(--mono);font-size:1.0625rem;font-variant-numeric:tabular-nums;transition:border-color var(--d-fast) ease,box-shadow var(--d-fast) ease}.input:focus-visible,.input.is-focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-soft)}.input[aria-invalid=true],.input.is-error{border-color:var(--fail);box-shadow:0 0 0 3px var(--fail-soft)}.app{min-height:100dvh;display:grid;grid-template-rows:auto auto 1fr}.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:10px 20px;background:var(--chassis);border-bottom:1px solid #d6d3cb;position:relative;z-index:20}.brand{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;font-weight:650;font-size:.9375rem;letter-spacing:-.005em;color:var(--ink)}.brand-mark{width:26px;height:26px;border-radius:7px;background:var(--key);display:grid;place-items:center}.brand-mark span{width:12px;height:8px;border:2px solid var(--mark);border-radius:2px}.topbar-tools{justify-self:end;display:flex;align-items:center;gap:8px}.route{position:relative}.route-list{list-style:none;margin:0;padding:0;display:flex;align-items:center}.route-list li{display:flex;align-items:center}.route-list li+li:before{content:"";width:28px;height:2px;background:#cbc7bd;border-radius:1px;margin:0 2px}.route-stop{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 10px 0 8px;border:0;border-radius:999px;background:transparent;color:var(--ink-2);font-size:.9375rem;font-weight:600;transition:color var(--d-fast) ease,background-color var(--d-fast) ease}.route-stop[aria-current=page]{color:var(--ink);background:#ffffffb3}@media(hover:hover)and (pointer:fine){.route-stop:hover{color:var(--ink);background:#ffffff8c}}.route-dot{position:relative;width:14px;height:14px;border-radius:50%;border:2px solid #a8a398;background:var(--chassis);display:grid;place-items:center}.route-dot svg{width:10px;height:10px;stroke:#fff;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20}.route-stop.is-done .route-dot{background:var(--pass);border-color:var(--pass)}.route-stop.is-done .route-dot svg{stroke-dashoffset:0;transition:stroke-dashoffset calc(.36s * var(--m)) var(--ease-out) calc(.12s * var(--m))}.route-stop.is-done.just-done .route-dot{animation:settle calc(.42s * var(--m)) var(--ease-settle)}.route-puck{position:absolute;top:50%;left:0;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:var(--key);box-shadow:0 0 0 3px #f2c94ce6;pointer-events:none;transition:transform var(--d-move) var(--ease-in-out)}.route-puck.is-done{background:var(--pass)}@keyframes settle{0%{transform:scale(.7)}to{transform:scale(1)}}main{min-width:0}main:focus{outline:none}.view{min-width:0}.view-reading{background:var(--paper);min-height:100%}.view h1:focus{outline:none}.wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 32px}.today{padding-block:56px 72px}.today-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:center}.today-title{font-size:2.75rem;line-height:1.06;letter-spacing:-.02em;font-weight:650}.today-title .t-soft{color:var(--ink-3);font-weight:500}.today-lede{margin-top:14px;font-size:1.25rem;line-height:1.5;color:var(--ink-2);max-width:32ch}.plan{margin:30px 0 0;padding:0;list-style:none;display:flex;gap:6px}.plan-seg{flex-grow:var(--mins);flex-basis:0;min-width:0;text-align:left;border:1px solid var(--line);background:var(--sheet);border-radius:10px;padding:10px 12px 11px;display:grid;gap:2px;transition:border-color var(--d-fast) ease,transform var(--d-fast) var(--ease-out)}.plan-seg[data-next]{border-color:var(--key);box-shadow:inset 0 3px 0 var(--mark)}.plan-seg .plan-name{font-weight:650;font-size:.9375rem}.plan-seg .plan-min{font-size:.8125rem;color:var(--ink-3);font-variant-numeric:tabular-nums}@media(hover:hover)and (pointer:fine){.plan-seg:hover{border-color:var(--line-strong)}}.plan-total{margin-top:8px;font-size:.8125rem;color:var(--ink-3)}.today-actions{margin-top:28px;display:flex;flex-wrap:wrap;gap:10px}.today-figure{margin:0;background:var(--sheet);border:1px solid var(--line);border-radius:16px;padding:28px 28px 22px}.today-figure figcaption{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);font-size:.9375rem;color:var(--ink-2)}.teaser{margin-top:4px;display:flex;align-items:center;justify-content:center;gap:12px}.teaser-status{min-width:21ch;text-align:center;font-family:var(--mono);font-size:.875rem;color:var(--ink-2);font-variant-numeric:tabular-nums}.today-figure .bench-readout{min-height:0}.today-lower{margin-top:64px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:56px;padding-top:28px;border-top:1px solid var(--line)}.today-lower h2{font-size:1.125rem;margin-bottom:12px}.prereq-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;padding:0;list-style:none}.why{margin-top:18px;font-size:1rem;line-height:1.55;color:var(--ink-2);max-width:46ch}.why strong{color:var(--ink)}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none}.day{border-radius:10px;padding:10px 8px 12px;background:#ffffff80;border:1px solid transparent;min-height:132px;display:flex;flex-direction:column;gap:4px}.day-n{font-size:.8125rem;font-weight:650;color:var(--ink-3);font-variant-numeric:tabular-nums}.day-t{font-size:.8125rem;line-height:1.3;color:var(--ink-2)}.day[data-here]{background:var(--sheet);border:1px solid var(--key)}.day[data-here] .day-n{color:var(--ink)}.day-flag{margin-top:auto;font-size:.75rem;font-weight:650;color:var(--ink);background:var(--mark-fill);border-radius:6px;padding:2px 6px;align-self:flex-start}.week-note{margin-top:12px;font-size:.875rem;color:var(--ink-3)}.resume{margin-bottom:28px}.bench{--cell: 58px;--gap: 8px;--pad: 7px;position:relative}.bench-stage{position:relative;padding:30px 0 4px;transition:opacity calc(.16s * var(--m)) ease}.bench-stage.is-swapping{opacity:0}.bench-row{position:relative;display:flex;gap:var(--gap);width:max-content;margin:0 auto;padding:0 var(--pad)}.cell{position:relative;width:var(--cell);display:grid;grid-template-rows:var(--cell) auto auto;justify-items:center}.cell-v{width:100%;height:100%;display:grid;place-items:center;border-radius:10px;background:var(--sheet);border:1px solid var(--line);font-family:var(--mono);font-size:1.25rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink-2);position:relative;z-index:1;transition:background-color var(--d-ui) ease,border-color var(--d-ui) ease,color var(--d-ui) ease,opacity var(--d-ui) ease}.cell-i{margin-top:6px;font-family:var(--mono);font-size:.8125rem;color:var(--ink-3)}.cell-note{min-height:18px;margin-top:2px;font-size:.75rem;font-weight:650;color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}.cell[data-s=in] .cell-v{background:var(--mark-fill);border-color:transparent;color:var(--ink)}.cell[data-s=arrive] .cell-v{background:var(--mark-fill);border-color:var(--ink);color:var(--ink);font-weight:700}.cell[data-s=leave] .cell-v{background:var(--sheet);border-style:dashed;border-color:var(--line-strong);color:var(--ink-3)}.cell[data-s=dim] .cell-v{color:var(--ink-3)}.cell[data-s=arrive] .cell-note{color:var(--ink)}.lens{position:absolute;left:0;top:-7px;height:calc(var(--cell) + 14px);border:2px solid var(--mark-edge);border-radius:15px;pointer-events:none;z-index:2;transition:transform var(--d-teach) var(--ease-in-out),opacity var(--d-ui) ease}.lens-tag{position:absolute;left:10px;top:-24px;font-size:.75rem;font-weight:650;color:var(--ink);background:var(--mark);border-radius:6px;padding:1px 7px;white-space:nowrap}.lens.is-hidden{opacity:0}.bench-annot{position:relative;height:0}.annot{position:absolute;font-size:.75rem;font-weight:650;color:var(--ink-2);white-space:nowrap}.annot-bracket{position:absolute;height:10px;border:2px solid var(--ink-2);border-top:0;border-radius:0 0 6px 6px}.annot-bracket.up{border-top:2px solid var(--ink-2);border-bottom:0;border-radius:6px 6px 0 0}.annot-arrow{position:absolute;height:2px;background:var(--ink-2)}.annot-arrow:after{content:"";position:absolute;right:-1px;top:-4px;border:5px solid transparent;border-left:7px solid var(--ink-2);border-right:0}.bench-readout{margin-top:12px;display:grid;justify-items:center;gap:6px;min-height:64px}.eq{display:flex;align-items:baseline;gap:10px;font-family:var(--mono);font-size:1.375rem;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink)}.eq-op{color:var(--ink-3)}.eq-slot{position:relative;display:inline-block;min-width:1.4ch;text-align:center}.eq-slot.is-waiting{opacity:0}.eq-total{position:relative;display:inline-block;min-width:2.2ch;font-weight:700;overflow:hidden;vertical-align:bottom}.eq-total>span{display:inline-block}.eq-total>.eq-ghost{position:absolute;left:0;right:0;top:0}.eq-q{color:var(--ink-3)}.bench-note{font-size:.875rem;color:var(--ink-2);text-align:center;max-width:40ch}.bench-note b{color:var(--ink)}.pins{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.flight-layer{position:fixed;inset:0;pointer-events:none;z-index:60}.flyer{position:absolute;left:0;top:0;display:grid;place-items:center;font-family:var(--mono);font-weight:600;border-radius:8px;background:var(--sheet);border:1px solid var(--ink);color:var(--ink);box-shadow:0 6px 16px #1c1b1929;will-change:transform}.flyer.is-out{border-style:dashed;color:var(--ink-2)}.learn{padding-block:48px 96px}.learn-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,460px);grid-template-areas:"head dock" "prose dock";column-gap:56px;align-items:start}.learn-grid>.learn-head{grid-area:head}.learn-grid>.bench-dock{grid-area:dock}.learn-grid>.prose{grid-area:prose}.learn-head{max-width:64ch;margin-bottom:8px}.learn-head h1{font-size:2.5rem;line-height:1.08;letter-spacing:-.02em}.learn-meta{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px}.learn-lede{margin-top:18px;font-size:1.3125rem;line-height:1.5;color:var(--ink-2);max-width:44ch}.prose{font-size:1.125rem;line-height:1.62;max-width:64ch}.prose p+p{margin-top:.9em}.lsec{padding:40px 0 8px;scroll-margin-top:24px}.lsec h2{font-size:1.5rem;line-height:1.2;margin-bottom:14px}.step-controls{margin-top:22px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.step-status{margin-top:12px;font-size:.9375rem;color:var(--ink-2);min-height:1.5em}.step-status b{color:var(--ink);font-weight:650}.table-scroll{max-width:100%;overflow-x:auto}.trace-table{margin-top:18px;width:100%;max-width:560px;border-collapse:collapse;font-size:.9375rem}.trace-table th,.trace-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.trace-table thead th{font-size:.8125rem;color:var(--ink-3);font-weight:650;border-bottom-color:var(--line-strong)}.trace-table td{font-family:var(--mono);font-variant-numeric:tabular-nums}.trace-table tbody th{font-weight:650}.trace-table tr.is-current>*{background:var(--mark-fill)}.trace-table tr.is-new>*{animation:rowIn calc(.26s * var(--m)) var(--ease-out)}@keyframes rowIn{0%{opacity:0;transform:translateY(-4px)}}.rule-box{margin-top:18px;padding:16px 18px;background:var(--sheet);border:1px solid var(--line);border-radius:12px;font-size:1.0625rem;line-height:1.55}.rule-box .label{display:block;margin-bottom:4px;color:var(--ink)}.compare{margin-top:20px;display:inline-flex}.predict-row{margin-top:18px;display:flex;flex-wrap:wrap;align-items:end;gap:10px}.predict-feedback{margin-top:14px}.predict-help{font-size:.875rem;margin-top:8px}.trace-sum{margin-top:16px}.prose--compact,.predict-feedback .banner{font-size:1rem}.explain-cta{margin-top:48px;padding:28px;border-radius:16px;background:var(--sheet);border:1px solid var(--line);display:grid;gap:18px}.explain-cta h2{font-size:1.375rem}.bench-dock{position:sticky;top:24px}.bench-card{background:var(--sheet);border:1px solid var(--line);border-radius:16px;padding:18px 18px 16px}.bench-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.bench-title{font-size:.875rem;font-weight:650;color:var(--ink-2)}.bench-foot{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:.8125rem;color:var(--ink-3)}.bench-toggle{display:none}.practice{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);min-height:100%;background:var(--chassis)}.p-head{grid-row:1}.p-banner{grid-row:2}.learning-workspace-context{grid-row:3}.work{grid-row:4}.p-head{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;padding:8px 8px 8px 27px}.p-title{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px}.p-title h1{font-size:1.25rem;line-height:1.25}.p-meta{display:flex;gap:6px;flex-wrap:wrap}.p-goal{display:none}.p-tools{display:flex;align-items:center;gap:8px}.timer{display:inline-flex;align-items:center;gap:10px;padding:4px 4px 4px 12px;border-radius:12px;background:var(--module);border:1px solid var(--line)}.timer-state{display:inline-flex;align-items:center;gap:7px;font-size:.8125rem;font-weight:600;color:var(--ink-3)}.timer-state:before{content:"";width:8px;height:8px;border-radius:50%;border:1.5px solid #a8a398}.timer[data-status=running] .timer-state:before{background:var(--key);border-color:var(--key)}.timer[data-status=interrupted] .timer-state{color:var(--caution)}.timer[data-status=interrupted] .timer-state:before{background:var(--caution);border-color:var(--caution)}.timer-time{font-family:var(--mono);font-size:1.0625rem;font-weight:600;font-variant-numeric:tabular-nums;min-width:5ch;text-align:right}.timer.is-hidden-time .timer-time{color:transparent;text-shadow:none;background:repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 9px);border-radius:3px}.timer-actions{display:inline-flex;gap:2px}.p-banner{display:grid;gap:8px;padding:0 8px 8px}.work{min-height:0;display:grid;grid-template-columns:var(--comp-w, clamp(400px, 40%, 560px)) 12px minmax(0,1fr);padding:0 8px 8px}.mod{background:var(--module);border:1px solid #d9d6ce;border-radius:var(--r-mod);min-width:0;min-height:0}.results-inline{display:none}.companion{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);overflow:hidden}.comp-head{display:flex;align-items:center;gap:8px;padding:8px;border-bottom:1px solid var(--line)}.comp-head .tabs{flex:1 1 auto}.comp-close{display:none}.tab-count[data-r=fail]{color:var(--fail)}.tab-count[data-r=pass]{color:var(--pass)}.tab-dot{width:7px;height:7px;border-radius:50%;background:var(--focus)}.comp-body{position:relative;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.comp-body:before,.comp-body:after{content:"";position:absolute;left:0;right:0;height:18px;z-index:3;pointer-events:none;opacity:0;transition:opacity var(--d-fast) ease}.comp-body:before{top:0;background:linear-gradient(#1c1b1926,#1c1b1900)}.comp-body:after{bottom:0;border-radius:0 0 11px 11px;background:linear-gradient(#1c1b1900,#1c1b1926)}.comp-body[data-up]:before,.comp-body[data-down]:after{opacity:1}.comp-body[data-tab=results]:before{display:none}.comp-body[data-tab=results][data-up] .r-summary{box-shadow:0 8px 12px -10px #1c1b1959}.comp-panel{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:16px 10px 24px 18px;scrollbar-width:thin;scrollbar-color:#a8a398 transparent}.comp-panel::-webkit-scrollbar{width:10px}.comp-panel::-webkit-scrollbar-thumb{background:#b3aea4;border-radius:5px;border:3px solid var(--module)}.comp-panel:focus-visible{outline:2px solid var(--focus);outline-offset:-3px;border-radius:0 0 11px 11px}.comp-panel h2{font-size:1rem;margin:20px 0 8px}.comp-panel>h2:first-child,.comp-panel section>h2:first-child{margin-top:0}.comp-panel p,.comp-panel li{font-size:1rem;line-height:1.55;color:var(--ink)}.comp-panel ul{margin:0;padding-left:20px;display:grid;gap:4px}.ref-goal{font-size:1.0625rem;line-height:1.45}.ref-sig{margin-top:8px;display:inline-block;font-family:var(--mono);font-size:.875rem;background:var(--sunk);border-radius:6px;padding:3px 8px}.examples{width:100%;border-collapse:collapse;margin-top:4px;font-size:.9375rem}.examples th,.examples td{text-align:left;padding:7px 6px;border-bottom:1px solid var(--line);vertical-align:top}.examples thead th{font-size:.8125rem;color:var(--ink-3);font-weight:650}.examples td,.examples tbody th{font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:400;font-size:.875rem}.ex-name{display:block;font-family:var(--sans);font-size:.8125rem;font-weight:600;color:var(--ink-3)}.example-strip{margin:12px 0 4px;padding:14px 0 6px;background:var(--sheet);border:1px solid var(--line);border-radius:12px}.example-strip .bench,.cd-trace .bench{--cell: 38px;--gap: 5px;--pad: 5px}.example-strip .cell-v,.cd-trace .cell-v{font-size:.9375rem;border-radius:8px}.example-strip .lens,.cd-trace .lens{border-radius:11px;top:-5px;height:calc(var(--cell) + 10px)}.example-strip .bench-stage,.cd-trace .bench-stage{padding-top:22px}.example-strip .lens-tag,.cd-trace .lens-tag{top:-21px}.example-strip .bench-readout,.cd-trace .bench-readout{min-height:0;margin-top:4px}.example-strip .eq,.cd-trace .eq{font-size:1rem}.help-intro{color:var(--ink-2)}.comp-panel .help-intro{font-size:.9375rem}.help-sec{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}.help-h3{font-size:.9375rem;margin:18px 0 8px}.hint-ladder{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:0}.comp-panel .hint-ladder{padding:0}.hint-item{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:0 0 14px}.hint-item:before{content:"";position:absolute;left:12px;top:26px;bottom:0;width:2px;background:var(--line)}.hint-item:last-child:before{display:none}.hint-rung{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.8125rem;font-weight:700;font-variant-numeric:tabular-nums;border:1.5px solid #b9b4aa;color:var(--ink-3);background:var(--module);position:relative;z-index:1;transition:background-color var(--d-ui) ease,color var(--d-ui) ease,border-color var(--d-ui) ease}.hint-item.is-open .hint-rung{background:var(--key);border-color:var(--key);color:#fff}.hint-body{padding-top:2px;min-width:0}.comp-panel .hint-name{font-size:.875rem;font-weight:650;color:var(--ink-3)}.hint-item.is-open .hint-name{color:var(--ink)}.hint-text{overflow:hidden}.hint-text p{padding-top:4px}.ref-actions{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}.gate{padding:16px;border:1px dashed #cfcbc2;border-radius:12px;background:#ffffff80}.comp-panel .gate p{color:var(--ink-2)}.comp-panel .gate .note{margin-top:8px;font-size:.875rem;color:var(--ink-3)}.h-aside{font-weight:500}.rule-box--compact{font-size:1rem}.step-status--center{text-align:center;padding:0 12px}.walk-note{margin-top:10px}.code-block{margin:12px 0;padding:12px 14px;border-radius:10px;background:var(--sheet);border:1px solid var(--line);overflow-x:auto;font-size:.875rem;line-height:1.6}.recap-cases{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}.recap-bench{margin-top:12px;padding:12px 0 10px;background:var(--sheet);border:1px solid var(--line);border-radius:12px}.recap-bench .bench{--cell: 42px;--gap: 6px}.recap-bench .cell-v{font-size:1rem}.recap-bench .eq{font-size:1.0625rem}.recap-bench .step-controls,.cd-trace .step-controls{justify-content:center;margin-top:8px}.comp-panel.r-panel{padding-top:0}.r-summary{position:sticky;top:0;z-index:2;margin:0 -10px 12px -18px;padding:12px 10px 10px 18px;background:var(--module);border-bottom:1px solid var(--line);transition:box-shadow var(--d-fast) ease}.r-line{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}.comp-panel .r-count,.r-count{margin:0;font-size:1.0625rem;line-height:1.3;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.r-kind{font-size:.8125rem;font-weight:650;color:var(--ink-3);white-space:nowrap}.r-kind{margin-left:auto}.comp-panel .r-msg{margin-top:4px;font-size:.875rem;line-height:1.45;color:var(--ink-2)}.r-idle{display:grid;gap:10px;padding-top:16px}.comp-panel .r-idle p{color:var(--ink-2);font-size:.9375rem}.comp-panel .r-idle .r-lead{color:var(--ink);font-size:1rem;font-weight:600}.segs{display:flex;gap:3px}.seg{width:16px;height:8px;border-radius:3px;background:var(--line)}.r-line .segs{flex:1 1 40px;max-width:187px;min-width:40px}.r-line .seg{flex:0 1 16px;width:auto;min-width:2px}.seg[data-r=pass]{background:var(--pass)}.seg[data-r=fail]{background:var(--fail)}.seg.is-in{animation:segIn calc(.18s * var(--m)) var(--ease-out) both}@keyframes segIn{0%{transform:scaleY(.2);opacity:.2}}.r-cases{display:grid;gap:6px;margin:0 0 12px}.r-group{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}.r-glabel{flex:0 0 auto;min-width:5.6em;font-size:.75rem;font-weight:700;color:var(--ink-3);letter-spacing:.01em;font-variant-numeric:tabular-nums}.case-chip{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:0 9px 0 7px;border-radius:8px;border:1px solid var(--line);background:var(--sheet);font-family:var(--mono);font-size:.8125rem;line-height:1;color:var(--ink-2);transition:border-color var(--d-fast) ease,box-shadow var(--d-fast) ease,color var(--d-fast) ease}.case-chip .icon{width:14px;height:14px}.case-chip[data-r=fail] .icon,.case-chip[data-r=error] .icon{color:var(--fail)}.case-chip[data-r=pass]{border-color:transparent;background:transparent;padding:0 6px}.case-chip[data-r=pass] .icon{color:var(--pass)}.r-toggle{display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:0 6px;border:0;border-radius:8px;background:transparent;font-size:.8125rem;font-weight:650;color:var(--ink-2)}.r-toggle .icon{width:14px;height:14px;color:var(--pass)}.r-toggle .chev{color:var(--ink-3);transition:transform var(--d-ui) var(--ease-out)}.r-toggle[aria-expanded=true] .chev{transform:rotate(90deg)}@media(hover:hover)and (pointer:fine){.r-toggle:hover{color:var(--ink);background:#1c1b190d}}.case-chip[aria-current=true]{color:var(--ink);background:var(--sheet);border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}@media(hover:hover)and (pointer:fine){.case-chip:hover{color:var(--ink);border-color:var(--line-strong)}}@media(pointer:coarse){.case-chip{min-height:40px}}.case-detail{min-width:0;background:var(--sheet);border:1px solid var(--line);border-radius:12px;padding:14px 16px 16px}.cd-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.comp-panel .cd-id,.cd-id{margin:0;font-family:var(--mono);font-weight:600;font-size:.9375rem;letter-spacing:0}.cd-grid{margin:10px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cd-grid>div{min-width:0}.cd-grid dt{font-size:.8125rem;font-weight:650;color:var(--ink-2);letter-spacing:.01em}.cd-grid dd{margin:2px 0 0;min-width:0}.cd-input{grid-column:1 / -1;display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px}.cd-input dd{margin:0}.cd-input code{font-size:.9375rem;color:var(--ink);overflow-wrap:anywhere}.cd-full{grid-column:1 / -1}.cd-val{border-radius:10px;padding:7px 12px 9px;background:var(--sunk)}.cd-val output{display:block;font-family:var(--mono);font-size:1.375rem;line-height:1.3;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.cd-val.is-got output{color:var(--fail)}.cd-val.is-got.is-ok output{color:var(--pass)}.cd-grid.is-stacked{grid-template-columns:minmax(0,1fr)}.cd-error{margin:0;padding:10px 12px;border-radius:10px;background:var(--fail-soft);font-family:var(--mono);font-size:.875rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.is-clamped{max-height:6em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 62%,transparent);mask-image:linear-gradient(#000 62%,transparent)}.cd-val output.is-long{font-size:.875rem;font-weight:500;line-height:1.5}.is-clamped.is-open{max-height:none;-webkit-mask-image:none;mask-image:none}.cd-grid dt:has(.more){display:flex;align-items:center;justify-content:space-between;gap:8px}.more{--kh: 28px;margin:-4px -8px -4px 0;padding:0 8px;font-size:.8125rem}@media(pointer:coarse){.more{--kh: 40px;margin-block:-10px}}.cd-guide{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.cd-guide .label{display:block;color:var(--ink);margin-bottom:2px}.comp-panel .cd-guide p,.cd-guide p{font-size:.9375rem;line-height:1.5;color:var(--ink-2)}.cd-actions{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}.cd-trace{margin-top:12px;padding:12px 0 10px;background:var(--paper);border:1px solid var(--line);border-radius:12px}.comp-panel .cd-trace-note,.cd-trace-note{font-size:.8125rem;color:var(--ink-3);text-align:center;padding:0 12px}.cd-trace .step-status{text-align:center;padding:0 12px;font-size:.875rem}.solved{margin:0 0 12px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 14px;align-items:center;padding:16px;border-radius:14px;background:var(--sheet);border:1px solid #b7dcc5}.solved.is-in{animation:rise calc(.32s * var(--m)) var(--ease-out) both}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.solved-mark{width:44px;height:44px;border-radius:50%;background:var(--pass);display:grid;place-items:center}.solved-mark svg{width:24px;height:24px;stroke:#fff;stroke-width:2.6;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:26;stroke-dashoffset:26}.solved.is-in .solved-mark svg{animation:draw calc(.42s * var(--m)) var(--ease-out) calc(.16s * var(--m)) forwards}.solved:not(.is-in) .solved-mark svg{stroke-dashoffset:0}@keyframes draw{to{stroke-dashoffset:0}}.comp-panel .solved h3,.solved h3{font-size:1.0625rem}.comp-panel .solved p,.solved p{font-size:.9375rem;color:var(--ink-2)}.solved .key{grid-column:1 / -1;justify-self:start}.desk{min-width:0;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.editor-mod{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden}.editor-head{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;min-height:41px;padding:6px 12px 6px 16px;border-bottom:1px solid var(--line);font-size:.875rem}.file{font-family:var(--mono);font-weight:600;font-size:.875rem}.save{display:inline-flex;align-items:center;gap:6px;color:var(--ink-3);font-size:.8125rem;font-weight:600}.save[data-tone=warn]{color:var(--caution)}.save[data-tone=saving]:before{content:"";width:6px;height:6px;border-radius:50%;background:#a8a398}.editor-help{margin-left:auto;font-size:.8125rem;color:var(--ink-3)}.editor-help kbd{font-size:.78rem;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:0 4px;background:var(--sheet);color:var(--ink-2)}.code{position:relative;min-height:0;background:var(--code-bg)}.code .editor{height:100%}.editor-accessible{display:flex;flex-direction:column;min-width:0;min-height:0}.editor-options{display:flex;flex-wrap:wrap;gap:8px 16px;padding:8px 12px;background:var(--code-gutter);color:var(--ink-2);font-size:.875rem}.editor-options label{display:inline-flex;align-items:center;gap:6px}.editor-options select{max-width:6rem}.editor-host{flex:1;min-height:0;overflow:hidden}.plain-code-editor{flex:1;min-height:180px;width:100%;max-width:100%;resize:vertical;border:0;padding:14px;font-family:var(--mono);line-height:1.6;background:var(--code-bg);color:var(--ink);overflow:auto}.code .cm-editor{height:100%;background:var(--code-bg);color:var(--ink)}.code .cm-scroller{font-family:var(--mono);line-height:1.6;scrollbar-width:thin;scrollbar-color:#b9b4aa transparent}.code .cm-content{padding:14px 0;caret-color:var(--focus)}.code .cm-line{padding:0 16px 0 14px}.code .cm-gutters{min-width:48px;background:var(--code-gutter);color:var(--code-gutter-ink);border:0}.code .cm-gutter.cm-lineNumbers .cm-gutterElement{min-width:38px;padding:0 10px 0 0;text-align:right;font-variant-numeric:tabular-nums}.code .cm-activeLineGutter{background:transparent;color:var(--ink);font-weight:600}.code .cm-activeLine{background:transparent}.code .cm-editor.cm-focused .cm-activeLine{background:var(--code-current)}.code .cm-cursor{border-left:2px solid var(--focus)}.code .cm-selectionBackground,.code .cm-editor.cm-focused .cm-selectionBackground,.code .cm-content ::selection{background:var(--code-selection)}.code .cm-editor.cm-focused{outline:2px solid var(--focus);outline-offset:-2px}.code .cm-editor[aria-disabled=true] .cm-content,.code .cm-content[aria-disabled=true]{cursor:progress}.tok-kw{color:var(--syn-kw);font-weight:600}.tok-fn{color:var(--syn-fn);font-weight:600}.tok-num{color:var(--syn-num)}.tok-str{color:var(--syn-str)}.tok-com{color:var(--syn-com);font-style:normal}.tok-bi{color:var(--syn-bi)}.strip{position:relative;border-top:1px solid var(--line);background:var(--module)}.strip .activity{position:absolute;left:0;right:0;top:-1px}.strip-row{display:flex;align-items:center;gap:10px;min-height:42px;padding:4px 8px 4px 16px}.strip-status{flex:0 1 auto;display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:.875rem;font-weight:500;color:var(--ink-2)}.strip-status .icon{width:16px;height:16px}.strip-status[data-tone=pass]{flex:none;color:var(--pass);font-weight:650;white-space:nowrap}.strip-status[data-tone=fail]{flex:none;color:var(--fail);font-weight:650;white-space:nowrap}.strip-case{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:.8125rem;color:var(--ink-2)}.strip-view{margin-left:auto;flex:none}.activity{height:2px;position:relative;overflow:hidden;background:transparent}.activity.is-on{background:var(--line)}.activity.is-on:after{content:"";position:absolute;inset:0;width:30%;background:var(--key);animation:sweep calc(1.1s*max(var(--m),1)) linear infinite}.activity.is-static:after{animation:none;width:100%;opacity:.35}@media(prefers-reduced-motion:reduce){.activity.is-on:after{animation:none;width:100%;opacity:.35}}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(340%)}}.runbar{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:var(--module)}.runbar .spacer{flex:1}.run-hint{font-size:.8125rem;color:var(--ink-3)}.runbar .help-key{display:none}.splitter{position:relative;display:grid;place-items:center;cursor:col-resize;touch-action:none;border-radius:6px}.splitter .grip{width:4px;height:36px;border-radius:2px;background:#c3bfb5;transition:background-color var(--d-fast) ease,height var(--d-ui) var(--ease-out)}.splitter:focus-visible{outline-offset:-1px}.splitter:focus-visible .grip,.splitter.is-dragging .grip{background:var(--focus);height:56px}.split-tip{position:absolute;z-index:30;left:calc(100% + 2px);top:calc(50% - 44px);width:max-content;max-width:220px;padding:5px 9px;border-radius:7px;background:var(--key);color:#fff;font-size:.75rem;font-weight:600;line-height:1.35;pointer-events:none;opacity:0;transform:translate(-4px);transition:opacity var(--d-fast) ease,transform var(--d-fast) var(--ease-out)}.splitter:focus-visible .split-tip{opacity:1;transform:none}@media(hover:hover)and (pointer:fine){.splitter:hover .grip{background:var(--ink-3);height:56px}.splitter:hover:not(.is-dragging) .split-tip{opacity:1;transform:none;transition-delay:calc(.5s * var(--m))}}body.is-resizing,body.is-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.page{max-width:760px;margin:0 auto;padding:40px 24px;background:var(--paper);min-height:100dvh}.page h1{font-size:1.75rem;margin-bottom:12px}.page button{margin:12px 0;min-height:40px;padding:0 16px;border-radius:var(--r-key);border:1px solid var(--key-edge);background:var(--sheet);font-weight:600}.page p{font-family:var(--mono);font-size:.875rem}.explain{padding-block:48px 96px}.explain-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);gap:48px;align-items:start}.explain h1{font-size:2.25rem;line-height:1.1;letter-spacing:-.02em}.quote{margin-top:20px;font-size:1.3125rem;line-height:1.5;max-width:46ch}.quote em{font-style:normal;background:linear-gradient(transparent 62%,var(--mark-fill) 62%)}.rehearse{margin-top:28px;list-style:none;padding:0;display:grid;gap:8px;max-width:64ch;counter-reset:r}.rehearse label{display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;align-items:start;padding:12px 14px;border-radius:12px;background:var(--sheet);border:1px solid var(--line);cursor:pointer;font-size:1.0625rem;line-height:1.45;transition:border-color var(--d-fast) ease,background-color var(--d-fast) ease}.rehearse input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--key)}.rehearse label:has(input:checked){border-color:#b7dcc5;background:#f6fbf8}.rehearse label:has(input:checked) span{color:var(--ink-2)}.notes{margin-top:20px;width:100%;max-width:64ch;min-height:120px;padding:12px 14px;border-radius:12px;border:1px solid var(--line-strong);background:var(--sheet);font-size:1rem;line-height:1.5;resize:vertical}.notes:focus-visible{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-soft)}.explain-note{margin-top:12px}.notes-label{display:block;margin-top:24px}.notes-label .muted{font-weight:500}.side-help{font-size:.875rem;margin-top:6px}.disclose--flush{border-top:0}.disclose-inner--flush{padding-left:0;display:grid;gap:8px}.side-card{background:var(--sheet);border:1px solid var(--line);border-radius:16px;padding:18px}.side-card+.side-card{margin-top:12px}.side-card h2{font-size:1rem;margin-bottom:8px}.rubric{display:grid;gap:10px;margin-top:10px}.rubric-row{display:grid;gap:6px}.rubric-row span{font-size:.875rem;color:var(--ink-2)}.seg-ctl{display:inline-flex;background:var(--sunk);border-radius:8px;padding:2px;gap:2px}.seg-ctl button{min-width:38px;min-height:30px;border:0;border-radius:6px;background:transparent;font-weight:650;font-variant-numeric:tabular-nums;color:var(--ink-2)}.seg-ctl button[aria-pressed=true]{background:var(--sheet);color:var(--ink);box-shadow:0 1px 2px #1c1b1924}.scrim{position:fixed;inset:0;background:#1c1b1947;z-index:70;opacity:0;transition:opacity var(--d-sheet) ease}.scrim.is-open{opacity:1;animation:scrimIn var(--d-sheet) ease both}@keyframes scrimIn{0%{opacity:0}}.popover{position:fixed;z-index:80;top:58px;right:16px;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 80px);overflow-y:auto;background:var(--sheet);border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 48px #1c1b1933;padding:18px;transform-origin:top right;transition:opacity var(--d-ui) var(--ease-out),transform var(--d-ui) var(--ease-out)}.popover.is-closed{opacity:0;transform:scale(.96);pointer-events:none}.popover h2{font-size:1.125rem}.pop-lede{font-size:.9375rem;margin-bottom:12px}.pop-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.course-days{display:grid;gap:6px}.course-day{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:8px 10px;border-radius:10px;background:var(--paper)}.course-day[data-here]{background:var(--mark-fill)}.course-day b{font-size:.875rem;font-variant-numeric:tabular-nums}.course-day span{font-size:.875rem;color:var(--ink-2)}::view-transition-old(root),::view-transition-new(root){animation-duration:calc(.16s * var(--m))}::view-transition-group(specimen){animation-duration:calc(.46s * var(--m));animation-timing-function:cubic-bezier(.77,0,.175,1)}::view-transition-old(specimen),::view-transition-new(specimen){animation-duration:calc(.46s * var(--m))}::view-transition-group(puck){animation-duration:calc(.32s * var(--m))}@media(max-width:1180px){.learn-grid{grid-template-columns:minmax(0,1fr) minmax(330px,400px);gap:40px}.bench{--cell: 50px}.today-lower{grid-template-columns:minmax(0,1fr);gap:40px}}@media(min-width:1001px)and (max-width:1180px){.topbar{gap:12px;padding-inline:14px}.brand-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.route-list li+li:before{width:18px}}@media(max-width:1000px){.topbar{grid-template-columns:1fr auto;row-gap:8px}.route{grid-column:1 / -1;grid-row:2;justify-self:stretch}.route-list{justify-content:space-between}.route-list li{flex:1}.route-list li+li:before{flex:1;width:auto;min-width:8px}.today-hero{grid-template-columns:1fr;gap:36px}.today-lower{grid-template-columns:1fr;gap:40px}.learn-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "dock" "prose"}.learn-head{margin-bottom:16px}.bench-dock{position:sticky;top:0;z-index:10;margin:0 -32px;padding:0 16px;background:var(--paper);border-block:1px solid var(--line)}.lsec{scroll-margin-top:calc(var(--dock-h, 0px) + 16px)}.bench-dock .bench-note,.bench-dock .pins{display:none}.bench-card{border:0;border-radius:0;background:transparent;padding:8px 0 10px}.bench{--cell: 46px;--gap: 6px}.bench-stage{padding-top:26px}.bench-readout{min-height:0;margin-top:6px}.eq{font-size:1.125rem}.bench-note{font-size:.8125rem}.bench-foot{display:none}.bench-toggle{display:inline-flex}.bench-dock.is-collapsed .bench-card>:not(.bench-head){display:none}.explain-grid{grid-template-columns:1fr}.p-head{padding:12px 12px 10px 16px;align-items:flex-start}.p-goal{display:block;flex-basis:100%;font-size:.9375rem;line-height:1.45;color:var(--ink-2);max-width:60ch}.work{display:block;padding:0 8px calc(88px + env(safe-area-inset-bottom))}.splitter{display:none}.companion{position:fixed;z-index:75;left:0;right:0;bottom:0;height:min(84dvh,760px);border-radius:18px 18px 0 0;transform:translateY(105%);visibility:hidden;transition:transform var(--d-sheet) var(--ease-drawer),visibility 0s linear var(--d-sheet);box-shadow:0 -12px 40px #1c1b1933}.companion.is-open{transform:translateY(0);visibility:visible;transition:transform var(--d-sheet) var(--ease-drawer),visibility 0s}.companion:before{content:"";position:absolute;left:50%;top:7px;width:40px;height:4px;margin-left:-20px;border-radius:2px;background:#c9c5bb}.comp-head{padding-top:18px}.comp-close{display:inline-grid}.editor-mod{grid-template-rows:auto auto auto auto}.code{height:calc(var(--code-rows, 12) * 24px + 28px)}.results-inline{display:block;margin-top:8px}.results-inline .r-panel{overflow:visible;scrollbar-gutter:auto;background:var(--module);border:1px solid #d9d6ce;border-radius:var(--r-mod);padding:0 16px 18px;scroll-margin-top:8px}.results-inline .r-summary{position:static;margin:0 -16px 12px;padding:14px 16px 10px;border-radius:var(--r-mod) var(--r-mod) 0 0}.results-inline .r-panel:focus-visible{border-radius:var(--r-mod)}.runbar{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #d6d3cb;box-shadow:0 -6px 18px #1c1b1914}.runbar .help-key{display:inline-flex}}@media(max-width:720px){.wrap{padding:0 16px}.topbar{padding:8px 12px 6px}.route-stop{padding:0 6px 0 4px;font-size:.875rem;gap:6px}.today{padding-block:28px 96px}.today-title{font-size:2rem}.today-lede{font-size:1.125rem}.plan{flex-direction:column}.plan-seg{flex-basis:auto;grid-template-columns:1fr auto;align-items:baseline}.today-figure{padding:20px 12px 16px}.today-figure .bench{--cell: 48px;--gap: 6px}.week{grid-template-columns:1fr}.day{min-height:0;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.day-flag{margin-top:0;margin-left:auto}.learn{padding-block:20px 96px}.learn-head h1{font-size:1.875rem}.learn-lede{font-size:1.125rem}.bench-dock{margin:0 -16px}.bench{--cell: 44px;--gap: 5px;--pad: 5px}.cell-v{font-size:1.0625rem;border-radius:8px}.lens{border-radius:12px}.prose{font-size:1.0625rem}.lsec{padding-top:32px}.bench-head{min-height:36px}.bench-title{font-size:.8125rem}.lsec h2{font-size:1.3125rem}.trace-table th,.trace-table td{padding:7px 6px;font-size:.875rem}.p-head{flex-direction:column;align-items:stretch;gap:10px}.p-title h1{font-size:1.1875rem}.p-tools{justify-content:space-between}.work{padding-inline:0}.editor-mod,.results-inline .r-panel{border-radius:0;border-left:0;border-right:0}.results-inline .r-summary{border-radius:0}.editor-help,.runbar .run-hint{display:none}.runbar .key{flex:1 1 auto;padding:0 12px}.runbar .help-key{flex:0 0 auto}#run-examples .icon,#run-check .icon,.runbar.is-busy #run-check{display:none}.strip-row{flex-wrap:wrap;row-gap:0;padding-left:12px}.strip-view{order:2}.strip-case{order:3;flex-basis:100%;padding-bottom:6px}.cd-val output{font-size:1.25rem}.explain{padding-block:28px 96px}.explain h1{font-size:1.875rem}.tool-label,.hk-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.runbar .help-key{padding:0 12px}.popover{inset:auto 0 0;width:100%;border-radius:18px 18px 0 0;max-height:82dvh;transform-origin:bottom center}}@media(max-width:360px){.brand-name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.route-stop{padding:0 4px 0 2px;gap:4px;font-size:.8125rem}.route-list li+li:before{min-width:4px;margin:0 1px}.p-head{padding-inline:12px}.timer{gap:6px;padding-left:10px}}@media(min-width:1001px)and (min-height:850px){body[data-view=practice] .app{height:100dvh}body[data-view=practice] main{min-height:0;overflow:hidden}body[data-view=practice] #view-practice{height:100%}.practice{height:100%;min-height:0}}@media(min-width:1001px)and (max-height:849.98px){body[data-view=practice] .topbar{padding-block:6px}.p-head{padding-block:4px 6px}.work{align-items:start}.companion{overflow:visible}.comp-head{position:sticky;top:8px;z-index:4;background:var(--module);border-radius:var(--r-mod) var(--r-mod) 0 0;box-shadow:0 -9px 0 1px var(--chassis)}.comp-body{display:block}.comp-body:before,.comp-body:after{display:none}.comp-panel{overflow:visible;scrollbar-gutter:auto;padding-right:18px}.r-summary{position:static;margin-right:-18px}.desk,.splitter{position:sticky;top:8px;height:max(340px,calc(100dvh - 104px))}}.learning-nav{display:flex;flex-wrap:wrap;gap:8px;padding:8px 24px;border-bottom:1px solid var(--line)}.learning-panel{padding:24px 0;border-top:1px solid var(--line);margin-top:24px}.learning-list{padding-left:24px}.learning-list>li{margin-block:16px}.learning-warning{margin:16px 24px;flex-wrap:wrap}.learning-workspace-context{padding:12px 24px}.learning-fieldset{border:0;margin:0;padding:0;min-width:0}.confidence{border:0;padding:8px 0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.confidence legend{margin-bottom:8px}.learning-panel fieldset{display:grid;gap:12px;border:1px solid var(--line);padding:16px;min-width:0}.learning-panel label{display:block;margin-block:8px}.learning-panel input[type=number]{width:6em}.learning-panel input,.learning-panel select{font:inherit;max-width:100%}.learning-panel details{padding:16px 0;border-top:1px solid var(--line)}.learning-panel summary{cursor:pointer}.learning-panel pre{white-space:pre-wrap;overflow-wrap:anywhere}.evidence{display:grid;grid-template-columns:minmax(130px,1fr) 2fr;gap:8px 20px}.evidence dd{margin:0}@media(max-width:600px){.learning-nav,.learning-workspace-context{padding-inline:16px}.learning-warning{margin-inline:16px}.evidence{grid-template-columns:1fr}.learning-panel .ref-actions{flex-wrap:wrap}}.learning-panel p+p,.learning-panel h2+p{margin-top:8px}.learning-panel .key{white-space:normal;height:auto;min-height:34px;padding-block:6px}.exercise-selection{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 16px}.exercise-selection select{max-width:100%;min-width:0;font:inherit;color:var(--ink);background:var(--sheet);border:1px solid var(--line);border-radius:6px;padding:6px}.course-day ul{grid-column:2 / -1;list-style:none;margin:0;padding:0;display:grid;gap:6px}.course-day li,.course-day button{min-width:0;max-width:100%;white-space:normal}.session-tools{min-width:0}.exercise-selection{min-width:0;max-width:100%}.exercise-selection select{width:min(560px,100%)}.mock-reading{max-width:960px}.mock-status{display:flex;flex-wrap:wrap;gap:12px 24px;padding:16px 0;font-variant-numeric:tabular-nums}.mock-editor .editor{min-height:280px;height:auto;margin:16px 0}.mock-editor .cm-scroller{overflow:visible}.mock-reading fieldset{display:flex;flex-wrap:wrap;gap:16px;margin:16px 0}.mock-reading input[type=number]{width:6em}.mock-reading .ref-actions{flex-wrap:wrap}.mock-reading .code-block{white-space:pre-wrap;overflow-wrap:anywhere}.mock-debrief-task{border-top:1px solid var(--line);padding:24px 0}.mock-reading details{margin:16px 0}.mock-reading summary{cursor:pointer}@media(max-width:600px){.mock-reading{padding-inline:20px}.mock-reading .ref-actions .key{white-space:normal;height:auto;min-height:44px}.learning-nav{flex-wrap:wrap}}
