.site-header[data-astro-cid-fzpbxy5g]{z-index:20;padding-top:env(safe-area-inset-top);position:sticky;top:0}.glass[data-astro-cid-fzpbxy5g]{background:color-mix(in oklch, var(--bg) 82%, transparent);backdrop-filter:blur(14px)saturate(160%);border-bottom:1px solid var(--line-soft);position:absolute;inset:0}.row[data-astro-cid-fzpbxy5g]{justify-content:space-between;align-items:center;gap:16px;min-height:68px;display:flex;position:relative}.brand[data-astro-cid-fzpbxy5g]{border-radius:6px;display:block}.brand[data-astro-cid-fzpbxy5g] img[data-astro-cid-fzpbxy5g]{filter:var(--logo-filter);display:block}nav[data-astro-cid-fzpbxy5g]{align-items:center;gap:clamp(16px,3vw,28px);font-size:15px;display:flex}nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:not(.btn){color:var(--ink-soft);padding-block:10px;transition:color .15s}.nav-cta[data-astro-cid-fzpbxy5g]{min-height:38px;padding-inline:16px;font-size:14.5px}@media (hover:hover) and (pointer:fine){nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:not(.btn):hover{color:var(--ink);text-decoration:none}}@media (prefers-reduced-transparency:reduce){.glass[data-astro-cid-fzpbxy5g]{background:var(--bg);backdrop-filter:none}}@media (width<=640px){.phone-hidden[data-astro-cid-fzpbxy5g]{display:none}}.inner[data-astro-cid-nns7i3if]{padding-block:40px max(56px, calc(24px + env(safe-area-inset-bottom)));border-top:1px solid var(--line-soft);color:var(--ink-dim);align-items:center;gap:20px;font-size:14.5px;display:flex}img[data-astro-cid-nns7i3if]{filter:var(--logo-filter);opacity:.85}nav[data-astro-cid-nns7i3if]{gap:20px;margin-inline-start:auto;display:flex}nav[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]{color:var(--ink-dim);padding-block:8px;transition:color .15s}nav[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if][aria-current=page]{color:var(--ink)}@media (hover:hover) and (pointer:fine){nav[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]:hover{color:var(--ink);text-decoration:none}}@media (width<=560px){.inner[data-astro-cid-nns7i3if]{flex-direction:column;align-items:flex-start;gap:12px}nav[data-astro-cid-nns7i3if]{margin-inline-start:0}}:root{color-scheme:light dark;--bg:oklch(98.5% .003 20);--bg-raise:oklch(96.5% .006 20);--bg-sunk:oklch(95.5% .007 20);--line:oklch(86% .01 20);--line-soft:oklch(91.5% .008 20);--ink:oklch(20% .012 20);--ink-soft:oklch(38% .014 20);--ink-dim:oklch(50% .014 20);--ruby:oklch(56% .21 18);--ruby-hot:oklch(62% .21 18);--ruby-ink:oklch(50% .19 18);--ruby-wash:oklch(56% .21 18/.07);--on-ruby:oklch(98.5% .01 18);--shadow-card:0 0 0 1px oklch(30% .04 20/.06), 0 1px 2px oklch(30% .04 20/.05), 0 8px 24px -12px oklch(30% .06 20/.16);--shadow-shot:0 0 0 1px oklch(0% 0 0/.1), 0 2px 4px oklch(30% .04 20/.05), 0 24px 64px -24px oklch(30% .06 20/.28);--logo-filter:invert(1);--term-bg:oklch(15% .008 20);--term-line:oklch(24% .01 20);--term-ink:oklch(86% .008 20);--term-dim:oklch(58% .012 20);--mono:var(--font-mono);--pixel:var(--font-pixel);--sans:var(--font-archivo);--ease-out:cubic-bezier(.23, 1, .32, 1);--page:1120px;--gutter:clamp(16px, 4vw, 40px);--section:clamp(72px, 11vh, 128px)}@media (prefers-color-scheme:dark){:root{--bg:oklch(16% .008 20);--bg-raise:oklch(19% .01 20);--bg-sunk:oklch(13% .008 20);--line:oklch(28% .012 20);--line-soft:oklch(23% .01 20);--ink:oklch(93% .005 20);--ink-soft:oklch(72% .01 20);--ink-dim:oklch(60% .012 20);--ruby:oklch(62% .21 18);--ruby-hot:oklch(72% .19 18);--ruby-ink:oklch(74% .17 18);--ruby-wash:oklch(62% .21 18/.1);--on-ruby:oklch(98% .01 18);--shadow-card:0 0 0 1px oklch(100% 0 0/.07), 0 1px 2px oklch(0% 0 0/.3);--shadow-shot:0 0 0 1px oklch(100% 0 0/.1), 0 24px 64px -24px oklch(0% 0 0/.7);--logo-filter:none}}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--ink-soft);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:17px;line-height:1.65;overflow-x:clip}::selection{background:var(--ruby);color:var(--on-ruby)}h1,h2,h3{color:var(--ink);text-wrap:balance;font-weight:700;line-height:1.12}h2{letter-spacing:-.025em;font-size:clamp(28px,3.4vw,42px);font-weight:800}p{text-wrap:pretty}a{color:var(--ruby-ink);text-decoration:none}a,button,summary{touch-action:manipulation}@media (hover:hover) and (pointer:fine){a:hover{text-underline-offset:3px;text-decoration:underline from-font}}:focus-visible{outline:2px solid var(--ruby-hot);outline-offset:3px;border-radius:4px}[id]{scroll-margin-top:calc(5rem + env(safe-area-inset-top))}code{font-family:var(--mono);font-size:.92em}.wrap{max-width:var(--page);padding-inline:var(--gutter);margin-inline:auto}.skip{inset-inline-start:16px;z-index:30;background:var(--ink);color:var(--bg);border-radius:8px;padding:10px 16px;position:absolute;top:-100px}.skip:focus-visible{top:12px}.btn{white-space:nowrap;-webkit-user-select:none;user-select:none;min-height:44px;transition-property:scale,background-color;transition-duration:.15s;transition-timing-function:var(--ease-out);border-radius:999px;align-items:center;gap:8px;padding:0 24px;font-size:15px;font-weight:700;display:inline-flex}.btn:active{scale:.96}.btn svg{width:16px;height:16px}.btn-primary{background:var(--ruby);color:var(--on-ruby)}.btn-quiet{color:var(--ink);background:var(--bg-raise);box-shadow:inset 0 0 0 1px var(--line)}.text-link{color:var(--ink);text-decoration:underline;text-decoration-color:color-mix(in oklch, currentColor 35%, transparent);text-underline-offset:.25em;padding-block:10px;font-weight:600;text-decoration-thickness:from-font;transition:text-decoration-color .15s}@media (hover:hover) and (pointer:fine){.btn:hover{text-decoration:none}.btn-primary:hover{background:var(--ruby-hot)}.btn-quiet:hover{background:var(--bg-sunk)}.text-link:hover{text-decoration-color:currentColor}}@media (prefers-reduced-motion:no-preference){@keyframes rise{0%{opacity:0;translate:0 12px}}.rise{animation:rise .5s var(--ease-out) backwards;animation-delay:var(--rise-delay,0s)}.js .reveal{opacity:0;transition:opacity .5s var(--ease-out), translate .5s var(--ease-out);transition-delay:var(--reveal-delay,0s);translate:0 12px}.js .reveal.in{opacity:1;translate:0}}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
