@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;--m: 1;--paper: #f7f6f2;--surface: #ffffff;--sunk: #f0eee8;--line: #e1ded5;--line-strong: #8a8578;--ink: #1c1a26;--ink-2: #464353;--ink-3: #65616f;--accent: #3b3aae;--accent-strong: #2c2b8c;--accent-soft: #ebeafb;--accent-line: #c9c7f1;--focus: #1b5fd6;--mark: #f2b134;--mark-soft: #fdf1d6;--mark-ink: #7a5300;--recovery: #0b6a65;--recovery-soft: #dcf1ee;--algorithm: #5a45c2;--algorithm-soft: #ece8fc;--data: #a5481f;--data-soft: #fae6dc;--pass: #1c7748;--pass-soft: #e1f2e8;--fail: #b2352a;--fail-soft: #fbe6e1;--caution: #8a5800;--caution-soft: #fbefd5;--infra: #3a5a78;--infra-soft: #e5edf5;--enter: var(--pass);--enter-soft: var(--pass-soft);--leave: var(--fail);--leave-soft: var(--fail-soft);--code-bg: #fdfcfa;--code-gutter: #f3f1ec;--code-gutter-ink: #6b675c;--code-current: #fbf5e2;--code-selection: #d3dcf7;--syn-kw: #7a3e9d;--syn-fn: #1f5fa8;--syn-num: #9c4f06;--syn-str: #2e7d32;--syn-com: #6e695f;--syn-bi: #0d6b6b;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Liberation Sans", system-ui, sans-serif;--serif: Charter, "Bitstream Charter", "Sitka Text", Cambria, "Iowan Old Style", "Palatino Linotype", Georgia, serif;--mono: "Source Code Pro", ui-monospace, Menlo, Consolas, "Liberation Mono", monospace;--t-xs: .8125rem;--t-sm: .875rem;--t-ui: .9375rem;--t-base: 1rem;--t-read: 1.125rem;--t-lede: 1.1875rem;--t-h4: 1rem;--t-h3: 1.125rem;--t-h2: 1.375rem;--t-h1: 2rem;--t-display: 2.5rem;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--gutter: clamp(16px, 4vw, 40px);--frame-w: 1200px;--read-w: 46rem;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--shadow-1: 0 1px 2px rgba(28, 26, 38, .06), 0 1px 1px rgba(28, 26, 38, .04);--shadow-2: 0 10px 30px -12px rgba(28, 26, 38, .22), 0 2px 6px rgba(28, 26, 38, .06);--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--d-fast: calc(.14s * var(--m));--d-ui: calc(.2s * var(--m));--d-move: calc(.32s * var(--m));font-family:var(--sans);font-size:100%;line-height:1.5;color:var(--ink);background:var(--paper);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}@media(prefers-reduced-motion:reduce){:root{--m: 0}}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100dvh;background:var(--paper)}h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.012em;text-wrap:balance;color:var(--ink);line-height:1.25}h1{font-size:var(--t-h1);line-height:1.15;letter-spacing:-.02em}h2{font-size:var(--t-h2)}h3{font-size:var(--t-h3)}h4{font-size:var(--t-h4)}h1:focus,h2:focus,h3:focus{outline:none}p,ul,ol,dl,figure,blockquote{margin:0}p{text-wrap:pretty}ul,ol{padding-left:1.3em}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}pre{margin:0}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.18em}@media(hover:hover)and (pointer:fine){a:hover{text-decoration-thickness:2px}}::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}html{scrollbar-color:#b9b4aa transparent}main:focus{outline:none}.frame{width:100%;max-width:calc(var(--frame-w) + 2 * var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}.frame--narrow{max-width:calc(var(--read-w) + 2 * var(--gutter))}.frame--wide{max-width:calc(1360px + 2 * var(--gutter))}.page-body{padding-block:var(--s-6) var(--s-9)}.stack,.stack-2xs,.stack-xs,.stack-s,.stack-m,.stack-l,.stack-xl,.stack-2xl{display:flex;flex-direction:column;min-width:0}.stack{gap:var(--s-4)}.stack-2xs{gap:var(--s-1)}.stack-xs{gap:var(--s-2)}.stack-s{gap:var(--s-3)}.stack-m{gap:var(--s-4)}.stack-l{gap:var(--s-5)}.stack-xl{gap:var(--s-6)}.stack-2xl{gap:var(--s-7)}.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);min-width:0}.cluster--tight{gap:var(--s-1) var(--s-2)}.cluster--loose{gap:var(--s-3) var(--s-4)}.cluster--end{justify-content:flex-end}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3)}.measure{max-width:68ch}.prose{font-family:var(--serif);font-size:var(--t-read);line-height:1.65;color:var(--ink)}.prose>*+*{margin-top:.85em}.prose p,.prose li{max-width:66ch}.prose ul,.prose ol{display:flex;flex-direction:column;gap:.35em}.prose code{font-size:.84em;background:var(--sunk);border-radius:5px;padding:.08em .32em}.prose strong{font-weight:700}.prose h3{font-family:var(--sans);font-size:var(--t-h3);margin-top:1.4em}.sans{font-family:var(--sans)}.lede{font-size:var(--t-lede);line-height:1.55;color:var(--ink-2);max-width:62ch}.meta{font-size:var(--t-sm);color:var(--ink-3);font-variant-numeric:tabular-nums}.hint{font-size:var(--t-sm);color:var(--ink-3);line-height:1.5;max-width:68ch}.muted{color:var(--ink-3)}.label{font-size:var(--t-xs);font-weight:650;color:var(--ink-2);letter-spacing:.01em}.skip-link{position:absolute;left:12px;top:10px;z-index:50;transform:translateY(-160%);background:var(--surface);color:var(--accent);font-weight:650;padding:10px 14px;border-radius:8px;border:2px solid var(--accent);text-decoration:none}.skip-link:focus{transform:none}.shell{position:relative;z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}.shell-inner{display:flex;align-items:center;gap:var(--s-4);min-height:60px}.brand{display:inline-flex;align-items:center;gap:10px;flex:none;font-weight:700;font-size:var(--t-base);letter-spacing:-.01em;color:var(--ink);text-decoration:none}.brand-mark{position:relative;display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--accent)}.brand-mark span{width:10px;height:10px;border-radius:3px;background:var(--mark)}.global-nav{margin-left:auto;min-width:0}.global-nav ul{display:flex;gap:2px;margin:0;padding:0;list-style:none}.nav-item{position:relative;display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 12px;border-radius:var(--r-md);color:var(--ink-2);font-size:var(--t-ui);font-weight:600;text-decoration:none;white-space:nowrap;transition:background-color var(--d-fast) ease,color var(--d-fast) ease}.nav-item .icon{width:18px;height:18px}.nav-item[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong)}@media(hover:hover)and (pointer:fine){.nav-item:hover{background:var(--sunk);color:var(--ink);text-decoration:none}.nav-item[aria-current=page]:hover{background:var(--accent-soft);color:var(--accent-strong)}}.nav-narrow{display:none}.nav-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--mark);color:var(--ink);font-size:var(--t-xs);font-weight:700;font-variant-numeric:tabular-nums}.global-notice{padding-top:var(--s-3)}.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-md);border:1px solid #c9c5bb;background:var(--surface);color:var(--ink);font-size:var(--t-ui);font-weight:600;line-height:1.15;text-decoration:none;white-space:nowrap;box-shadow:var(--shadow-1);transition:background-color var(--d-fast) ease,border-color var(--d-fast) ease,color var(--d-fast) ease,transform var(--d-fast) ease}.key .icon{width:17px;height:17px}@media(pointer:coarse){.key{--kh: 44px}}@media(hover:hover)and (pointer:fine){.key:hover{background:#f6f5f1;border-color:#b4afa4;text-decoration:none}}.key:active:not(:disabled){transform:translateY(1px)}.key--primary{background:var(--accent);border-color:var(--accent-strong);color:#fff}@media(hover:hover)and (pointer:fine){.key--primary:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}}.key--quiet{background:transparent;border-color:transparent;box-shadow:none;color:var(--ink-2);padding:0 10px}@media(hover:hover)and (pointer:fine){.key--quiet:hover{background:var(--sunk);border-color:transparent;color:var(--ink)}}.key--stop{border-color:var(--fail);color:var(--fail)}.key--sm{--kh: 34px;padding:0 12px;font-size:var(--t-sm);border-radius:8px}.key--lg{--kh: 48px;padding:0 22px;font-size:var(--t-base);border-radius:12px}.key:disabled,.key[aria-disabled=true]{background:var(--sunk);color:#7d786e;border-color:var(--line);box-shadow:none;cursor:not-allowed}.link-button{display:inline;padding:0;border:0;background:none;color:var(--accent);font:inherit;text-align:left;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}.link-button:disabled{color:var(--ink-3);text-decoration:none;cursor:not-allowed}.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:var(--sunk)}}.arrow-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;text-decoration:none}.arrow-link .icon{width:16px;height:16px;transition:transform var(--d-fast) var(--ease-out)}@media(hover:hover)and (pointer:fine){.arrow-link:hover .icon{transform:translate(2px)}}.kind{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-sm);font-weight:600;color:var(--ink)}.kind .icon{width:16px;height:16px;color:var(--ink-2)}.topic{display:inline-flex;align-items:center;gap:7px;font-size:var(--t-sm);font-weight:600;color:var(--ink-2);text-decoration:none}.topic:before{content:"";width:9px;height:9px;border-radius:3px;background:var(--track, var(--ink-3));flex:none}[data-track=recovery]{--track: var(--recovery);--track-soft: var(--recovery-soft)}[data-track=algorithm]{--track: var(--algorithm);--track-soft: var(--algorithm-soft)}[data-track=data]{--track: var(--data);--track-soft: var(--data-soft)}.level{font-size:var(--t-sm);color:var(--ink-2)}.level b{font-weight:600;color:var(--ink)}.facts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-4)}.status{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-sm);font-weight:600;color:var(--ink-3);white-space:nowrap}.status .icon{width:16px;height:16px}.status[data-status=in-progress]{color:var(--caution)}.status[data-status=passed],.status[data-status=passed-with-help]{color:var(--pass)}.chip{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:999px;background:var(--sunk);color:var(--ink-2);font-size:var(--t-xs);font-weight:650;line-height:1.45;white-space:nowrap}.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--infra{background:var(--infra-soft);color:var(--infra)}.chip--mark{background:var(--mark-soft);color:var(--mark-ink)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--shadow-1);min-width:0}.card--flat{box-shadow:none}.card--accent{border-color:var(--accent-line);background:linear-gradient(180deg,#f8f8ff,var(--surface) 60%)}.well{background:var(--sunk);border-radius:var(--r-md);padding:var(--s-4)}.rule{border:0;border-top:1px solid var(--line);margin:0}.notice{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--s-2) var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);font-size:var(--t-ui);line-height:1.5;color:var(--ink)}.notice>.icon{margin-top:3px}.notice>div:not(.notice-actions){flex:1 1 260px;min-width:0}.notice>p{flex:1 1 260px}.notice-title{font-weight:650}.notice-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.notice--caution{background:var(--caution-soft);border-color:#ecd9ad}.notice--caution>.icon{color:var(--caution)}.notice--error{background:var(--fail-soft);border-color:#f0c8bf}.notice--error>.icon{color:var(--fail)}.notice--pass{background:var(--pass-soft);border-color:#bfe0cc}.notice--pass>.icon{color:var(--pass)}.notice--infra{background:var(--infra-soft);border-color:#c9d7e6}.notice--infra>.icon{color:var(--infra)}.notice--info{background:var(--accent-soft);border-color:var(--accent-line)}.notice--info>.icon{color:var(--accent)}.field{display:grid;gap:6px;min-width:0}.field-label{font-size:var(--t-sm);font-weight:650;color:var(--ink);line-height:1.4}.field-hint{font-size:var(--t-sm);color:var(--ink-3);line-height:1.5;max-width:68ch}.field-error{font-size:var(--t-sm);color:var(--fail);font-weight:600}.input,.select,.textarea{min-height:42px;padding:0 12px;border-radius:9px;border:1px solid var(--line-strong);background:var(--surface);font-size:var(--t-base);color:var(--ink);transition:border-color var(--d-fast) ease,box-shadow var(--d-fast) ease}.input{font-family:var(--mono);font-variant-numeric:tabular-nums;min-width:7ch}.input--text{font-family:var(--sans)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px #d5e1fa}.input[aria-invalid=true]{border-color:var(--fail)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--sunk);color:var(--ink-3)}.select{padding-right:36px;appearance:none;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23464353' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 14px 14px;font-size:var(--t-ui);max-width:100%;text-overflow:ellipsis}.textarea,.notes{width:100%;min-height:110px;padding:10px 12px;border-radius:9px;border:1px solid var(--line-strong);background:var(--surface);line-height:1.55;resize:vertical}.notes:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px #d5e1fa}.check-row{display:flex;align-items:flex-start;gap:10px;font-size:var(--t-ui);line-height:1.45;color:var(--ink);cursor:pointer}.check-row input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent);flex:none}.check-group{border:0;margin:0;padding:0;display:grid;gap:var(--s-2);min-width:0}.check-group legend{padding:0;margin-bottom:var(--s-2);font-size:var(--t-sm);font-weight:650;color:var(--ink)}.choice{border:0;margin:0;padding:0;min-width:0;display:grid;gap:var(--s-2)}.choice legend{padding:0;margin-bottom:var(--s-2);font-size:var(--t-sm);font-weight:650;color:var(--ink)}.choice-options{display:flex;flex-wrap:wrap;gap:6px}.choice-option{position:relative;display:inline-flex}.choice-option input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.choice-option>span{display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-size:var(--t-sm);font-weight:600;color:var(--ink-2);white-space:nowrap;transition:background-color var(--d-fast) ease,color var(--d-fast) ease,border-color var(--d-fast) ease}.choice-option input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff}.choice-option input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.choice-count{margin-left:2px;font-weight:500;opacity:.75;font-variant-numeric:tabular-nums}.choice:disabled .choice-option>span{opacity:.6;cursor:not-allowed}.segmented{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:11px;background:var(--sunk)}.segmented button{min-height:36px;padding:0 14px;border:0;border-radius:8px;background:transparent;font-size:var(--t-ui);font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;transition:background-color var(--d-fast) ease,color var(--d-fast) ease,box-shadow var(--d-fast) ease}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--accent-strong);box-shadow:0 1px 2px #1c1a2624,0 0 0 1px #3b3aae33}.segmented button:disabled{cursor:not-allowed;opacity:.6}.disclose{border-top:1px solid var(--line)}.disclose>button{display:flex;width:100%;align-items:center;gap:10px;min-height:44px;padding:10px 0;border:0;background:none;text-align:left;font-weight:650;font-size:var(--t-ui);color:var(--ink)}.disclose>button>.icon{width:16px;height:16px;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 var(--s-4) 26px;color:var(--ink-2);display:grid;gap:var(--s-3)}.disclose--section>button{font-size:var(--t-h3);min-height:52px}.disclose--plain{border-top:0}.disclose--plain>button{min-height:36px;padding:6px 0;color:var(--accent)}.disclose--plain>button>.icon{color:var(--accent)}.code-block{padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--code-bg);border:1px solid var(--line);overflow-x:auto;font-size:.875rem;line-height:1.6;white-space:pre;color:var(--ink)}.code-block--wrap{white-space:pre-wrap;overflow-wrap:anywhere}.inline-code{background:var(--sunk);border-radius:5px;padding:.08em .32em;font-size:.88em}.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)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;font-size:var(--t-sm);font-variant-numeric:tabular-nums;min-width:100%}.table caption{text-align:left;font-size:var(--t-xs);font-weight:650;color:var(--ink-3);padding-bottom:var(--s-2)}.table th,.table td{text-align:left;padding:8px 14px 8px 0;border-bottom:1px solid var(--line);vertical-align:top}.table thead th{font-weight:650;color:var(--ink-2);border-bottom-color:var(--line-strong)}.table td.mono,.table .mono{font-family:var(--mono)}.table tr[aria-current=step]>*{background:var(--mark-soft)}.loading-block{display:grid;gap:var(--s-3);padding-block:var(--s-6)}.loading-text{color:var(--ink-2);font-weight:600}.skeleton{display:block;border-radius:8px;background:linear-gradient(90deg,var(--sunk),#f6f5f0,var(--sunk))}.skeleton--title{height:34px;width:min(420px,70%)}.skeleton--line{height:14px;width:min(640px,90%)}.skeleton--short{width:min(340px,55%)}.skeleton--panel{height:220px;border-radius:var(--r-lg)}.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(--accent);animation:sweep calc(1.1s*max(var(--m),1)) linear infinite}@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%)}}.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;margin:0;padding:0;list-style:none;font-size:var(--t-sm);color:var(--ink-3)}.crumbs li{display:inline-flex;align-items:center;gap:6px;min-width:0}.crumbs li+li:before{content:"/";color:var(--line-strong)}.crumbs a{color:var(--ink-2);text-decoration:none;font-weight:600}@media(hover:hover)and (pointer:fine){.crumbs a:hover{color:var(--accent);text-decoration:underline}}.crumbs [aria-current=page]{color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:40ch}.page-head{display:grid;gap:var(--s-3)}.page-head h1{max-width:30ch}.pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);padding-top:var(--s-4);border-top:1px solid var(--line)}.pager-pages{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none}.pager-pages a{display:inline-grid;place-items:center;min-width:36px;height:36px;padding:0 8px;border-radius:8px;color:var(--ink-2);font-weight:600;text-decoration:none;font-variant-numeric:tabular-nums}.pager-pages a[aria-current=page]{background:var(--accent);color:#fff}@media(hover:hover)and (pointer:fine){.pager-pages a:not([aria-current]):hover{background:var(--sunk)}}@media(max-width:760px){:root{--t-h1: 1.75rem;--t-display: 2rem;--t-read: 1.0625rem}.shell-inner{flex-wrap:wrap;gap:0;padding-block:6px 0}.brand{min-height:44px}.global-nav{margin-left:0;width:100%;overflow-x:auto;scrollbar-width:none}.global-nav ul{padding-bottom:6px}.global-nav ul{justify-content:space-between}.nav-item{flex-direction:column;justify-content:center;gap:2px;min-height:48px;padding:4px 8px;font-size:var(--t-xs)}.nav-wide{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.nav-narrow{display:inline}.nav-count{position:absolute;top:0;right:0;min-width:18px;height:18px;padding:0 5px}.page-body{padding-block:var(--s-5) var(--s-8)}.card{padding:var(--s-4)}.actions .key--lg{flex:1 1 auto}}.boot{min-height:100dvh;display:grid;place-items:center;padding:var(--s-5)}.boot-inner{display:grid;gap:var(--s-4);justify-items:start;max-width:420px}.boot-message{color:var(--ink-2)}.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-md);border:1px solid #c9c5bb;background:var(--surface);font-weight:600}.page p{font-family:var(--mono);font-size:.875rem}.home-hero{display:grid;gap:var(--s-3);padding-bottom:var(--s-6)}.home-hero h1{font-size:var(--t-display);line-height:1.08;letter-spacing:-.025em;max-width:22ch}.home-hero .lede{max-width:64ch}.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--s-7);align-items:start}.home-main,.home-aside{min-width:0}.panel h2{font-size:1.5rem;letter-spacing:-.016em}.start-next{font-size:var(--t-lede);line-height:1.55;color:var(--ink);max-width:60ch}.next-why{font-size:var(--t-base);line-height:1.6;color:var(--ink-2);max-width:62ch}.next-state{display:flex;align-items:flex-start;gap:var(--s-2);font-size:var(--t-ui);color:var(--ink-2);max-width:62ch}.next-state .icon{margin-top:3px;color:var(--pass)}.next-state.is-warning,.next-state.is-warning .icon{color:var(--caution)}.time-choice{border:0;margin:0;padding:0;min-width:0;display:grid;gap:var(--s-3)}.time-choice legend{padding:0;margin-bottom:var(--s-3);font-size:var(--t-base);font-weight:650;color:var(--ink)}.time-other{display:grid;gap:var(--s-2)}.input--short{width:9ch}.how{padding:var(--s-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line)}.loop{list-style:none;margin:0;padding:0;display:grid}.loop-step{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:var(--s-4);align-items:start;padding-bottom:var(--s-5)}.loop-step:last-child{padding-bottom:0}.loop-step h3{font-size:var(--t-base)}.loop-step p{font-size:var(--t-sm);line-height:1.5;color:var(--ink-2);max-width:64ch}.loop-step .loop-kinds{color:var(--accent-strong);font-weight:600}.loop-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--accent-soft);color:var(--accent-strong)}.loop-icon .icon{width:20px;height:20px}.loop-step:not(:last-child):after{content:"";position:absolute;left:19px;top:48px;bottom:8px;width:2px;border-radius:1px;background:var(--accent-line)}.h-small{font-size:var(--t-base);font-weight:700}.way-title{display:flex;align-items:center;gap:var(--s-2);font-weight:650}.way-title .icon{color:var(--accent)}.place-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3)}.place-list li{display:grid;gap:2px}.place-list .arrow-link .icon:first-child{color:var(--accent)}.section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s-2) var(--s-4)}.path{list-style:none;margin:0;padding:0;display:grid;gap:0}.path-row{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);gap:var(--s-3);padding:var(--s-4) 0;border-top:1px solid var(--line)}.path-row:last-child{border-bottom:1px solid var(--line)}.path-mark{display:grid;place-items:center;width:30px;height:30px;margin-top:1px;border-radius:50%;border:2px solid var(--line-strong);background:var(--surface);color:var(--ink-2);font-size:var(--t-xs);font-weight:700;font-variant-numeric:tabular-nums}.path-row.is-next{background:linear-gradient(90deg,var(--accent-soft),transparent 70%);border-radius:var(--r-md);border-top-color:transparent;padding-inline:var(--s-3);margin-inline:calc(-1 * var(--s-3))}.path-row.is-next+.path-row{border-top-color:transparent}.path-row.is-next .path-mark{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 0 0 4px var(--accent-line)}.path-row.is-started .path-mark{border-color:var(--accent);color:var(--accent-strong)}.path-row.is-done .path-mark{border-color:var(--pass);background:var(--pass);color:#fff}.path-row.is-done .path-mark .icon{width:15px;height:15px;stroke-width:2.6}.path-row.is-done .path-title{color:var(--ink-2)}.path-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--s-1) var(--s-4)}.path-title{font-size:var(--t-base);font-weight:650;line-height:1.35}.path-summary{font-size:var(--t-sm);color:var(--ink-2);line-height:1.5;max-width:64ch}.path-note{font-size:var(--t-sm);color:var(--ink-2);background:var(--sunk);border-radius:8px;padding:var(--s-2) var(--s-3);max-width:64ch}.path-row .actions{padding-top:var(--s-2)}.path-state{font-size:var(--t-xs);font-weight:700;padding:1px 8px;border-radius:999px}.path-state.is-next{background:var(--accent);color:#fff}.path-state.is-started{background:var(--accent-soft);color:var(--accent-strong)}.path-state.is-done{background:var(--pass-soft);color:var(--pass)}.adjust>.disclose{border-top:1px solid var(--line-strong)}.time-bar{margin:0 0 var(--s-3)}.time-bar-track{display:flex;height:10px;border-radius:999px;overflow:hidden;gap:2px}.time-seg--review{background:var(--recovery)}.time-seg--concepts-drills{background:var(--algorithm)}.time-seg--substantial{background:var(--accent)}.time-seg--explanation-debrief{background:var(--mark)}.time-seg--reflection-planning{background:var(--data)}.time-legend{list-style:none;margin:var(--s-2) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-4);font-size:var(--t-sm);color:var(--ink-2)}.time-swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.week-list{list-style:none;margin:0;padding:0}.week-day .disclose>button{align-items:flex-start;min-height:0;padding:var(--s-3) 0}.week-day.is-here .wd-n{color:var(--accent-strong)}.wd-label{display:grid;gap:2px;font-weight:500}.wd-n{display:inline-flex;align-items:center;gap:var(--s-2);font-weight:700}.wd-here{font-size:var(--t-xs);font-weight:700;padding:0 8px;border-radius:999px;background:var(--mark);color:var(--ink)}.wd-topics{font-size:var(--t-sm);color:var(--ink-2)}.wd-progress{font-size:var(--t-xs);color:var(--pass);font-weight:650}.wd-items{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2);font-size:var(--t-sm)}.course-head{padding-bottom:var(--s-5);max-width:var(--read-w)}.course-body{max-width:var(--read-w)}.course-foot{margin-top:var(--s-7);max-width:var(--read-w)}.reading-time{font-size:var(--t-xs);font-weight:650;color:var(--ink-3);margin-bottom:var(--s-1)}.reading-part+.reading-part{margin-top:var(--s-5)}.check-question{display:grid;gap:var(--s-2)}.check-question .notes{min-height:96px}.link-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}.plain-list{margin:0;padding-left:1.2em;display:grid;gap:var(--s-2);font-size:var(--t-ui);color:var(--ink-2)}.warm-up{display:grid;gap:var(--s-5)}.warm-up h2{font-size:var(--t-h2)}.warm-up-intro{font-family:var(--serif);font-size:var(--t-read);line-height:1.65;max-width:66ch}.trace{display:grid;gap:var(--s-4);padding:var(--s-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);min-width:0}.trace-head{display:grid;gap:2px}.trace-n{font-size:var(--t-xs);font-weight:700;color:var(--accent-strong)}.trace-head h3{font-size:var(--t-h3)}.trace-idea{font-size:var(--t-ui);color:var(--ink-2)}.trace-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--s-3);align-items:start}.trace-figure{margin:0;min-width:0;display:grid;gap:var(--s-1)}.trace-figure figcaption,.wu-table caption{font-size:var(--t-xs);font-weight:650;color:var(--ink-3);text-align:left}.trace-figure--state .code-block{background:var(--mark-soft);border-color:#f0dca9;white-space:pre-wrap}.trace-answer{display:grid;gap:var(--s-3)}.trace-field{display:grid;gap:6px;max-width:36ch}.trace-field .input{width:100%}.mono,.mono-pill{font-family:var(--mono)}.choice-option>.mono-pill{font-weight:500}.trace-feedback:empty{display:none}.trace-result{display:block;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);font-size:var(--t-ui);line-height:1.55;max-width:72ch}.trace-result.is-correct{background:var(--pass-soft)}.trace-result.is-wrong{background:var(--caution-soft)}.trace-result .chip{margin-right:var(--s-1);background:var(--surface)}.trace-disclose .disclose-inner{padding-left:0;color:var(--ink)}.wu-table-wrap{overflow-x:auto}.wu-table{border-collapse:collapse;font-size:var(--t-sm);font-variant-numeric:tabular-nums;min-width:100%}.wu-table th,.wu-table td{text-align:left;padding:7px 14px 7px 0;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap}.wu-table thead th{font-weight:650;color:var(--ink-2);white-space:normal}.wu-table tbody th{font-weight:600;color:var(--ink-2)}.wu-table tbody tr:last-child td:last-child{font-weight:700;color:var(--ink)}.trace-printed{display:grid;gap:var(--s-1)}.trace-follow{display:grid;gap:var(--s-1);background:var(--sunk);border-radius:var(--r-md);padding:var(--s-3) var(--s-4) var(--s-1)}.trace-follow .disclose{border-top:0}.lib-search{position:relative;display:flex;gap:var(--s-2);max-width:760px}.lib-search .input{flex:1 1 auto;min-width:0}.lib-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-3);pointer-events:none;display:grid}.input--search{padding-left:40px;height:46px;font-size:var(--t-base)}.lib-resume{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-4)}.track-title{display:flex;align-items:center;gap:var(--s-3)}.track-title:before{content:"";width:14px;height:14px;border-radius:4px;background:var(--track)}.topic-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s-4)}.topic-card{position:relative;display:grid;gap:var(--s-3);align-content:start;padding:var(--s-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--track);box-shadow:var(--shadow-1);transition:box-shadow var(--d-fast) ease,transform var(--d-fast) ease}.topic-card h3{font-size:var(--t-h3)}.topic-card-link{color:var(--ink);text-decoration:none}.topic-card-link:after{content:"";position:absolute;inset:0;border-radius:inherit}.topic-card-link:focus-visible{outline:none}.topic-card:has(.topic-card-link:focus-visible){outline:2px solid var(--focus);outline-offset:2px}@media(hover:hover)and (pointer:fine){.topic-card:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.topic-card:hover .topic-card-link{color:var(--accent-strong)}}.topic-grid--single{grid-template-columns:minmax(0,1fr)}@media(min-width:761px){.topic-grid--single .topic-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"title example" "about example" "meta example" "progress example";column-gap:var(--s-6);grid-template-rows:auto auto auto 1fr}.topic-grid--single .topic-card h3{grid-area:title}.topic-grid--single .topic-about{grid-area:about}.topic-grid--single .topic-example{grid-area:example;align-self:start}.topic-grid--single .meta{grid-area:meta}.topic-grid--single .topic-progress{grid-area:progress;align-self:start}}.topic-about{font-size:var(--t-sm);color:var(--ink-2);line-height:1.55}.topic-example{font-size:var(--t-sm);line-height:1.5;color:var(--ink);background:var(--track-soft, var(--sunk));border-radius:var(--r-sm);padding:var(--s-2) var(--s-3);max-width:70ch}.topic-example .label{display:block;color:var(--track, var(--ink-2));margin-bottom:2px}.topic-progress{display:flex;align-items:center;gap:var(--s-2)}.bar{flex:1 1 auto;height:6px;border-radius:999px;background:var(--sunk);overflow:hidden}.bar>span{display:block;height:100%;background:var(--track, var(--accent));border-radius:inherit}.topic-heading{display:flex;align-items:center;gap:var(--s-3)}.topic-heading:before{content:"";width:16px;height:16px;border-radius:5px;background:var(--track);flex:none}.lib-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:var(--s-6);align-items:start}.lib-filters{position:sticky;top:var(--s-4)}.lib-filters .lib-search{flex-direction:column}.lib-filters .lib-search .key{align-self:flex-start}.lib-filters .lib-search-icon{top:23px}.lib-count{font-size:var(--t-sm);font-weight:650;color:var(--ink-2)}.ex-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3)}.ex-row{position:relative;display:grid;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--track);box-shadow:var(--shadow-1);transition:box-shadow var(--d-fast) ease}@media(hover:hover)and (pointer:fine){.ex-row:hover{box-shadow:var(--shadow-2)}.ex-row:hover .ex-row-link{color:var(--accent-strong);text-decoration:underline}}.ex-row-title{font-size:var(--t-base);line-height:1.35}.ex-row-link{color:var(--ink);text-decoration:none}.ex-row-link:after{content:"";position:absolute;inset:0;border-radius:inherit}.ex-row-link:focus-visible{outline:none}.ex-row:has(.ex-row-link:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.ex-row-write{font-size:var(--t-sm);color:var(--ink-2);overflow-wrap:anywhere}.ex-row-write code{font-size:.875rem;color:var(--ink)}.ex-row-goal{font-size:var(--t-sm);color:var(--ink-2);line-height:1.5;max-width:72ch}.ex-row-facts{position:relative}.ex-head{background:var(--surface);border-bottom:1px solid var(--line);padding-top:var(--s-5);box-shadow:inset 0 4px 0 var(--track, var(--accent))}.ex-head h1{font-size:var(--t-h1);max-width:32ch}.back-link{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-sm);font-weight:600;text-decoration:none}.back-link .icon{width:15px;height:15px}.ex-nav{justify-content:space-between}.stage-nav{margin-top:var(--s-2)}.stage-nav ol{list-style:none;margin:0;padding:0;display:flex;gap:var(--s-1);overflow-x:auto;scrollbar-width:none}.stage-link{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4) var(--s-3) var(--s-2);border-bottom:3px solid transparent;color:var(--ink-2);text-decoration:none;white-space:nowrap}.stage-n{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--sunk);color:var(--ink-2);font-size:var(--t-xs);font-weight:700;flex:none}.stage-n .icon{width:14px;height:14px;stroke-width:2.6}.stage-text{display:grid;line-height:1.25}.stage-name{font-weight:650;font-size:var(--t-ui);color:var(--ink)}.stage-sub{font-size:var(--t-xs);color:var(--ink-3)}.stage-link[aria-current=page]{border-bottom-color:var(--accent)}.stage-link[aria-current=page] .stage-n{background:var(--accent);color:#fff}.stage-link[aria-current=page] .stage-name{color:var(--accent-strong)}@media(hover:hover)and (pointer:fine){.stage-link:not([aria-current=page]):hover{border-bottom-color:var(--line-strong);text-decoration:none}}.practice-notices{margin-bottom:var(--s-5)}.practice-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5);align-items:start}@media(min-width:1180px){.practice-grid{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:var(--s-6)}.practice-bench{position:sticky;top:var(--s-4);height:calc(100dvh - 2 * var(--s-4));min-height:560px}.practice-bench .bench{height:100%;display:flex;flex-direction:column;overflow:hidden}.practice-bench .editor-frame{flex:1 1 0;min-height:220px;display:flex;flex-direction:column}.practice-bench .code{flex:1 1 0;min-height:0}.practice-bench .results{flex:0 1 auto;max-height:48%;overflow-y:auto;scrollbar-width:thin}}.task-statement{font-size:var(--t-lede);line-height:1.55;color:var(--ink);max-width:64ch}.write-this{display:grid;gap:var(--s-1);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--accent-soft);border:1px solid var(--accent-line)}.write-this .label{color:var(--accent-strong)}.sig{font-size:1rem;color:var(--ink);overflow-wrap:anywhere}.examples{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3)}.example dl{display:grid;gap:var(--s-1);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--code-bg);border:1px solid var(--line);margin:0}.example dl>div{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:var(--s-3);align-items:baseline}.example dt{font-size:var(--t-xs);font-weight:700;color:var(--ink-3)}.example dd{margin:0;min-width:0;overflow-wrap:anywhere}.example dd code{font-size:.875rem}.example-why dd{font-size:var(--t-sm);color:var(--ink-2);line-height:1.5}.rules{margin:0;padding-left:1.2em;display:grid;gap:var(--s-2);font-size:var(--t-ui);color:var(--ink-2);line-height:1.55}.rules li{max-width:72ch}.before-start{padding-top:var(--s-4);border-top:1px solid var(--line)}.confidence{border:0;margin:0;padding:0;min-width:0;display:grid;gap:var(--s-2)}.confidence legend{padding:0;margin-bottom:var(--s-2);font-size:var(--t-sm);font-weight:650;color:var(--ink)}.confidence-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3)}.bench{padding:0}.bench-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-4);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line)}.bench-title{display:flex;align-items:center;gap:var(--s-2);font-size:var(--t-base)}.bench-title .icon{color:var(--accent)}.timer{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-3);font-size:var(--t-sm)}.timer-state{color:var(--ink-3);font-weight:600}.timer[data-status=running] .timer-state{color:var(--pass)}.timer[data-status=interrupted] .timer-state{color:var(--caution)}.timer-time{font-family:var(--mono);font-size:1.0625rem;font-weight:700;min-width:5ch}.timer.is-hidden-time .timer-time{color:transparent;text-shadow:0 0 10px rgba(28,26,38,.35);-webkit-user-select:none;user-select:none}.timer-target{color:var(--ink-3)}.timer-actions{display:inline-flex;align-items:center;gap:var(--s-1)}.editor-frame{display:grid;min-width:0;background:var(--code-bg)}.editor-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:6px var(--s-4);background:var(--code-gutter);border-bottom:1px solid var(--line);font-size:var(--t-xs)}.file{font-family:var(--mono);color:var(--ink-2);font-weight:600}.save{display:inline-flex;align-items:center;gap:6px;color:var(--ink-3);font-size:var(--t-xs)}.save[data-tone=warn]{color:var(--caution);font-weight:650}.code{position:relative;min-height:0;background:var(--code-bg);height:calc(var(--code-rows, 16) * 1.6em + 28px);font-size:15px}.code .editor{height:100%}.editor-help{padding:6px var(--s-4);font-size:var(--t-xs);color:var(--ink-3);border-top:1px solid var(--line);background:var(--code-gutter)}.editor-help kbd{font-size:.75rem;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:0 4px;background:var(--surface);color:var(--ink-2)}.editor-accessible{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%}.editor-options{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);padding:var(--s-2) var(--s-3);background:var(--code-gutter);color:var(--ink-2);font-size:var(--t-sm)}.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}.code .cm-editor.cm-focused{outline:2px solid var(--focus);outline-offset:-2px}.runbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);padding:var(--s-3) var(--s-4);border-top:1px solid var(--line);background:var(--surface)}.run-note{margin-left:auto;font-size:var(--t-xs);color:var(--ink-3)}.practice-read .help,.practice-help .help{scroll-margin-top:var(--s-4)}.results{padding:var(--s-4);border-top:1px solid var(--line);background:#fbfaf8;scroll-margin-top:var(--s-4)}.results:focus{outline:none}.r-idle{display:grid;gap:var(--s-3)}.r-lead{font-weight:650;color:var(--ink)}.run-guide{display:grid;gap:var(--s-3);margin:0}.run-guide>div{display:grid;gap:2px}.run-guide dt{display:inline-flex;align-items:center;gap:6px;font-weight:650;font-size:var(--t-sm)}.run-guide dt .icon{width:15px;height:15px;color:var(--accent)}.run-guide dd{margin:0;font-size:var(--t-sm);color:var(--ink-2);line-height:1.5;max-width:70ch}.r-summary{display:grid;gap:var(--s-2);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface)}.r-summary.is-pass{background:var(--pass-soft);border-color:#bfe0cc}.r-summary.is-fail,.r-summary.is-error{background:var(--fail-soft);border-color:#f0c8bf}.r-summary.is-infra{background:var(--infra-soft);border-color:#c9d7e6}.r-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-1) var(--s-3)}.r-title{display:inline-flex;align-items:center;gap:var(--s-2);font-weight:700;font-size:var(--t-base)}.is-pass .r-title{color:var(--pass)}.is-fail .r-title,.is-error .r-title{color:var(--fail)}.is-infra .r-title{color:var(--infra)}.r-kind{font-size:var(--t-xs);font-weight:650;color:var(--ink-3)}.r-text{font-size:var(--t-sm);color:var(--ink);line-height:1.55;max-width:70ch}.segs{display:flex;gap:3px}.seg{flex:1 1 0;max-width:28px;height:6px;border-radius:3px;background:#1c1a261f;animation:segIn var(--d-ui) var(--ease-out) both}.seg[data-r=pass]{background:var(--pass)}.seg[data-r=fail]{background:var(--fail)}@keyframes segIn{0%{opacity:0;transform:scaleX(.4)}}@media(prefers-reduced-motion:reduce){.seg{animation:none}}.r-cases{display:grid;gap:var(--s-2)}.r-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.r-glabel{font-size:var(--t-xs);font-weight:700;color:var(--ink-3);margin-right:var(--s-1)}.case-chip{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:0 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-family:var(--mono);font-size:.8125rem;color:var(--ink)}.case-chip .icon{width:14px;height:14px}.case-chip[data-r=pass] .icon{color:var(--pass)}.case-chip[data-r=fail] .icon,.case-chip[data-r=error] .icon{color:var(--fail)}.case-chip[aria-current=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-line);background:var(--accent-soft)}.r-toggle{min-height:32px;padding:0 10px;border:0;background:none;color:var(--accent);font-size:var(--t-sm);font-weight:600}.case-detail{display:grid;gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line)}.cd-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.cd-id{font-family:var(--mono);font-size:var(--t-ui)}.cd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3);margin:0}.cd-grid.is-stacked{grid-template-columns:minmax(0,1fr)}.cd-grid>div{display:grid;gap:var(--s-1);min-width:0}.cd-input,.cd-full{grid-column:1 / -1}.cd-grid dt{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);font-size:var(--t-xs);font-weight:700;color:var(--ink-3)}.cd-grid dd{margin:0;min-width:0}.cd-grid output,.cd-grid code,.cd-error{display:block;font-family:var(--mono);font-size:.8125rem;padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--code-bg);border:1px solid var(--line);overflow-wrap:anywhere;white-space:pre-wrap}.cd-val.is-got output{border-color:#f0c8bf;background:var(--fail-soft)}.cd-val.is-got.is-ok output{border-color:#bfe0cc;background:var(--pass-soft)}.cd-error{max-height:none;color:var(--ink)}.is-clamped:not(.is-open){max-height:9.6em;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent)}.cd-next{display:grid;gap:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--line);font-size:var(--t-sm);line-height:1.5}.cd-trace{display:grid;gap:var(--s-2)}.help-step{display:grid;gap:var(--s-2);padding-top:var(--s-4);border-top:1px solid var(--line)}.help-step-title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);font-weight:650}.help-step-title .icon{color:var(--accent)}.hint-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}.hint-list li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:var(--s-2);align-items:start;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--mark-soft);font-size:var(--t-ui);line-height:1.5}.hint-n{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--mark);color:var(--ink);font-size:var(--t-xs);font-weight:700}.walkthrough{padding:var(--s-4);border-radius:var(--r-md);background:var(--sunk)}.walk-steps{margin:0;padding-left:1.3em;display:grid;gap:var(--s-2);font-size:var(--t-ui);line-height:1.55}.lesson-help-note{display:flex;align-items:flex-start;gap:var(--s-2);max-width:var(--read-w);margin-bottom:var(--s-6);padding:var(--s-2) var(--s-3);border-radius:var(--r-md);background:var(--sunk);font-size:var(--t-sm);color:var(--ink-2)}.lesson-help-note .icon{margin-top:2px;color:var(--accent)}.lesson-layout{display:grid;grid-template-columns:220px minmax(0,var(--read-w));gap:var(--s-7);align-items:start}.lesson-contents{position:sticky;top:var(--s-5);display:grid;gap:var(--s-2)}.lesson-contents ol{list-style:none;margin:0;padding:0;display:grid;gap:2px;border-left:2px solid var(--line)}.lesson-contents button{display:block;width:100%;padding:6px 0 6px var(--s-3);margin-left:-2px;border:0;border-left:2px solid transparent;background:none;text-align:left;font-size:var(--t-sm);color:var(--ink-2);line-height:1.35}.lesson-contents button[aria-current=location]{border-left-color:var(--accent);color:var(--accent-strong);font-weight:650}@media(hover:hover)and (pointer:fine){.lesson-contents button:hover{color:var(--ink)}}.lesson-main{min-width:0}.lesson-main .prose code{overflow-wrap:anywhere}.lesson-title{font-size:1.75rem;letter-spacing:-.02em}.lesson-section{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-4);scroll-margin-top:var(--s-5);min-width:0}.lesson-section>h3{font-size:var(--t-h2)}.lesson-role{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-xs);font-weight:700;color:var(--ink-3);letter-spacing:.01em}.lesson-role .icon{width:15px;height:15px}.is-predict .lesson-role{color:var(--mark-ink)}.is-steps .lesson-role,.is-explore .lesson-role{color:var(--accent-strong)}.is-contrast .lesson-role{color:var(--fail)}.is-idea .lesson-role{color:var(--algorithm)}.is-explain .lesson-role{color:var(--recovery)}.prose .table-wrap{font-family:var(--sans)}.lesson-code{margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-1)}.lesson-note{display:flex;gap:var(--s-2);font-size:var(--t-sm);color:var(--ink-2);background:var(--sunk);border-radius:var(--r-md);padding:var(--s-2) var(--s-3)}.prompt-box{padding:var(--s-4) var(--s-5);border-radius:var(--r-md);background:var(--mark-soft);border-left:4px solid var(--mark)}.explain-prompts{margin:0;padding-left:1.3em;display:grid;gap:var(--s-3)}.lesson-next{margin-top:var(--s-8);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-4);max-width:calc(220px + var(--s-7) + var(--read-w))}.prose--compact{font-size:var(--t-base)}.predict{display:grid;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--mark)}.predict-input{width:12ch}.predict-options .choice-option>span{font-weight:500}.predict-feedback{display:grid;gap:var(--s-2);padding:var(--s-3) var(--s-4);border-radius:var(--r-md)}.predict-feedback.is-right{background:var(--pass-soft)}.predict-feedback.is-wrong{background:var(--caution-soft)}.predict-feedback.is-shown{background:var(--sunk)}.predict-verdict{display:inline-flex;align-items:center;gap:var(--s-2);font-weight:700}.is-right .predict-verdict{color:var(--pass)}.is-wrong .predict-verdict{color:var(--caution)}.viz{margin:0;display:grid;gap:var(--s-4);padding:var(--s-5);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);font-family:var(--sans);min-width:0}.viz-pickers{display:flex;flex-wrap:wrap;gap:var(--s-4) var(--s-6)}.viz-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.viz-count{margin-left:auto}.viz-say{font-size:var(--t-ui);line-height:1.55;color:var(--ink);max-width:72ch;min-height:3.1em}.viz-readout{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-6);margin:0}.viz-readout>div{display:flex;align-items:baseline;gap:var(--s-2)}.viz-readout dt{font-size:var(--t-xs);font-weight:700;color:var(--ink-3)}.viz-readout dd{margin:0;font-family:var(--mono);font-size:.9375rem;font-weight:600}.viz-legend{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-4);font-size:var(--t-xs);color:var(--ink-2)}.lg{display:inline-flex;align-items:center;gap:6px}.lg:before{content:"";width:12px;height:12px;border-radius:50%;border:2px solid var(--line-strong);background:var(--surface)}.lg-frontier:before,.lg-counted:before{background:var(--accent);border-color:var(--accent)}.lg-done:before{background:var(--pass-soft);border-color:var(--pass)}.lg-now:before{background:var(--mark);border-color:var(--ink)}.lg-same:before{border-style:dashed;border-color:var(--mark-ink)}.lg-other:before{background:var(--sunk)}.viz-guess{display:grid;gap:var(--s-2)}.viz-toggle{font-size:var(--t-sm)}.viz .disclose{border-top:1px solid var(--line)}.win-stage{--cell: 56px;--gap: 8px;position:relative;padding:26px 4px 4px;overflow-x:auto}.win-cells{list-style:none;margin:0;padding:0;display:flex;gap:var(--gap)}.win-cell{position:relative;flex:none;display:grid;justify-items:center;gap:4px;width:var(--cell)}.win-v{display:grid;place-items:center;width:var(--cell);height:var(--cell);border-radius:12px;border:1px solid var(--line);background:var(--sunk);font-family:var(--mono);font-size:1.0625rem;font-weight:700;color:var(--ink-3);transition:background-color var(--d-move) ease,color var(--d-move) ease,border-color var(--d-move) ease}.win-cell[data-role=in] .win-v{background:var(--accent-soft);border-color:var(--accent-line);color:var(--ink)}.win-cell[data-role=arrive] .win-v{background:var(--enter-soft);border-color:var(--enter);color:var(--enter)}.win-cell[data-role=leave] .win-v{background:var(--leave-soft);border-color:var(--leave);color:var(--leave);text-decoration:line-through;text-decoration-thickness:2px}.win-i{font-family:var(--mono);font-size:var(--t-xs);color:var(--ink-3)}.win-tag{position:absolute;top:-22px;font-size:var(--t-xs);font-weight:700;white-space:nowrap}.win-cell[data-role=arrive] .win-tag{color:var(--enter)}.win-cell[data-role=leave] .win-tag{color:var(--leave)}.win-frame{position:absolute;top:22px;left:0;width:calc(var(--k) * var(--cell) + (var(--k) - 1) * var(--gap) + 8px);height:calc(var(--cell) + 8px);border:3px solid var(--accent);border-radius:15px;pointer-events:none;transform:translate(calc(var(--start) * (var(--cell) + var(--gap))));transition:transform var(--d-move) var(--ease-out)}.map-table{max-width:560px}.map-table .table th,.map-table .table td{padding:8px 14px}.map-table[data-side=keys] .map-key,.map-table[data-side=values] .map-val{background:var(--accent-soft)}.map-table[data-side=keys] thead .map-key,.map-table[data-side=values] thead .map-val{color:var(--accent-strong)}.map-table tr[data-hit] td{box-shadow:inset 0 -2px 0 var(--mark)}.map-table[data-side=keys] tr[data-hit] .map-key,.map-table[data-side=values] tr[data-hit] .map-val{background:var(--mark-soft);font-weight:700}.map-empty{font-family:var(--sans);font-size:var(--t-xs);color:var(--ink-3)}.map-result{display:grid;gap:var(--s-1)}.map-verdict{display:flex;align-items:flex-start;gap:var(--s-2);font-size:var(--t-ui);padding:var(--s-2) var(--s-3);border-radius:var(--r-md)}.map-verdict .icon{margin-top:3px}.map-verdict.is-right{background:var(--pass-soft)}.map-verdict.is-right .icon{color:var(--pass)}.map-verdict.is-wrong{background:var(--fail-soft)}.map-verdict.is-wrong .icon{color:var(--fail)}.tree-stage{overflow-x:auto;padding:var(--s-2) 0}.tree-stage svg{display:block;margin:0 auto;max-width:none}.tree-edge{stroke:var(--line);stroke-width:2;transition:stroke var(--d-move) ease}.tree-edge[data-state=seen]{stroke:var(--line-strong)}.tree-node circle{fill:var(--surface);stroke:var(--line-strong);stroke-width:2;transition:fill var(--d-move) ease,stroke var(--d-move) ease}.tree-node text{font-family:var(--mono);font-size:15px;font-weight:700;text-anchor:middle;fill:var(--ink-2)}.tree-node[data-state=frontier] circle{fill:var(--accent);stroke:var(--accent-strong)}.tree-node[data-state=frontier] text{fill:#fff}.tree-node[data-state=done] circle{fill:var(--pass-soft);stroke:var(--pass)}.tree-node[data-state=done] text{fill:var(--pass)}.weights-table td,.weights-table th{vertical-align:middle}.weight-input{display:inline-flex;align-items:center;gap:var(--s-2)}.weight-input input[type=range]{width:140px;accent-color:var(--accent)}.weight-input output{min-width:2ch;font-weight:700}.weights-table tfoot th,.weights-table tfoot td{font-weight:700;border-bottom:0}.mean-line{position:relative;height:82px;margin:0 var(--s-6)}.mean-axis{position:absolute;left:0;right:0;top:40px;height:2px;background:var(--line-strong)}.mean-dot{position:absolute;top:41px;width:calc(10px + var(--w, 1) * 4px);height:calc(10px + var(--w, 1) * 4px);border-radius:50%;background:var(--algorithm);opacity:.85;transform:translate(-50%,-50%);transition:width var(--d-move) var(--ease-out),height var(--d-move) var(--ease-out)}.mean-dot[data-zero]{background:var(--surface);border:2px dashed var(--line-strong);opacity:1}.mean-dot-label{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);font-size:var(--t-xs);color:var(--ink-2)}.mean-marker{position:absolute;top:0;transform:translate(-50%);display:grid;justify-items:center;transition:left var(--d-move) var(--ease-out)}.mean-marker span{padding:1px 8px;border-radius:6px;background:var(--mark);color:var(--ink);font-size:var(--t-xs);font-weight:700}.mean-marker:after{content:"";width:2px;height:22px;background:var(--ink)}.stepper{display:inline-flex;align-items:center;gap:var(--s-2)}.stepper output{min-width:2ch;text-align:center;font-weight:700;font-size:var(--t-base)}.time-stage{overflow-x:auto}.time-stage svg{display:block}.time-lane-label{font-family:var(--mono);font-size:14px;font-weight:700;fill:var(--ink-2)}.time-window{fill:var(--accent-soft);stroke:none;transition:x var(--d-move) var(--ease-out),width var(--d-move) var(--ease-out),y var(--d-move) ease}.time-edge--in{stroke:var(--accent);stroke-width:3;transition:x1 var(--d-move) var(--ease-out),x2 var(--d-move) var(--ease-out)}.time-edge--out{stroke:var(--ink);stroke-width:2;stroke-dasharray:5 4;transition:x1 var(--d-move) var(--ease-out),x2 var(--d-move) var(--ease-out)}.time-axis,.time-tick{stroke:var(--line-strong);stroke-width:1.5}.time-tick-label{font-family:var(--mono);font-size:12px;fill:var(--ink-3);text-anchor:middle}.time-event{stroke-width:2;transition:fill var(--d-fast) ease}.time-event[data-role=counted]{fill:var(--accent);stroke:var(--accent-strong)}.time-event[data-role=now]{fill:var(--mark);stroke:var(--ink)}.time-event[data-role=same-time]{fill:var(--surface);stroke:var(--mark-ink);stroke-dasharray:3 2}.time-event[data-role=too-old],.time-event[data-role=later],.time-event[data-role=other-account]{fill:var(--sunk);stroke:var(--line-strong)}.plain-fieldset{border:0;margin:0;padding:0;min-width:0}.explain-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:var(--s-7);align-items:start}.explain-prompt{margin:0;padding:var(--s-4) var(--s-5);border-left:4px solid var(--recovery);background:var(--recovery-soft);border-radius:0 var(--r-md) var(--r-md) 0;font-family:var(--serif);font-size:var(--t-read);line-height:1.6}.explain-steps{gap:var(--s-3)}.rubric{display:grid;gap:var(--s-3)}.rubric-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2);font-size:var(--t-sm)}.count-pill{display:inline-grid;place-items:center;min-width:28px;height:24px;padding:0 8px;margin-left:var(--s-1);border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:var(--t-sm);font-weight:700;vertical-align:3px}.empty-state{color:var(--ink-2)}.review-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3)}.review-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3) var(--s-5)}.review-row h3{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);font-size:var(--t-base)}.evidence{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--s-3);margin:0}.evidence>div{display:grid;gap:2px;padding:var(--s-3);border-radius:var(--r-md);background:var(--sunk)}.evidence dt{font-size:var(--t-xs);font-weight:650;color:var(--ink-3)}.evidence dd{margin:0;font-size:1.375rem;font-weight:700}.history-list{display:grid;gap:var(--s-2)}.history-item{border-top:1px solid var(--line);padding-top:var(--s-2)}.history-item summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-2);align-items:baseline;padding:var(--s-1) 0}.history-title{font-weight:650}.history-body{padding:var(--s-3) 0 var(--s-2)}.preflight{border-top:4px solid var(--accent)}.preflight-facts{display:grid;gap:0;margin:0}.preflight-facts>div{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--s-2) var(--s-5);padding:var(--s-4) 0;border-top:1px solid var(--line)}.preflight-facts>div:first-child{border-top:0;padding-top:0}.preflight-facts dt{display:flex;align-items:flex-start;gap:var(--s-2);font-weight:650}.preflight-facts dt .icon{margin-top:2px;color:var(--accent)}.preflight-facts dd{margin:0;display:grid;gap:var(--s-3);color:var(--ink-2);line-height:1.55;max-width:64ch}.alloc{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5)}.preflight-start{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) var(--s-4);margin-top:var(--s-2);padding-top:var(--s-5);border-top:1px solid var(--line)}.mock-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3) var(--s-5)}.mock-head h1{font-size:1.625rem}.mock-clock{display:grid;justify-items:end}.mock-clock strong{font-family:var(--mono);font-size:2rem;line-height:1.1;color:var(--ink)}.mock-flags{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.mock-status{font-size:var(--t-ui);color:var(--ink-2)}.mock-tasks{max-width:100%}.mock-actions{display:grid;gap:var(--s-2)}.mock-debrief-task{padding-top:var(--s-4);border-top:1px solid var(--line)}@media(max-width:1180px){.explain-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:1080px){.home-grid,.lib-layout{grid-template-columns:minmax(0,1fr)}.lib-filters{position:static}.lesson-layout{grid-template-columns:minmax(0,1fr)}.lesson-contents{position:static;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line)}}@media(max-width:760px){.home-hero h1{font-size:2rem}.how{padding:var(--s-4)}.path-row{grid-template-columns:30px minmax(0,1fr)}.path-mark{width:26px;height:26px}.stage-sub{display:none}.stage-link{padding-inline:var(--s-1) var(--s-3);gap:var(--s-2)}.trace-grid{grid-template-columns:minmax(0,1fr)}.trace{padding:var(--s-4)}.trace-field{max-width:none}.example dl>div{grid-template-columns:minmax(0,1fr);gap:0}.cd-grid{grid-template-columns:minmax(0,1fr)}.viz{padding:var(--s-4)}.win-stage{--cell: 44px;--gap: 6px}.preflight-facts>div{grid-template-columns:minmax(0,1fr)}.mock-clock{justify-items:start}.run-note{margin-left:0;flex-basis:100%}.mean-line{margin:0 var(--s-4)}.weight-input input[type=range]{width:100px}.ex-row{padding:var(--s-4)}.lesson-next{flex-direction:column;align-items:stretch}}
