@font-face{font-family:Bright Sunshine;src:url(/fonts/BrightSunshine.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--bg: #ffffff;--bg-2: #f6f6f7;--bg-3: #ececef;--fg: #111113;--fg-2: #27272a;--muted: #52525b;--muted-2: #71717a;--line: #e4e4e7;--line-2: #d1d1d6;--red: #e11d48;--red-fill: #e11d48;--red-ink: #be123c;--red-press: #9f1239;--red-tint: rgba(225, 29, 72, .08);--blue: #2563eb;--blue-ink: #1d4ed8;--blue-tint: rgba(37, 99, 235, .08);--green: #059669;--green-ink: #047857;--green-tint: rgba(5, 150, 105, .08);--amber: #d97706;--amber-ink: #b45309;--amber-tint: rgba(217, 119, 6, .08);--ascii-ink-strong: color-mix(in oklab, var(--fg) 92%, var(--bg));--ascii-ink: color-mix(in oklab, var(--fg) 50%, var(--bg));--ascii-success: var(--green);--ascii-warning: var(--amber);--ascii-error: var(--red);--sans: "Inter", -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", sans-serif;--brand-font: "Bright Sunshine", var(--sans);--gutter: clamp(1.25rem, 4.5vw, 4rem);--col-gap: clamp(1rem, 1.8vw, 1.5rem);--max: 78rem;--ease: cubic-bezier(.22, 1, .36, 1);--ease-out-press: cubic-bezier(.16, 1, .3, 1);--fast: .14s;--press-ms: 80ms;color-scheme:light}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{font-size:100%;background:var(--bg);-webkit-text-size-adjust:100%;caret-color:var(--red);scrollbar-color:var(--line-2) transparent;scrollbar-width:thin}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-optical-sizing:auto;font-size:1.03125rem;line-height:1.65;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden;word-wrap:break-word;overflow-wrap:break-word}::selection{background:var(--fg);color:#fff}a,button{color:inherit;text-decoration:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%;height:auto}h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--sans);font-optical-sizing:auto;font-weight:600;color:var(--fg);text-wrap:balance}h1{letter-spacing:-.034em;line-height:1.06}h2{letter-spacing:-.03em;line-height:1.08}h3{letter-spacing:-.022em;line-height:1.2}h4,h5,h6{letter-spacing:-.014em;line-height:1.3}p{margin:0;text-wrap:pretty}ul,ol{margin:0;padding:0}[id]{scroll-margin-top:6rem}:focus-visible{outline:2px solid var(--fg);outline-offset:3px}.tabular{font-variant-numeric:tabular-nums}.sr-only{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:200;padding:.625rem 1rem;background:var(--fg);color:#fff;font:500 .8125rem/1.3 var(--sans);letter-spacing:.01em;border-radius:999px;transform:translateY(-160%);transition:transform var(--fast) var(--ease)}.skip-link:focus{transform:none}.shell{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--col-gap)}.label{font:500 .8125rem/1.4 var(--sans);letter-spacing:.015em;color:var(--muted)}.h-section{font-size:clamp(1.875rem,3.4vw,2.625rem);font-weight:600;letter-spacing:-.032em;line-height:1.08;color:var(--fg)}.u-link{background:linear-gradient(currentColor,currentColor) 0 100% / 0 1.5px no-repeat;transition:background-size .28s var(--ease),color var(--fast) var(--ease),transform var(--press-ms) ease-out;padding-bottom:2px;display:inline-flex;align-items:center;gap:.35rem;font-weight:500}.u-link:hover,.u-link:focus-visible{background-size:100% 1.5px}.u-link:active{transform:scale(.975)}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.55rem 1.25rem;border-radius:999px;font:500 .875rem/1.2 var(--sans);letter-spacing:-.01em;color:var(--fg);background:var(--bg);border:1px solid var(--line);cursor:pointer;user-select:none;transition:background-color var(--fast) var(--ease),color var(--fast) var(--ease),border-color var(--fast) var(--ease),transform var(--press-ms) ease-out}.btn:after{content:"";position:absolute;inset:-5px;border-radius:999px}.btn:hover{background:var(--bg-2);border-color:var(--line-2)}.btn:active{transform:scale(.975);background:var(--bg-3)}.btn--dark{background:var(--fg);border-color:var(--fg);color:#fff}.btn--dark:hover{background:#27272a;border-color:#27272a;color:#fff}.btn--dark:active{transform:scale(.975);background:#09090b;border-color:#09090b}.btn[data-copied=true]{border-color:var(--green);color:var(--green-ink);background:var(--green-tint)}.btn__arr{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:.95rem;height:.95rem;opacity:.78;transition:transform .22s var(--ease),opacity .22s var(--ease)}.btn__arr svg{width:100%;height:100%;display:block;overflow:visible}.btn:hover .btn__arr,.btn:focus-visible .btn__arr{opacity:1}.btn:hover .btn__arr--right,.btn:focus-visible .btn__arr--right{transform:translate(2px)}.btn:hover .btn__arr--down,.btn:focus-visible .btn__arr--down{transform:translateY(2px)}.btn:hover .btn__arr--ne,.btn:focus-visible .btn__arr--ne{transform:translate(1.5px,-1.5px)}.icon-arr{display:inline-flex;align-items:center;justify-content:center;width:.95em;height:.95em;vertical-align:-.12em;flex-shrink:0;transition:transform .22s var(--ease)}.icon-arr svg{width:100%;height:100%;display:block;overflow:visible}a:hover .icon-arr--ne,a:focus-visible .icon-arr--ne{transform:translate(1.5px,-1.5px)}a:hover .icon-arr--up,a:focus-visible .icon-arr--up{transform:translateY(-2px)}a:hover .icon-arr--left,a:focus-visible .icon-arr--left{transform:translate(-2px)}.nav{position:fixed;top:1rem;left:0;right:0;z-index:100;display:flex;flex-direction:column;align-items:center;padding-inline:1rem;pointer-events:none}.nav:before{content:"";position:fixed;top:0;left:0;right:0;height:4.75rem;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,#ffffffd1,#fff0);opacity:0;transition:opacity .28s var(--ease)}.nav.is-scrolled:before{opacity:1}.nav__pill{position:relative;pointer-events:auto;display:flex;align-items:center;gap:.35rem;min-height:3.125rem;padding:.325rem .4rem .325rem 1.1rem;background:#fffffff0;border:1px solid rgba(17,17,19,.08);border-radius:999px;box-shadow:0 1px 2px #1111130a,0 10px 28px -6px #11111312,inset 0 1px #ffffffbf;overflow:hidden;transition:background-color .24s var(--ease),border-color .24s var(--ease),box-shadow .24s var(--ease)}.nav.is-scrolled .nav__pill{background:#fffffffa;border-color:#1111131c;box-shadow:0 2px 6px #1111130d,0 16px 36px -8px #1111131a,inset 0 1px #ffffffd9}.nav__brand{display:inline-flex;align-items:center;padding-right:.5rem;color:var(--fg);transition:opacity var(--fast) var(--ease),transform var(--press-ms) ease-out}.nav__brand:hover{opacity:.75}.nav__brand:active{transform:scale(.96)}.nav__brand-name{font-family:var(--brand-font);font-weight:400;font-size:1.375rem;line-height:1.25;letter-spacing:.01em;color:var(--fg)}.nav__sep{width:1px;height:1.125rem;background:var(--line);margin-inline:.125rem;flex-shrink:0}.nav__links{position:relative;display:flex;align-items:center;gap:.125rem;isolation:isolate}.nav__indicator{position:absolute;top:0;left:0;height:2.25rem;border-radius:999px;background:var(--bg-3);box-shadow:inset 0 1px 1px #1111130a;z-index:-1;pointer-events:none;will-change:transform,width;opacity:0;transition:opacity .14s var(--ease)}.nav__links.has-indicator .nav__indicator{opacity:1}.nav__link{position:relative;display:inline-flex;align-items:center;gap:.35rem;min-height:2.25rem;padding:0 .925rem;border-radius:999px;font:500 .85rem/1.3 var(--sans);letter-spacing:-.006em;color:var(--muted);transition:color var(--fast) var(--ease),transform var(--press-ms) ease-out}.nav__link:hover,.nav__link:focus-visible{color:var(--fg)}.nav__link:active{transform:scale(.95)}.nav__link.active{color:var(--fg);font-weight:600;background:var(--bg-3)}.nav__links.has-indicator .nav__link.active{background:transparent}.nav__link-count{font-size:.6875rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--muted-2);background:#1111130d;padding:.08rem .38rem;border-radius:999px;line-height:1.25}.nav__link.active .nav__link-count{color:var(--fg);background:#ffffffd9}.nav__toggle{display:none;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:0;border-radius:999px;background:transparent;color:var(--fg);cursor:pointer;transition:background-color var(--fast) var(--ease),transform var(--press-ms) ease-out}.nav__toggle:hover{background:var(--bg-2)}.nav__toggle:active{transform:scale(.92);background:var(--bg-3)}.nav__toggle svg line{transition:transform .28s var(--ease);transform-origin:center}.nav.is-open .nav__toggle .l1{transform:translateY(3px) rotate(45deg)}.nav.is-open .nav__toggle .l2{transform:translateY(-3px) rotate(-45deg)}.nav__sheet{pointer-events:auto;width:min(100%,23.75rem);margin-top:.5rem;padding:.625rem 1.25rem 1.125rem;background:#fffffffa;border:1px solid rgba(17,17,19,.08);border-radius:1.375rem;box-shadow:0 20px 44px -10px #11111324;transform-origin:calc(100% - 1.5rem) 0%;will-change:transform,opacity;touch-action:none}.nav__sheet-grabber{width:2.25rem;height:.25rem;border-radius:999px;background:#1111132e;margin:.125rem auto .5rem}.nav__sheet .nav__link{display:flex;justify-content:space-between;min-height:2.75rem;padding:.75rem .875rem;border-radius:.75rem;font-size:1.0625rem;letter-spacing:-.015em;color:var(--fg)}.nav__sheet .nav__link+.nav__link{margin-top:.25rem}@media(max-width:720px){.nav{top:.75rem;padding-inline:.75rem}.nav__pill{width:100%;max-width:24rem;justify-content:space-between}.nav__links,.nav__sep,.nav__status{display:none}.nav__toggle{display:inline-flex}}.footer-full{width:100%;margin-top:clamp(3rem,6vw,5rem);background:var(--bg-2);border-top:1px solid var(--line);position:relative;overflow:hidden}.footer-ticker{background:var(--bg);color:var(--fg-2);border-bottom:1px solid var(--line);padding:.85rem 0;overflow:hidden;white-space:nowrap;display:flex;user-select:none}.footer-ticker__track{display:flex;align-items:center;gap:2.25rem;padding-right:2.25rem;font:600 .8125rem/1 var(--sans);letter-spacing:.04em;text-transform:uppercase;animation:ticker-scroll 28s linear infinite}.footer-ticker__pill{display:inline-block;padding:.25rem .65rem;border-radius:999px;background:var(--bg-2);border:1px solid var(--line);color:var(--fg);font-size:.71875rem;font-weight:600;font-variant-numeric:tabular-nums}@keyframes ticker-scroll{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}.footer-inner{width:100%;padding:clamp(3.5rem,6vw,5.5rem) clamp(1.5rem,5vw,5rem) clamp(2rem,4vw,3rem)}.footer__top{padding-bottom:clamp(2.5rem,4.5vw,3.75rem);border-bottom:1px solid var(--line)}.footer__cta{max-width:46rem}.footer__headline{font-family:var(--brand-font);font-weight:400;font-size:clamp(2.75rem,5.8vw,4.75rem);line-height:1.08;letter-spacing:.01em;color:var(--fg)}.footer__sub{margin-top:1.125rem;font-size:clamp(1.05rem,1.3vw,1.2rem);color:var(--muted);line-height:1.62;max-width:52ch}.footer__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem;margin-top:2rem}.footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem 2rem;padding-top:1.75rem;font:400 .875rem/1.4 var(--sans);color:var(--muted)}.footer__bottom-left{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.footer__brand-sig{font-family:var(--brand-font);font-size:1.65rem;color:var(--fg);transition:transform var(--press-ms) ease-out}.footer__brand-sig:active{transform:scale(.96)}.footer__minimal-links{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;list-style:none;color:var(--fg-2)}@media(max-width:720px){.footer-inner{padding:2.5rem 1.25rem 2rem}.footer__headline{font-size:clamp(2.15rem,8.5vw,3.25rem)}.footer__bottom{flex-direction:column;align-items:flex-start;gap:1rem}.footer__minimal-links{gap:1.125rem}}@media(prefers-reduced-motion:no-preference){.enter{animation:enter .65s var(--ease) both;animation-delay:var(--d, 0ms)}}@keyframes enter{0%{opacity:0;transform:translateY(10px)}}html[data-astro-transition] .enter{animation:none!important}.nav{view-transition-name:site-nav}::view-transition-group(site-nav){animation:none}::view-transition-old(site-nav){display:none}::view-transition-new(site-nav){animation:none;mix-blend-mode:normal}::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal}@media(prefers-reduced-motion:no-preference){::view-transition-old(root){animation:vt-page-out .18s cubic-bezier(.4,0,1,1) both}::view-transition-new(root){animation:vt-page-in .24s cubic-bezier(.22,1,.36,1) both}}@keyframes vt-page-out{0%{opacity:1}to{opacity:0}}@keyframes vt-page-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.enter{opacity:1!important;transform:none!important}.btn,.nav__link,.nav__toggle,.footer__links a,.u-link{transition:background-color .15s ease,color .15s ease,border-color .15s ease,opacity .15s ease!important}.btn:active,.nav__link:active,.nav__toggle:active,.footer__links a:active,.u-link:active{transform:none!important;opacity:.75}}@media(prefers-reduced-transparency:reduce){.nav__pill,.nav.is-scrolled .nav__pill,.nav__sheet{background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border-color:var(--line-2)!important}.nav:before{display:none!important}}@media(prefers-contrast:more){:root{--fg: #000000;--fg-2: #18181b;--muted: #3f3f46;--line: #71717a;--line-2: #3f3f46}.nav__pill,.nav__sheet{background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border:1.5px solid #000000!important}.nav__link{color:#000}.nav__link.active{outline:2px solid #000000;outline-offset:-2px}.btn{border-width:1.5px;border-color:#000}}.page-head{padding-top:clamp(7.5rem,16vh,10.5rem);padding-bottom:clamp(2rem,5vw,3.5rem)}.page-head__kicker{margin-bottom:.75rem}.page-head__title{font-size:clamp(2.25rem,5vw,3.75rem);font-weight:600;letter-spacing:-.035em;line-height:1.06}.page-head__lead{margin-top:1.125rem;max-width:58ch;font-size:clamp(1.0625rem,1.3vw,1.21875rem);line-height:1.6;letter-spacing:-.005em;color:var(--muted)}.prose{font-size:1.0625rem;line-height:1.75;letter-spacing:-.003em;color:var(--fg-2);max-width:68ch}.prose>*+*{margin-top:1.3em}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{margin-top:2em;margin-bottom:.4em;color:var(--fg)}.prose h1{font-size:2em;letter-spacing:-.032em;line-height:1.08}.prose h2{font-size:1.5em;letter-spacing:-.025em;line-height:1.15}.prose h3{font-size:1.25em;letter-spacing:-.018em;line-height:1.22}.prose a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--line-2);text-decoration-thickness:1.5px;text-underline-offset:.22em;transition:text-decoration-color var(--fast) var(--ease)}.prose a:hover{text-decoration-color:var(--red)}.prose strong,.prose b{color:var(--fg);font-weight:600}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose blockquote{margin:2em 0;padding:.25em 0 .25em 1.25em;border-left:1px solid var(--fg);font-size:1.12em;line-height:1.55;color:var(--fg)}.prose :not(pre)>code{font-family:var(--sans);font-weight:500;font-size:.9em;padding:.15em .4em;border-radius:.375rem;background:var(--bg-2);border:1px solid var(--line);color:var(--fg)}.prose pre{margin-block:1.8em;padding:1.25rem 1.375rem;border-radius:.875rem;overflow-x:auto;background:var(--bg-2);color:var(--fg);border:1px solid var(--line);font-size:.875rem;line-height:1.65}.prose hr{border:0;border-top:1px solid var(--line);margin-block:2.5em}.prose img{border-radius:.875rem;border:1px solid var(--line)}.prose table{width:100%;border-collapse:collapse;font-size:.90625rem;font-variant-numeric:tabular-nums}.prose th,.prose td{padding:.625rem .75rem;border-bottom:1px solid var(--line);text-align:left}.prose th{color:var(--muted);font-weight:600;font-size:.8125rem;letter-spacing:.01em}@media(max-width:720px){body{font-size:1rem}.prose{font-size:1.03125rem}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
