html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}:root{color-scheme:light dark;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--radius-card:24px;--radius-chip:12px;--gutter:clamp(1rem, 4vw, 3rem);--max:1280px;--nav-h:64px}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 1rem)}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:1.0625rem;line-height:1.6;overflow-x:clip}img,svg,picture,video{max-width:100%;display:block}img{height:auto}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}h1,h2,h3{text-wrap:balance;font-weight:inherit}p{text-wrap:pretty}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:100;background:var(--accent);color:var(--on-accent);transition:transform .2s var(--ease-out);border-radius:999px;padding:.6rem 1rem;font-weight:600;text-decoration:none;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus-visible{transform:none}.container{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.grain:after{content:"";z-index:60;pointer-events:none;opacity:var(--grain,.05);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.btn{--btn-bg:var(--accent);--btn-fg:var(--on-accent);background:var(--btn-bg);min-height:48px;color:var(--btn-fg);white-space:nowrap;transition:transform .16s var(--ease-out), background-color .2s ease, color .2s ease;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:0 1.4rem;font-size:1rem;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn--ghost{--btn-bg:transparent;--btn-fg:var(--text);box-shadow:inset 0 0 0 1px var(--line-strong)}.btn svg{flex:none;width:1.1em;height:1.1em}@media (hover:hover) and (pointer:fine){.btn:hover{--btn-bg:var(--accent-hover)}.btn--ghost:hover{--btn-bg:var(--hover-wash)}}.magnetic{will-change:transform;display:inline-flex}.icon{flex:none;width:1em;height:1em;display:inline-block}.icon svg{width:100%;height:100%}.theme-toggle{width:44px;height:44px;color:var(--text);transition:transform .16s var(--ease-out), background-color .2s ease;border-radius:999px;place-items:center;display:none;position:relative}.js .theme-toggle{display:grid}.theme-toggle:active{transform:scale(.94)}@media (hover:hover) and (pointer:fine){.theme-toggle:hover{background:var(--hover-wash)}}.theme-toggle .icon{width:20px;height:20px;transition:opacity .2s var(--ease-out), transform .2s var(--ease-out), filter .2s var(--ease-out);grid-area:1/1}[data-theme=dark] .theme-toggle .icon--moon,[data-theme=light] .theme-toggle .icon--sun{opacity:0;filter:blur(2px);transform:scale(.9)rotate(-30deg)}html.theme-vt::view-transition-old(root),html.theme-vt::view-transition-new(root){mix-blend-mode:normal;animation:none}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}.prose{max-width:68ch;padding-block:calc(var(--nav-h) + clamp(3rem, 8vw, 6rem)) clamp(4rem, 10vw, 8rem)}.prose h1{font-family:var(--font-display);letter-spacing:var(--display-tracking,-.02em);font-size:clamp(2.25rem,5vw,3.5rem);line-height:1.05;font-weight:var(--display-weight,700);margin-bottom:.75rem}.prose h2{font-family:var(--font-display);font-weight:var(--display-weight,700);margin-top:2.5rem;margin-bottom:.5rem;font-size:1.35rem;line-height:1.25}.prose p,.prose ul,.prose ol{color:var(--text-2);margin-top:.9rem}.prose strong{color:var(--text);font-weight:600}.prose li+li{margin-top:.4rem}.prose a{color:var(--accent-text)}.prose code{background:var(--hover-wash);border-radius:6px;padding:.1em .35em;font-size:.9em}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}.reveal-line-mask{margin-bottom:-.14em;padding-bottom:.14em}.text-link{color:var(--accent-text);text-decoration:underline;text-decoration-color:color-mix(in srgb, currentColor 40%, transparent);font-weight:560;transition:text-decoration-color .2s}@media (hover:hover) and (pointer:fine){.text-link:hover{text-decoration-color:currentColor}}.ext-arrow{vertical-align:-.05em;width:.85em;height:.85em;margin-left:.2em}.section{padding-block:clamp(6rem,13vw,10.5rem)}.nav-sentinel{width:1px;height:8px;position:absolute;top:0}.nav{z-index:50;height:var(--nav-h);transition:background-color .3s,box-shadow .3s;position:fixed;inset:0 0 auto}.nav.is-scrolled{background:color-mix(in srgb, var(--bg) 74%, transparent);backdrop-filter:saturate(1.6)blur(18px);box-shadow:0 1px 0 var(--line)}@media (prefers-reduced-transparency:reduce){.nav.is-scrolled{background:var(--bg);backdrop-filter:none}}.nav__inner{align-items:center;gap:.25rem;height:100%;display:flex}.nav__links{gap:.125rem;padding:0;list-style:none;display:flex}.nav__links a{color:var(--text-2);border-radius:999px;padding:.55rem .8rem;font-size:.95rem;font-weight:540;text-decoration:none;transition:color .2s,background-color .2s;display:block}@media (hover:hover) and (pointer:fine){.nav__links a:hover{color:var(--text);background:var(--hover-wash)}}.btn--small{min-height:40px;padding:0 1rem;font-size:.9375rem}
