@font-face{font-family:Bricolage;src:url(/fonts/bricolage.woff2)format("woff2-variations");font-weight:200 800;font-display:swap;font-style:normal}@font-face{font-family:Hunter Mono;src:url(/fonts/jetbrains-mono.woff2)format("woff2-variations");font-weight:100 800;font-display:swap;font-style:normal}:root{--canvas:#08090a;--surface:#101214;--surface-2:#16191c;--surface-3:#1d2126;--line:#23272c;--line-strong:#343b42;--line-loud:#4d565f;--ink:#f4f2ee;--ink-2:#b6bcc3;--ink-3:#8b929a;--ink-4:#6a7178;--ember:#ff5a1f;--ember-dim:#c23f13;--ember-wash:#ff5a1f1f;--ember-line:#ff5a1f61;--origin-upstream:#4cc2f0;--origin-derived:#a68bfb;--origin-generated:#f2a33c;--rights-reference:#f2a33c;--rights-attribution:#4cc2f0;--rights-review:#ff8a4c;--rights-cleared:#4fce8a;--font-display:"Bricolage", "Helvetica Neue", Arial, sans-serif;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"Hunter Mono", ui-monospace, "SF Mono", Menlo, monospace;--step--2:clamp(.688rem, .67rem + .09vw, .75rem);--step--1:clamp(.8rem, .77rem + .14vw, .875rem);--step-0:clamp(.938rem, .91rem + .14vw, 1rem);--step-1:clamp(1.125rem, 1.06rem + .32vw, 1.313rem);--step-2:clamp(1.375rem, 1.25rem + .62vw, 1.75rem);--step-3:clamp(1.75rem, 1.5rem + 1.25vw, 2.5rem);--step-4:clamp(2.25rem, 1.75rem + 2.5vw, 3.75rem);--step-5:clamp(2.75rem, 1.9rem + 4.25vw, 5.5rem);--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-7:3rem;--sp-8:4rem;--sp-9:6rem;--gutter:clamp(1rem, .55rem + 2.2vw, 2.75rem);--maxw:1560px;--measure:68ch;--radius:3px;--radius-lg:5px;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.12s;--dur:.22s;--dur-slow:.42s;--shadow-plate:0 1px 0 #ffffff08 inset;--shadow-lift:0 18px 40px -24px #000000e6}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{background:var(--canvas);min-height:100svh;color:var(--ink);font-family:var(--font-ui);font-size:var(--step-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overflow-wrap:break-word;line-height:1.55}img,svg,video,canvas{max-width:100%;height:auto;display:block}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--ember);outline-offset:3px;border-radius:2px}:focus:not(:focus-visible){outline:none}::selection{background:var(--ember);color:var(--canvas)}.shell{width:100%;max-width:var(--maxw);padding-inline:var(--gutter);margin-inline:auto}.tag{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:500;line-height:1.3}.tag--ember{color:var(--ember)}.tag-rule{align-items:center;gap:var(--sp-3);color:var(--ink-3);display:flex}.tag-rule:after{content:"";background:var(--line);flex:1;height:1px}.display{font-family:var(--font-display);letter-spacing:-.025em;text-wrap:balance;font-weight:600;line-height:1.03}.lede{font-size:var(--step-1);color:var(--ink-2);max-width:var(--measure);text-wrap:pretty;line-height:1.5}.prose{max-width:var(--measure);color:var(--ink-2)}.prose>*+*{margin-top:var(--sp-4)}.prose a{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--ember-line);text-decoration-color:var(--ember-line);text-underline-offset:3px}.prose h2,.prose h3{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin-top:var(--sp-6);font-weight:600;line-height:1.15}.prose h2{font-size:var(--step-2)}.prose h3{font-size:var(--step-1)}.prose ul,.prose ol{padding-left:1.15rem}.prose li+li{margin-top:var(--sp-2)}.prose code{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);padding:.1em .35em;font-size:.9em}.prose pre{background:var(--surface);border:1px solid var(--line);border-left:2px solid var(--ember-line);border-radius:var(--radius);padding:var(--sp-4);font-family:var(--font-mono);font-size:var(--step--1);line-height:1.6;overflow-x:auto}.prose pre code{background:0 0;border:0;padding:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:var(--sp-3);left:var(--sp-3);z-index:100;padding:var(--sp-3) var(--sp-4);background:var(--ember);color:var(--canvas);font-family:var(--font-mono);font-size:var(--step--1);border-radius:var(--radius);transition:transform var(--dur) var(--ease-out);font-weight:600;position:absolute;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}body:has(:focus-visible){scroll-padding-block-start:var(--sp-8)}@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}}.masthead[data-astro-cid-hkbrpulz]{z-index:40;background:color-mix(in srgb, var(--canvas) 88%, transparent);-webkit-backdrop-filter:blur(14px)saturate(140%);backdrop-filter:blur(14px)saturate(140%);border-bottom:1px solid var(--line);position:sticky;top:0}.masthead__inner[data-astro-cid-hkbrpulz]{align-items:center;gap:var(--sp-5);grid-template-columns:auto 1fr auto;min-height:3.5rem;display:grid}.brand[data-astro-cid-hkbrpulz]{min-height:2.75rem;color:var(--ink);align-items:center;gap:.55rem;display:inline-flex}.brand__name[data-astro-cid-hkbrpulz]{font-family:var(--font-display);font-weight:600;font-size:var(--step-0);letter-spacing:-.015em;white-space:nowrap}.nav[data-astro-cid-hkbrpulz] ul[data-astro-cid-hkbrpulz]{scrollbar-width:none;align-items:center;gap:clamp(.5rem,1.4vw,1.5rem);padding:0;list-style:none;display:flex;overflow-x:auto}.nav[data-astro-cid-hkbrpulz] ul[data-astro-cid-hkbrpulz]::-webkit-scrollbar{display:none}.nav[data-astro-cid-hkbrpulz] ul[data-astro-cid-hkbrpulz][data-scroll=end]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000)}.nav[data-astro-cid-hkbrpulz] ul[data-astro-cid-hkbrpulz][data-scroll=start]{-webkit-mask-image:linear-gradient(90deg,#0000,#000 2.5rem);mask-image:linear-gradient(90deg,#0000,#000 2.5rem)}.nav[data-astro-cid-hkbrpulz] ul[data-astro-cid-hkbrpulz][data-scroll=both]{-webkit-mask-image:linear-gradient(90deg,#0000,#000 2.5rem calc(100% - 2.5rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 2.5rem calc(100% - 2.5rem),#0000)}.nav__link[data-astro-cid-hkbrpulz]{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);border-bottom:1px solid #0000;padding:.5rem 0;display:inline-block}.nav__link[data-astro-cid-hkbrpulz]:hover{color:var(--ink)}.nav__link[data-astro-cid-hkbrpulz][aria-current=page]{color:var(--ink);border-bottom-color:var(--ember)}.search[data-astro-cid-hkbrpulz]{align-items:center;display:flex;position:relative}.search[data-astro-cid-hkbrpulz] input[data-astro-cid-hkbrpulz]{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:clamp(7rem,14vw,12rem);color:var(--ink);font-family:var(--font-mono);font-size:var(--step--1);transition:border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);padding:.4rem 2rem .4rem .7rem}.search[data-astro-cid-hkbrpulz] input[data-astro-cid-hkbrpulz]::placeholder{color:var(--ink-4)}.search[data-astro-cid-hkbrpulz] input[data-astro-cid-hkbrpulz]:focus{border-color:var(--line-loud);background:var(--surface-2)}.search[data-astro-cid-hkbrpulz] input[data-astro-cid-hkbrpulz]::-webkit-search-cancel-button{filter:invert(.6)}.search__kbd[data-astro-cid-hkbrpulz]{font-family:var(--font-mono);color:var(--ink-4);background:var(--surface-2);border:1px solid var(--line);pointer-events:none;border-radius:2px;padding:0 .3em;font-size:.7rem;position:absolute;right:.4rem}@media (width<=860px){.masthead__inner[data-astro-cid-hkbrpulz]{grid-template-columns:1fr auto;row-gap:0}.nav[data-astro-cid-hkbrpulz]{margin-inline:calc(var(--gutter) * -1);padding-bottom:.35rem;padding-inline:var(--gutter);order:3;grid-column:1/-1}.search__kbd[data-astro-cid-hkbrpulz]{display:none}.search[data-astro-cid-hkbrpulz] input[data-astro-cid-hkbrpulz]{width:8.5rem;padding-right:.7rem}.search[data-astro-cid-hkbrpulz] input[data-astro-cid-hkbrpulz]:focus{width:clamp(9rem,40vw,14rem)}}@media (width<=400px){.brand__name[data-astro-cid-hkbrpulz]{font-size:var(--step--1)}.search[data-astro-cid-hkbrpulz] input[data-astro-cid-hkbrpulz]{width:7.5rem}}.footer[data-astro-cid-hkbrpulz]{margin-top:var(--sp-9);border-top:1px solid var(--line);padding-top:var(--sp-6);background:var(--surface)}.footer__inner[data-astro-cid-hkbrpulz]{gap:var(--sp-6);padding-bottom:var(--sp-6);grid-template-columns:minmax(0,1fr) minmax(0,2fr);display:grid}.footer__brand[data-astro-cid-hkbrpulz]{gap:var(--sp-3);color:var(--ink-3);flex-direction:column;display:flex}.footer__tagline[data-astro-cid-hkbrpulz]{font-size:var(--step--1);max-width:28ch;color:var(--ink-3)}.footer__cols[data-astro-cid-hkbrpulz]{gap:var(--sp-5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.footer__cols[data-astro-cid-hkbrpulz] h2[data-astro-cid-hkbrpulz]{margin-bottom:var(--sp-3)}.footer__cols[data-astro-cid-hkbrpulz] ul[data-astro-cid-hkbrpulz]{gap:var(--sp-2);padding:0;list-style:none;display:grid}.footer__cols[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]{min-height:2rem;font-size:var(--step--1);color:var(--ink-2);transition:color var(--dur-fast) var(--ease-out);padding-block:.35rem;display:inline-block}.footer__cols[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]:hover{color:var(--ink)}.footer__legal[data-astro-cid-hkbrpulz]{padding-block:var(--sp-4);border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--step--2);color:var(--ink-4);letter-spacing:.02em}@media (width<=760px){.footer__inner[data-astro-cid-hkbrpulz]{grid-template-columns:1fr}.footer__cols[data-astro-cid-hkbrpulz]{gap:var(--sp-5) var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}}
