@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-mono-latin-400-normal.ao2e9zgx.woff2) format("woff2"),url(/_astro/geist-mono-latin-400-normal.CQcZBlNU.woff) format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/geist-mono-latin-500-normal.BVhiqmI_.woff2) format("woff2"),url(/_astro/geist-mono-latin-500-normal.CFjnXB2L.woff) format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/geist-mono-latin-700-normal.3h8dqSJy.woff2) format("woff2"),url(/_astro/geist-mono-latin-700-normal.6Y0jea9D.woff) format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:900;src:url(/_astro/geist-mono-latin-900-normal.C6ysQWWk.woff2) format("woff2"),url(/_astro/geist-mono-latin-900-normal.DIb-yZKL.woff) format("woff")}:root{--color-midnight: #001A11;--color-midnight-rgb: 0, 26, 17;--color-starlight: #E0E0E0;--color-starlight-rgb: 224, 224, 224;--color-treescape: #887850;--color-treescape-rgb: 136, 120, 80;--color-night-shine: #00BC44;--color-night-shine-rgb: 0, 188, 68;--color-paper: #FFF8ED;--color-background-translucent: #001A11CC;--color-background-opacity: .8}:root[data-theme=light]{--color-background: var(--color-starlight);--color-background-rgb: var(--color-starlight-rgb);--color-text: var(--color-midnight);--color-text-rgb: var(--color-midnight-rgb);--color-accent: var(--color-treescape);--color-accent-rgb: var(--color-treescape-rgb);--color-accent-secondary: var(--color-night-shine);--color-accent-secondary-rgb: var(--color-night-shine-rgb);--color-background-translucent: rgba(var(--color-starlight-rgb), var(--color-background-opacity))}:root[data-theme=dark]{--color-background: var(--color-midnight);--color-background-rgb: var(--color-midnight-rgb);--color-text: var(--color-starlight);--color-text-rgb: var(--color-starlight-rgb);--color-accent: var(--color-night-shine);--color-accent-rgb: var(--color-night-shine-rgb);--color-accent-secondary: var(--color-treescape);--color-accent-secondary-rgb: var(--color-treescape-rgb);--color-background-translucent: rgba(var(--color-midnight-rgb), var(--color-background-opacity))}:root{--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--motion-fast: .18s;--motion-base: .32s;--motion-slow: .72s;--texture-size: 512px;--texture-travel: 512px;--texture-opacity: .25;--texture-overlay-opacity: .08;--texture-hover-opacity: .07;--texture-duration: 40s}.texture-layer{position:fixed;top:calc(var(--texture-travel) * -1);left:calc(var(--texture-travel) * -1);width:calc(100% + (var(--texture-travel) * 2));height:calc(100% + (var(--texture-travel) * 2));pointer-events:none;opacity:var(--texture-opacity);z-index:1;background-image:url(/images/noise-mosaic.webp);background-repeat:repeat;background-size:var(--texture-size) var(--texture-size);mix-blend-mode:overlay;animation:noiseScroll var(--texture-duration) linear infinite;transform:translateZ(0);contain:paint}.content-layer{position:relative;z-index:2}.has-texture{position:relative;overflow:hidden}.has-texture:after{content:"";position:absolute;top:calc(var(--texture-travel) * -1);left:calc(var(--texture-travel) * -1);width:calc(100% + (var(--texture-travel) * 2));height:calc(100% + (var(--texture-travel) * 2));pointer-events:none;opacity:var(--texture-overlay-opacity);background-image:url(/images/noise-mosaic.webp);background-repeat:repeat;background-size:var(--texture-size) var(--texture-size);mix-blend-mode:overlay;animation:noiseScroll var(--texture-duration) linear infinite;z-index:1;transform:translateZ(0);contain:paint}.has-texture-hover{position:relative;overflow:hidden}.has-texture-hover:after{content:"";position:absolute;top:calc(var(--texture-travel) * -1);left:calc(var(--texture-travel) * -1);width:calc(100% + (var(--texture-travel) * 2));height:calc(100% + (var(--texture-travel) * 2));pointer-events:none;opacity:0;background-image:url(/images/noise-mosaic.webp);background-repeat:repeat;background-size:var(--texture-size) var(--texture-size);mix-blend-mode:overlay;animation:noiseScroll var(--texture-duration) linear infinite;z-index:1;transition:opacity var(--motion-base) var(--ease-out-expo);transform:translateZ(0);contain:paint}@media(hover:hover)and (pointer:fine){.has-texture-hover:hover:after{opacity:var(--texture-hover-opacity)}}.card.has-texture-hover:after{z-index:2}@keyframes noiseScroll{0%{transform:translateZ(0)}to{transform:translate3d(calc(var(--texture-travel) * -1),calc(var(--texture-travel) * -1),0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{opacity:0;transform:translate(-80px)}to{opacity:1;transform:translate(0)}}@keyframes slideRight{0%{opacity:0;transform:translate(80px)}to{opacity:1;transform:translate(0)}}@keyframes scaleReveal{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes wipeIn{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes rotateIn{0%{opacity:0;transform:rotate(-10deg) scale(.9)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes drawLine{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-slide-up{animation:slideUp var(--motion-slow) var(--ease-out-expo) forwards}.animate-slide-left{animation:slideLeft var(--motion-slow) var(--ease-out-expo) forwards}.animate-slide-right{animation:slideRight var(--motion-slow) var(--ease-out-expo) forwards}.animate-scale{animation:scaleReveal .6s var(--ease-out-expo) forwards}.animate-wipe{animation:wipeIn var(--motion-slow) var(--ease-out-expo) forwards}.animate-rotate{animation:rotateIn .6s var(--ease-out-expo) forwards}.animate-fade{animation:fadeIn .5s ease-out forwards}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}.delay-6{animation-delay:.6s}.delay-7{animation-delay:.7s}.delay-8{animation-delay:.8s}.anim-ready{opacity:0}.smooth{transition:all .4s var(--ease-out-expo)}.accent-bar{display:block;height:4px;background:var(--color-accent);transform-origin:left;animation:drawLine .6s cubic-bezier(.16,1,.3,1) forwards}.accent-bar-vertical{display:block;width:4px;background:var(--color-accent);transform-origin:top;animation:drawLine .6s cubic-bezier(.16,1,.3,1) forwards}.geo-circle{position:absolute;border-radius:50%;border:3px solid var(--color-accent);pointer-events:none}.geo-square{position:absolute;border:3px solid var(--color-accent-secondary);pointer-events:none;transform:rotate(45deg)}.hover-lift{transition:transform var(--motion-base) var(--ease-out-expo),box-shadow var(--motion-base) var(--ease-out-expo)}.hover-lift:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(var(--color-text-rgb),.15)}.hover-underline{position:relative}.hover-underline:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:3px;background:var(--color-accent);transform:scaleX(0);transform-origin:right;transition:transform var(--motion-base) var(--ease-out-expo)}.hover-underline:hover:after{transform:scaleX(1);transform-origin:left}:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}@media(pointer:coarse),(max-width:700px){:root{--texture-opacity: .14;--texture-overlay-opacity: .05;--texture-hover-opacity: 0;--texture-duration: 72s}.has-texture-hover:after{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.texture-layer{animation:none}.has-texture:after,.has-texture-hover:after{animation:none}}
