@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/inter-latin-300-normal.BVlfKGgI.woff2) format("woff2"),url(/_astro/inter-latin-300-normal.i8F0SvXL.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2) format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-500-normal.Cerq10X2.woff2) format("woff2"),url(/_astro/inter-latin-500-normal.BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-600-normal.LgqL8muc.woff2) format("woff2"),url(/_astro/inter-latin-600-normal.CiBQ2DWP.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-latin-700-normal.Yt3aPRUw.woff2) format("woff2"),url(/_astro/inter-latin-700-normal.BLAVimhd.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/inter-latin-ext-300-normal.CPgO9Ksf.woff2) format("woff2"),url(/_astro/inter-latin-ext-300-normal.Dp1L8vcn.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-ext-400-normal.C1nco2VV.woff2) format("woff2"),url(/_astro/inter-latin-ext-400-normal.77YHD8bZ.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-ext-500-normal.CV4jyFjo.woff2) format("woff2"),url(/_astro/inter-latin-ext-500-normal.BxGbmqWO.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/inter-latin-ext-600-normal.D2bJ5OIk.woff2) format("woff2"),url(/_astro/inter-latin-ext-600-normal.CIVaiw4L.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-latin-ext-700-normal.Ca8adRJv.woff2) format("woff2"),url(/_astro/inter-latin-ext-700-normal.TidjK2hL.woff) format("woff")}:root{--color-bg: #161616;--color-text: #ffffff;--color-text-muted: rgba(255, 255, 255, .5);--glass-bg: rgba(255, 255, 255, .04);--glass-bg-hover: rgba(255, 255, 255, .08);--glass-border: rgba(255, 255, 255, .08);--glass-border-hover: rgba(255, 255, 255, .15);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .2);--glass-inset: inset 0 1px 0 rgba(255, 255, 255, .05);--image-outline: rgba(255, 255, 255, .1);--nav-bg: rgba(255, 255, 255, .06);--nav-border: rgba(255, 255, 255, .12);--nav-shadow: 0 8px 32px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .05);--nav-text: rgba(255, 255, 255, .6);--nav-text-hover: #ffffff;--nav-cta-bg: rgba(255, 255, 255, .08);--nav-cta-text: rgba(255, 255, 255, .8);--nav-cta-hover-bg: rgba(255, 255, 255, .12);--nav-cta-active-bg: rgba(255, 255, 255, .15);--nav-divider: rgba(255, 255, 255, .15);--nav-muted: rgba(255, 255, 255, .45);--input-bg: rgba(255, 255, 255, .05);--input-border: rgba(255, 255, 255, .1);--input-focus-border: rgba(255, 255, 255, .3);--btn-bg: rgba(255, 255, 255, .1);--btn-border: rgba(255, 255, 255, .15);--btn-hover-bg: rgba(255, 255, 255, .18);--btn-hover-border: rgba(255, 255, 255, .25);--glass-blur: 20px;--glass-radius: 10px;--glass-radius-pill: 999px;--font-family: "Inter", system-ui, -apple-system, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 2rem;--font-size-3xl: 3rem;--section-padding: 6rem 2rem;--content-max-width: 1200px;--transition-base: .3s ease}[data-theme=light]{--color-bg: #e6e6e9;--color-text: #111111;--color-text-muted: rgba(0, 0, 0, .5);--glass-bg: rgba(255, 255, 255, .7);--glass-bg-hover: rgba(255, 255, 255, .85);--glass-border: rgba(0, 0, 0, .08);--glass-border-hover: rgba(0, 0, 0, .12);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .06);--glass-inset: inset 0 1px 0 rgba(255, 255, 255, .5);--image-outline: rgba(0, 0, 0, .1);--nav-bg: rgba(255, 255, 255, .75);--nav-border: rgba(0, 0, 0, .08);--nav-shadow: 0 8px 32px rgba(0, 0, 0, .06), inset 0 1px 0 rgba(255, 255, 255, .5);--nav-text: rgba(0, 0, 0, .5);--nav-text-hover: #111111;--nav-cta-bg: rgba(0, 0, 0, .05);--nav-cta-text: rgba(0, 0, 0, .7);--nav-cta-hover-bg: rgba(0, 0, 0, .08);--nav-cta-active-bg: rgba(0, 0, 0, .1);--nav-divider: rgba(0, 0, 0, .1);--nav-muted: rgba(0, 0, 0, .35);--input-bg: rgba(0, 0, 0, .03);--input-border: rgba(0, 0, 0, .1);--input-focus-border: rgba(0, 0, 0, .3);--btn-bg: rgba(0, 0, 0, .05);--btn-border: rgba(0, 0, 0, .1);--btn-hover-bg: rgba(0, 0, 0, .08);--btn-hover-border: rgba(0, 0, 0, .15)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--color-text);background:var(--color-bg);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--transition-base),color var(--transition-base)}#grain-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}a{color:inherit;text-decoration:none}h1,h2,h3,h4{text-wrap:balance}p{text-wrap:pretty}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.section{padding:var(--section-padding);max-width:var(--content-max-width);margin:0 auto}.section-label{font-size:var(--font-size-xs);letter-spacing:3px;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:1rem}.glass-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--glass-radius);box-shadow:var(--glass-shadow),var(--glass-inset)}.js .intro,.js .category{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}.js .intro.is-revealed,.js .category.is-revealed{opacity:1;transform:none}.js .about>*,.js .contact>*{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}.js .about.is-revealed>*,.js .contact.is-revealed>*{opacity:1;transform:none}.js .about.is-revealed>*:nth-child(2),.js .contact.is-revealed>*:nth-child(2){transition-delay:.1s}.js .about.is-revealed>*:nth-child(3),.js .contact.is-revealed>*:nth-child(3){transition-delay:.2s}.js .about.is-revealed>*:nth-child(n+4),.js .contact.is-revealed>*:nth-child(n+4){transition-delay:.3s}.js .category.is-expanded{opacity:1;transform:none;transition:none}@media(prefers-reduced-motion:reduce){.js .intro,.js .category,.js .about>*,.js .contact>*{transition:none}.js .about.is-revealed>*,.js .contact.is-revealed>*{transition-delay:0s}}@media(max-width:768px){:root{--section-padding: 4rem 1.5rem;--font-size-3xl: 2rem;--font-size-2xl: 1.5rem}}.footer{text-align:center;padding:2rem;font-size:var(--font-size-xs);color:var(--color-text-muted)}.configurator-palette{position:absolute;top:-.75rem;right:-.75rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;padding:.5rem;background:#1e1e1ed9;backdrop-filter:blur(12px);border-radius:.75rem;border:1px solid rgba(255,255,255,.12);z-index:5;box-shadow:0 8px 24px #0006,0 2px 6px #0000004d,inset 0 1px #ffffff26,inset 0 -1px #0003}.configurator-swatch{width:1.4rem;height:1.4rem;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s;padding:0;outline:none;box-shadow:inset 0 2px 3px #ffffff4d,inset 0 -1px 2px #0003,0 1px 3px #0000004d}.configurator-swatch:hover{transform:scale(1.15);box-shadow:inset 0 2px 3px #ffffff59,inset 0 -1px 2px #0003,0 2px 8px #0006}.configurator-swatch:active{transform:scale(.96)}.configurator-swatch--active{border-color:#fffc}@media(prefers-reduced-motion:reduce){.configurator-swatch:hover,.configurator-swatch:active{transform:none}}.configurator-cursor{position:absolute;width:24px;height:24px;pointer-events:none;z-index:10;display:none;transition:left .4s cubic-bezier(.4,0,.2,1),top .4s cubic-bezier(.4,0,.2,1),transform .15s;transform:translate(-6px,-2px);filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}.configurator-cursor svg{width:100%;height:100%;stroke:#ffffffe6;fill:#ffffff26}.configurator-cursor--click{transform:translate(-6px,-2px) scale(.8)}
