:root{--font-sans:"Archivo", "Helvetica Neue", Arial, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Menlo, monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1.0625rem;--text-lg:1.25rem;--step-2:1.4rem;--step-3:1.75rem;--step-4:2.25rem;--step-5:3rem;--hero-size:clamp(2.25rem, 4.5vw, 3.75rem);--wordmark-size:clamp(3rem, 6vw, 5rem);--title-size:clamp(1.75rem, 5vw, 3rem);--section-size:clamp(1.5rem, 3vw, 2.25rem);--mark-size:3.5rem;--mark-size-large:5.5rem;--leading-body:1.7;--leading-tight:1.15;--tracking-annotation:0.08em;--w-page:72rem;--measure:68ch;--hero-measure:22ch;--intro-measure:52ch;--wordmark-column:12rem;--artwork-min-width:44rem;--tap-size:2.75rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--line-hair:1px;--line-bold:2px;--radius:0;--grid-size:28px;--grid-dot:1px;--tick:7px;color-scheme:light;--paper:#f6f4ef;--paper-raised:#fffdf8;--ink:#1c3a63;--ink-strong:#12283f;--ink-soft:#4c6284;--line:#294773;--line-soft:#29477366;--grid:#1c3a6314;--accent:#5a3d8a;--accent-soft:#5a3d8a1f;--warn:#8a5a1e;--warn-soft:#8a5a1e1a;--ok:#2a6a5a;--ok-soft:#2a6a5a1a;--note-soft:#1c3a631a;--syn-key:#1d4ed8;--syn-str:#6d28d9;--syn-com:#64748b;--syn-num:#9a5b12;--syn-fn:#0e7490;--syn-type:#5a3d8a;--syn-op:#334155;--syn-var:#1c3a63}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--paper:#151b3b;--paper-raised:#1c2349;--ink:#dfe6f7;--ink-strong:#f4f7ff;--ink-soft:#a3b0d6;--line:#8fa3e0;--line-soft:#8fa3e066;--grid:#8fa3e017;--accent:#b9a7ff;--accent-soft:#b9a7ff26;--warn:#e2b96a;--warn-soft:#e2b96a26;--ok:#7fd6b8;--ok-soft:#7fd6b826;--note-soft:#8fa3e024;--syn-key:#8fb4ff;--syn-str:#cabaff;--syn-com:#7a88ab;--syn-num:#f0b077;--syn-fn:#79d4e8;--syn-type:#d3b8ff;--syn-op:#c3cdea;--syn-var:#dfe6f7}}@font-face{font-family:archivo;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/Archivo-400-800-normal.8f704806dbedeaaeca334b11ec348bc3ac3a439d6431544b3afb54f534ee4967.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/IBMPlexMono-400-normal.08949f728dc52d528e69b1667d15c89a5686a4ee9a296ff90983985f99c380f7.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/IBMPlexMono-500-normal.01d285447409c8a588692162439a038b8cbd7871309ee20267b0d2d91c6e8e22.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/IBMPlexMono-600-normal.0d1f0b8d0722224e32e9f28261bdc86c79115be73444ae5eceb73976a1bcdf83.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-body);color:var(--ink);background-color:var(--paper)}h1,h2,h3,h4{font-family:var(--font-sans);color:var(--ink-strong);line-height:var(--leading-tight);font-weight:700;margin:0}p{margin:0 0 var(--space-4)}p:last-child{margin-bottom:0}a{color:var(--accent);text-decoration:none;border-bottom:var(--line-hair)dashed var(--accent)}a:hover{border-bottom-style:solid}ul,ol{margin:0 0 var(--space-4);padding-left:1.4em}li{margin-bottom:var(--space-2)}img,svg{max-width:100%;height:auto;display:block}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}code{background:var(--accent-soft);border:var(--line-hair)solid var(--line-soft);padding:.1em .35em}hr{border:none;border-top:var(--line-bold)double var(--line);margin:var(--space-7)0}::selection{background:var(--accent);color:var(--paper)}.skip-link{position:absolute;left:var(--space-4);top:-4rem;z-index:10;background:var(--paper-raised);color:var(--accent);border:var(--line-bold)solid var(--line);padding:var(--space-2)var(--space-4);font-family:var(--font-mono);font-size:var(--text-sm)}.skip-link:focus{top:var(--space-4)}:focus-visible{outline:var(--line-bold)dashed var(--accent);outline-offset:3px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.ground{background-image:radial-gradient(var(--grid) var(--grid-dot),transparent var(--grid-dot));background-size:var(--grid-size)var(--grid-size);background-position:50% 0}.page{max-width:var(--w-page);margin:0 auto;padding:0 var(--space-5)}.main{padding:var(--space-5)0 var(--space-9)}.annotation{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-annotation);text-transform:uppercase;color:var(--ink-soft)}.ticks{position:relative;border:var(--line-hair)solid var(--line-soft)}.ticks::before,.ticks::after{content:"";position:absolute;width:var(--tick);height:var(--tick);pointer-events:none}.ticks::before{top:-1px;left:-1px;border-top:var(--line-bold)solid var(--line);border-left:var(--line-bold)solid var(--line)}.ticks::after{bottom:-1px;right:-1px;border-bottom:var(--line-bold)solid var(--line);border-right:var(--line-bold)solid var(--line)}.site-header{border-bottom:var(--line-hair)solid var(--line-soft)}.site-header .page{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-5);row-gap:var(--space-2);flex-wrap:wrap;padding-top:var(--space-4);padding-bottom:var(--space-4)}.brand{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;letter-spacing:var(--tracking-annotation);text-transform:uppercase;color:var(--ink-strong);border:none}.brand:hover{color:var(--accent);border:none}.site-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:var(--space-5);flex-wrap:wrap}.site-nav li{margin-bottom:0}.site-nav a{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-annotation);text-transform:uppercase;color:var(--ink-soft);border:none;padding:var(--space-1)0}.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--accent)}.hero{padding-block:var(--space-4)var(--space-7)}.hero-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-7);align-items:center}@media(min-width:56rem){.hero-layout{grid-template-columns:minmax(0,1fr)var(--wordmark-column)}}.hero-copy h1{font-size:var(--hero-size);font-weight:800;max-width:var(--hero-measure)}.hero-copy>.annotation{margin-bottom:var(--space-4)}.hero-intro{margin-top:var(--space-5);font-size:var(--text-base);max-width:var(--intro-measure)}@media(min-width:48rem){.hero-intro{font-size:var(--text-lg)}}.hero-signature{display:none}@media(min-width:56rem){.hero-signature{display:block;border-left:var(--line-hair)solid var(--line-soft);padding-left:var(--space-6)}}.hero-stack{font-size:var(--wordmark-size);font-weight:800;line-height:.92;letter-spacing:.01em;text-transform:uppercase;color:var(--ink-strong)}.hero-stack .glyph{display:block}.hero-stack .glyph.accent{color:var(--accent)}.hero-signature>p{margin-top:var(--space-5)}.hero-actions,.text-links{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-4)var(--space-5);margin-top:var(--space-5)}.action-link{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--tap-size);padding:var(--space-3)var(--space-5);background:var(--accent);color:var(--paper);border:var(--line-hair)solid var(--accent);font-weight:600}.action-link:hover{background:var(--paper);color:var(--accent)}.action-link:focus-visible{outline-offset:var(--space-1)}.titleblock{display:grid;grid-template-columns:1fr 1fr;border:var(--line-bold)solid var(--line);background:var(--paper-raised);font-size:var(--text-sm)}.titleblock .cell{padding:var(--space-3)var(--space-4);border-top:var(--line-hair)solid var(--line-soft);border-left:var(--line-hair)solid var(--line-soft);min-width:0}.titleblock .cell:nth-child(-n+2){border-top:none}.titleblock .cell:nth-child(odd){border-left:none}.titleblock .cell.wide{grid-column:1/-1;border-left:none}.titleblock dt,.titleblock .label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-annotation);text-transform:uppercase;color:var(--ink-soft);margin-bottom:var(--space-1)}.titleblock dd,.titleblock .value{margin:0;color:var(--ink-strong);font-weight:600;overflow-wrap:anywhere}.section{padding-block-start:var(--space-7)}.sec-head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.sec-head h2{font-size:var(--section-size);font-weight:800;text-transform:uppercase;letter-spacing:.02em;overflow-wrap:anywhere;min-width:0}.sec-head .sec-num{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-annotation);color:var(--accent);white-space:nowrap}.sec-rule{flex:1;position:relative;height:0;border-top:var(--line-hair)solid var(--line-soft);min-width:var(--space-4)}.sec-rule::before,.sec-rule::after{content:"";position:absolute;top:calc(var(--tick)/-2 + 1px);width:var(--line-hair);height:var(--tick);background:var(--line)}.sec-rule::before{left:0}.sec-rule::after{right:0}.section-intro{max-width:var(--measure);margin-bottom:var(--space-5)}.featured-grid{display:grid;gap:var(--space-5);margin-bottom:var(--space-6)}@media(min-width:48rem){.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.project-card{display:flex;flex-direction:column;align-items:start;padding:var(--space-5);background:var(--paper-raised)}.project-card h3{font-size:var(--step-4);margin-bottom:var(--space-4)}.project-card h3 a{color:var(--ink-strong);border:none}.project-card h3 a:hover{color:var(--accent)}.project-card-detail{color:var(--ink-soft)}.project-card-link{margin-top:auto;padding-block:var(--space-2)}.teaching-panel,.invitation-panel,.contact-panel{padding:var(--space-5)}.teaching-panel{background:var(--paper-raised)}.teaching-panel h3{font-size:var(--step-3);margin-bottom:var(--space-4)}.teaching-panel>p,.invitation-panel>p,.contact-panel>p,.contact-panel>ul{max-width:var(--measure)}.invitation-panel{border-block:var(--line-bold)solid var(--line)}.invitation-panel h2,.contact-panel h2{font-size:var(--title-size);margin-bottom:var(--space-5)}.contact-panel{max-width:var(--measure);margin-top:var(--space-7);background:var(--paper-raised)}.contact-address{margin-top:var(--space-4);overflow-wrap:anywhere}.standalone-page>.detail-head{max-width:var(--measure);margin-bottom:var(--space-6)}.detail-head>h1{font-size:var(--title-size)}.detail-head>.hook{margin-top:var(--space-4);font-size:var(--text-lg);max-width:var(--intro-measure)}.sheet-index{border-top:var(--line-hair)solid var(--line-soft)}.sheet-row{display:grid;grid-template-columns:auto minmax(0,1fr)auto;gap:var(--space-4);align-items:baseline;padding:var(--space-6)var(--space-3);border-bottom:var(--line-hair)solid var(--line-soft);color:var(--ink);border-left:none;border-right:none;border-top:none}.sheet-row:hover{background:var(--accent-soft)}.sheet-row .num{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--accent);min-width:2.4em}.sheet-row .title{font-size:var(--step-3);font-weight:700;color:var(--ink-strong);display:inline}.sheet-row .hook{display:block;margin-top:var(--space-2);color:var(--ink-soft);font-size:var(--text-base);line-height:1.55;max-width:68ch}.sheet-row .tags{margin-top:var(--space-3);display:flex;flex-wrap:wrap;gap:var(--space-2)}.sheet-row .arrow{font-family:var(--font-mono);color:var(--ink-soft);align-self:center}.sheet-row:hover .arrow{color:var(--accent)}.doc-list{border-top:var(--line-hair)solid var(--line-soft)}.doc-row{display:grid;grid-template-columns:auto minmax(0,1fr)auto;gap:var(--space-4);align-items:baseline;padding:var(--space-4)var(--space-3);border-bottom:var(--line-hair)solid var(--line-soft)}.doc-row:hover{background:var(--accent-soft)}.doc-row .date{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);letter-spacing:var(--tracking-annotation);white-space:nowrap}.doc-row .title{color:var(--ink-strong);font-weight:600;display:inline}.doc-row .hook{display:block;margin-top:var(--space-1);color:var(--ink-soft);font-size:var(--text-sm)}.doc-row .arrow{font-family:var(--font-mono);color:var(--ink-soft);align-self:center}.doc-row:hover .arrow{color:var(--accent)}.year-group{margin-top:var(--space-7)}.year-group:first-of-type{margin-top:0}.year-group>.year{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:var(--tracking-annotation);color:var(--accent);border-bottom:var(--line-hair)solid var(--line-soft);padding-bottom:var(--space-2);margin-bottom:var(--space-2)}.chip{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);border:var(--line-hair)solid var(--line-soft);padding:var(--space-1)var(--space-3);white-space:nowrap}a.chip{border-bottom:var(--line-hair)solid var(--line-soft)}a.chip:hover{border-bottom:var(--line-hair)solid var(--accent)}.detail-head{padding-top:var(--space-5)}.detail-head .kicker{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.project-header{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5);align-items:start;margin-top:var(--space-4)}@media(min-width:56rem){.project-header{grid-template-columns:auto minmax(0,1fr);gap:var(--space-6)}.project-header--unmarked{grid-template-columns:minmax(0,1fr)}}.project-mark{width:var(--mark-size);flex-shrink:0}@media(min-width:56rem){.project-mark{width:var(--mark-size-large)}}.project-mark img,.project-mark svg{width:100%;height:auto;color:var(--ink-strong)}.project-id h1{font-size:var(--title-size);font-weight:800;text-transform:uppercase;letter-spacing:.01em;max-width:20ch;overflow-wrap:anywhere}.project-id .hook{margin-top:var(--space-3);font-size:var(--text-lg);color:var(--ink);max-width:52ch}.titleblock--strip{margin-top:var(--space-6);grid-template-columns:1fr 1fr}@media(min-width:56rem){.titleblock--strip{grid-template-columns:repeat(4,1fr)}.titleblock--strip .cell{border-top:none}.titleblock--strip .cell:nth-child(odd){border-left:var(--line-hair)solid var(--line-soft)}.titleblock--strip .cell:first-child{border-left:none}}.cover-figure{margin:var(--space-7)0;padding:var(--space-4);background:var(--paper-raised)}.cover-figure img{width:100%;height:auto;color:var(--ink)}.cover-figure picture{display:block;height:100%}.cover-figure .mermaid-print{display:none}.cover-figure .diagram-art{aspect-ratio:2/1;height:100%}.cover-figure .diagram-art picture,.cover-figure .diagram-art img,.cover-figure .diagram-art svg{width:100%;height:100%;object-fit:contain}.diagram-scroll{overflow-x:auto}.diagram-art{min-width:var(--artwork-min-width)}.diagram-art svg{width:100%}.mermaid-diagram{margin:var(--space-5)0;padding:var(--space-4);background:var(--paper-raised)}.mermaid-diagram picture{display:block;width:max-content;min-width:100%}.mermaid-diagram img{max-width:none;margin-inline:auto}.mermaid-diagram .mermaid-print{display:none}.mermaid-diagram figcaption{margin-top:var(--space-3)}@media print{.mermaid-diagram picture,.mermaid-diagram .diagram-hint,.cover-figure picture,.cover-figure .diagram-hint{display:none}.mermaid-diagram .mermaid-print,.cover-figure .mermaid-print{display:block;max-width:100%}}.diagram-hint{margin-top:var(--space-3);color:var(--ink-soft);font-size:var(--text-sm)}@media(min-width:56rem){.diagram-hint{display:none}}.cover-figure figcaption{margin-top:var(--space-3);text-align:right}.link-annotations{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-3)var(--space-6);margin-top:var(--space-7);padding-top:var(--space-4);border-top:var(--line-hair)solid var(--line-soft)}.link-annotations .annotation{margin-right:var(--space-2)}.link-annotations a{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.02em;color:var(--ink-soft);border-bottom:none;overflow-wrap:anywhere}.link-annotations a:hover{color:var(--accent)}.stack-row{display:flex;align-items:baseline;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-4)}.stack-row .term-chips{margin-top:0}.spec-block{margin-top:var(--space-7);max-width:var(--measure)}.spec-block:first-of-type{margin-top:var(--space-6)}.spec-block>.annotation{display:block;margin-bottom:var(--space-3);color:var(--accent)}.spec-block ul{padding-left:1.2em}.spec-block li::marker{color:var(--accent)}.project-invitation{border-top:var(--line-hair)solid var(--line-soft);padding-top:var(--space-5)}.project-invitation h2{font-size:var(--step-3);margin-bottom:var(--space-4)}.detail-body{max-width:var(--measure)}.meta-row{display:flex;flex-wrap:wrap;gap:var(--space-3)var(--space-5);margin-top:var(--space-4)}.essay-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-7);margin-top:var(--space-7)}@media(min-width:56rem){.essay-layout{grid-template-columns:minmax(14rem,18rem)minmax(0,var(--measure))}.essay-layout .toc-slot{position:sticky;top:var(--space-5);align-self:start}}.toc{border:var(--line-hair)solid var(--line-soft);background:var(--paper-raised)}.toc summary{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-annotation);text-transform:uppercase;color:var(--accent);padding:var(--space-3)var(--space-4);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}.toc summary::after{content:"+";font-weight:600}.toc[open] summary::after{content:"–"}.toc nav ul{margin:0;padding:0 var(--space-4)var(--space-4);list-style:none;font-size:var(--text-sm)}.toc nav ul ul{padding-left:var(--space-5)}.toc nav li{margin-bottom:var(--space-2)}.toc nav a{color:var(--ink);border:none}.toc nav a:hover{color:var(--accent)}.term-chips{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-5)}.prose{max-width:var(--measure)}.prose h2{font-size:var(--step-3);margin:var(--space-7)0 var(--space-4);padding-bottom:var(--space-2);border-bottom:var(--line-hair)solid var(--line-soft)}.prose h3{font-size:var(--step-2);margin:var(--space-6)0 var(--space-3)}.prose>p,.prose>ul,.prose>ol,.prose>blockquote,.prose>pre,.prose>figure,.prose>table{margin-bottom:var(--space-5)}.prose blockquote{margin:0 0 var(--space-5);padding:var(--space-1)0 var(--space-1)var(--space-5);border-left:var(--line-bold)solid var(--accent);color:var(--ink-soft)}.prose pre{margin:0 0 var(--space-5);padding:0;background:0 0;border:none;overflow-x:auto}.prose pre code{background:0 0;border:none;padding:0;font-size:var(--text-sm)}.prose .footnotes{margin-top:var(--space-7);border-top:var(--line-hair)solid var(--line-soft);padding-top:var(--space-4);font-size:var(--text-sm)}.prose .footnotes h2{font-size:var(--text-sm);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--tracking-annotation);color:var(--ink-soft);border:none;margin:0 0 var(--space-3)}.prose .footnotes li{margin-bottom:var(--space-2)}.prose .footnote-backref{border:none;text-decoration:none}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-sm);display:block;overflow-x:auto}.prose th,.prose td{border:var(--line-hair)solid var(--line-soft);padding:var(--space-2)var(--space-3);text-align:left}.prose th{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-annotation);text-transform:uppercase;color:var(--ink-soft);font-weight:500}.prose .anchor{border:none;font-family:var(--font-mono);font-size:.7em;color:var(--ink-soft);margin-left:var(--space-2);vertical-align:middle}.prose .anchor:hover{color:var(--accent)}.callout{margin:0 0 var(--space-5);padding:var(--space-4)var(--space-5);background:var(--paper-raised)}.callout .callout-title{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-annotation);text-transform:uppercase;font-weight:600;margin-bottom:var(--space-2)}.callout p:last-child{margin-bottom:0}.callout--note{border-left:var(--line-bold)solid var(--line);background:var(--note-soft)}.callout--note .callout-title{color:var(--ink-soft)}.callout--warning{border-left:var(--line-bold)solid var(--warn);background:var(--warn-soft)}.callout--warning .callout-title{color:var(--warn)}.callout--tip{border-left:var(--line-bold)solid var(--ok);background:var(--ok-soft)}.callout--tip .callout-title{color:var(--ok)}figure.figure{margin:0 0 var(--space-5)}figure.figure figcaption{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--ink-soft)}.invitation{margin-block:var(--space-6);padding:var(--space-5);background:var(--paper-raised);overflow-wrap:anywhere}.prose .invitation-title{margin:0 0 var(--space-3);padding:0;border:none;font-size:var(--step-2)}.invitation .text-links{margin-top:var(--space-4)}.disclosure{margin-block:var(--space-5);border:var(--line-hair)solid var(--line-soft);background:var(--paper-raised)}.disclosure>summary{padding:var(--space-3)var(--space-4);color:var(--ink-strong);font-weight:600;cursor:pointer;overflow-wrap:anywhere}.disclosure-body{padding:0 var(--space-4)var(--space-4)}.disclosure-body>:first-child{margin-top:0}.steps{margin-block:var(--space-5);padding-left:var(--space-6)}.step{padding-left:var(--space-2);margin-bottom:var(--space-5)}.step::marker{font-family:var(--font-mono);font-weight:600;color:var(--accent)}.prose .step-title{margin:0 0 var(--space-3);font-size:var(--step-2)}.step-optional{color:var(--ink-soft)}.code-group{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);margin-block:var(--space-5)}.prose .code-example{min-width:0;margin:0 0 var(--space-5);border:var(--line-hair)solid var(--line-soft);background:var(--paper-raised)}.code-group .code-example{margin-bottom:0}.code-example-caption{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2)var(--space-3);padding:var(--space-3)var(--space-4);border-bottom:var(--line-hair)solid var(--line-soft);overflow-wrap:anywhere}.code-example-title{font-weight:600}.code-example-filename{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-soft)}.code-example .highlight{min-width:0}.prose .code-example pre{margin:0;padding:var(--space-4)}.video-block{margin-block:var(--space-5)}.video-figure{margin:0}.video-figure video{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:var(--paper-raised);border:var(--line-hair)solid var(--line-soft)}.video-figure figcaption{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--ink-soft)}.video-transcript{margin-top:var(--space-4);border-left:var(--line-bold)solid var(--line-soft);padding-left:var(--space-4)}.video-transcript>.annotation{color:var(--ink-soft)}.pager{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-8);border-top:var(--line-hair)solid var(--line-soft);padding-top:var(--space-5)}.pager .direction{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-annotation);text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:var(--space-1)}.pager a{color:var(--ink-strong);font-weight:600}.pager .next{text-align:right}.pager .spacer{visibility:hidden}.related{margin-top:var(--space-6)}.related>.annotation{display:block;margin-bottom:var(--space-3);color:var(--accent)}.related ul{list-style:none;padding:0;border-top:var(--line-hair)solid var(--line-soft)}.related li{border-bottom:var(--line-hair)solid var(--line-soft)}.related a{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-3)var(--space-2);color:var(--ink)}.related a:hover{background:var(--accent-soft)}.site-footer{border-top:var(--line-bold)double var(--line);margin-top:var(--space-9)}.site-footer .page{padding-top:var(--space-6);padding-bottom:var(--space-6);display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-5)}@media(min-width:48rem){.site-footer .page{grid-template-columns:2fr 1fr 1fr}}.site-footer .foot-note{color:var(--ink-soft);font-size:var(--text-sm);max-width:44ch}.site-footer nav ul{list-style:none;margin:0;padding:0}.site-footer nav .annotation{display:block;margin-bottom:var(--space-2);color:var(--accent)}.site-footer nav a{color:var(--ink);border:none;font-size:var(--text-sm)}.site-footer nav a:hover{color:var(--accent)}.site-footer .legal{margin-top:var(--space-5);padding-top:var(--space-4);border-top:var(--line-hair)solid var(--line-soft);display:flex;flex-wrap:wrap;gap:var(--space-3)var(--space-5);grid-column:1/-1}.nf{padding-block:var(--space-9);text-align:left}.nf .code{font-family:var(--font-mono);font-size:clamp(4rem,16vw,9rem);font-weight:600;color:var(--accent);line-height:1;display:block}.nf p{margin-top:var(--space-5);max-width:44ch}.nf a{display:inline-block;margin-top:var(--space-5);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-annotation);text-transform:uppercase;border:var(--line-hair)solid var(--line);color:var(--ink-strong);padding:var(--space-2)var(--space-4)}.nf a:hover{color:var(--accent);border-color:var(--accent)}@media print{:root,:root *{background:0 0!important;color:#000!important;border-color:#000!important}body{background:#fff!important;font-size:11pt}.site-header,.site-nav,.skip-link,.site-footer .feeds,.pager,.toc summary::after{display:none!important}.toc{border:none}.toc[open] summary::after{content:""}a{border-bottom:none;text-decoration:underline}.prose pre,.chroma{border:var(--line-hair)solid #000;white-space:pre-wrap}.disclosure::details-content{content-visibility:visible}.disclosure-body{display:block}.invitation,.step,.code-example{break-inside:avoid}.code-example code{white-space:pre-wrap;overflow-wrap:anywhere}.video-figure video{display:none}.main{padding-top:0}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}.chroma{background:var(--paper-raised);border:var(--line-hair)solid var(--line-soft);padding:var(--space-4)var(--space-5);overflow-x:auto;font-size:var(--text-sm);line-height:1.6;tab-size:2}.chroma,.chroma code{color:var(--syn-var)}.chroma .c,.chroma .c1,.chroma .cm,.chroma .cs{color:var(--syn-com);font-style:italic}.chroma .cp,.chroma .cpf{color:var(--syn-com)}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr{color:var(--syn-key)}.chroma .kt{color:var(--syn-type)}.chroma .s,.chroma .s1,.chroma .s2,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .sd,.chroma .se,.chroma .sh,.chroma .si,.chroma .sr,.chroma .ss,.chroma .sx,.chroma .dl{color:var(--syn-str)}.chroma .il,.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .mo{color:var(--syn-num)}.chroma .bp,.chroma .nb,.chroma .nc,.chroma .no,.chroma .nd,.chroma .ni,.chroma .nl,.chroma .nn,.chroma .nx{color:var(--syn-type)}.chroma .fm,.chroma .nf{color:var(--syn-fn)}.chroma .o,.chroma .ow{color:var(--syn-op)}.chroma .p{color:var(--syn-op)}.chroma .nt,.chroma .na{color:var(--syn-key)}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi{color:var(--syn-var)}.chroma .gd{color:var(--warn)}.chroma .gi{color:var(--ok)}.chroma .ge{font-style:italic}.chroma .gs{font-weight:600}.chroma .gu{color:var(--syn-com)}.chroma .err{color:var(--warn);border-bottom:var(--line-hair)dashed var(--warn)}