:root{--ink-950:#05080f;--ink-900:#080d18;--ink-800:#0c1322;--ink-700:#121b2e;--ink-600:#1b2840;--fg:#e9eef8;--fg-dim:#a8b4cc;--fg-muted:#6f7e9b;--paper:#e7e2d7;--rule:#e9eef81a;--rule-strong:#e9eef838;--glow-core:#2563eb47;--glow-far:#1e3a8a29;--font-display:"Bricolage Grotesque", "Archivo", system-ui, sans-serif;--font-body:"Archivo", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--step--1:clamp(.8rem, .77rem + .15vw, .875rem);--step-0:clamp(1rem, .96rem + .2vw, 1.0625rem);--step-1:clamp(1.2rem, 1.12rem + .4vw, 1.4rem);--step-2:clamp(1.5rem, 1.34rem + .8vw, 2rem);--step-3:clamp(1.95rem, 1.65rem + 1.5vw, 3rem);--step-4:clamp(2.5rem, 1.9rem + 3vw, 4.5rem);--step-5:clamp(3.2rem, 2rem + 6vw, 7rem);--tracking-tight:-.03em;--tracking-label:.16em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--space-9:7rem;--rail:15rem;--sticky-top:0px;--measure:60ch;--page-max:82rem;--gutter:clamp(1.25rem, 4vw, 3.5rem);--radius:2px;--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-fast:.16s;--dur-base:.26s;--dur-slow:.52s;--accent:#ff6b35;--accent-soft:#ff6b3524;--accent-ink:#05080f}*,:before,:after{box-sizing:border-box}body,h1,h2,h3,h4,p,figure,ul,ol,dl,dd{margin:0;padding:0}html{color-scheme:dark;scroll-behavior:smooth}body{background:var(--ink-900);color:var(--fg);font-family:var(--font-body);font-size:var(--step-0);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}ul,ol{list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.display{font-family:var(--font-display);letter-spacing:var(--tracking-tight);font-weight:800;line-height:.92}.h1{font-family:var(--font-display);font-size:var(--step-4);letter-spacing:var(--tracking-tight);font-weight:800;line-height:.95}.h2{font-family:var(--font-display);font-size:var(--step-3);letter-spacing:var(--tracking-tight);font-weight:600;line-height:1.05}.h3{font-family:var(--font-display);font-size:var(--step-2);letter-spacing:var(--tracking-tight);font-weight:600;line-height:1.1}.label{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-muted)}.label--accent{color:var(--accent)}.lead{font-size:var(--step-1);color:var(--fg-dim);max-width:52ch}.prose{max-width:var(--measure);color:var(--fg-dim)}.shell{min-height:100dvh}.wrap{max-width:var(--page-max);padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--space-8);border-top:1px solid var(--rule)}.section__head{justify-content:space-between;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-7);flex-wrap:wrap;display:flex}.glow{background:radial-gradient(60% 55% at 22% 0%, var(--glow-core), transparent 70%), radial-gradient(50% 50% at 78% 10%, var(--glow-far), transparent 72%);pointer-events:none;z-index:0;height:90vh;position:fixed;inset:-30vh -10vw auto}@property --shimmer-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes btn-shimmer{to{--shimmer-angle:360deg}}.btn{align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-3) var(--space-5);border-radius:var(--radius);background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);font-weight:600;font-size:var(--step--1);letter-spacing:.02em;cursor:pointer;isolation:isolate;transition:transform var(--dur-fast) var(--ease-out);--btn-shimmer:#ffffffeb;display:inline-flex;position:relative}.btn:before{content:"";border-radius:inherit;background:conic-gradient(from var(--shimmer-angle), transparent 0 58%, var(--btn-shimmer) 72%, transparent 86% 100%);-webkit-mask-composite:xor;opacity:0;transition:opacity var(--dur-base) var(--ease-out);pointer-events:none;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.btn:hover,.btn:focus-visible{transform:translateY(-2px)}.btn:hover:before,.btn:focus-visible:before{opacity:1;animation:2.2s linear infinite btn-shimmer}.btn--quiet{color:var(--fg);border-color:var(--rule-strong);--btn-shimmer:var(--accent);background:0 0}.btn--quiet:hover{border-color:var(--accent);color:var(--accent)}@media (prefers-reduced-motion:reduce){.btn:hover:before,.btn:focus-visible:before{animation:none}}.bracket{position:relative}.bracket:before,.bracket:after{content:"";border:1px solid var(--rule-strong);width:18px;height:18px;transition:width var(--dur-base) var(--ease-out), height var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);pointer-events:none;position:absolute}.bracket:before{border-bottom:0;border-right:0;top:0;left:0}.bracket:after{border-top:0;border-left:0;bottom:0;right:0}.bracket:hover:before,.bracket:hover:after,.bracket:focus-visible:before,.bracket:focus-visible:after{border-color:var(--accent);width:34px;height:34px}[data-reveal]{opacity:0;transition:opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);transform:translateY(14px)}[data-reveal].is-in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none}}.no-js [data-reveal]{opacity:1;transform:none}.icon[data-astro-cid-g5kwm3ld]{flex:none;display:block}.logo[data-astro-cid-f7espo7c]{display:block;overflow:visible}.logo__bar[data-astro-cid-f7espo7c]{fill:currentColor;transition:fill var(--dur-base) var(--ease-out)}.logo__bar--accent[data-astro-cid-f7espo7c]{fill:var(--accent)}.rail[data-astro-cid-k5owoj7q]{gap:var(--space-7);padding:var(--space-6) var(--space-5);flex-direction:column;display:flex}.rail__name[data-astro-cid-k5owoj7q]{color:var(--fg);transition:color var(--dur-base) var(--ease-out);display:inline-block}.rail__name[data-astro-cid-k5owoj7q]:hover{color:var(--accent)}.rail__nav[data-astro-cid-k5owoj7q]{gap:var(--space-6);display:grid}.rail__primary[data-astro-cid-k5owoj7q]{gap:var(--space-3);display:grid}.rail__primary[data-astro-cid-k5owoj7q]>li[data-astro-cid-k5owoj7q]>a[data-astro-cid-k5owoj7q]{font-size:var(--step-1);color:var(--fg-dim);transition:color var(--dur-fast)}.rail__primary[data-astro-cid-k5owoj7q]>li[data-astro-cid-k5owoj7q]>a[data-astro-cid-k5owoj7q]:hover,.rail__primary[data-astro-cid-k5owoj7q]>li[data-astro-cid-k5owoj7q]>a[data-astro-cid-k5owoj7q][data-section],.rail__primary[data-astro-cid-k5owoj7q]>li[data-astro-cid-k5owoj7q]>a[data-astro-cid-k5owoj7q][aria-current=page]{color:var(--fg)}.rail__primary[data-astro-cid-k5owoj7q]>li[data-astro-cid-k5owoj7q]>a[data-astro-cid-k5owoj7q][data-section]:before,.rail__primary[data-astro-cid-k5owoj7q]>li[data-astro-cid-k5owoj7q]>a[data-astro-cid-k5owoj7q][aria-current=page]:before{content:"";background:var(--accent);vertical-align:middle;width:14px;height:1px;margin-right:var(--space-2);display:inline-block}.rail__sub[data-astro-cid-k5owoj7q]{gap:var(--space-2);margin-top:var(--space-2);margin-bottom:var(--space-4);padding-left:calc(14px + var(--space-2));display:grid}.rail__sub[data-astro-cid-k5owoj7q] a[data-astro-cid-k5owoj7q]{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--fg-muted);transition:color var(--dur-fast);display:inline-block}.rail__sub[data-astro-cid-k5owoj7q] a[data-astro-cid-k5owoj7q]:hover{color:var(--accent)}.rail__sub[data-astro-cid-k5owoj7q] a[data-astro-cid-k5owoj7q][aria-current=page]{color:var(--fg)}.rail__sub[data-astro-cid-k5owoj7q] a[data-astro-cid-k5owoj7q][aria-current=page]:before{content:"";background:var(--accent);vertical-align:middle;width:8px;height:1px;margin-right:var(--space-2);margin-left:calc(-8px - var(--space-2));display:inline-block}.rail__links[data-astro-cid-k5owoj7q]{justify-items:start;gap:var(--space-3);padding-top:var(--space-5);border-top:1px solid var(--rule);margin-top:auto;display:grid}.rail__links[data-astro-cid-k5owoj7q] a[data-astro-cid-k5owoj7q]{align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--step--1);color:var(--fg-muted);transition:color var(--dur-fast);display:flex}.rail__links[data-astro-cid-k5owoj7q] a[data-astro-cid-k5owoj7q]:hover{color:var(--fg)}@media (width<=60rem){.rail[data-astro-cid-k5owoj7q]{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--gutter);border-bottom:1px solid var(--rule);flex-flow:wrap}.rail__nav[data-astro-cid-k5owoj7q]{gap:var(--space-4)}.rail__primary[data-astro-cid-k5owoj7q]{gap:var(--space-4);display:flex}.rail__primary[data-astro-cid-k5owoj7q]>li[data-astro-cid-k5owoj7q]>a[data-astro-cid-k5owoj7q]{font-size:var(--step-0)}.rail__primary[data-astro-cid-k5owoj7q]>li[data-astro-cid-k5owoj7q]>a[data-astro-cid-k5owoj7q][data-section]:before,.rail__primary[data-astro-cid-k5owoj7q]>li[data-astro-cid-k5owoj7q]>a[data-astro-cid-k5owoj7q][aria-current=page]:before{display:none}.rail__primary[data-astro-cid-k5owoj7q]>li[data-astro-cid-k5owoj7q]>a[data-astro-cid-k5owoj7q][data-section],.rail__primary[data-astro-cid-k5owoj7q]>li[data-astro-cid-k5owoj7q]>a[data-astro-cid-k5owoj7q][aria-current=page]{color:var(--accent)}.rail__sub[data-astro-cid-k5owoj7q],.rail__links[data-astro-cid-k5owoj7q]{display:none}}.foot[data-astro-cid-nns7i3if]{padding-block:var(--space-9) var(--space-6);border-top:1px solid var(--rule);gap:var(--space-8);display:grid}.foot__line[data-astro-cid-nns7i3if]{font-family:var(--font-display);font-size:var(--step-3);letter-spacing:var(--tracking-tight);max-width:20ch;margin-top:var(--space-4);font-weight:600;line-height:1.05}.foot__note[data-astro-cid-nns7i3if]{color:var(--fg-muted);font-size:var(--step--1);margin-top:var(--space-4)}.foot__mail[data-astro-cid-nns7i3if]{margin-top:var(--space-4);font-size:var(--step-1);color:var(--accent);transition:border-color var(--dur-base) var(--ease-out);border-bottom:1px solid #0000;display:inline-block}.foot__mail[data-astro-cid-nns7i3if]:hover{border-color:var(--accent)}.foot__meta[data-astro-cid-nns7i3if]{justify-content:space-between;gap:var(--space-4);padding-top:var(--space-5);border-top:1px solid var(--rule);flex-wrap:wrap;display:flex}.foot__links[data-astro-cid-nns7i3if]{gap:var(--space-5);flex-wrap:wrap;display:flex}.foot__links[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]{align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--step--1);color:var(--fg-muted);transition:color var(--dur-fast);display:flex}.foot__links[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]:hover{color:var(--fg)}.foot__copy[data-astro-cid-nns7i3if]{font-family:var(--font-mono);font-size:var(--step--1);color:var(--fg-muted)}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.shell{grid-template-columns:var(--rail) minmax(0, 1fr);max-width:calc(var(--rail) + var(--page-max));align-items:start;margin-inline:auto;display:grid;position:relative}.shell:before{content:"";top:0;bottom:0;left:var(--rail);background:var(--rule);pointer-events:none;width:1px;position:absolute}@media (width>=60rem) and (height>=40rem){.shell>.rail{z-index:2;align-self:start;position:sticky;top:0}}.column{min-width:0;padding-inline:var(--gutter);position:relative}.skip{position:absolute;left:-9999px}.skip:focus{left:var(--space-4);top:var(--space-4);z-index:30;background:var(--accent);color:var(--accent-ink);padding:var(--space-3) var(--space-4);border-radius:var(--radius)}@media (width<=60rem){.shell{grid-template-columns:minmax(0,1fr)}.shell:before{display:none}:root{--sticky-top:calc(44px + var(--space-4) * 2 + 1px)}.shell>.rail{z-index:20;background:var(--ink-900);height:auto;position:sticky;top:0}@supports (backdrop-filter:blur(1px)){.shell>.rail{background:color-mix(in srgb, var(--ink-900) 86%, transparent);backdrop-filter:blur(10px)saturate(115%)}}[id]{scroll-margin-top:var(--sticky-top)}}
