@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(../media/d8cddd76dbfeaef0-s.2dbc-et3k6kfe.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(../media/591574edbe85c69b-s.0slbgzy4000md.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(../media/acf349172f10b359-s.0d4lnz92g9ol4.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(../media/0926c12c4384550f-s.253cfg7mpxmwg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:500;font-display:swap;src:url(../media/8bd76523131fa0fc-s.p.273-hd1b-0-z9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(../media/d8cddd76dbfeaef0-s.2dbc-et3k6kfe.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(../media/591574edbe85c69b-s.0slbgzy4000md.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(../media/acf349172f10b359-s.0d4lnz92g9ol4.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(../media/0926c12c4384550f-s.253cfg7mpxmwg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-weight:600;font-display:swap;src:url(../media/8bd76523131fa0fc-s.p.273-hd1b-0-z9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9cc5c0547f229dea-s.26a4qkxezf9-r.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b0947914c9718a1e-s.1hzlq6xrrxf6u.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d0b60be57f16ee32-s.33on4mq75bz97.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1f9e983605289f29-s.2xsoqmjk136f4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:500;font-display:swap;src:url(../media/01e4147cff8141ee-s.p.0v7knm2wof07y.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9cc5c0547f229dea-s.26a4qkxezf9-r.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b0947914c9718a1e-s.1hzlq6xrrxf6u.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d0b60be57f16ee32-s.33on4mq75bz97.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1f9e983605289f29-s.2xsoqmjk136f4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-weight:600;font-display:swap;src:url(../media/01e4147cff8141ee-s.p.0v7knm2wof07y.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond Fallback;src:local(Times New Roman);ascent-override:95.27%;descent-override:29.59%;line-gap-override:0.0%;size-adjust:96.98%}.cormorant_garamond_ba023176-module__dri4la__className{font-family:Cormorant Garamond,Cormorant Garamond Fallback}.cormorant_garamond_ba023176-module__dri4la__variable{--font-display:"Cormorant Garamond", "Cormorant Garamond Fallback"}
@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/c3cb240f9c892514-s.270md_-rr62el.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0lsanbtneewqp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_a867e2aa-module__JxLjXW__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_a867e2aa-module__JxLjXW__variable{--font-body:"DM Sans", "DM Sans Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d72c019e91ffb82f-s.23_tzllc9ug3l.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8557ac4879842fb9-s.0v7f0_qic28v5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c847346577a98de0-s.2im-ylirbcr2x.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/db08d2e20377160a-s.2wq_0j16_l1ke.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8394f9d71e076efc-s.1_84mggmphogq.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/19087af2bdec32b5-s.p.0u70gkhz9e0b8.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_37a671c1-module__vYlSRG__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal;font-weight:400}.jetbrains_mono_37a671c1-module__vYlSRG__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--unit) * 12)}body{background:var(--page);color:var(--ink);font-family:var(--font-body), ui-sans-serif, system-ui, sans-serif;font-size:var(--step-body);font-synthesis-weight:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100dvh;margin:0;line-height:1.65;transition:background-color .25s,color .25s;display:flex}h1,h2,h3,h4{font-family:var(--font-display), ui-serif, Georgia, serif;letter-spacing:var(--display-tracking);text-wrap:balance;margin:0;font-weight:600;line-height:1.12}p{text-wrap:pretty;margin:0}a{color:var(--link);-webkit-text-decoration-color:rgb(var(--ink-rgb) / .3);text-decoration-color:rgb(var(--ink-rgb) / .3);text-underline-offset:.22em;text-decoration-thickness:1px;transition:color .15s,text-decoration-color .15s}a:hover{color:var(--link-hover);text-decoration-color:currentColor}img{max-width:100%;height:auto;display:block}hr{border:0;border-top:1px solid var(--rule);margin:calc(var(--unit) * 5) 0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::selection{background:rgb(var(--ink-rgb) / .16)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.shell{width:100%;max-width:var(--shell);padding-inline:var(--gutter);margin-inline:auto}.shell--narrow{max-width:calc(var(--measure) + 8vw)}main{flex:1}.skip-link{z-index:100;background:var(--panel);color:var(--ink);padding:calc(var(--unit) * 1.5) calc(var(--unit) * 2);border:1px solid var(--rule-strong);position:absolute;top:0;left:-9999px}.skip-link:focus{left:var(--gutter);top:var(--unit)}.eyebrow{font-family:var(--font-mono), ui-monospace, monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem}.rule-gold{width:calc(var(--unit) * 7);background:var(--accent);border:0;height:2px;margin:0}.masthead{z-index:40;background:rgb(var(--page-rgb) / .82);-webkit-backdrop-filter:blur(14px)saturate(140%);backdrop-filter:blur(14px)saturate(140%);border-bottom:1px solid var(--rule);position:sticky;top:0}.masthead__inner{justify-content:space-between;align-items:center;gap:calc(var(--unit) * 3);min-height:calc(var(--unit) * 9);display:flex}.wordmark{align-items:baseline;gap:calc(var(--unit) * 1.25);color:var(--ink);text-decoration:none;display:inline-flex}.wordmark:hover{color:var(--ink)}.wordmark__mark{font-family:var(--font-display), serif;letter-spacing:var(--display-tracking);font-size:1.4rem;font-weight:600}.wordmark__sub{font-family:var(--font-mono), monospace;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);padding-bottom:.1em;font-size:.62rem}.masthead__nav{align-items:center;gap:calc(var(--unit) * 3);display:flex}.masthead__nav a{font-size:var(--step-caption);color:var(--muted);letter-spacing:.02em;text-decoration:none}.masthead__nav a:hover,.masthead__nav a[data-active=true]{color:var(--ink)}.masthead__nav a[data-active=true]{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.4em;text-decoration-thickness:2px}@media (max-width:560px){.masthead__inner{gap:calc(var(--unit) * 1.5)}.masthead__nav{gap:calc(var(--unit) * 2)}.wordmark__mark{font-size:1.2rem}.wordmark__sub{display:none}}.theme-toggle{width:calc(var(--unit) * 4.5);height:calc(var(--unit) * 4.5);border:1px solid var(--rule);background:var(--fill);color:var(--muted);cursor:pointer;border-radius:999px;place-items:center;padding:0;transition:color .15s,border-color .15s,background-color .15s;display:inline-grid}.theme-toggle:hover{color:var(--ink);border-color:var(--rule-strong);background:var(--fill-hover)}.theme-toggle svg{width:16px;height:16px}:root .theme-toggle__sun,[data-theme=dark] .theme-toggle__sun{display:block}:root .theme-toggle__moon,[data-theme=dark] .theme-toggle__moon,[data-theme=light] .theme-toggle__sun{display:none}[data-theme=light] .theme-toggle__moon{display:block}@media (prefers-color-scheme:light){:root:not([data-theme]) .theme-toggle__sun{display:none}:root:not([data-theme]) .theme-toggle__moon{display:block}}.hero{padding-block:calc(var(--section) * 1.15) var(--section);border-bottom:1px solid var(--rule);position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(closest-side, rgb(var(--ink-rgb) / .07), transparent 70%);pointer-events:none;position:absolute;inset:-40% 40% 20% -20%}.hero__inner{gap:calc(var(--unit) * 3);justify-items:start;display:grid;position:relative}.hero h1{font-size:var(--step-hero);max-width:14ch}.hero__lede{color:var(--muted);max-width:46ch;font-size:clamp(1.05rem,.9rem + .5vw,1.25rem);line-height:1.55}.hero__meta{align-items:center;gap:calc(var(--unit) * 2);margin-top:var(--unit);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:calc(var(--unit) * .75);font-family:var(--font-mono), monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);border:1px solid rgb(var(--ink-rgb) / .18);white-space:nowrap;z-index:1;border-radius:999px;place-self:start;padding:.35em .85em;font-size:.68rem;text-decoration:none;transition:border-color .15s,background-color .15s,color .15s;display:inline-flex;position:relative}a.chip:hover{color:var(--accent);border-color:var(--accent);background:var(--fill-hover)}.chip[data-active=true]{color:var(--page);background:var(--accent);border-color:var(--accent)}.chip--muted{color:var(--muted)}.chip__count{color:var(--muted);font-size:.9em}.meta-line{align-items:center;gap:calc(var(--unit) * 1.5);font-family:var(--font-mono), monospace;font-size:var(--step-caption);color:var(--muted);flex-wrap:wrap;margin:0;display:flex}.meta-line__dot{opacity:.6;background:currentColor;border-radius:50%;width:3px;height:3px}.section{padding-block:var(--section)}.section__head{justify-content:space-between;align-items:baseline;gap:calc(var(--unit) * 2);padding-bottom:calc(var(--unit) * 3);margin-bottom:calc(var(--unit) * 4);border-bottom:1px solid var(--rule);display:flex}.section__head h2{font-size:var(--step-h2)}.section__head a{font-family:var(--font-mono), monospace;font-size:var(--step-caption);color:var(--muted);white-space:nowrap;text-decoration:none}.section__head a:hover{color:var(--link-hover)}.card-grid{gap:calc(var(--unit) * 5) calc(var(--unit) * 4);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));display:grid}.card{gap:calc(var(--unit) * 2);align-content:start;display:grid;position:relative}.card__frame{aspect-ratio:16/9;background:var(--fill);border:1px solid var(--rule);border-radius:3px;position:relative;overflow:hidden}.card__frame img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.6,.2,1),filter .4s}.card:hover .card__frame img{transform:scale(1.03)}.card__title{font-size:1.3rem}.card__title a{color:inherit;text-decoration:none}.card__title a:after{content:"";border-radius:4px;position:absolute;inset:0}.card:hover .card__title{color:var(--link-hover)}.card__dek{color:var(--muted);font-size:.94rem;line-height:1.6}.feature{gap:calc(var(--unit) * 4);align-items:center;display:grid;position:relative}@media (min-width:860px){.feature{gap:calc(var(--unit) * 7);grid-template-columns:1.15fr 1fr}.feature__body{order:-1}}.feature__frame{aspect-ratio:16/9;border:1px solid var(--rule);box-shadow:var(--shadow);border-radius:3px;position:relative;overflow:hidden}.feature__frame img{object-fit:cover;width:100%;height:100%}.feature__body{gap:calc(var(--unit) * 2.5);align-content:start;display:grid}.feature h3{font-size:var(--step-h1)}.feature h3 a{color:inherit;text-decoration:none}.feature h3 a:after{content:"";position:absolute;inset:0}.feature:hover h3{color:var(--link-hover)}.feature__dek{color:var(--muted);max-width:48ch;font-size:1.05rem}.article{padding-block:calc(var(--unit) * 6) var(--section)}.article__header{gap:calc(var(--unit) * 3);max-width:var(--measure);margin-bottom:calc(var(--unit) * 5);display:grid}.article__header h1{font-size:var(--step-h1)}.article__dek{color:var(--muted);font-size:clamp(1.1rem,1rem + .4vw,1.3rem);line-height:1.5;font-family:var(--font-display), serif;font-style:italic;font-weight:500}.article__cover{aspect-ratio:16/9;border:1px solid var(--rule);margin-bottom:calc(var(--unit) * 6);box-shadow:var(--shadow);border-radius:3px;position:relative;overflow:hidden}.article__cover img{object-fit:cover;width:100%;height:100%}.article__cover:after{content:"";background:linear-gradient(to top, rgb(var(--page-rgb) / .35), transparent 55%);pointer-events:none;position:absolute;inset:0}.article__layout{gap:calc(var(--unit) * 6);display:grid}@media (min-width:1040px){.article__layout{grid-template-columns:minmax(0, calc(var(--measure) + 4ch)) 190px;gap:calc(var(--unit) * 6);align-items:start}}.toc{display:none}@media (min-width:1040px){.toc{top:calc(var(--unit) * 12);font-size:var(--step-caption);border-left:1px solid var(--rule);padding-left:calc(var(--unit) * 2.5);display:block;position:sticky}}.toc__label{font-family:var(--font-mono), monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:calc(var(--unit) * 2);font-size:.66rem}.toc ol{gap:calc(var(--unit) * 1.25);margin:0;padding:0;list-style:none;display:grid}.toc li[data-level="3"]{padding-left:calc(var(--unit) * 1.5)}.toc a{color:var(--muted);line-height:1.4;text-decoration:none;display:block}.toc a:hover{color:var(--link-hover)}.prose{max-width:var(--measure);font-size:1.06rem;line-height:1.75}.prose>*+*{margin-top:calc(var(--unit) * 3)}.prose h2{font-size:var(--step-h2);margin-top:calc(var(--unit) * 7);padding-top:calc(var(--unit) * 3);border-top:1px solid var(--rule);position:relative}.prose h2:before{content:"";width:calc(var(--unit) * 5);background:var(--accent);height:2px;position:absolute;top:-1px;left:0}.prose h3{font-size:var(--step-h3);margin-top:calc(var(--unit) * 5)}.prose>p:first-of-type{color:var(--ink);font-size:1.16rem;line-height:1.62}.prose ul,.prose ol{gap:calc(var(--unit) * 1.5);padding-left:1.15em;display:grid}.prose li::marker{color:var(--accent)}.prose li>ul,.prose li>ol{margin-top:calc(var(--unit) * 1.5)}.prose blockquote{margin:calc(var(--unit) * 4) 0;padding:calc(var(--unit) * .5) 0 calc(var(--unit) * .5) calc(var(--unit) * 3);border-left:2px solid var(--accent);font-family:var(--font-display), serif;color:var(--ink);font-size:1.2rem;font-style:italic}.prose blockquote p+p{margin-top:calc(var(--unit) * 2)}.prose code{font-family:var(--font-mono), monospace;background:var(--fill);border:1px solid var(--rule);border-radius:3px;padding:.15em .4em;font-size:.86em}.prose pre{background:var(--fill);border:1px solid var(--rule);padding:calc(var(--unit) * 2.5);border-radius:4px;font-size:.86rem;line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;border:0;padding:0}.prose img{border:1px solid var(--rule);border-radius:3px}.prose figure{margin:calc(var(--unit) * 4) 0}.prose figcaption{font-size:var(--step-caption);color:var(--muted);margin-top:var(--unit)}.prose table{border-collapse:collapse;width:100%;font-size:.94rem;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;padding:calc(var(--unit) * 1.25) calc(var(--unit) * 1.5);border-bottom:1px solid var(--rule)}.prose th{font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:400}.prose a[data-external=true]:after{content:"↗";vertical-align:.15em;opacity:.7;margin-left:.25em;font-size:.78em;display:inline-block}.provenance{max-width:var(--measure);margin-top:calc(var(--unit) * 8);border:1px solid var(--rule);background:var(--fill);padding:calc(var(--unit) * 4);border-radius:4px}.provenance__head{align-items:center;gap:calc(var(--unit) * 1.5);margin-bottom:calc(var(--unit) * 3);display:flex}.provenance__head h2{font-size:1.05rem;font-family:var(--font-body), sans-serif;letter-spacing:0;font-weight:500}.provenance__note{color:var(--muted);margin-bottom:calc(var(--unit) * 3);max-width:60ch;font-size:.94rem}.provenance__grid{gap:calc(var(--unit) * 2) calc(var(--unit) * 4);font-size:var(--step-caption);grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));display:grid}.provenance__item dt{font-family:var(--font-mono), monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:calc(var(--unit) * .5);font-size:.66rem}.provenance__item dd{font-family:var(--font-mono), monospace;word-break:break-word;margin:0;font-size:.8rem}.tier{font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;opacity:.85;border:1px solid;border-radius:2px;padding:.1em .4em;font-size:.62rem;display:inline-block}.tier[data-tier="1"]{color:var(--accent)}.tier[data-tier="2"]{color:var(--link)}.tier[data-tier="3"]{color:var(--muted)}.source-list{margin:0 0 calc(var(--unit) * 3);gap:calc(var(--unit) * 1.5);padding:0;list-style:none;display:grid}.source-list li{align-items:baseline;gap:calc(var(--unit) * 1.5);font-size:.94rem;display:flex}.source-list a{border-bottom:1px solid rgb(var(--ink-rgb) / .2);text-decoration:none}.progress{transform-origin:0;background:linear-gradient(90deg, var(--teal), var(--accent-raw));z-index:60;will-change:transform;width:100%;height:2px;position:fixed;top:0;left:0}.article__foot{max-width:var(--measure);margin-top:calc(var(--unit) * 6);gap:calc(var(--unit) * 3);display:grid}.tag-row{gap:var(--unit);flex-wrap:wrap;display:flex}.related{border-top:1px solid var(--rule);padding-top:calc(var(--unit) * 5);margin-top:calc(var(--unit) * 8)}.notice{border:1px dashed var(--rule-strong);padding:calc(var(--unit) * 5);text-align:center;color:var(--muted);gap:calc(var(--unit) * 2);border-radius:4px;justify-items:center;display:grid}.notice code{font-family:var(--font-mono), monospace;color:var(--ink);background:var(--fill);border-radius:3px;padding:.2em .5em;font-size:.85em}.centred{align-content:center;justify-items:start;gap:calc(var(--unit) * 3);min-height:52vh;display:grid}.colophon{border-top:1px solid var(--rule);padding-block:calc(var(--unit) * 6);margin-top:var(--section);font-size:var(--step-caption);color:var(--muted)}.colophon__inner{gap:calc(var(--unit) * 3);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;display:flex}.colophon__links{gap:calc(var(--unit) * 3);flex-wrap:wrap;display:flex}.colophon a{color:var(--muted);text-decoration:none}.colophon a:hover{color:var(--link-hover)}.colophon__pledge{max-width:42ch;line-height:1.6}.stack{gap:calc(var(--unit) * 3);max-width:var(--measure);display:grid}.stack--wide{max-width:none}
