@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/a342834df7752944-s.3hd2l7bm32o7k.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/d3fe2f289711ac3f-s.1l2zhvq5eocqf.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/58c4895d0a0ef7cc-s.2vhvl9vrvk-va.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/bfc7db5c00d21bc5-s.173xwsdme27n8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/6ab0db14f70d8ed6-s.13hnt-xgp82zk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url(../media/a343f882a40d2cc9-s.p.1sj6eobyi31rd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Fallback;src:local(Arial);ascent-override:103.31%;descent-override:29.07%;line-gap-override:0.0%;size-adjust:103.19%}.manrope_8872c2a9-module__LE2TAW__className{font-family:Manrope,Manrope Fallback;font-style:normal}.manrope_8872c2a9-module__LE2TAW__variable{--font-manrope:"Manrope", "Manrope Fallback"}
:root{--ink-900:#1d1d1f;--ink-700:#424245;--ink-600:#6e6e73;--ink-500:#86868b;--ink-400:#aeaeb2;--line-300:#d2d2d7;--line-200:#e8e8ed;--paper-100:#f5f5f7;--paper-050:#fbfbfd;--paper-000:#fff;--night-000:#000;--night-050:#161617;--night-100:#1d1d1f;--night-200:#2a2a2c;--blue-600:#06c;--blue-500:#0071e3;--blue-400:#0077ed;--blue-link-dark:#2997ff;--green-500:#1d9d56;--amber-500:#c77b1f;--red-500:#d33636;--text-primary:var(--ink-900);--text-secondary:var(--ink-600);--text-tertiary:var(--ink-500);--text-disabled:var(--ink-400);--text-on-dark:var(--paper-100);--text-on-dark-dim:#a1a1a6;--text-link:var(--blue-500);--text-link-dark:var(--blue-link-dark);--text-on-accent:var(--paper-000);--bg-page:var(--paper-000);--bg-wash:var(--paper-050);--surface:var(--paper-100);--surface-raised:var(--paper-000);--surface-dark:var(--night-000);--surface-dark-soft:var(--night-050);--border:var(--line-300);--border-subtle:var(--line-200);--border-on-dark:#ffffff29;--accent:var(--blue-500);--accent-hover:var(--blue-400);--accent-press:var(--blue-600);--chip-neutral:var(--ink-900);--focus-ring:#0071e373}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text-primary:var(--paper-100);--text-secondary:#a1a1a6;--text-tertiary:#8e8e93;--text-disabled:var(--ink-600);--text-link:var(--blue-link-dark);--bg-page:#000;--bg-wash:#0b0b0c;--surface:#242426;--surface-raised:#161617;--border:#ffffff29;--border-subtle:#ffffff1a;--chip-neutral:#5a5a5e;--glass-bg:#161617b8}
:root{--font-display:-apple-system, BlinkMacSystemFont, var(--font-manrope,"Manrope"), "Segoe UI", system-ui, sans-serif;--font-text:-apple-system, BlinkMacSystemFont, var(--font-manrope,"Manrope"), "Segoe UI", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", "Menlo", "Consolas", monospace;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--fs-display-xl:clamp(3rem, 6vw, 5rem);--fs-display-lg:clamp(2.5rem, 4.5vw, 3.5rem);--fs-display-md:clamp(2rem, 3.4vw, 2.75rem);--fs-title-lg:1.75rem;--fs-title-md:1.375rem;--fs-title-sm:1.1875rem;--fs-body-lg:1.3125rem;--fs-body:1.0625rem;--fs-body-sm:.9375rem;--fs-caption:.8125rem;--fs-eyebrow:.75rem;--lh-tight:1.05;--lh-snug:1.14;--lh-normal:1.47;--lh-relaxed:1.6;--tracking-display:-.022em;--tracking-title:-.014em;--tracking-body:0em;--tracking-eyebrow:.08em;--tracking-caps:.04em}
:root{--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--space-32:128px;--space-40:160px;--gap-inline:var(--space-3);--gap-stack:var(--space-4);--gap-card:var(--space-6);--section-pad-y:clamp(72px, 10vw, 160px);--page-gutter:clamp(20px, 5vw, 48px);--content-max:1120px;--prose-max:680px}
:root{--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-2xl:40px;--radius-pill:980px;--radius-full:9999px}
:root{--shadow-none:none;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 2px 8px #0000000d;--shadow-card:0 4px 16px #0000000f;--shadow-md:0 10px 30px #00000014;--shadow-lg:0 20px 50px #0000001a;--shadow-pop:0 12px 40px #00000024;--shadow-focus:0 0 0 4px var(--focus-ring);--glass-bg:#ffffffb8;--glass-bg-dark:#161617b8;--glass-blur:saturate(180%) blur(20px)}
:root{--dur-fast:.12s;--dur-base:.24s;--dur-slow:.4s;--dur-reveal:.7s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-standard:cubic-bezier(.4, 0, .2, 1);--t-color:color var(--dur-fast) var(--ease-standard), background-color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard);--t-transform:transform var(--dur-base) var(--ease-out);--t-all:all var(--dur-base) var(--ease-out)}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-base:0s;--dur-slow:0s;--dur-reveal:0s}}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--line-300) transparent}::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line-300);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--ink-400)}body{font-family:var(--font-text);font-size:var(--fs-body);line-height:var(--lh-normal);color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;animation:pageEnter .7s var(--ease-out) both;margin:0}@keyframes pageEnter{0%{opacity:0}to{opacity:1}}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--weight-semibold);color:var(--text-primary);line-height:var(--lh-snug);letter-spacing:var(--tracking-title);text-wrap:balance;margin:0}p{text-wrap:pretty;margin:0}a{color:var(--text-link);transition:var(--t-color);text-decoration:none}a:hover{text-decoration:underline}img,svg,video{max-width:100%;display:block}button{font-family:inherit}::selection{background:#0071e329}:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-xs);outline:none}.ap-container{width:100%;max-width:var(--content-max);padding-inline:var(--page-gutter);margin-inline:auto}.ap-prose{max-width:var(--prose-max)}.ap-eyebrow{font-size:var(--fs-eyebrow);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--accent)}
html{scroll-padding-top:72px}.section{padding-block:var(--section-pad-y)}.section-wash{background:var(--bg-wash)}.section-dark{background:var(--surface-dark)}.reveal{transition:opacity .7s var(--ease-out), transform .7s var(--ease-out)}.reveal.armed{opacity:0;transform:translateY(24px)}@media (max-width:860px){.nav-links,.nav-cta-desktop{display:none!important}.collapse-2,.project-grid{grid-template-columns:1fr!important}}.nav-hamburger{cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:8px;transition:background .2s;display:none}.nav-hamburger:hover{background:var(--surface)}.hamburger-bar{background:var(--text-primary);width:100%;height:2px;transition:transform .35s var(--ease-out), opacity .25s;transform-origin:50%;border-radius:1px;display:block}.nav-hamburger.open .hamburger-bar:first-child{transform:translateY(7px)rotate(45deg)}.nav-hamburger.open .hamburger-bar:nth-child(2){opacity:0;transform:scaleX(0)}.nav-hamburger.open .hamburger-bar:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@media (max-width:860px){.nav-hamburger{display:flex}}.nav-mobile-panel{padding:0 var(--page-gutter) 0;max-height:0;transition:max-height .45s var(--ease-out), padding-bottom .45s var(--ease-out);flex-direction:column;display:none;overflow:hidden}.nav-mobile-panel.open{max-height:420px;padding-bottom:24px}.nav-mobile-link{font-size:var(--fs-body);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);transition:color .2s, padding-left .3s var(--ease-out);padding:14px 0;font-weight:500;display:block;text-decoration:none!important}.nav-mobile-link:hover{color:var(--text-primary);padding-left:8px}@media (max-width:860px){.nav-mobile-panel{display:flex}}.nav-backdrop{z-index:-1;animation:backdropIn .3s var(--ease-out) both;background:#0003;position:fixed;inset:56px 0 0}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}#fx-progress{z-index:60;transform-origin:0;background:linear-gradient(90deg, var(--accent), #5ac8fa);will-change:transform;height:2px;position:fixed;top:0;left:0;right:0;transform:scaleX(0)}#top{isolation:isolate;position:relative;overflow:hidden}#top>.ap-container{z-index:1;position:relative}.fx-enter{opacity:0;filter:blur(6px);transform:translateY(22px)}.fx-enter.is-in{opacity:1;filter:none;transition:opacity .8s var(--ease-out), transform .8s var(--ease-out), filter .8s var(--ease-out);transform:none}.fx-word{opacity:0;filter:blur(8px);display:inline-block;transform:translateY(20px)scale(.98)}.fx-word.is-in{opacity:1;filter:none;transition:opacity .65s var(--ease-out), transform .65s var(--ease-out), filter .65s var(--ease-out);transform:none}#fx-stars{z-index:0;pointer-events:none;position:absolute;inset:0}#fx-aurora{z-index:0;pointer-events:none;filter:blur(36px);will-change:transform;background:radial-gradient(38% 48% at 22% 28%,#0071e31a,#0000 70%),radial-gradient(34% 44% at 80% 22%,#5ac8fa17,#0000 70%),radial-gradient(44% 42% at 62% 82%,#0071e30f,#0000 72%);animation:26s ease-in-out infinite alternate auroraDrift;position:absolute;inset:-25%}@keyframes auroraDrift{0%{transform:translate(0,0)scale(1)}50%{transform:translate(2.2%,1.6%)scale(1.07)}to{transform:translate(-1.8%,1%)scale(1.03)}}#fx-grid{z-index:1;pointer-events:none;background-image:radial-gradient(circle,#0000000e 1px,#0000 1.5px);background-size:26px 26px;animation:26s linear infinite fxGridDrift;position:absolute;inset:-40px;-webkit-mask-image:radial-gradient(68% 58% at 50% 36%,#000 0%,#0000 76%);mask-image:radial-gradient(68% 58% at 50% 36%,#000 0%,#0000 76%)}@keyframes fxGridDrift{to{background-position:26px 26px}}#top:before,#top:after{content:"";pointer-events:none;filter:blur(80px);z-index:0;border-radius:50%;position:absolute}#top:before{background:radial-gradient(#0071e312 0%,#0000 70%);width:560px;height:400px;animation:22s ease-in-out infinite alternate nebulaDrift;top:-60px;left:-80px}#top:after{background:radial-gradient(#5ac8fa0d 0%,#0000 70%);width:480px;height:360px;animation:28s ease-in-out infinite alternate-reverse nebulaDrift;bottom:0;right:-60px}@keyframes nebulaDrift{0%{transform:translate(0)scale(1)}to{transform:translate(40px,24px)scale(1.08)}}@keyframes cardSpaceFloat{0%{transform:perspective(900px)rotateX(2deg)rotateY(-5deg)translateY(0);box-shadow:0 16px 48px #00000014,0 0 40px #0071e30f}25%{transform:perspective(900px)rotateX(-2deg)rotateY(4deg)translateY(-12px);box-shadow:0 28px 64px #0000001a,0 0 60px #0071e31a}50%{transform:perspective(900px)rotateX(3deg)rotateY(5deg)translateY(-7px);box-shadow:0 22px 56px #00000017,0 0 50px #0071e314}75%{transform:perspective(900px)rotateX(-1deg)rotateY(-4deg)translateY(-14px);box-shadow:0 30px 72px #0000001c,0 0 64px #0071e31f}to{transform:perspective(900px)rotateX(2deg)rotateY(-5deg)translateY(0);box-shadow:0 16px 48px #00000014,0 0 40px #0071e30f}}.fx-space-card{transform-style:preserve-3d;will-change:transform;animation:9s ease-in-out infinite cardSpaceFloat}.fx-spot{position:relative}.fx-spot:after{content:"";border-radius:inherit;pointer-events:none;z-index:2;background:radial-gradient(240px circle at var(--mx,50%) var(--my,-40%), #0071e31a, transparent 60%);opacity:0;transition:opacity .4s var(--ease-out);position:absolute;inset:0}.fx-spot:hover:after{opacity:1}.fx-spot-dark:after{background:radial-gradient(280px circle at var(--mx,50%) var(--my,-40%), #2997ff33, transparent 62%)}.fx-tilt{transform-style:preserve-3d;will-change:transform}.fx-stagger>*{opacity:0;transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);will-change:opacity, transform;transform:translateY(22px)}.fx-stagger.fx-in>*{opacity:1;transform:none}.flip-card{perspective:1600px;position:relative}.flip-card-inner{border-radius:var(--radius-lg);width:100%;min-height:408px;transform-style:preserve-3d;transition:transform .9s var(--ease-out);animation:9s ease-in-out infinite cardFloatY;position:relative}.flip-card:hover .flip-card-inner,.flip-card:focus-within .flip-card-inner{transform:rotateY(180deg)}.flip-card:hover{animation:none}@keyframes cardFloatY{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}.flip-card-face{backface-visibility:hidden;border-radius:var(--radius-lg);flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.flip-card-front{background:var(--surface);border:1px solid var(--border-subtle);box-shadow:var(--shadow-card);text-align:center;justify-content:center;align-items:center;gap:20px;padding:40px}.flip-card-back{color:var(--text-on-dark);background:linear-gradient(160deg,#1d1d1f 0%,#161617 100%);border:1px solid #2997ff38;padding:26px 26px 24px;transform:rotateY(180deg);box-shadow:0 18px 56px #0003,0 0 48px #0071e31f}.flip-hint{letter-spacing:.03em;color:var(--text-tertiary);opacity:.8;align-items:center;gap:5px;font-size:11px;display:inline-flex;position:absolute;bottom:12px;right:14px}.flip-card:hover .flip-card-front .flip-hint{opacity:0}.fx-avatar-glow{display:inline-flex;position:relative}.fx-avatar-glow:after{content:"";pointer-events:none;border:1.5px solid #0071e373;border-radius:50%;animation:3.6s ease-in-out infinite avatarPulse;position:absolute;inset:-7px}@keyframes avatarPulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:0;transform:scale(1.12)}}.code-key{color:#2997ff}.code-str{color:#9fe6a0}.code-num{color:#e3a36b}.code-pun{color:#86868b}.code-cmt{color:#6e6e73}.fx-shine{isolation:isolate;position:relative;overflow:hidden}.fx-shine:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000 0%,#ffffff73 50%,#0000 100%);width:55%;position:absolute;top:0;bottom:0;left:-130%;transform:skew(-20deg)}.fx-shine:hover:after{animation:shineSweep .85s var(--ease-out)}.fx-shine:hover{box-shadow:0 8px 24px #0071e352}@keyframes shineSweep{0%{left:-130%}to{left:130%}}.fx-magnetic{will-change:transform;display:inline-flex}#fx-toast{z-index:80;border-radius:var(--radius-pill);background:var(--night-100);color:var(--paper-000);font-family:var(--font-text);font-size:var(--fs-body-sm);box-shadow:var(--shadow-pop);opacity:0;pointer-events:none;transition:opacity .3s var(--ease-out), transform .3s var(--ease-out);align-items:center;gap:8px;padding:10px 18px;font-weight:500;display:inline-flex;position:fixed;bottom:36px;left:50%;transform:translate(-50%)translateY(12px)}#fx-toast.is-visible{opacity:1;transform:translate(-50%)translateY(0)}#fx-toast .fx-toast-dot{background:var(--green-500);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.fx-badge-glow{animation:2.8s ease-in-out infinite badgePulse}@keyframes badgePulse{0%,to{box-shadow:0 0 #1d9d5600,inset 0 0 #1d9d5600}50%{box-shadow:0 0 18px 4px #1d9d5626,inset 0 0 6px #1d9d560f}}.fx-marquee-wrap{width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.fx-marquee-track{gap:10px;width:max-content;animation:38s linear infinite marqueeScroll;display:flex}.fx-marquee-track:hover{animation-play-state:paused}@keyframes marqueeScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.nav-link{transition:color var(--dur-base) var(--ease-out);position:relative}.nav-link:after{content:"";background:var(--accent);width:0;height:2px;transition:width .3s var(--ease-out);border-radius:1px;position:absolute;bottom:-4px;left:0}.nav-link:hover:after,.nav-link.active:after{width:100%}.nav-link:hover,.nav-link.active{color:var(--text-primary)!important}.nav-scrolled{box-shadow:0 1px 20px #0000000f}.fx-project-card{transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out)!important}.fx-project-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px #0000001a,0 8px 20px #0000000f}.fx-stack-reveal>*{transition:transform .35s var(--ease-out), opacity .35s var(--ease-out)}.fx-project-card .fx-stack-reveal>*{opacity:.55;transform:translateY(3px)}.fx-project-card:hover .fx-stack-reveal>*{opacity:1;transform:none}.fx-project-card:hover .fx-stack-reveal>:first-child{transition-delay:0s}.fx-project-card:hover .fx-stack-reveal>:nth-child(2){transition-delay:40ms}.fx-project-card:hover .fx-stack-reveal>:nth-child(3){transition-delay:80ms}.fx-project-card:hover .fx-stack-reveal>:nth-child(4){transition-delay:.12s}.fx-project-card:hover .fx-stack-reveal>:nth-child(5){transition-delay:.16s}.fx-project-name{transition:color .25s var(--ease-out);align-items:baseline;display:inline-flex;text-decoration:none!important}.fx-project-name svg{opacity:0;transition:opacity .25s var(--ease-out), transform .25s var(--ease-out);flex-shrink:0;transform:translate(-4px,2px)}.fx-project-name:hover{color:var(--accent)}.fx-project-name:hover svg{opacity:1;transform:translate(0)}.fx-skill-tags>*{opacity:0;transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);transform:translateY(10px)scale(.96)}.fx-skill-tags.fx-tags-in>*{opacity:1;transform:none}.fx-social-bounce{transition:transform .3s var(--ease-out)}.fx-social-bounce:hover{animation:socialWiggle .5s var(--ease-out)}@keyframes socialWiggle{0%{transform:scale(1)rotate(0)}20%{transform:scale(1.18)rotate(-8deg)}40%{transform:scale(.92)rotate(5deg)}60%{transform:scale(1.1)rotate(-3deg)}80%{transform:scale(.98)rotate(1deg)}to{transform:scale(1)rotate(0)}}.fx-typing-cursor:after{content:"|";color:var(--accent);margin-left:2px;font-weight:300;animation:1s step-end infinite cursorBlink;display:inline}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}#fx-cursor-glow{pointer-events:none;z-index:9999;opacity:0;will-change:left, top;background:radial-gradient(circle,#0071e30a 0%,#0000 60%);border-radius:50%;width:400px;height:400px;transition:opacity .5s;position:fixed;transform:translate(-50%,-50%)}body:hover #fx-cursor-glow{opacity:1}.fx-draw-line{position:relative;text-decoration:none!important}.fx-draw-line:after{content:"";width:0;height:1.5px;transition:width .3s var(--ease-out);background:currentColor;position:absolute;bottom:-1px;left:0}.fx-draw-line:hover:after{width:100%}.fx-contact-row{transition:background .3s var(--ease-out), border-color .3s var(--ease-out);border-radius:var(--radius-sm);margin-inline:-12px;padding:12px!important}.fx-contact-row:hover{background:var(--surface)}.fx-contact-icon{transition:transform .3s var(--ease-out), box-shadow .3s var(--ease-out)}.fx-contact-row:hover .fx-contact-icon{transform:scale(1.1);box-shadow:0 0 0 3px #0071e31f}.fx-timeline-dot{position:relative}.fx-timeline-dot:after{content:"";border:1.5px solid var(--accent);opacity:0;border-radius:50%;animation:3s ease-in-out infinite timelinePulse;position:absolute;inset:-4px}@keyframes timelinePulse{0%,to{opacity:0;transform:scale(.8)}50%{opacity:.4;transform:scale(1.6)}}.fx-timeline-dot:first-child:after{animation-delay:0s}.fx-timeline-dot:nth-child(2):after{animation-delay:1s}.fx-timeline-dot:nth-child(3):after{animation-delay:2s}.fx-gradient-text{background:linear-gradient(135deg, var(--accent) 0%, #5ac8fa 50%, var(--accent) 100%);-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:5s ease-in-out infinite gradientShift}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}#fx-scroll-top{background:var(--surface-raised);border:1px solid var(--border-subtle);width:46px;height:46px;box-shadow:var(--shadow-md);color:var(--text-secondary);cursor:pointer;z-index:40;opacity:0;transition:opacity .35s var(--ease-out), transform .35s var(--ease-out), background .2s, color .2s, box-shadow .3s;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:32px;right:32px;overflow:visible;transform:translateY(16px)scale(.9)}#fx-scroll-top.is-visible{opacity:1;pointer-events:auto;transform:none}#fx-scroll-top:hover{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent);box-shadow:0 8px 24px #0071e347}#fx-scroll-top:active{transform:scale(.9)}#fx-scroll-top:hover .fx-ring-fill{stroke:var(--text-on-accent)}.fx-progress-ring{pointer-events:none;position:absolute;inset:-2px;transform:rotate(-90deg)}.fx-ring-fill{transition:stroke-dashoffset .15s,stroke .2s}@media (max-width:860px){#fx-cursor-glow{display:none!important}.fx-card-glow:before{display:none}.fx-dark-card-glow:hover{transform:none}.flip-card-front:after{opacity:0;animation:none}.fx-orbit-ring{animation-duration:18s}#fx-scroll-top{width:42px;height:42px;bottom:20px;right:20px}}.fx-icon-glow{transition:box-shadow .4s var(--ease-out), transform .3s var(--ease-out)}.fx-icon-glow[data-accent=blue]:hover{box-shadow:0 4px 20px #0071e34d}.fx-icon-glow[data-accent=dark]:hover{box-shadow:0 4px 20px #1d1d1f40}.fx-icon-glow[data-accent=green]:hover{box-shadow:0 4px 20px #1d9d564d}.fx-icon-glow:hover{transform:scale(1.08)rotate(-3deg)}.fx-card-glow{position:relative}.fx-card-glow:before{content:"";border-radius:inherit;opacity:0;transition:opacity .4s var(--ease-out);z-index:-1;filter:blur(12px);background:linear-gradient(135deg,#0071e326,#5ac8fa1a,#0071e30d);position:absolute;inset:-1px}.fx-card-glow:hover:before{opacity:1}.fx-dark-card-glow{transition:border-color .4s var(--ease-out), box-shadow .4s var(--ease-out), transform .3s var(--ease-out)}.fx-dark-card-glow:hover{transform:translateY(-3px);box-shadow:0 0 28px #2997ff14,0 8px 20px #0000004d;border-color:#2997ff4d!important}@property --border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.flip-card:before{content:"";border-radius:calc(var(--radius-lg) + 3px);background:conic-gradient(from var(--border-angle,0deg), #0071e399, #5ac8fa73, transparent 35%, transparent 65%, #5ac8fa73, #0071e399);-webkit-mask-composite:xor;opacity:0;transition:opacity .6s var(--ease-out);z-index:0;padding:3px;animation:3s linear infinite spinBorder;position:absolute;inset:-3px;-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;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.flip-card:hover:before,.flip-card:focus-within:before{opacity:1}@keyframes spinBorder{to{--border-angle:360deg}}.flip-card-front:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(105deg,#0000 35%,#0071e30a 43%,#ffffff1f 50%,#0071e30a 57%,#0000 65%) 200% 0/250% 100%;animation:5s ease-in-out infinite frontShimmer;position:absolute;inset:0}@keyframes frontShimmer{0%,75%,to{background-position:200% 0}35%{background-position:-100% 0}}.flip-card-back:before{content:"";pointer-events:none;border-radius:inherit;z-index:3;opacity:.035;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#ffffff26 2px 4px);position:absolute;inset:0}.flip-card-back:after{content:"";z-index:3;pointer-events:none;background:linear-gradient(#0000,#2997ff0a,#0000);height:60px;animation:4s ease-in-out infinite scanDown;position:absolute;left:0;right:0}@keyframes scanDown{0%,to{top:-60px}50%{top:calc(100% + 60px)}}.code-line{opacity:0;filter:blur(3px);transition:opacity .4s var(--ease-out), transform .4s var(--ease-out), filter .4s var(--ease-out);display:block;transform:translate(-8px)}.flip-card:hover .code-line,.flip-card:focus-within .code-line{opacity:1;filter:none;transform:none}.flip-card:hover .code-line:first-child,.flip-card:focus-within .code-line:first-child{transition-delay:.35s}.flip-card:hover .code-line:nth-child(2),.flip-card:focus-within .code-line:nth-child(2){transition-delay:.48s}.flip-card:hover .code-line:nth-child(3),.flip-card:focus-within .code-line:nth-child(3){transition-delay:.58s}.flip-card:hover .code-line:nth-child(4),.flip-card:focus-within .code-line:nth-child(4){transition-delay:.68s}.flip-card:hover .code-line:nth-child(5),.flip-card:focus-within .code-line:nth-child(5){transition-delay:.78s}.flip-card:hover .code-line:nth-child(6),.flip-card:focus-within .code-line:nth-child(6){transition-delay:.88s}.flip-card:hover .code-line:nth-child(7),.flip-card:focus-within .code-line:nth-child(7){transition-delay:.98s}.flip-card:hover .code-line:nth-child(8),.flip-card:focus-within .code-line:nth-child(8){transition-delay:1.08s}.fx-terminal-cursor{vertical-align:middle;opacity:0;background:#2997ff;border-radius:1px;width:8px;height:15px;margin-left:3px;transition:opacity .3s 1.2s;animation:1.1s step-end 1.3s infinite termBlink;display:inline-block}.flip-card:hover .fx-terminal-cursor,.flip-card:focus-within .fx-terminal-cursor{opacity:1}@keyframes termBlink{0%,to{visibility:visible}50%{visibility:hidden}}.fx-orbit-ring{pointer-events:none;border:1px dashed #0071e31f;border-radius:50%;animation:10s linear infinite orbitSpin;position:absolute;inset:-20px}.fx-orbit-dot{border-radius:50%;width:5px;height:5px;position:absolute}.fx-orbit-dot:first-child{background:var(--accent);top:-2.5px;left:50%;transform:translate(-50%);box-shadow:0 0 10px #0071e399}.fx-orbit-dot:last-child{background:#5ac8fa;width:4px;height:4px;bottom:-2.5px;left:50%;transform:translate(-50%);box-shadow:0 0 10px #5ac8fa99}@keyframes orbitSpin{to{transform:rotate(360deg)}}.fx-fact-row{transition:background .2s var(--ease-out), padding .2s var(--ease-out);border-radius:var(--radius-xs);margin:0 -10px;padding:6px 10px}.fx-fact-row:hover{background:#0071e30a}.fx-icon-float{animation:4s ease-in-out infinite iconFloat}.fx-icon-float:first-child{animation-delay:0s}.fx-icon-float:nth-child(2){animation-delay:1.3s}.fx-icon-float:nth-child(3){animation-delay:2.6s}@keyframes iconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.section-wash-skills{background:linear-gradient(180deg, var(--bg-wash) 0%, #0071e304 50%, var(--bg-wash) 100%)}.section-wash-learning{background:linear-gradient(180deg, var(--bg-wash) 0%, #1d9d5604 50%, var(--bg-wash) 100%)}.section-wash-contact{background:linear-gradient(180deg, var(--bg-wash) 0%, #0071e305 100%)}.section-dark:before{content:"";pointer-events:none;filter:blur(60px);background:radial-gradient(#2997ff0f 0%,#0000 70%);width:600px;height:400px;position:absolute;top:-100px;left:50%;transform:translate(-50%)}.section-dark{position:relative;overflow:hidden}.theme-toggle{border:1px solid var(--border-subtle);width:38px;height:38px;color:var(--text-secondary);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast), transform var(--dur-fast) var(--ease-out);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.theme-toggle:hover{background:var(--surface);color:var(--text-primary);border-color:var(--border)}.theme-toggle:active{transform:scale(.92)}.theme-toggle-icon{display:inline-flex}.theme-toggle-icon svg{animation:themeIconIn .4s var(--ease-out)}@keyframes themeIconIn{0%{opacity:0;transform:rotate(-35deg)scale(.6)}to{opacity:1;transform:none}}::placeholder{color:var(--text-tertiary);opacity:1}:root[data-theme=dark] #fx-grid{background-image:radial-gradient(circle,#ffffff0d 1px,#0000 1.5px)}:root[data-theme=dark] .nav-scrolled{box-shadow:0 1px 20px #00000080}:root[data-theme=dark]{scrollbar-color:#ffffff2e transparent}:root[data-theme=dark] ::-webkit-scrollbar-thumb{background:#ffffff2e}:root[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media (prefers-reduced-motion:reduce){.theme-toggle-icon svg,#top:before,#top:after,#fx-grid,.fx-space-card,#fx-aurora{animation:none}#fx-progress{display:none}.reveal,.reveal.armed{opacity:1;transition:none;transform:none}.fx-enter,.fx-word{opacity:1!important;filter:none!important;transition:none!important;transform:none!important}.fx-spot:after{transition:none}.fx-stagger>*{opacity:1!important;transition:none!important;transform:none!important}.flip-card-inner{transition:none;animation:none}.flip-card:before{display:none}.flip-card-front:after{opacity:0;animation:none}.flip-card-back:before,.flip-card-back:after{display:none}.code-line{opacity:1!important;filter:none!important;transition:none!important;transform:none!important}.fx-terminal-cursor{display:none}.fx-orbit-ring{border-color:#0000;animation:none}.fx-orbit-dot{opacity:0}.fx-avatar-glow:after{opacity:0;animation:none}.fx-shine:after{display:none}.fx-badge-glow{animation:none}.fx-marquee-wrap{overflow:visible;-webkit-mask-image:none;mask-image:none}.fx-marquee-track{flex-wrap:wrap;justify-content:center;width:auto;animation:none}.fx-marquee-dup{display:none!important}.nav-link:after{transition:none}.fx-project-card{transition:none!important}.fx-project-card:hover{transform:none}.fx-stack-reveal>*,.fx-skill-tags>*{opacity:1!important;transition:none!important;transform:none!important}.fx-social-bounce:hover,.fx-typing-cursor:after{animation:none}#fx-cursor-glow{display:none}.fx-draw-line:after{transition:none}.fx-contact-row,.fx-contact-icon{transition:none!important}.fx-timeline-dot:after{animation:none;opacity:0!important}.fx-gradient-text{animation:none}#fx-scroll-top{display:none}.fx-icon-glow{transition:none}.fx-icon-glow:hover{transform:none}.fx-card-glow:before{display:none}.fx-dark-card-glow{transition:none!important}.fx-dark-card-glow:hover{transform:none}.fx-icon-float{animation:none}.section-dark:before{display:none}}

