.EarthBackdrop-module__WWvrEq__backdrop{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}@property --parallax{syntax:"<number>";inherits:false;initial-value:0}.EarthBackdrop-module__WWvrEq__layer{--parallax:0;translate:0 calc(var(--parallax) * -6vh);scale:calc(1 + var(--parallax) * .012);will-change:translate;position:absolute;inset:-12% -5% -18%}.EarthBackdrop-module__WWvrEq__earthLight{background-image:url(/earth-light.webp);background-position:calc(50% + var(--parallax) * 18vw) 42%;filter:saturate(115%);opacity:.55;background-repeat:repeat-x;background-size:cover;position:absolute;inset:0}.EarthBackdrop-module__WWvrEq__veil{background:radial-gradient(120% 90% at 50% 18%, transparent 0%, var(--color-bg) 78%), linear-gradient(to bottom, #0000 0%, var(--color-bg) 92%);opacity:.94;position:absolute;inset:0}.EarthBackdrop-module__WWvrEq__bloomCore,.EarthBackdrop-module__WWvrEq__bloomRing{opacity:0;position:absolute;inset:-25%}.EarthBackdrop-module__WWvrEq__bloomCore{animation:EarthBackdrop-module__WWvrEq__bloom-core 1.5s var(--ease-out) both;background:radial-gradient(circle at 50% 40%,#fffffff2 0%,#ffffff8c 22%,#0000 55%)}.EarthBackdrop-module__WWvrEq__bloomRing{background:radial-gradient(circle at 50% 40%, transparent 0%, var(--color-accent) 38%, #67e8f9 52%, transparent 72%);animation:5.5s cubic-bezier(.19,1,.22,1) .25s both EarthBackdrop-module__WWvrEq__bloom-ring}html[data-theme=dark] .EarthBackdrop-module__WWvrEq__bloomCore{mix-blend-mode:screen;opacity:0}html[data-theme=dark] .EarthBackdrop-module__WWvrEq__bloomRing{mix-blend-mode:screen;filter:saturate(80%);opacity:0}@keyframes EarthBackdrop-module__WWvrEq__bloom-core{0%{opacity:0;scale:.05}12%{opacity:1;scale:.35}to{opacity:0;scale:1.4}}@keyframes EarthBackdrop-module__WWvrEq__bloom-ring{0%{opacity:0;scale:.1}14%{opacity:.55}55%{opacity:.28}to{opacity:0;scale:3.2}}
@property --intro{syntax:"<number>";inherits:true;initial-value:0}.EarthHero-module__a6vqBW__stage{--p:0;--globe-top:59%;--globe-size:max(92cqw, 35.2rem);--sats:clamp(0, calc(1 - var(--p) / .6), 1);--color-text:#fff;--color-text-muted:#e2e8f0d9;--color-accent-text:#93c5fd;--color-border-strong:#ffffff4d;--color-surface-raised:#ffffff14;isolation:isolate;min-height:100svh;color:var(--color-text);-webkit-mask-image:linear-gradient(to bottom, transparent 0, #000 calc(var(--header-height) + 4rem));mask-image:linear-gradient(to bottom, transparent 0, #000 calc(var(--header-height) + 4rem));background:radial-gradient(120% 70% at 50% 100%,#0b2a6b 0%,#0000 60%),#020617;position:relative;overflow:hidden;container-type:inline-size}@property --p{syntax:"<number>";inherits:true;initial-value:0}html[data-theme=light] .EarthHero-module__a6vqBW__stage{-webkit-mask-image:linear-gradient(to bottom, transparent 0, #00000014 calc(var(--header-height) - .5rem), #0000004d calc(var(--header-height) + 1rem), #0000009e calc(var(--header-height) + 2.5rem), #000000e0 calc(var(--header-height) + 4rem), #000 calc(var(--header-height) + 5rem));mask-image:linear-gradient(to bottom, transparent 0, #00000014 calc(var(--header-height) - .5rem), #0000004d calc(var(--header-height) + 1rem), #0000009e calc(var(--header-height) + 2.5rem), #000000e0 calc(var(--header-height) + 4rem), #000 calc(var(--header-height) + 5rem));background:radial-gradient(120% 70% at 50% 100%,#2a5bc7 0%,#0000 62%),radial-gradient(90% 60% at 50% 0,#1b3a7a 0%,#0000 70%),#0c1f4d}.EarthHero-module__a6vqBW__stars{opacity:.7;background-image:radial-gradient(1px 1px at 20px 30px,#fff 50%,#0000),radial-gradient(1px 1px at 90px 80px,#fffc 50%,#0000),radial-gradient(1.5px 1.5px at 150px 20px,#fff 50%,#0000),radial-gradient(1px 1px at 60px 140px,#fff9 50%,#0000),radial-gradient(1.5px 1.5px at 180px 120px,#bfdbfee6 50%,#0000);background-size:200px 170px;position:absolute;inset:0}.EarthHero-module__a6vqBW__globe{top:var(--globe-top);width:var(--globe-size);aspect-ratio:1;transform-origin:50% 0;translate:-50%;scale:calc(.82 - var(--p) * .35 - var(--intro) * .635);border-radius:50%;animation:2.6s cubic-bezier(.16,1,.3,1) .15s both EarthHero-module__a6vqBW__globe-intro;position:absolute;left:50%;overflow:hidden;box-shadow:0 0 80px 18px #3b82f673,0 0 0 2px #93c5fd8c}@keyframes EarthHero-module__a6vqBW__globe-intro{0%{--intro:1}to{--intro:0}}.EarthHero-module__a6vqBW__day{background-image:url(/earth-light.webp);background-repeat:repeat-x;background-size:200% 100%;background-position:calc(var(--p) * -96% + var(--intro) * 100%) 38%;position:absolute;inset:0}.EarthHero-module__a6vqBW__shade{background:radial-gradient(circle at 50% 0,#bfdbfe59 0%,#0000 18%),radial-gradient(circle,#0000 55%,#020617b3 72%);border-radius:50%;position:absolute;inset:0;box-shadow:inset 0 18px 40px #93c5fd73}.EarthHero-module__a6vqBW__satellites{opacity:var(--sats);pointer-events:none;position:absolute;inset:0}.EarthHero-module__a6vqBW__satelliteA,.EarthHero-module__a6vqBW__satelliteB{filter:drop-shadow(0 0 6px #93c5fd99);position:absolute}.EarthHero-module__a6vqBW__satelliteA{width:clamp(3rem,6vw,4.5rem);translate:calc(-100% + var(--sats) * 14cqw) calc(var(--sats) * -60%);rotate:calc(-20deg + var(--sats) * 10deg);top:56%;left:0}.EarthHero-module__a6vqBW__satelliteB{width:clamp(2.25rem,4.5vw,3.25rem);translate:calc(100% - var(--sats) * 12cqw) calc(var(--sats) * 50%);rotate:calc(24deg - var(--sats) * 10deg);top:24%;right:0}.EarthHero-module__a6vqBW__beacon{animation:1.4s steps(2,jump-none) infinite EarthHero-module__a6vqBW__beacon}@keyframes EarthHero-module__a6vqBW__beacon{0%,to{opacity:1}50%{opacity:.15}}.EarthHero-module__a6vqBW__bloomCore,.EarthHero-module__a6vqBW__bloomRing{top:calc(var(--globe-top) + var(--globe-size) * .82 * .32);aspect-ratio:1;opacity:0;mix-blend-mode:screen;pointer-events:none;width:max(220cqw,260svh);position:absolute;left:50%;translate:-50% -50%}.EarthHero-module__a6vqBW__bloomCore{animation:EarthHero-module__a6vqBW__bloom-core 1.5s var(--ease-out) both;background:radial-gradient(circle,#fffffff2 0%,#ffffff8c 22%,#0000 55%)}.EarthHero-module__a6vqBW__bloomRing{background:radial-gradient(circle,#0000 0%,#3b82f6 38%,#67e8f9 52%,#0000 72%);animation:5.5s cubic-bezier(.19,1,.22,1) .25s both EarthHero-module__a6vqBW__bloom-ring}@keyframes EarthHero-module__a6vqBW__bloom-core{0%{opacity:0;scale:.05}12%{opacity:1;scale:.35}to{opacity:0;scale:1.4}}@keyframes EarthHero-module__a6vqBW__bloom-ring{0%{opacity:0;scale:.1}14%{opacity:.55}to{opacity:0;scale:1.6}}.EarthHero-module__a6vqBW__content{z-index:1;padding:calc(var(--header-height) + clamp(3rem, 9svh, 6rem) + 5svh) var(--container-gutter) 0;position:relative}@media not (min-width:44rem){.EarthHero-module__a6vqBW__stage{--globe-top:67%}.EarthHero-module__a6vqBW__content{padding-inline:var(--space-4)}.EarthHero-module__a6vqBW__satelliteA{translate:calc(-100% + var(--sats) * 22cqw) calc(var(--sats) * -40%);top:70%}.EarthHero-module__a6vqBW__satelliteB{translate:calc(100% - var(--sats) * 20cqw) 0;top:60%}}@media (prefers-reduced-motion:reduce){.EarthHero-module__a6vqBW__globe,.EarthHero-module__a6vqBW__beacon,.EarthHero-module__a6vqBW__bloomCore,.EarthHero-module__a6vqBW__bloomRing{animation:none}}
.FloatingObject-module__TztvWa__object{--p:0;--ap:0;aspect-ratio:1;flex-shrink:0;width:clamp(4.5rem,9vw,7.5rem);position:relative}.FloatingObject-module__TztvWa__mover,.FloatingObject-module__TztvWa__glow{will-change:transform;position:absolute;inset:0}.FloatingObject-module__TztvWa__art{filter:drop-shadow(0 14px 18px #0f2f9e42);width:100%;height:100%;transition:scale .32s var(--ease-out);animation:5s ease-in-out infinite FloatingObject-module__TztvWa__float;display:block;overflow:visible}.FloatingObject-module__TztvWa__object:hover .FloatingObject-module__TztvWa__art{scale:1.12}@keyframes FloatingObject-module__TztvWa__float{0%,to{translate:0;rotate:-2deg}50%{translate:0 -6px;rotate:2deg}}.FloatingObject-module__TztvWa__glow{filter:blur(8px);scale:1.25;transform:translate3d(0, calc(var(--p) * 7px), 0);background:radial-gradient(closest-side,#3b82f64d,#0000);border-radius:50%}.FloatingObject-module__TztvWa__object[data-name=robot] .FloatingObject-module__TztvWa__mover{transform:perspective(600px) translate3d(0, calc(var(--p) * 14px), 0) rotateY(calc(var(--p) * 35deg)) rotateZ(calc(var(--p) * -6deg)) scale(calc(1 - var(--ap) * .08))}.FloatingObject-module__TztvWa__object[data-name=parcel] .FloatingObject-module__TztvWa__mover{transform:perspective(600px) translate3d(0, calc(var(--p) * 16px), 0) rotateX(calc(var(--p) * 25deg)) rotateZ(calc(var(--p) * -22deg)) scale(calc(1 - var(--ap) * .08))}.FloatingObject-module__TztvWa__object[data-name=parcel] .FloatingObject-module__TztvWa__art{animation-duration:6.5s}.FloatingObject-module__TztvWa__eyes,.FloatingObject-module__TztvWa__bulb,.FloatingObject-module__TztvWa__halo,.FloatingObject-module__TztvWa__lid,.FloatingObject-module__TztvWa__extraSparkle{transform-box:fill-box;transform-origin:50%;transition:transform .32s var(--ease-out), opacity .32s var(--ease-out), fill .32s var(--ease-out)}.FloatingObject-module__TztvWa__object:hover .FloatingObject-module__TztvWa__eyes{transform:scaleY(.3)}.FloatingObject-module__TztvWa__halo{opacity:0;transform:scale(.4)}.FloatingObject-module__TztvWa__object:hover .FloatingObject-module__TztvWa__halo{opacity:1;transform:scale(1)}.FloatingObject-module__TztvWa__object:hover .FloatingObject-module__TztvWa__bulb{fill:#fbbf24;transform:scale(1.35)}section:has([data-busy=true]) .FloatingObject-module__TztvWa__object[data-name=robot] .FloatingObject-module__TztvWa__bulb{animation:FloatingObject-module__TztvWa__bulb-pulse 1.1s var(--ease-out) infinite}section:has([data-busy=true]) .FloatingObject-module__TztvWa__object[data-name=robot] .FloatingObject-module__TztvWa__halo{animation:FloatingObject-module__TztvWa__halo-pulse 1.1s var(--ease-out) infinite}@keyframes FloatingObject-module__TztvWa__bulb-pulse{0%,to{fill:#3b82f6;transform:scale(1)}22%{fill:#fbbf24;transform:scale(1.35)}}@keyframes FloatingObject-module__TztvWa__halo-pulse{0%,to{opacity:0;transform:scale(.4)}22%{opacity:1;transform:scale(1)}}.FloatingObject-module__TztvWa__lid{transform-origin:0%}.FloatingObject-module__TztvWa__object:hover .FloatingObject-module__TztvWa__lid{transform:translate(-4px,-34px)rotate(-16deg)}.FloatingObject-module__TztvWa__extraSparkle{opacity:0;transform:scale(.2)}.FloatingObject-module__TztvWa__object:hover .FloatingObject-module__TztvWa__extraSparkle{opacity:1;transform:scale(1)}@media (prefers-reduced-motion:reduce){.FloatingObject-module__TztvWa__art{animation:none}}
.HeroTitle-module__jOsQwG__title{--sweep-cycle:6.5s;--sweep-start:1.2s;--word-step:90ms;width:min(100%,22ch);max-width:22ch;font-size:var(--text-4xl);text-wrap:balance;margin-inline:auto}.HeroTitle-module__jOsQwG__word{--i:0;animation:HeroTitle-module__jOsQwG__word-in .7s var(--ease-out) calc(60ms + var(--i) * 80ms) both;display:inline-block}.HeroTitle-module__jOsQwG__word[data-word-index="1"]{--i:1}.HeroTitle-module__jOsQwG__word[data-word-index="2"]{--i:2}.HeroTitle-module__jOsQwG__word[data-word-index="3"]{--i:3}.HeroTitle-module__jOsQwG__word[data-word-index="4"]{--i:4}.HeroTitle-module__jOsQwG__word[data-word-index="5"]{--i:5}.HeroTitle-module__jOsQwG__word[data-word-index="6"]{--i:6}.HeroTitle-module__jOsQwG__word[data-word-index="7"]{--i:7}.HeroTitle-module__jOsQwG__word[data-word-index="8"]{--i:8}.HeroTitle-module__jOsQwG__word[data-word-index="9"]{--i:9}.HeroTitle-module__jOsQwG__accent{color:var(--color-accent-text)}.HeroTitle-module__jOsQwG__mobileBreak{display:none}@media not (min-width:44rem){.HeroTitle-module__jOsQwG__mobileBreak{display:block}}.goldAccent{color:#fbbf24}.HeroTitle-module__jOsQwG__goldAccent{color:#fbbf24}@supports ((-webkit-background-clip:text) or (background-clip:text)){.HeroTitle-module__jOsQwG__word{background-image:linear-gradient(78deg, currentcolor 0 30%, var(--color-accent) 42%, #67e8f9 50%, var(--color-accent) 58%, currentcolor 70% 100%);-webkit-text-fill-color:transparent;animation:HeroTitle-module__jOsQwG__word-in .7s var(--ease-out) calc(60ms + var(--i) * 80ms) both, HeroTitle-module__jOsQwG__sweep var(--sweep-cycle) linear calc(var(--sweep-start) + var(--i) * var(--word-step)) infinite;background-repeat:no-repeat;background-size:900% 100%;-webkit-background-clip:text;background-clip:text}.HeroTitle-module__jOsQwG__goldAccent{-webkit-text-fill-color:transparent;background-image:linear-gradient(78deg,currentColor 0 30%,#f59e0b 42%,#fbbf24 50%,#f59e0b 58%,currentColor 70% 100%)}}@keyframes HeroTitle-module__jOsQwG__word-in{0%{opacity:0;translate:0 .45em;scale:.96}to{opacity:1;translate:0;scale:1}}@keyframes HeroTitle-module__jOsQwG__sweep{0%{background-position:100% 0}18%{background-position:0 0}to{background-position:0 0}}
.Reveal-module__ts8H6W__reveal{--shift:2.5rem;opacity:0;transition:opacity .76s var(--ease-out), transform .76s var(--ease-out);transition-delay:var(--reveal-delay,0s);will-change:opacity, transform}.Reveal-module__ts8H6W__left{transform:translate3d(calc(var(--shift) * -1), 0, 0)}.Reveal-module__ts8H6W__right{transform:translate3d(var(--shift), 0, 0)}.Reveal-module__ts8H6W__up{transform:translate3d(0, var(--shift), 0)}.Reveal-module__ts8H6W__up3d{transform:perspective(900px) translate3d(0, calc(var(--shift) * 1.4), -120px) rotateX(12deg);transform-origin:50% 100%}.Reveal-module__ts8H6W__reveal[data-shown=true]{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.Reveal-module__ts8H6W__reveal{opacity:1;transition:none;transform:none}}
.Dialog-module__gV8Hta__overlay{z-index:var(--z-overlay);background-color:var(--color-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);position:fixed;inset:0}.Dialog-module__gV8Hta__overlay[data-state=open]{animation:Dialog-module__gV8Hta__fade-in var(--duration-base) var(--ease-out)}.Dialog-module__gV8Hta__overlay[data-state=closed]{animation:Dialog-module__gV8Hta__fade-out var(--duration-fast) var(--ease-in)}.Dialog-module__gV8Hta__content{z-index:var(--z-modal);gap:var(--space-4);width:calc(100vw - var(--space-8));max-height:calc(100dvh - var(--space-8));padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;translate:-50% -50%}.Dialog-module__gV8Hta__content[data-state=open]{animation:Dialog-module__gV8Hta__content-in var(--duration-base) var(--ease-out)}.Dialog-module__gV8Hta__content[data-state=closed]{animation:Dialog-module__gV8Hta__content-out var(--duration-fast) var(--ease-in)}.Dialog-module__gV8Hta__md{max-width:32rem}.Dialog-module__gV8Hta__lg{max-width:58rem}@media (min-width:64rem){.Dialog-module__gV8Hta__lg{width:min(70vw,58rem);max-width:min(70vw,58rem)}}.Dialog-module__gV8Hta__close{top:var(--space-4);right:var(--space-4);border-radius:var(--radius-sm);width:2rem;height:2rem;color:var(--color-text-subtle);transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);place-items:center;display:grid;position:absolute}.Dialog-module__gV8Hta__close:focus{outline:none}.Dialog-module__gV8Hta__close:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px}.Dialog-module__gV8Hta__close:hover{background-color:var(--color-surface-raised);color:var(--color-text)}.Dialog-module__gV8Hta__header{gap:var(--space-2);padding-right:var(--space-8);flex-direction:column;display:flex}.Dialog-module__gV8Hta__title{font-size:var(--text-2xl)}.Dialog-module__gV8Hta__description{color:var(--color-text-muted)}.Dialog-module__gV8Hta__footer{justify-content:flex-end;align-items:center;gap:var(--space-3);padding-top:var(--space-6);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}@media not (min-width:44rem){.Dialog-module__gV8Hta__content{gap:var(--space-4);width:calc(100vw - var(--space-4));max-height:calc(100dvh - var(--space-4));padding:var(--space-5) var(--space-4)}.Dialog-module__gV8Hta__close{top:var(--space-3);right:var(--space-3)}.Dialog-module__gV8Hta__title{font-size:var(--text-xl)}.Dialog-module__gV8Hta__description{font-size:var(--text-sm)}.Dialog-module__gV8Hta__footer{padding-top:var(--space-4);justify-content:center}}@keyframes Dialog-module__gV8Hta__fade-in{0%{opacity:0}to{opacity:1}}@keyframes Dialog-module__gV8Hta__fade-out{0%{opacity:1}to{opacity:0}}@keyframes Dialog-module__gV8Hta__content-in{0%{opacity:0;scale:.96}to{opacity:1;scale:1}}@keyframes Dialog-module__gV8Hta__content-out{0%{opacity:1;scale:1}to{opacity:0;scale:.96}}
.ProjectDetailsDialog-module__pZEO6q__content{gap:var(--space-5)}.ProjectDetailsDialog-module__pZEO6q__title{align-items:center;gap:.65rem;display:flex}.ProjectDetailsDialog-module__pZEO6q__dialogIcon{object-fit:cover;border:1px solid var(--color-border);border-radius:22.5%;flex-shrink:0;width:1.85rem;height:1.85rem;box-shadow:0 1px 4px #00000040}.ProjectDetailsDialog-module__pZEO6q__frame{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:#0b1020;flex-shrink:0;overflow:hidden}.ProjectDetailsDialog-module__pZEO6q__frameBar{border-bottom:1px solid var(--color-border);background-color:var(--color-surface-raised);gap:.4rem;padding:.55rem .75rem;display:flex}.ProjectDetailsDialog-module__pZEO6q__frameDot{background-color:#94a3b873;border-radius:50%;width:.6rem;height:.6rem}.ProjectDetailsDialog-module__pZEO6q__diagram{aspect-ratio:1;background-color:#0d1117;background-image:var(--shot);background-position:50%;background-repeat:no-repeat;background-size:contain}.ProjectDetailsDialog-module__pZEO6q__frameLink{display:block;position:relative}.ProjectDetailsDialog-module__pZEO6q__shotLink{cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-base) var(--ease-out);text-decoration:none;display:block}.ProjectDetailsDialog-module__pZEO6q__shotLink .ProjectDetailsDialog-module__pZEO6q__shot{transition:filter var(--duration-fast) var(--ease-out)}.ProjectDetailsDialog-module__pZEO6q__shotLink:hover{border-color:#6f9dff;box-shadow:0 0 24px #6f9dff2e}.ProjectDetailsDialog-module__pZEO6q__shotLink:hover .ProjectDetailsDialog-module__pZEO6q__shot{filter:brightness(1.08)contrast(1.02)}.ProjectDetailsDialog-module__pZEO6q__openFull{right:var(--space-2);bottom:var(--space-2);color:#f1f5f9;font-size:var(--text-xs);opacity:0;transition:opacity var(--duration-fast) var(--ease-out);background-color:#080c18d9;border-radius:4px;padding:.25rem .6rem;position:absolute}.ProjectDetailsDialog-module__pZEO6q__frameLink:hover .ProjectDetailsDialog-module__pZEO6q__openFull,.ProjectDetailsDialog-module__pZEO6q__frameLink:focus-visible .ProjectDetailsDialog-module__pZEO6q__openFull{opacity:1}.ProjectDetailsDialog-module__pZEO6q__shot{aspect-ratio:16/10;background-image:var(--shot);background-position:top;background-size:cover}.ProjectDetailsDialog-module__pZEO6q__section{gap:var(--space-2);flex-direction:column;display:flex}.ProjectDetailsDialog-module__pZEO6q__subheading{font-size:var(--text-base)}.ProjectDetailsDialog-module__pZEO6q__highlights{gap:var(--space-1);display:grid}.ProjectDetailsDialog-module__pZEO6q__highlight{align-items:flex-start;gap:var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.45;display:flex}.ProjectDetailsDialog-module__pZEO6q__checkIcon{color:var(--color-success);flex-shrink:0;margin-top:.2em}.ProjectDetailsDialog-module__pZEO6q__tech{gap:var(--space-2);flex-wrap:wrap;display:flex}.ProjectDetailsDialog-module__pZEO6q__techItem{border:1px solid var(--color-border);background-color:var(--color-surface-soft);color:var(--color-text);font-size:var(--text-sm);border-radius:4px;align-items:center;gap:.4rem;padding:.3rem .65rem;display:inline-flex}.ProjectDetailsDialog-module__pZEO6q__techItem[data-tech=next] svg{color:var(--color-text)}.ProjectDetailsDialog-module__pZEO6q__techItem[data-tech=react] svg{color:#61dafb}.ProjectDetailsDialog-module__pZEO6q__techItem[data-tech=stripe] svg{color:#a5a0ff}.ProjectDetailsDialog-module__pZEO6q__techItem[data-tech=python] svg{color:#ffd43b}.ProjectDetailsDialog-module__pZEO6q__techItem[data-tech=postgres] svg{color:#7cb6e8}.ProjectDetailsDialog-module__pZEO6q__techItem[data-tech=whatsapp] svg{color:#25d366}.ProjectDetailsDialog-module__pZEO6q__techItem[data-tech=openai] svg{color:#4ade80}.ProjectDetailsDialog-module__pZEO6q__techItem[data-tech=shopify] svg{color:#a7d95e}.ProjectDetailsDialog-module__pZEO6q__techItem[data-tech=chart] svg{color:#93c5fd}.ProjectDetailsDialog-module__pZEO6q__techItem[data-tech=astro] svg{color:#ff7a3d}.ProjectDetailsDialog-module__pZEO6q__techItem[data-tech=rust] svg{color:#f0a36b}.ProjectDetailsDialog-module__pZEO6q__techItem[data-tech=woocommerce] svg{color:#96588a}.ProjectDetailsDialog-module__pZEO6q__techItem[data-tech=php] svg{color:#8892bf}.ProjectDetailsDialog-module__pZEO6q__link{gap:var(--space-2)}.ProjectDetailsDialog-module__pZEO6q__visit:is(a,button){--wipe-from:#1f4fc2;--wipe-to:#6f9dff;--wipe-fg:#fff;--wipe-border:#6f9dff;z-index:0;border-width:0;position:relative;overflow:hidden}.ProjectDetailsDialog-module__pZEO6q__code:is(a,button){--wipe-from:#1f2328;--wipe-to:#57606a;--wipe-fg:#fff;--wipe-border:#57606a}.ProjectDetailsDialog-module__pZEO6q__dismiss:is(a,button){--wipe-from:var(--color-surface-soft);--wipe-to:var(--color-surface-raised);--wipe-fg:var(--color-text);--wipe-border:var(--color-border-strong)}.ProjectDetailsDialog-module__pZEO6q__visit:is(a,button),.ProjectDetailsDialog-module__pZEO6q__code:is(a,button),.ProjectDetailsDialog-module__pZEO6q__dismiss:is(a,button){background-image:linear-gradient(118deg, var(--wipe-from) 0 16%, var(--wipe-to) 50%, #fff0 50%);transition:background-color var(--duration-fast) var(--ease-out), background-position .28s var(--ease-out), border-color var(--duration-fast) var(--ease-out), scale var(--duration-base) var(--ease-out), color .16s var(--ease-out);background-position:100% 0;background-repeat:no-repeat;background-size:260% 100%;background-origin:border-box}.ProjectDetailsDialog-module__pZEO6q__visit:is(a,button):hover,.ProjectDetailsDialog-module__pZEO6q__visit:is(a,button):focus-visible,.ProjectDetailsDialog-module__pZEO6q__code:is(a,button):hover,.ProjectDetailsDialog-module__pZEO6q__code:is(a,button):focus-visible,.ProjectDetailsDialog-module__pZEO6q__dismiss:is(a,button):hover,.ProjectDetailsDialog-module__pZEO6q__dismiss:is(a,button):focus-visible{border-color:var(--wipe-border);color:var(--wipe-fg);background-position:0 0;scale:1.03}.ProjectDetailsDialog-module__pZEO6q__visit:before{z-index:-1;content:"";opacity:0;animation:ProjectDetailsDialog-module__pZEO6q__visit-pulse 2.4s var(--ease-out) infinite;background-image:radial-gradient(circle,#cfe4ff 0%,#60a5fa 45%,#0000 72%);position:absolute;inset:0}.ProjectDetailsDialog-module__pZEO6q__visit:is(a,button):hover:before,.ProjectDetailsDialog-module__pZEO6q__visit:is(a,button):focus-visible:before{opacity:0;animation:none}@keyframes ProjectDetailsDialog-module__pZEO6q__visit-pulse{0%{opacity:0;scale:.2}30%{opacity:.85}to{opacity:0;scale:2.4}}@media (prefers-reduced-motion:reduce){.ProjectDetailsDialog-module__pZEO6q__visit:before{animation:none}}@media not (min-width:40rem){.ProjectDetailsDialog-module__pZEO6q__footer{flex-direction:column-reverse;align-items:stretch}}
.ProjectCard-module__b08Pxa__card{aspect-ratio:1;min-height:20rem;padding:var(--space-5);isolation:isolate;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color var(--duration-base) var(--ease-out), box-shadow .42s var(--ease-out), translate .42s var(--ease-out);background-color:#0b1020;border-radius:4px;flex-direction:column;justify-content:flex-end;display:flex;position:relative;overflow:hidden}.ProjectCard-module__b08Pxa__card:hover{box-shadow:var(--shadow-lift);translate:0 -4px}.ProjectCard-module__b08Pxa__card:has(:focus-visible){box-shadow:var(--shadow-lift);translate:0 -4px}.ProjectCard-module__b08Pxa__photo{z-index:0;background-image:var(--photo);filter:brightness(.72)saturate(.92);transition:scale .62s var(--ease-out), filter .42s var(--ease-out);will-change:scale;background-position:50%;background-size:cover;position:absolute;inset:0;scale:1.16}.ProjectCard-module__b08Pxa__card:hover .ProjectCard-module__b08Pxa__photo{filter:brightness(1.04)saturate(1.05);scale:1}.ProjectCard-module__b08Pxa__card:has(:focus-visible) .ProjectCard-module__b08Pxa__photo{filter:brightness(1.04)saturate(1.05);scale:1}.ProjectCard-module__b08Pxa__scrim{z-index:1;transition:opacity .42s var(--ease-out);background-image:linear-gradient(#02040a0a 0%,#02040a42 22%,#02040ab8 50%,#02040af0 62%,#02040af5 100%);position:absolute;inset:0}.ProjectCard-module__b08Pxa__card:hover .ProjectCard-module__b08Pxa__scrim{opacity:.94}.ProjectCard-module__b08Pxa__card:has(:focus-visible) .ProjectCard-module__b08Pxa__scrim{opacity:.94}.ProjectCard-module__b08Pxa__body{z-index:2;gap:var(--space-2);color:#f8fafc;flex-direction:column;display:flex;position:relative}.ProjectCard-module__b08Pxa__tech{gap:var(--space-2);margin-top:var(--space-2);display:flex}.ProjectCard-module__b08Pxa__techItem{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:2rem;height:2rem;transition:border-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);background-color:#ffffff1a;border:1px solid #ffffff47;border-radius:4px;place-items:center;display:grid;position:relative}.ProjectCard-module__b08Pxa__techItem:hover{background-color:#ffffff2e;border-color:currentColor}.ProjectCard-module__b08Pxa__techItem[data-tech=next]{color:#f8fafc}.ProjectCard-module__b08Pxa__techItem[data-tech=react]{color:#61dafb}.ProjectCard-module__b08Pxa__techItem[data-tech=stripe]{color:#a5a0ff}.ProjectCard-module__b08Pxa__techItem[data-tech=python]{color:#ffd43b}.ProjectCard-module__b08Pxa__techItem[data-tech=postgres]{color:#7cb6e8}.ProjectCard-module__b08Pxa__techItem[data-tech=whatsapp]{color:#25d366}.ProjectCard-module__b08Pxa__techItem[data-tech=openai]{color:#4ade80}.ProjectCard-module__b08Pxa__techItem[data-tech=shopify]{color:#a7d95e}.ProjectCard-module__b08Pxa__techItem[data-tech=chart]{color:#93c5fd}.ProjectCard-module__b08Pxa__techItem[data-tech=astro]{color:#ff7a3d}.ProjectCard-module__b08Pxa__techItem[data-tech=rust]{color:#f0a36b}.ProjectCard-module__b08Pxa__techItem[data-tech=woocommerce]{color:#96588a}.ProjectCard-module__b08Pxa__techItem[data-tech=php]{color:#8892bf}.ProjectCard-module__b08Pxa__techName{color:#f1f5f9;font-size:var(--text-xs);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--duration-fast) var(--ease-out), translate var(--duration-fast) var(--ease-out);background-color:#080c18eb;border-radius:4px;padding:.15rem .45rem;position:absolute;bottom:calc(100% + .35rem);left:50%;translate:-50% 4px}.ProjectCard-module__b08Pxa__techItem:hover .ProjectCard-module__b08Pxa__techName{opacity:1;translate:-50%}.ProjectCard-module__b08Pxa__name{font-size:var(--text-lg);align-items:center;line-height:1.2;display:flex}.ProjectCard-module__b08Pxa__iconWrap{opacity:0;pointer-events:none;flex-shrink:0;justify-content:center;align-items:center;width:0;height:1.4rem;margin-right:0;transition:width .34s cubic-bezier(.16,1,.3,1),margin-right .34s cubic-bezier(.16,1,.3,1),opacity .26s cubic-bezier(.16,1,.3,1),transform .34s cubic-bezier(.16,1,.3,1);display:inline-flex;overflow:hidden;transform:scale(.6)translate(-6px)}.ProjectCard-module__b08Pxa__card:hover .ProjectCard-module__b08Pxa__iconWrap{opacity:1;width:1.4rem;margin-right:.55rem;transform:scale(1)translate(0)}.ProjectCard-module__b08Pxa__card:has(:focus-visible) .ProjectCard-module__b08Pxa__iconWrap{opacity:1;width:1.4rem;margin-right:.55rem;transform:scale(1)translate(0)}.ProjectCard-module__b08Pxa__cardIcon{object-fit:cover;border:1px solid #ffffff26;border-radius:22.5%;flex-shrink:0;width:1.4rem;height:1.4rem;box-shadow:0 1px 3px #0006}.ProjectCard-module__b08Pxa__nameButton{color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0;padding:0}.ProjectCard-module__b08Pxa__nameButton:focus-visible{outline-offset:3px;border-radius:2px;outline:2px solid #6f9dff}.ProjectCard-module__b08Pxa__open{margin-top:var(--space-1);color:#93b8ff;font-size:var(--text-sm);font-weight:var(--weight-medium);opacity:0;transition:opacity .32s var(--ease-out), translate .32s var(--ease-out);align-items:center;gap:.35rem;display:inline-flex;translate:-6px}.ProjectCard-module__b08Pxa__card:hover .ProjectCard-module__b08Pxa__open{opacity:1;translate:0}.ProjectCard-module__b08Pxa__card:has(:focus-visible) .ProjectCard-module__b08Pxa__open{opacity:1;translate:0}.ProjectCard-module__b08Pxa__summary{color:#f8fafce0;font-size:var(--text-base);text-wrap:pretty}@media not (min-width:64rem){.ProjectCard-module__b08Pxa__card{aspect-ratio:auto;min-height:13rem;padding:var(--space-4)}}@media (prefers-reduced-motion:reduce){.ProjectCard-module__b08Pxa__photo{transition:none}.ProjectCard-module__b08Pxa__card:hover .ProjectCard-module__b08Pxa__photo{scale:1.16}.ProjectCard-module__b08Pxa__card:has(:focus-visible) .ProjectCard-module__b08Pxa__photo{scale:1.16}}
