@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(*),[data-astro-transition-scope]{animation:none!important}}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.theme-toggle[data-astro-cid-l6lhmie6]{border:1px solid var(--rule);border-radius:var(--radius-pill);width:36px;height:36px;color:var(--muted);cursor:pointer;transition:color var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out);background:0 0;place-items:center;display:grid}.theme-toggle[data-astro-cid-l6lhmie6]:hover{color:var(--ink);border-color:var(--muted)}.icon-sun[data-astro-cid-l6lhmie6],:root[data-theme=light] .icon-moon[data-astro-cid-l6lhmie6]{display:none}:root[data-theme=light] .icon-sun[data-astro-cid-l6lhmie6]{display:block}:root{color-scheme:dark;--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--space-3xl:96px;--space-4xl:144px;--text-hero:clamp(3.5rem, 10vw, 8rem);--text-display:clamp(2.5rem, 5vw, 5rem);--text-section:clamp(1.75rem, 3vw, 3rem);--text-title:clamp(1.25rem, 1.5vw, 1.75rem);--text-lead:clamp(1.125rem, .35vw + 1rem, 1.375rem);--text-body:1rem;--text-sm:.875rem;--text-xs:.8125rem;--text-micro:.75rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.23, 1, .32, 1);--dur-instant:80ms;--dur-micro:.12s;--dur-short:.22s;--dur-medium:.35s;--dur-long:.5s;--dur-slow:.8s;--void:oklch(4% .01 280);--paper:oklch(8% .02 280);--surface:oklch(12% .025 285);--surface-2:oklch(16% .03 285);--surface-3:oklch(20% .032 285);--ink:oklch(96% .01 300);--ink-2:oklch(82% .015 298);--muted:oklch(60% .02 295);--rule:oklch(22% .03 285);--rule-2:oklch(32% .035 288);--accent:oklch(68% .22 38);--accent-hover:oklch(62% .2 35);--accent-ink:oklch(10% .02 280);--glow:oklch(68% .22 38/.12);--glow-strong:oklch(68% .22 38/.25);--ember:oklch(55% .18 25);--pulse:oklch(75% .2 45);--energy-line:oklch(68% .22 38/.35);--success:oklch(76% .13 150);--error:oklch(72% .15 27);--focus:oklch(68% .22 38);--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"DM Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--container:1440px;--gutter:64px;--gap:32px;--section-gap:144px;--section-gap-s:96px;--radius-sm:6px;--radius-card:12px;--radius-lg:16px;--radius-pill:999px;--shadow-card:0 24px 48px -12px oklch(4% .02 280/.7);--shadow-hover:0 32px 64px -16px oklch(4% .02 280/.8);--shadow-glow:0 0 40px oklch(68% .22 38/.15);--z-canvas:-1;--z-content:1;--z-card:10;--z-nav:100;--z-modal:200;--z-cursor:9999;--tracking-tight:-.03em;--tracking-display:-.02em;--tracking-normal:0;--tracking-wide:.05em}:root[data-theme=light]{color-scheme:light;--void:oklch(96% .005 280);--paper:oklch(98% .005 280);--surface:oklch(100% 0 0);--surface-2:oklch(96% .005 280);--surface-3:oklch(92% .008 280);--ink:oklch(15% .02 280);--ink-2:oklch(35% .02 280);--muted:oklch(55% .02 280);--rule:oklch(88% .005 280);--rule-2:oklch(80% .008 280);--accent-ink:oklch(98% .005 280);--glow:oklch(68% .22 38/.08);--glow-strong:oklch(68% .22 38/.15);--shadow-card:0 24px 48px -12px oklch(70% .01 280/.15);--shadow-hover:0 32px 64px -16px oklch(70% .01 280/.2);--shadow-glow:0 0 40px oklch(68% .22 38/.1)}@media (width<=60rem){:root{--gutter:24px;--section-gap:96px;--section-gap-s:64px}}@media (width<=40rem){:root{--gutter:16px;--section-gap:72px;--section-gap-s:48px;--gap:16px}}*,:before,:after{box-sizing:border-box}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}html,body{overflow-x:clip}html{scrollbar-color:var(--muted) var(--paper);scroll-padding-top:var(--space-3xl)}body{background:var(--paper);color:var(--ink);font:400 var(--text-body)/1.6 var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;caret-color:var(--accent);margin:0}html.theme-transitioning,html.theme-transitioning *,html.theme-transitioning :before,html.theme-transitioning :after{transition:background-color .8s var(--ease-out), color .8s var(--ease-out), border-color .8s var(--ease-out), box-shadow .8s var(--ease-out), fill .8s var(--ease-out), stroke .8s var(--ease-out)!important}::selection{color:var(--ink);background:oklch(68% .22 38/.22)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}a{color:inherit;text-underline-offset:.16em;text-decoration-thickness:1px}h1,h2,h3,h4{font-family:var(--font-display);font-synthesis:none;letter-spacing:var(--tracking-display);overflow-wrap:break-word;text-wrap:balance;margin:0;font-weight:700;line-height:1.05}h1{font-size:var(--text-hero);letter-spacing:var(--tracking-tight)}h2{font-size:var(--text-display)}h3{font-size:var(--text-section)}h4{font-size:var(--text-title);line-height:1.2}.lead{font-size:var(--text-lead);max-width:52ch;color:var(--ink-2);line-height:1.5}p{text-wrap:pretty;margin:0}p:not([class]){max-width:65ch}img,video{max-width:100%;height:auto;display:block}svg{display:block}button,input,select,textarea{font:inherit}[hidden]{display:none!important}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}#network-canvas{z-index:var(--z-canvas);pointer-events:none;position:fixed;inset:0}#network-canvas.interactive{pointer-events:auto}.nav{top:var(--space-md);z-index:var(--z-nav);padding-inline:var(--gutter);pointer-events:none;position:fixed;left:0;right:0}.nav-pill{max-width:calc(var(--container) - var(--gutter) * 2);padding:var(--space-xs) var(--space-lg);background:oklch(from var(--paper) l c h / .7);backdrop-filter:blur(20px)saturate(1.4);border:1px solid var(--rule);border-radius:var(--radius-pill);pointer-events:auto;transition:background var(--dur-medium) var(--ease-out);justify-content:space-between;align-items:center;margin-inline:auto;display:flex}.wordmark{align-items:center;gap:var(--space-xs);font:700 1.125rem/1 var(--font-display);color:var(--ink);letter-spacing:var(--tracking-display);text-decoration:none;display:flex}.wordmark svg{flex-shrink:0}.nav-links{align-items:center;gap:var(--space-lg);display:flex}.nav-links a{font:500 var(--text-sm)/1 var(--font-body);color:var(--muted);transition:color var(--dur-micro) var(--ease-out);text-decoration:none}.nav-links a:hover{color:var(--ink)}.nav-links a[aria-current]{color:var(--accent)}.nav-actions-mobile{align-items:center;gap:var(--space-xs);display:none}.menu-btn{border:1px solid var(--rule);border-radius:var(--radius-pill);width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;place-items:center;display:none}@media (width<=60rem){.nav-actions-mobile{display:flex}.nav-links .theme-toggle{display:none}.menu-btn{display:grid}.nav-links{top:calc(100% + var(--space-xs));padding:var(--space-sm) var(--space-lg) var(--space-lg);background:oklch(from var(--paper) l c h / .92);backdrop-filter:blur(20px);border:1px solid var(--rule);border-radius:var(--radius-card);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s var(--ease-out), transform .2s var(--ease-out), visibility .2s;flex-direction:column;align-items:stretch;display:flex;position:absolute;left:0;right:0;transform:translateY(-4px)}.nav-links.open{opacity:1;visibility:visible;pointer-events:auto;transform:none}.nav-links a{padding:var(--space-sm) 0;border-bottom:1px solid var(--rule)}.nav-links .btn{margin-top:var(--space-xs)}}.btn{justify-content:center;align-items:center;gap:var(--space-xs);height:48px;padding:0 var(--space-xl);border-radius:var(--radius-pill);font:500 var(--text-sm)/1 var(--font-body);border:1px solid var(--rule-2);color:var(--ink);cursor:pointer;transition:background var(--dur-micro) var(--ease-out), color var(--dur-micro) var(--ease-out), transform .2s var(--ease-out), box-shadow var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out);text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:hover{background:var(--surface-2);border-color:var(--muted)}.btn:active{transform:scale(.97)}.btn--primary{background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-glow);border-color:#0000}.btn--primary:hover{background:var(--accent-hover);box-shadow:0 0 60px oklch(68% .22 38/.25)}.btn--lg{height:64px;padding:0 var(--space-2xl);font-size:1.0625rem}.card{border:1px solid var(--rule);border-radius:var(--radius-card);background:var(--surface);transition:border-color var(--dur-short) var(--ease-out), transform var(--dur-medium) var(--ease-out), box-shadow var(--dur-medium) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.card:before{content:"";border-radius:inherit;pointer-events:none;opacity:0;z-index:1;transition:opacity var(--dur-medium) var(--ease-out);background:conic-gradient(from var(--gradient-angle,0deg), transparent 0%, oklch(68% .22 38/.5) 10%, transparent 20%);-webkit-mask-composite:xor;padding:1px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.card:hover{box-shadow:var(--shadow-hover);border-color:#0000;transform:translateY(-4px)}.card:hover:before{opacity:1;animation:2.5s linear infinite gradient-sweep}@keyframes gradient-sweep{to{--gradient-angle:360deg}}@property --gradient-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.shot{aspect-ratio:16/10;border-bottom:1px solid var(--rule);background:var(--surface-2);position:relative;overflow:hidden}.shot img{object-fit:cover;width:100%;height:100%;transition:transform 6s var(--ease-out);position:absolute;inset:0}.card:hover .shot img{transform:scale(1.04)}.card-body{padding:var(--space-lg);gap:var(--space-xs);flex-direction:column;flex:1;display:flex}.pill{font:500 var(--text-micro)/1 var(--font-body);padding:var(--space-2xs) var(--space-xs);border:1px solid var(--rule);border-radius:var(--radius-pill);color:var(--muted)}.pill.cat{color:var(--accent);border-color:oklch(68% .22 38/.4)}.pills{gap:var(--space-2xs);flex-wrap:wrap;display:flex}.link-text{font:500 var(--text-sm)/1 var(--font-body);color:var(--accent);text-decoration:none}.link-text:hover{text-underline-offset:.16em;text-decoration:underline}.ext-links{gap:var(--space-2xs);margin-top:var(--space-xs);flex-wrap:wrap;display:flex}.ext-pill{font:500 var(--text-micro)/1 var(--font-body);color:var(--muted);padding:var(--space-2xs) var(--space-xs);border:1px solid var(--rule);border-radius:var(--radius-pill);transition:color var(--dur-micro) var(--ease-out), border-color var(--dur-micro) var(--ease-out);text-decoration:none}.ext-pill:hover{color:var(--accent);border-color:oklch(68% .22 38/.4)}.footer{border-top:1px solid var(--rule);padding:var(--space-2xl) 0 var(--space-lg);z-index:var(--z-content);position:relative}.f-grid{gap:var(--space-xl);display:grid}@media (width>=40rem){.f-grid{grid-template-columns:1.5fr 1fr 1fr}}.f-head{font:500 var(--text-sm)/1 var(--font-body);color:var(--muted);margin:0 0 var(--space-lg)}.f-tag{max-width:32ch;margin-top:var(--space-md);color:var(--muted);font-size:var(--text-sm)}.f-loc{margin-top:var(--space-md);color:var(--muted);font-size:var(--text-sm)}.footer ul{margin:0;padding:0;list-style:none}.footer li+li{margin-top:var(--space-xs)}.footer a:not(.wordmark){color:var(--ink-2);transition:color var(--dur-micro) var(--ease-out);text-decoration:none}.footer a:not(.wordmark):hover{color:var(--accent)}.f-copy{margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:1px solid var(--rule);font-size:var(--text-sm);color:var(--muted);justify-content:space-between;gap:var(--space-xs);flex-wrap:wrap;display:flex}.cur{display:none}.has-cursor,.has-cursor a,.has-cursor button,.has-cursor [role=button]{cursor:none}.has-cursor .cur{pointer-events:none;z-index:var(--z-cursor);opacity:0;border-radius:50%;display:block;position:fixed;top:0;left:0}.has-cursor .cur.show{opacity:1}.cur-dot{background:var(--accent);width:8px;height:8px}.cur-ring{border:1px solid var(--muted);width:32px;height:32px;transition:transform .12s var(--ease-spring), opacity var(--dur-micro) var(--ease-out)}.cur-ring.big{border-color:var(--accent);transform:scale(1.6)}.skip{left:-9999px;top:var(--space-xs);background:var(--accent);color:var(--accent-ink);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-pill);z-index:9999;font:500 var(--text-sm)/1 var(--font-body);position:absolute}.skip:focus{left:var(--space-xs)}.mobile-cta{z-index:var(--z-nav);padding:var(--space-sm) var(--gutter);background:oklch(from var(--paper) l c h / .92);backdrop-filter:blur(16px);border-top:1px solid var(--rule);transition:transform var(--dur-medium) var(--ease-out);display:none;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.mobile-cta.visible{transform:none}.mobile-cta .btn{width:100%}@media (width<=60rem){.mobile-cta{display:block}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-slot]{background:linear-gradient(160deg, var(--surface), var(--surface-2));position:relative;overflow:hidden}[data-slot]>img{object-fit:cover;z-index:1;width:100%;height:100%;position:absolute;inset:0}.gs-hidden{opacity:0;visibility:hidden}
