.arrow.astro-twx32vo6{flex:none;width:1em;height:1em}.btn.astro-j6ocf6pu{--btn-h:3.5rem;--btn-px:1.6rem;--btn-bg:var(--c-signal);--btn-fg:var(--c-ink);--btn-fill:var(--fg);--btn-fill-fg:var(--bg);isolation:isolate;min-height:var(--btn-h);padding:0 .5rem 0 var(--btn-px);border-radius:var(--r-pill);background:var(--btn-bg);color:var(--btn-fg);font-size:var(--fs-sm);letter-spacing:-.005em;white-space:nowrap;transition:color var(--dur-3) var(--ease-out);-webkit-tap-highlight-color:transparent;align-items:center;font-weight:560;line-height:1;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn--s.astro-j6ocf6pu{--btn-h:2.75rem;--btn-px:1.15rem;font-size:.8125rem}.btn--l.astro-j6ocf6pu{--btn-h:4.25rem;--btn-px:2rem;font-size:var(--fs-base)}.btn--ghost.astro-j6ocf6pu{--btn-bg:transparent;--btn-fg:var(--fg);box-shadow:inset 0 0 0 1px var(--line-strong)}.btn__fill.astro-j6ocf6pu{z-index:-1;background:var(--btn-fill);border-radius:inherit;clip-path:circle(0% at calc(100% - var(--btn-h) / 2) 50%);transition:clip-path var(--dur-4) var(--ease-out);position:absolute;inset:0}.btn__inner.astro-j6ocf6pu{align-items:center;gap:.9rem;display:inline-flex}.btn__label.astro-j6ocf6pu{padding-block:.2em;display:inline-block;position:relative;overflow:visible clip}.btn__text.astro-j6ocf6pu{transition:transform var(--dur-4) var(--ease-out);display:block}.btn__text--clone.astro-j6ocf6pu{position:absolute;inset:.2em 0 auto;transform:translateY(130%)}.btn__icon.astro-j6ocf6pu{width:calc(var(--btn-h) - 1rem);height:calc(var(--btn-h) - 1rem);background:var(--c-ink);color:var(--c-paper);transition:transform var(--dur-4) var(--ease-out), background-color var(--dur-3) var(--ease-out), color var(--dur-3) var(--ease-out);border-radius:50%;place-items:center;font-size:1rem;display:grid}.btn--ghost.astro-j6ocf6pu .btn__icon.astro-j6ocf6pu{background:var(--fg);color:var(--bg)}.btn__icon.astro-j6ocf6pu .arrow{transition:transform var(--dur-4) var(--ease-out)}@media (hover:hover){.btn.astro-j6ocf6pu:hover{color:var(--btn-fill-fg)}.btn.astro-j6ocf6pu:hover .btn__fill.astro-j6ocf6pu{clip-path:circle(150% at calc(100% - var(--btn-h) / 2) 50%)}.btn.astro-j6ocf6pu:hover .btn__text.astro-j6ocf6pu{transform:translateY(-130%)}.btn.astro-j6ocf6pu:hover .btn__text--clone.astro-j6ocf6pu{transform:translateY(0)}.btn.astro-j6ocf6pu:hover .btn__icon.astro-j6ocf6pu{background:var(--c-signal);color:var(--c-ink)}.btn.astro-j6ocf6pu:hover .btn__icon.astro-j6ocf6pu .arrow{transform:translate(2px)}}.btn.astro-j6ocf6pu:active .btn__icon.astro-j6ocf6pu{transform:scale(.9)}@media (prefers-reduced-motion:reduce){.btn.astro-j6ocf6pu,.btn.astro-j6ocf6pu .astro-j6ocf6pu{transition-duration:.01ms!important}}.lang.astro-vhd37z2g{--item:2.5rem;--h:2.25rem;border-radius:var(--r-pill);box-shadow:inset 0 0 0 1px var(--line-strong);padding:3px;display:inline-flex;position:relative}.lang--m.astro-vhd37z2g{--item:3.25rem;--h:2.75rem}ul.astro-vhd37z2g{margin:0;display:flex;position:relative}a.astro-vhd37z2g{width:var(--item);height:var(--h);border-radius:var(--r-pill);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:var(--tracking-mono);color:var(--fg-mute);transition:color var(--dur-3) var(--ease-out);place-items:center;font-weight:500;text-decoration:none;display:grid}a.astro-vhd37z2g[aria-current]{color:var(--bg)}.lang__pill.astro-vhd37z2g{width:var(--item);height:var(--h);border-radius:var(--r-pill);background:var(--fg);transform:translateX(calc(var(--active) * 100%));transition:transform var(--dur-4) var(--ease-out);position:absolute;top:3px;left:3px}@media (hover:hover){a.astro-vhd37z2g:not([aria-current]):hover{color:var(--fg)}.lang.astro-vhd37z2g:has(li:first-child a:hover) .lang__pill.astro-vhd37z2g{transform:translate(0)}.lang.astro-vhd37z2g:has(li:nth-child(2) a:hover) .lang__pill.astro-vhd37z2g{transform:translate(100%)}.lang.astro-vhd37z2g:has(a:not([aria-current]):hover) a.astro-vhd37z2g[aria-current]{color:var(--fg-mute)}.lang.astro-vhd37z2g:has(a:hover) a.astro-vhd37z2g:hover{color:var(--bg)}}.site-header.astro-isef26zo{z-index:var(--z-header);height:var(--header-h);color:var(--fg);view-transition-name:site-header;transition:transform var(--dur-4) var(--ease-out), color var(--dur-3) var(--ease-out);position:fixed;inset:0 0 auto}.site-header.astro-isef26zo:before{content:"";z-index:-1;background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.4);box-shadow:inset 0 -1px 0 var(--line);opacity:0;transition:opacity var(--dur-3) var(--ease-out), background-color var(--dur-3) var(--ease-out);position:absolute;inset:0}[data-header-state=scrolled] .site-header.astro-isef26zo:before,[data-header-state=hidden] .site-header.astro-isef26zo:before{opacity:1}[data-header-state=hidden] .site-header.astro-isef26zo:not(:focus-within){transform:translateY(-100%)}.site-header__bar.astro-isef26zo{justify-content:space-between;align-items:center;gap:var(--s-5);height:100%;display:flex}.site-header__logo.astro-isef26zo{min-height:44px;color:inherit;align-items:center;font-size:1.5rem;text-decoration:none;display:inline-flex}.site-header__nav.astro-isef26zo{display:none}.site-header__nav.astro-isef26zo ul.astro-isef26zo{gap:clamp(1.25rem,2.2vw,2.25rem);display:flex}.site-header__nav.astro-isef26zo a.astro-isef26zo{color:inherit;padding-block:.75rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex;position:relative}.site-header__nav.astro-isef26zo a.astro-isef26zo:after{content:"";background:var(--c-signal);width:4px;height:4px;transition:transform var(--dur-3) var(--ease-out);border-radius:50%;margin-left:-2px;position:absolute;bottom:.3rem;left:50%;transform:scale(0)}.site-header__nav.astro-isef26zo a.astro-isef26zo[aria-current]:after{transform:scale(1)}.roll.astro-isef26zo{line-height:1.25;display:inline-block;overflow:visible clip}.roll__t.astro-isef26zo{transition:transform var(--dur-4) var(--ease-out);display:inline-block;position:relative}.roll__t.astro-isef26zo:after{content:attr(data-text) / "";position:absolute;top:100%;left:0}@media (hover:hover){.site-header__nav.astro-isef26zo a.astro-isef26zo:hover .roll__t.astro-isef26zo{transform:translateY(-100%)}}.site-header__actions.astro-isef26zo{align-items:center;gap:var(--s-3);display:flex}.site-header__actions.astro-isef26zo .site-header__cta{display:none}.menu-toggle.astro-isef26zo{width:44px;height:44px;color:inherit;box-shadow:inset 0 0 0 1px var(--line-strong);border-radius:50%;place-items:center;display:grid;position:relative}.menu-toggle__lines.astro-isef26zo,.menu-toggle__lines.astro-isef26zo:before{width:16px;height:1.5px;transition:transform var(--dur-3) var(--ease-out);background:currentColor;display:block}.menu-toggle__lines.astro-isef26zo{position:relative;transform:translateY(-3px)}.menu-toggle__lines.astro-isef26zo:before{content:"";position:absolute;top:6px;left:0}.menu-toggle.astro-isef26zo.is-open .menu-toggle__lines.astro-isef26zo{transform:rotate(45deg)}.menu-toggle.astro-isef26zo.is-open .menu-toggle__lines.astro-isef26zo:before{transform:translateY(-6px)rotate(-90deg)}@media (width>=64rem){.site-header__nav.astro-isef26zo{display:block}.site-header__actions.astro-isef26zo .site-header__cta{display:inline-flex}.site-header.astro-isef26zo .menu-toggle.astro-isef26zo{display:none}}.menu.astro-isef26zo{background:var(--bg);width:100%;max-width:none;height:100dvh;max-height:none;color:var(--fg);overscroll-behavior:contain;border:0;margin:0;padding:0;position:fixed;inset:0;overflow-y:auto}.menu.astro-isef26zo::backdrop{background:0 0}.menu.astro-isef26zo[open]{flex-direction:column;display:flex}.menu__bar.astro-isef26zo{height:var(--header-h);flex:none;justify-content:space-between;align-items:center;display:flex}.menu__body.astro-isef26zo{justify-content:space-between;gap:var(--s-7);padding-block:var(--s-7) var(--s-6);flex-direction:column;flex:1;display:flex}.menu__links.astro-isef26zo li.astro-isef26zo{border-top:1px solid var(--line)}.menu__links.astro-isef26zo li.astro-isef26zo:last-child{border-bottom:1px solid var(--line)}.menu__links.astro-isef26zo a.astro-isef26zo{align-items:baseline;gap:var(--s-4);letter-spacing:var(--tracking-display);color:inherit;padding-block:.9rem;font-size:clamp(2rem,9vw,3.5rem);font-weight:560;font-stretch:96%;line-height:1;text-decoration:none;display:flex}.menu__index.astro-isef26zo{font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:var(--tracking-mono);color:var(--accent-text);transform:translateY(-1.1em)}.menu__foot.astro-isef26zo{justify-content:space-between;align-items:center;gap:var(--s-5);flex-wrap:wrap;display:flex}.menu__mail.astro-isef26zo{font-size:var(--fs-sm);color:var(--fg-mute)}@media (prefers-reduced-motion:no-preference){.menu.astro-isef26zo[open]{animation:menu-in var(--dur-4) var(--ease-out) both}.menu.astro-isef26zo.is-closing{animation:menu-out var(--dur-3) var(--ease-in-out) both}.menu.astro-isef26zo[open] .menu__links.astro-isef26zo li.astro-isef26zo{animation:menu-item var(--dur-5) var(--ease-out) both;animation-delay:calc(.12s + var(--i) * 55ms)}}@keyframes menu-in{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0)}}@keyframes menu-out{to{clip-path:inset(0 0 100%)}}@keyframes menu-item{0%{opacity:0;transform:translateY(1.5rem)}}.footer.astro-oenwriqq{background:var(--bg);color:var(--fg);border-top:1px solid var(--line);padding-top:clamp(4rem,8vw,7rem);position:relative;overflow:hidden}.footer__top.astro-oenwriqq{justify-content:space-between;align-items:flex-end;gap:var(--s-6);padding-bottom:var(--s-7);border-bottom:1px solid var(--line);flex-wrap:wrap;display:flex}.footer__tagline.astro-oenwriqq{max-width:18em;font-size:var(--fs-2xl);letter-spacing:var(--tracking-title);text-wrap:balance;font-weight:500;line-height:1.08}.footer__top-link.astro-oenwriqq{align-items:center;gap:var(--s-3);min-height:44px;font-size:var(--fs-sm);color:var(--fg-mute);transition:color var(--dur-2);text-decoration:none;display:inline-flex}.footer__top-icon.astro-oenwriqq{width:44px;height:44px;box-shadow:inset 0 0 0 1px var(--line-strong);color:var(--fg);transition:background-color var(--dur-3) var(--ease-out), color var(--dur-3) var(--ease-out);border-radius:50%;place-items:center;display:grid}@media (hover:hover){.footer__top-link.astro-oenwriqq:hover{color:var(--fg)}.footer__top-link.astro-oenwriqq:hover .footer__top-icon.astro-oenwriqq{background:var(--c-signal);color:var(--c-ink);box-shadow:none}}.footer__cols.astro-oenwriqq{gap:var(--s-7) var(--gutter);padding-block:var(--s-7);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=48rem){.footer__cols.astro-oenwriqq{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr))}}.footer__col.astro-oenwriqq .label.astro-oenwriqq{margin-bottom:var(--s-4);display:flex}.footer__col.astro-oenwriqq ul.astro-oenwriqq{gap:var(--s-2);font-size:var(--fs-sm);display:grid}.footer__col.astro-oenwriqq a.astro-oenwriqq{padding-block:.15rem;display:inline-block}.footer__muted.astro-oenwriqq{color:var(--fg-mute);font-size:var(--fs-sm)}.footer__bottom.astro-oenwriqq{justify-content:space-between;align-items:center;gap:var(--s-4);padding-block:var(--s-5);border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.grid-toggle.astro-oenwriqq{align-items:center;gap:var(--s-3);min-height:44px;font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--fg-mute);display:inline-flex}.grid-toggle__switch.astro-oenwriqq{border-radius:var(--r-pill);width:2.25rem;height:1.25rem;box-shadow:inset 0 0 0 1px var(--line-strong);transition:background-color var(--dur-3) var(--ease-out);position:relative}.grid-toggle__switch.astro-oenwriqq:after{content:"";background:var(--fg-mute);width:calc(1.25rem - 6px);height:calc(1.25rem - 6px);transition:transform var(--dur-3) var(--ease-out), background-color var(--dur-3);border-radius:50%;position:absolute;top:3px;left:3px}.grid-toggle.astro-oenwriqq[aria-pressed=true]{color:var(--fg)}.grid-toggle.astro-oenwriqq[aria-pressed=true] .grid-toggle__switch.astro-oenwriqq{background:var(--c-signal);box-shadow:none}.grid-toggle.astro-oenwriqq[aria-pressed=true] .grid-toggle__switch.astro-oenwriqq:after{background:var(--c-ink);transform:translate(1rem)}kbd.astro-oenwriqq{border-radius:var(--r-xs);box-shadow:inset 0 0 0 1px var(--line-strong);padding:.2em .5em;font-family:inherit;display:none}@media (hover:hover) and (pointer:fine){kbd.astro-oenwriqq{display:inline-block}}.footer__mark.astro-oenwriqq{margin-top:var(--s-6);letter-spacing:-.055em;user-select:none;color:var(--fg);justify-content:center;margin-bottom:-.2em;font-size:clamp(6rem,29vw,34rem);font-weight:680;font-stretch:104%;line-height:.76;display:flex}.footer__letter.astro-oenwriqq{font-weight:var(--w,680);font-stretch:var(--s,104%);transition:font-weight .6s var(--ease-out), font-stretch .6s var(--ease-out);display:inline-block}.footer__letter.astro-oenwriqq.is-caret{color:var(--c-signal)}.cursor.astro-yc6zz7os{display:none}.has-cursor .cursor.astro-yc6zz7os{z-index:var(--z-cursor);pointer-events:none;display:block;position:fixed;inset:0}.has-cursor,.has-cursor .astro-yc6zz7os{cursor:none!important}.has-cursor input.astro-yc6zz7os,.has-cursor textarea.astro-yc6zz7os,.has-cursor select.astro-yc6zz7os,.has-cursor .astro-yc6zz7os[contenteditable]{cursor:auto!important}.cursor__dot.astro-yc6zz7os,.cursor__ring.astro-yc6zz7os{will-change:transform;border-radius:50%;position:absolute;top:0;left:0}.cursor__dot.astro-yc6zz7os{background:var(--c-signal);width:6px;height:6px;transition:opacity var(--dur-2), width var(--dur-3) var(--ease-out), height var(--dur-3) var(--ease-out), margin var(--dur-3) var(--ease-out);margin:-3px 0 0 -3px}.cursor__ring.astro-yc6zz7os{--size:36px;width:var(--size);height:var(--size);margin:calc(var(--size) / -2) 0 0 calc(var(--size) / -2);box-shadow:inset 0 0 0 1px var(--cursor-color,#f4f2ee8c);transition:width var(--dur-4) var(--ease-out), height var(--dur-4) var(--ease-out), margin var(--dur-4) var(--ease-out), background-color var(--dur-3) var(--ease-out), box-shadow var(--dur-3) var(--ease-out), opacity var(--dur-3);place-items:center;display:grid}.cursor.astro-yc6zz7os[data-theme=light] .cursor__ring.astro-yc6zz7os{--cursor-color:#12110f73}.cursor__label.astro-yc6zz7os{font-family:var(--font-mono);letter-spacing:var(--tracking-mono);text-transform:uppercase;color:var(--c-ink);opacity:0;transition:opacity var(--dur-2), transform var(--dur-3) var(--ease-out);font-size:.625rem;font-weight:500;transform:scale(.6)}.cursor.astro-yc6zz7os[data-state=hover] .cursor__ring.astro-yc6zz7os{--size:56px;box-shadow:inset 0 0 0 1px var(--c-signal);background:#ff4a1c1f}.cursor.astro-yc6zz7os[data-state=view] .cursor__ring.astro-yc6zz7os{--size:92px;background:var(--c-signal);box-shadow:none}.cursor.astro-yc6zz7os[data-state=view] .cursor__label.astro-yc6zz7os{opacity:1;transform:none}.cursor.astro-yc6zz7os[data-state=view] .cursor__dot.astro-yc6zz7os,.cursor.astro-yc6zz7os[data-state=text] .cursor__ring.astro-yc6zz7os,.cursor.astro-yc6zz7os[data-state=text] .cursor__dot.astro-yc6zz7os,.cursor.astro-yc6zz7os[data-hidden] .cursor__ring.astro-yc6zz7os,.cursor.astro-yc6zz7os[data-hidden] .cursor__dot.astro-yc6zz7os{opacity:0}.cursor.astro-yc6zz7os[data-pressed] .cursor__ring.astro-yc6zz7os{--size:28px}.lang-suggest.astro-aoh5vfdu{left:50%;bottom:max(var(--s-4), env(safe-area-inset-bottom));z-index:var(--z-toast);width:min(calc(100% - 2 * var(--s-4)), 30rem);--x:-50%;justify-content:space-between;align-items:center;gap:var(--s-3) var(--s-5);padding:var(--s-4) var(--s-4) var(--s-4) var(--s-5);border-radius:var(--r-l);background:var(--c-graphite);color:var(--c-paper);box-shadow:var(--shadow-2), inset 0 0 0 1px var(--line);font-size:var(--fs-sm);transform:translateX(var(--x));flex-wrap:wrap;display:flex;position:fixed}@media (width>=64rem){.lang-suggest.astro-aoh5vfdu{--x:0;top:calc(var(--header-h) + var(--s-2));right:var(--margin);width:25rem;bottom:auto;left:auto}.lang-suggest.astro-aoh5vfdu:before{content:"";top:-6px;right:var(--arrow,14rem);background:var(--c-graphite);width:12px;height:12px;box-shadow:-1px -1px 0 0 var(--line);position:absolute;transform:rotate(45deg)}}.lang-suggest.astro-aoh5vfdu[hidden]{display:none}@media (prefers-reduced-motion:no-preference){.lang-suggest.astro-aoh5vfdu:not([hidden]){animation:suggest-in var(--dur-5) var(--ease-out) both}}@keyframes suggest-in{0%{opacity:0;transform:translate(var(--x), 1rem)}}.lang-suggest__actions.astro-aoh5vfdu{gap:var(--s-2);display:flex}.lang-suggest.astro-aoh5vfdu a.astro-aoh5vfdu,.lang-suggest.astro-aoh5vfdu button.astro-aoh5vfdu{min-height:40px;padding-inline:var(--s-4);border-radius:var(--r-pill);white-space:nowrap;align-items:center;font-size:.8125rem;font-weight:560;text-decoration:none;display:inline-flex}.lang-suggest.astro-aoh5vfdu a.astro-aoh5vfdu{background:var(--c-signal);color:var(--c-ink)}.lang-suggest.astro-aoh5vfdu button.astro-aoh5vfdu{color:var(--c-mute-dark)}@media (hover:hover){.lang-suggest.astro-aoh5vfdu button.astro-aoh5vfdu:hover{color:var(--c-paper)}}main.astro-z4jru4n3:focus{outline:none}
