.article-shell{max-width:calc(var(--measure) + var(--margin-width) + 6rem);margin-inline:auto;padding-inline:clamp(1.25rem,5vw,3rem);position:relative}.article-header{max-width:var(--measure);margin-bottom:var(--sp-8)}.article-header .kicker{margin-bottom:var(--sp-4);display:block}.article-title{letter-spacing:-.018em;margin-bottom:var(--sp-4);font-size:clamp(2rem,4.5vw,2.85rem);font-weight:600;line-height:1.08}.article-title em{font-style:italic}.article-dek{color:var(--color-muted);text-wrap:pretty;font-size:1.375rem;font-weight:400;line-height:1.45}.checkpoint-header{font-family:var(--font-mono);letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--color-muted);text-transform:uppercase;padding:var(--sp-3) 0;margin-top:var(--sp-6);border-top:1px solid var(--color-text);border-bottom:1px solid var(--color-border);max-width:var(--measure);flex-wrap:wrap;align-items:center;gap:.4rem .85rem;font-size:.74rem;display:flex}.checkpoint-header .cp-id{color:var(--color-accent);font-weight:600}.checkpoint-header .cp-sep{color:var(--color-faint)}.progress-rail{display:none}@media (width>=64rem){.progress-rail{width:var(--rail-width);pointer-events:none;height:100%;display:block;position:absolute;top:0;left:0}.progress-rail__inner{pointer-events:auto;position:sticky;top:6rem}.progress-rail ol{border-left:1px dotted var(--color-border-strong);margin:0;margin-left:.5rem;padding:0;list-style:none}.progress-rail li{padding:.1rem 0 .1rem 1rem;line-height:1.3;position:relative}.progress-rail a{font-family:var(--font-mono);color:var(--color-faint);text-overflow:ellipsis;white-space:nowrap;background:0 0;max-width:9rem;font-size:.66rem;transition:color .15s;display:block;overflow:hidden}.progress-rail li:before{content:"";background:var(--bg);border:1px solid var(--color-border-strong);width:.5rem;height:.5rem;transition:background .2s,border-color .2s;position:absolute;top:.42rem;left:-.31rem;transform:rotate(45deg)}.progress-rail li[data-active=true]:before,.progress-rail li[data-passed=true]:before{background:var(--color-accent);border-color:var(--color-accent)}.progress-rail li[data-active=true] a{color:var(--color-text)}}.article-body{position:relative}@media (width>=64rem){.article-body{padding-left:calc(var(--rail-width) + 1.5rem)}}.prose{--gap:clamp(1.25rem, 4vw, 2.5rem);grid-template-columns:[full-start] minmax(0, 1fr) [wide-start] minmax(0, 7rem) [main-start] min(var(--measure), 100%) [main-end] minmax(0, 7rem) [wide-end] minmax(0, 1fr) [full-end];font-size:1.1875rem;line-height:1.65;display:grid}.prose>*{grid-column:main;min-width:0}.prose>.breakout-wide,.prose>figure.breakout-wide,.prose>.expressive-code,.prose>.table-wrap{grid-column:wide}.prose>.breakout-full{grid-column:full}.prose>*+*{margin-top:1.35rem}.prose>h2{margin-top:3rem}.prose>h3{margin-top:2.25rem}.prose>.expressive-code,.prose>figure,.prose>.table-wrap{margin-top:2rem;margin-bottom:2rem}.prose h2{letter-spacing:-.01em;padding-top:.4rem;font-size:1.6rem;line-height:1.2}.prose h2:before{content:"◆";color:var(--color-accent);letter-spacing:0;margin-bottom:.85rem;font-size:.6rem;display:block}.prose h3{font-size:1.25rem;line-height:1.28}.prose h4{font-size:1.0625rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);font-weight:600}.prose :is(h2,h3,h4){position:relative}.heading-anchor{color:var(--color-faint);opacity:0;font-family:var(--font-mono);background:0 0;margin-left:.4em;font-weight:400;text-decoration:none;transition:opacity .15s,color .15s}.prose :is(h2,h3,h4):hover .heading-anchor,.heading-anchor:focus{opacity:1}.heading-anchor:hover{color:var(--color-accent)}.prose p{text-wrap:pretty}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4rem}.prose ul>li::marker{content:"◆  ";color:var(--color-accent);font-size:.7em}.prose ol>li::marker{color:var(--color-faint);font-family:var(--font-mono);font-size:.85em}.prose :is(h2,h3)+*{margin-top:1rem}.prose strong{font-weight:600}.prose em{font-style:italic}.prose abbr{border-bottom:1px dotted var(--color-border-strong);cursor:help;text-decoration:none}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--code-bg);border:1px solid var(--color-border);font-variant-ligatures:none;word-break:break-word;padding:.12em .36em;font-size:.85em}.prose .expressive-code{font-size:.84rem}.expressive-code .frame{border-left:2px solid var(--color-accent)!important}.prose blockquote{font-family:var(--font-display);font-optical-sizing:auto;color:var(--color-text);padding-left:var(--sp-6);border-left:2px solid var(--color-accent);text-wrap:balance;margin-block:2.5rem;font-size:1.6rem;font-style:italic;font-weight:500;line-height:1.32}.prose blockquote p+p{margin-top:.6rem}.prose blockquote cite{margin-top:var(--sp-3);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--color-muted);font-size:.78rem;font-style:normal;display:block}.prose figure{margin-inline:0}.prose figure img{border:1px solid var(--color-border);background:var(--surface);width:100%}.prose figcaption{font-family:var(--font-mono);color:var(--color-muted);margin-top:var(--sp-3);padding-left:var(--sp-3);border-left:2px solid var(--color-border-strong);font-size:.74rem;line-height:1.5}.prose figcaption .fig-label{color:var(--color-accent);text-transform:uppercase;letter-spacing:.05em;margin-right:.5em}.table-wrap{border:1px solid var(--color-border);overflow-x:auto}.prose table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.92rem}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;padding:.55rem .85rem}.prose thead th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);background:var(--surface-sunken);border-bottom:2px solid var(--color-border-strong);font-size:.72rem}.prose tbody tr:last-child td{border-bottom:none}.prose td:not(:first-child),.prose th:not(:first-child){font-family:var(--font-mono);font-size:.84rem}.sidenote{font-family:var(--font-mono);color:var(--color-muted);background:var(--surface-raised);border-left:2px solid var(--color-accent);padding:var(--sp-3) var(--sp-4);margin:var(--sp-4) 0;font-size:.78rem;line-height:1.5;display:block}.sidenote__marker{color:var(--color-accent);font-family:var(--font-mono);vertical-align:super;padding:0 .15em;font-size:.7em;font-weight:600}.prose .footnotes{margin-top:var(--sp-12);padding-top:var(--sp-6);border-top:1px solid var(--color-border);color:var(--color-muted);font-size:.95rem}.prose .footnotes h2{font-size:.78rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--color-faint)}.prose .footnotes h2:before{content:none}.prose .footnotes ol{font-family:var(--font-mono);font-size:.82rem;line-height:1.6}.prose .footnotes li::marker{color:var(--color-faint)}[id^=user-content-fn]{scroll-margin-top:6rem}.data-footnote-backref{background:0 0;margin-left:.3em}.prose .katex-display{padding:.5rem 0;overflow:auto hidden}.prose .katex{font-size:1.04em}.cite-block{max-width:var(--measure);margin-top:var(--sp-12);border:1px solid var(--color-border);background:var(--surface-raised)}.cite-block__head{justify-content:space-between;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--color-border);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted);font-size:.7rem;display:flex}.cite-block pre{padding:var(--sp-4);font-family:var(--font-mono);color:var(--color-text);white-space:pre-wrap;word-break:break-word;margin:0;font-size:.76rem;line-height:1.55}.copy-btn{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);border:1px solid var(--color-border-strong);cursor:pointer;background:0 0;padding:.25em .6em;font-size:.68rem;transition:all .15s}.copy-btn:hover{color:var(--color-accent);border-color:var(--color-accent)}.waypoint-card{max-width:var(--measure);margin-top:var(--sp-8);padding:var(--sp-6);border:1px solid var(--color-border);background:var(--surface-raised);transition:border-color .15s;display:block}.waypoint-card:hover{border-color:var(--color-accent)}.waypoint-card__label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--color-accent);font-size:.7rem}.waypoint-card__title{font-family:var(--font-display);margin-top:var(--sp-2);color:var(--color-text);font-size:1.3rem;font-weight:600}
