:root{--color-paper:#fdfaf3;--color-paper-2:#f5efe3;--color-ink:#241e2b;--color-ink-2:#1a1520;--color-ink-soft:#6b6272;--color-line:#dfd5c4;--color-line-dark:#3a3243;--color-paprika:#e04b3a;--color-paprika-deep:#b93726;--color-paprika-soft:#fbe4df;--color-sage:#7fa98c;--color-sage-deep:#3f6b4e;--color-sage-soft:#e4ede5;--color-turmeric:#e8a33d;--color-turmeric-soft:#fbedd5;--color-terminal-bg:#16131c;--color-terminal-fg:#e6e1ec;--color-terminal-lime:#8ce0a8;--color-terminal-cyan:#6fd3e0;--color-terminal-dim:#6b6478;--radius-sm:.375rem;--radius-md:.75rem;--radius-lg:1.25rem;--radius-full:999px;--w-text:68ch;--w-container:1180px;--w-wide:1320px;--ease-out:cubic-bezier(.22, .61, .36, 1);--dur-fast:.14s;--dur-base:.2s;--dur-slow:.32s;color-scheme:light;--bg:var(--color-paper);--bg-band:var(--color-paper-2);--surface:#fff;--text:var(--color-ink);--text-soft:var(--color-ink-soft);--hairline:var(--color-line);--emphasis-border:var(--color-ink);--signal:var(--color-paprika);--signal-fill:var(--color-paprika-deep);--signal-fill-hover:#9c2c1d;--signal-text:var(--color-paprika-deep);--signal-soft:var(--color-paprika-soft);--on-signal:#fff;--calm:var(--color-sage-soft);--calm-strong:var(--color-sage);--calm-text:var(--color-sage-deep);--highlight:var(--color-turmeric);--highlight-soft:var(--color-turmeric-soft);--shadow-card:0 1px 2px #241e2b0a, 0 6px 16px -8px #241e2b1a;--shadow-hover:0 2px 4px #241e2b0d, 0 14px 28px -12px #241e2b29}html.dark{color-scheme:dark;--bg:var(--color-ink-2);--bg-band:#221c29;--surface:var(--color-ink);--text:var(--color-paper);--text-soft:#a79eb0;--hairline:var(--color-line-dark);--emphasis-border:#6b6076;--signal:#ff7a68;--signal-fill:#ff7a68;--signal-fill-hover:#ff9c8e;--signal-text:#ff7a68;--signal-soft:#3a241f;--on-signal:var(--color-ink);--calm:#26302a;--calm-strong:var(--color-sage-deep);--calm-text:#b9d3c0;--highlight:var(--color-turmeric);--highlight-soft:#33291a;--shadow-card:none;--shadow-hover:none}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:7rem}body{background:var(--bg);color:var(--text);font-family:var(--font-body);overflow-wrap:break-word;-webkit-font-smoothing:antialiased;transition:background-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);margin:0;font-size:1.0625rem;font-weight:400;line-height:1.7}::selection{background:var(--signal-soft);color:var(--text)}:focus-visible{outline:2px solid var(--signal);outline-offset:2px;border-radius:2px}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--text);text-wrap:balance;margin:0}h1,.t-h1{letter-spacing:-.02em;font-size:clamp(2.25rem,4vw,3.25rem);font-weight:500;line-height:1.1}h2,.t-h2{letter-spacing:-.015em;font-size:clamp(1.75rem,3vw,2.25rem);font-weight:500;line-height:1.15}h3,.t-h3{letter-spacing:-.01em;font-size:1.375rem;font-weight:600;line-height:1.25}h4{font-size:1.125rem;font-weight:600;line-height:1.35}.t-display{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;font-size:clamp(2.75rem,6vw,4.5rem);font-weight:500;line-height:1.05}h1 em,h2 em,h3 em,.t-display em,.accent{font-style:italic;font-weight:inherit}.lead{color:var(--text-soft);text-wrap:pretty;font-size:1.25rem;line-height:1.6}.small{font-size:.9375rem;line-height:1.6}.label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft);margin:0;font-size:.75rem;font-weight:500;line-height:1.2}.label--signal{color:var(--signal-text)}.meta{font-family:var(--font-mono);letter-spacing:.02em;color:var(--text-soft);margin:0;font-size:.8125rem;line-height:1.4}p{text-wrap:pretty;margin:0}a{color:var(--signal-text);text-underline-offset:.18em;transition:color var(--dur-fast) var(--ease-out);text-decoration-thickness:1px}a:hover{color:var(--signal-fill-hover)}strong,b{font-weight:600}hr{border:none;border-top:1px solid var(--hairline);margin:0}img,svg,video{max-width:100%}img{height:auto}.container,.container--wide{width:100%;margin-inline:auto;padding-inline:20px}.container{max-width:calc(var(--w-container) + 128px)}.container--wide{max-width:calc(var(--w-wide) + 128px)}@media (width>=768px){.container,.container--wide{padding-inline:40px}}@media (width>=1280px){.container,.container--wide{padding-inline:64px}}.section{padding-block:5rem}@media (width>=768px){.section{padding-block:7rem}}.section--band{background:var(--bg-band)}.section--calm{background:var(--calm)}.section--ink{background:var(--color-ink);color:var(--color-paper)}.stack{flex-direction:column;display:flex}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:0;padding:0;overflow:hidden;position:absolute!important}.prose{max-width:var(--w-text);flex-direction:column;gap:1.5rem;font-size:1.0625rem;line-height:1.7;display:flex}.prose>h2{margin-top:1.5rem}.prose>h3{margin-top:1rem}.prose>h2.anchored{position:relative}.heading-anchor{margin-block:-.8rem;font-family:var(--font-body);color:var(--text-soft);opacity:.5;justify-content:center;align-items:center;margin-left:.05rem;padding:.8rem .85rem;font-size:.55em;font-weight:500;line-height:1;text-decoration:none;transition:opacity .12s,color .12s;display:inline-flex;position:relative}.heading-anchor:before{content:"§"}.heading-anchor:hover,.heading-anchor:focus{color:var(--signal-text);opacity:1}@media (width>=768px){.heading-anchor{opacity:0;width:2rem;height:2rem;margin:0 .25rem 0 0;padding:0;position:absolute;top:0;right:100%}h2.anchored:hover .heading-anchor,.heading-anchor:focus{opacity:1}}.heading-anchor[data-copied]:after{content:"Link copied";border-radius:var(--radius-sm);background:var(--calm);color:var(--calm-text);white-space:nowrap;pointer-events:none;padding:.2rem .45rem;font-size:1.5em;font-weight:500;line-height:1.2;position:absolute;bottom:calc(100% + .4rem);left:50%;transform:translate(-50%)}.prose ul,.prose ol{flex-direction:column;gap:.5rem;margin:0;padding-left:1.4em;display:flex}.prose li::marker{color:var(--signal)}.prose blockquote{border-left:2px solid var(--signal);font-family:var(--font-display);color:var(--text);margin:0;padding-left:1.5rem;font-size:1.25rem;font-style:italic;line-height:1.5}.prose img{border-radius:var(--radius-md);border:1px solid var(--hairline);display:block}.prose table{border-collapse:collapse;width:100%;font-size:.9375rem}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--hairline);padding:.6rem .8rem}.prose th{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft);font-size:.75rem;font-weight:500}.prose--article>p:first-of-type:first-letter{float:left;font-family:var(--font-display);color:var(--signal);padding-top:.14em;padding-right:.08em;font-size:3.2rem;font-weight:500;line-height:.82}:not(pre)>code{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--bg-band);color:var(--text);padding:.15em .4em;font-size:.875em}html.dark :not(pre)>code{background:#2c2536}.field{flex-direction:column;gap:.4rem;display:flex}.field>label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-soft);font-size:.75rem;font-weight:500}input[type=text],input[type=email],input:not([type]),select,textarea{border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);font-family:var(--font-body);transition:border-color var(--dur-fast) var(--ease-out);padding:.75rem 1rem;font-size:1rem;line-height:1.5}input[type=text]:focus-visible,input[type=email]:focus-visible,input:not([type]):focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--signal)}textarea{resize:vertical;min-height:8rem}::placeholder{color:var(--text-soft);opacity:1}.code-frame{border-radius:var(--radius-md);background:var(--color-terminal-bg);color:var(--color-terminal-fg);border:none;margin:0;overflow:hidden}.code-frame__bar{border-bottom:1px solid var(--color-line-dark);align-items:center;gap:.75rem;padding:.625rem 1rem;display:flex}.code-frame__dots{flex-shrink:0;gap:.375rem;display:flex}.code-frame__dots i{border-radius:var(--radius-full);background:var(--color-line-dark);width:10px;height:10px}.code-frame__dots i:first-child{background:var(--color-terminal-lime)}.code-frame__name{text-align:center;font-family:var(--font-mono);letter-spacing:.02em;color:var(--color-terminal-dim);flex:1;font-size:.8125rem}.code-frame__copy{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-terminal-dim);cursor:pointer;transition:color var(--dur-fast) var(--ease-out);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.code-frame__copy:hover{color:var(--color-terminal-fg)}.code-frame__copy svg{transition:opacity var(--dur-fast) var(--ease-out)}.code-frame__copy .icon-check,.code-frame__copy.is-copied .icon-copy{display:none}.code-frame__copy.is-copied .icon-check{color:var(--color-terminal-lime);display:block}.code-frame pre{font-family:var(--font-mono);margin:0;padding:1.125rem 1rem;font-size:.875rem;line-height:1.6;overflow-x:auto;background:var(--color-terminal-bg)!important}.code-frame code{font-family:inherit;font-size:inherit}html.js-reveal .reveal{opacity:0;transition:opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);transition-delay:var(--reveal-delay,0s);transform:translateY(12px)}html.js-reveal .reveal.is-visible{opacity:1;transform:none}html.js-reveal .sprig path{stroke-dasharray:var(--sprig-len,240);stroke-dashoffset:var(--sprig-len,240);transition:stroke-dashoffset .6s var(--ease-out)}html.js-reveal .sprig.is-visible path{stroke-dashoffset:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.sprig path{opacity:1!important;stroke-dashoffset:0!important;transform:none!important}}
