@font-face{font-family:Syne;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ab624315db63c58d-s.1487dfs7-.~d~.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:Syne;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e94b8ab81811a983-s.02fsf_1p_avhz.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:Syne;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0c795a286deabae8-s.p.14tvuu96~wkr0.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:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(../media/ab624315db63c58d-s.1487dfs7-.~d~.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:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e94b8ab81811a983-s.02fsf_1p_avhz.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:Syne;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0c795a286deabae8-s.p.14tvuu96~wkr0.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:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(../media/ab624315db63c58d-s.1487dfs7-.~d~.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:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(../media/e94b8ab81811a983-s.02fsf_1p_avhz.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:Syne;font-style:normal;font-weight:800;font-display:swap;src:url(../media/0c795a286deabae8-s.p.14tvuu96~wkr0.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:Syne Fallback;src:local(Arial);ascent-override:93.93%;descent-override:27.93%;line-gap-override:0.0%;size-adjust:98.47%}.syne_ad22b7cb-module__uCSO1q__className{font-family:Syne,Syne Fallback;font-style:normal}.syne_ad22b7cb-module__uCSO1q__variable{--font-syne:"Syne", "Syne Fallback"}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.0xyeb7czu1stb.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.0vnh8.d8wxa2x.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.0~.8lt~vdqmc3.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.00z~hoalba5dm.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0vwgtotjdgnhr.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:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.09.f.n_ccld80.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.0xyeb7czu1stb.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.0vnh8.d8wxa2x.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.0~.8lt~vdqmc3.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.00z~hoalba5dm.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0vwgtotjdgnhr.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:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.09.f.n_ccld80.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.0xyeb7czu1stb.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.0vnh8.d8wxa2x.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.0~.8lt~vdqmc3.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.00z~hoalba5dm.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.0vwgtotjdgnhr.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:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.09.f.n_ccld80.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:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_39a25691-module__H7iVPa__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_39a25691-module__H7iVPa__variable{--font-ibm-plex-sans:"IBM Plex Sans", "IBM Plex Sans Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d72c019e91ffb82f-s.13p4wivrd1jdu.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8557ac4879842fb9-s.0c55c1p2uepsl.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c847346577a98de0-s.0onzgp6v4x1o7.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/db08d2e20377160a-s.0dy25cxsth5_b.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/8394f9d71e076efc-s.0ivtmx8_gg.-p.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:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/19087af2bdec32b5-s.p.08sa_orub7ous.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:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_888b0d2e-module__uaBRLq__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal;font-weight:400}.jetbrains_mono_888b0d2e-module__uaBRLq__variable{--font-jetbrains-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
@layer reset{*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-moz-text-size-adjust:100%;text-size-adjust:100%;height:100%}body{min-height:100%}img,video,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ol,ul{list-style:none}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none}}@layer tokens{@property --accent{syntax:"<color>";inherits:true;initial-value:#00e5a0}@property --accent-ai{syntax:"<color>";inherits:true;initial-value:#7c73e6}@property --bg{syntax:"<color>";inherits:true;initial-value:#0a0a0f}@property --surface{syntax:"<color>";inherits:true;initial-value:#111118}@property --border{syntax:"<color>";inherits:true;initial-value:#1e1e2a}@property --text-heading{syntax:"<color>";inherits:true;initial-value:#e8e8f0}@property --text-body{syntax:"<color>";inherits:true;initial-value:#e8e8f0}:root{--bg:#0a0a0f;--bg-dark:#060608;--surface:#111118;--surface-2:#15151e;--glass-bg:#ffffff09;--glass-border:#ffffff13;--glass-blur:20px;--border:#1e1e2a;--text-heading:#e8e8f0;--text-body:#e8e8f0;--text-muted:#8888a0;--accent:#00e5a0;--accent-dim:#00e5a01f;--accent-ai:#7c73e6;--accent-ai-dim:#7c73e61f;--skill-chip-ai-text:#a59ef7;--nav-height:58px;--nav-gradient:linear-gradient(90deg, #00e5a017 0%, transparent 55%, #7c73e60d 100%);--nav-link-inactive:#ffffff61;--nav-link-hover:#ffffffb8;--font-sans:var(--font-ibm-plex-sans), sans-serif;--font-heading:var(--font-syne), sans-serif;--font-mono:var(--font-jetbrains-mono), monospace;--fz-xs:clamp(11px, .75vw, 13px);--fz-sm:clamp(13px, .9vw, 14px);--fz-body:clamp(15px, 1.1vw, 18px);--fz-lg:clamp(18px, 1.3vw, 20px);--fz-xl:clamp(22px, 1.8vw, 26px);--fz-2xl:clamp(28px, 2.5vw, 36px);--fz-3xl:clamp(36px, 3.5vw, 48px);--fz-hero:clamp(52px, 5vw, 72px);--sp-xs:clamp(4px, .5vw, 6px);--sp-sm:clamp(8px, .8vw, 12px);--sp-md:clamp(16px, 1.5vw, 24px);--sp-lg:clamp(28px, 2.5vw, 40px);--sp-xl:clamp(48px, 5vw, 80px);--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--radius-pill:100px;--transition:all .4s ease-out;--transition-fast:all .2s ease-out;--container-max:1200px}[data-theme=light]{--bg:#f0f0f5;--bg-dark:#e4e4ec;--surface:#fff;--surface-2:#e8e8f0;--glass-bg:#ffffff8c;--glass-border:#00000012;--border:#d8d8e8;--text-heading:#0e0e18;--text-body:#0e0e18;--text-muted:#6b6b80;--accent:#00a372;--accent-dim:#00a3721f;--accent-ai:#5a52c0;--accent-ai-dim:#5a52c01f;--skill-chip-ai-text:#4e47b2;--nav-gradient:linear-gradient(90deg, #00a37212 0%, transparent 55%, #645ac80a 100%);--nav-link-inactive:#00000061;--nav-link-hover:#000000b8}}@layer base{html{font-size:var(--fz-body);font-family:var(--font-sans);color:var(--text-body);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{flex-direction:column;display:flex;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--text-heading);letter-spacing:-.01em;line-height:1.15}h1{font-size:var(--fz-3xl)}h2{font-size:var(--fz-2xl)}h3{font-size:var(--fz-xl)}h4{font-size:var(--fz-lg)}p{line-height:1.75}code,kbd,pre{font-family:var(--font-mono);font-size:.875em}::placeholder{color:var(--text-muted);opacity:1}::selection{background-color:var(--accent-dim);color:var(--text-heading)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-sm)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:color-mix(in oklch, var(--accent) 40%, var(--border))}@keyframes drift1{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-20px)scale(1.04)}66%{transform:translate(-20px,15px)scale(.97)}}@keyframes drift2{0%,to{transform:translate(0)scale(1)}40%{transform:translate(-25px,20px)scale(1.03)}70%{transform:translate(15px,-15px)scale(.98)}}@keyframes drift3{0%,to{transform:translate(0)scale(1)}50%{transform:translate(20px,25px)scale(1.05)}}.orb{pointer-events:none;z-index:0;filter:blur(80px);border-radius:50%;position:fixed}.orb-1{background:#00e5a017;width:520px;height:520px;animation:22s ease-in-out infinite drift1;top:-140px;left:-120px}.orb-2{background:#7c73e617;width:440px;height:440px;animation:28s ease-in-out infinite drift2;bottom:-80px;right:-100px}.orb-3{background:#008cff0d;width:300px;height:300px;animation:18s ease-in-out infinite drift3;top:40%;left:55%}}@layer components{.skip-link{top:-100%;left:var(--sp-md);z-index:9999;padding:var(--sp-sm) var(--sp-md);background:var(--accent);color:var(--bg);font-family:var(--font-sans);font-weight:600;font-size:var(--fz-sm);border-radius:var(--radius-md);transition:top .2s;position:absolute}.skip-link:focus{top:var(--sp-sm);outline:none}.site-nav{z-index:100;height:var(--nav-height);background:var(--glass-bg);background-image:var(--nav-gradient);border-bottom:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur));position:fixed;top:0;left:0;right:0}.nav-inner{max-width:var(--container-max);height:100%;padding:0 var(--sp-lg);align-items:center;gap:var(--sp-lg);margin:0 auto;display:flex}.brand{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--text-heading);white-space:nowrap;transition:opacity var(--transition-fast);flex-shrink:0;font-size:.95rem;font-weight:700}.brand:hover{opacity:.8}.brand-accent{color:var(--accent)}.nav-links{align-items:center;gap:var(--sp-lg);flex:1;display:flex}.nav-link{font-family:var(--font-sans);color:var(--nav-link-inactive);transition:color var(--transition-fast);font-size:13px;font-weight:500;position:relative}.nav-link:after{content:"";background:var(--accent);transform-origin:0;height:1.5px;transition:transform var(--transition-fast);position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.nav-link:hover{color:var(--nav-link-hover)}.nav-link.is-active{color:var(--accent)}.nav-link.is-active:after{transform:scaleX(1)}.nav-actions{align-items:center;gap:var(--sp-md);margin-left:auto;display:flex}.theme-toggle{border-radius:var(--radius-sm);background:var(--surface-2);width:32px;height:32px;color:var(--text-heading);transition:background var(--transition-fast), color var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.theme-toggle:hover{background:color-mix(in oklch, var(--accent) 15%, var(--surface-2))}.hamburger{width:40px;height:40px;color:var(--text-heading);flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:none}.mobile-menu{background:var(--glass-bg);background-image:var(--nav-gradient);-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border)}.mobile-menu ul{max-width:var(--container-max);padding:var(--sp-md) var(--sp-lg);gap:var(--sp-sm);flex-direction:column;margin:0 auto;display:flex}.mobile-menu .nav-link{padding:var(--sp-sm) 0;font-size:var(--fz-body);display:block}@media (max-width:767px){.nav-links,.nav-actions{display:none}.hamburger{display:flex}.nav-inner{gap:var(--sp-sm)}}.page-container{max-width:var(--container-max);padding:0 var(--sp-lg);margin:0 auto}.page-section{padding:var(--sp-xl) 0}.page-section:first-child{padding-top:calc(var(--nav-height) + var(--sp-xl))}.section-title{font-family:var(--font-heading);font-weight:800;font-size:var(--fz-2xl);color:var(--text-heading);margin-bottom:var(--sp-xl);letter-spacing:-.02em}.section-title-accent{color:var(--accent)}}@layer pages{.hero-section{min-height:calc(100svh - var(--nav-height));padding-top:calc(var(--nav-height) + var(--sp-xl));padding-bottom:var(--sp-xl);align-items:center;display:flex;position:relative;overflow:hidden}.hero-particles{z-index:0;pointer-events:none;position:absolute;inset:0}.hero-container{z-index:1;width:100%;max-width:var(--container-max);padding:0 var(--sp-lg);margin:0 auto;position:relative}.hero-grid{align-items:center;gap:var(--sp-xl);grid-template-columns:1fr 350px;display:grid}.hero-text{gap:var(--sp-md);flex-direction:column;display:flex}.available-badge{background:var(--accent-dim);border-radius:var(--radius-pill);font-size:var(--fz-sm);color:var(--accent);border:1px solid #00e5a040;align-items:center;gap:8px;width:fit-content;padding:6px 14px;font-weight:500;display:inline-flex}.available-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{box-shadow:0 0 #00e5a080}50%{box-shadow:0 0 0 5px #00e5a000}}.hero-name{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--text-heading);margin:0;font-size:clamp(42px,5vw,64px);font-weight:800;line-height:1.05}.hero-name-accent{color:var(--accent)}.hero-bio{font-size:var(--fz-body);color:var(--text-body);opacity:.85;max-width:54ch;line-height:1.75}.hero-ctas{gap:var(--sp-sm);flex-wrap:wrap;align-items:center;display:flex}.btn-primary{background:var(--accent);color:var(--bg);font-family:var(--font-sans);font-weight:600;font-size:var(--fz-sm);border-radius:var(--radius-md);transition:var(--transition-fast);white-space:nowrap;justify-content:center;align-items:center;padding:12px 28px;display:inline-flex}.btn-primary:hover{background:color-mix(in oklch, var(--accent) 85%, white);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-ghost{background:var(--glass-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur));color:var(--text-heading);font-family:var(--font-sans);font-weight:500;font-size:var(--fz-sm);border-radius:var(--radius-md);transition:var(--transition-fast);white-space:nowrap;justify-content:center;align-items:center;padding:12px 28px;display:inline-flex}.btn-ghost:hover{background:color-mix(in oklch, var(--accent) 10%, var(--surface));color:var(--accent);border-color:#00e5a04d;transform:translateY(-1px)}.btn-ghost:active{transform:translateY(0)}.hero-stats{gap:var(--sp-lg);flex-wrap:wrap;display:flex}.hero-stat{flex-direction:column;gap:2px;display:flex}.stat-number{font-family:var(--font-heading);font-weight:800;font-size:var(--fz-2xl);color:var(--accent);line-height:1}.stat-label{font-size:var(--fz-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.social-row{gap:var(--sp-sm);flex-wrap:wrap;align-items:center;display:flex}.social-link{border-radius:var(--radius-sm);background:var(--surface-2);width:38px;height:38px;color:var(--text-muted);transition:var(--transition-fast);justify-content:center;align-items:center;display:flex}.social-link:hover{background:color-mix(in oklch, var(--accent) 15%, var(--surface-2));color:var(--accent);transform:translateY(-2px)}.hero-photo-frame{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;width:350px;height:350px;display:flex;position:relative;overflow:hidden;box-shadow:0 0 40px #00e5a014,0 20px 60px #0006}.hero-photo-frame:before{content:"";border-radius:inherit;z-index:1;pointer-events:none;background:linear-gradient(135deg,#00e5a040 0%,#0000 50%,#7c73e626 100%);position:absolute;inset:-1px}.hero-photo{object-fit:cover;z-index:0;width:100%;height:100%;position:relative}@media (max-width:900px){.hero-grid{text-align:center;grid-template-columns:1fr}.hero-photo-frame{order:-1;width:200px;height:200px;margin:0 auto}.available-badge{margin:0 auto}.hero-bio{max-width:100%}.hero-ctas,.hero-stats,.social-row{justify-content:center}}@media (max-width:767px){.hero-section{padding-top:calc(var(--nav-height) + var(--sp-lg));align-items:flex-start}}.about-grid{gap:var(--sp-xl);grid-template-columns:1fr 1fr;align-items:start;display:grid}.about-image-wrap{border-radius:var(--radius-lg);border:1px solid var(--border);overflow:hidden;box-shadow:0 20px 60px #0000004d}.about-image{width:100%;height:auto;display:block}.about-content{gap:var(--sp-md);flex-direction:column;display:flex}.about-name{font-family:var(--font-heading);font-weight:700;font-size:var(--fz-xl);color:var(--text-heading)}.about-name-accent{color:var(--accent)}.about-bio{font-size:var(--fz-body);color:var(--text-body);opacity:.85;line-height:1.75}.info-grid{gap:var(--sp-sm);grid-template-columns:1fr 1fr;display:grid}.info-chip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:3px;padding:10px 14px;display:flex}.info-label{font-size:var(--fz-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.info-value{font-size:var(--fz-sm);color:var(--text-heading);margin:0;font-weight:500}.info-link{color:var(--accent);transition:opacity var(--transition-fast)}.info-link:hover{opacity:.8}.services-section{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.services-grid{gap:var(--sp-md);grid-template-columns:repeat(3,1fr);display:grid}.service-card{gap:var(--sp-sm);padding:var(--sp-lg);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--transition-fast), transform var(--transition-fast);flex-direction:column;display:flex}.service-card:hover{border-color:#00e5a04d;transform:translateY(-2px)}.service-icon{border-radius:var(--radius-sm);background:var(--accent-dim);width:44px;height:44px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.service-title{font-family:var(--font-heading);font-weight:700;font-size:var(--fz-body);color:var(--text-heading)}.service-body{font-size:var(--fz-sm);color:var(--text-muted);line-height:1.7}@media (max-width:900px){.about-grid{grid-template-columns:1fr}.services-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.info-grid,.services-grid{grid-template-columns:1fr}}.work-grid{gap:var(--sp-lg);grid-template-columns:repeat(2,1fr);display:grid}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex;overflow:hidden}.project-card:hover{border-color:#00e5a04d;transform:translateY(-4px);box-shadow:0 16px 48px #00000059}.project-image-wrap{aspect-ratio:16/9;background:var(--surface-2);width:100%;overflow:hidden}.project-image{object-fit:cover;width:100%;height:100%;transition:transform .5s ease-out}.project-card:hover .project-image{transform:scale(1.04)}.project-body{gap:var(--sp-sm);padding:var(--sp-md);flex-direction:column;flex:1;display:flex}.project-title{font-family:var(--font-heading);font-weight:700;font-size:var(--fz-body);color:var(--text-heading)}.project-subtitle{font-size:var(--fz-sm);color:var(--text-muted);flex:1;line-height:1.6}.project-link{margin-top:var(--sp-xs);font-size:var(--fz-sm);color:var(--accent);width:fit-content;transition:opacity var(--transition-fast);align-items:center;gap:6px;font-weight:600;display:inline-flex}.project-link:hover{opacity:.75}@media (max-width:640px){.work-grid{grid-template-columns:1fr}}.skill-block{padding:var(--sp-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:var(--sp-md)}.skill-block--active{background:var(--accent-dim);border-color:#00e5a033}.skill-block--ai{background:var(--accent-ai-dim);border-color:#7c73e633;margin-bottom:0}.skill-block-label{font-size:var(--fz-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:var(--sp-sm);font-weight:600}.skill-block--active .skill-block-label{color:var(--accent)}.skill-block--ai .skill-block-label{color:var(--accent-ai)}.skill-chips{gap:var(--sp-xs);flex-wrap:wrap;display:flex}.skill-chip{font-family:var(--font-mono);font-size:var(--fz-xs);border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border);color:var(--text-body);white-space:nowrap;padding:5px 12px;font-weight:500;display:inline-block}.skill-chip--active{color:var(--accent);background:#00e5a01f;border-color:#00e5a04d}.skill-chip--ai{color:var(--skill-chip-ai-text);background:#7c73e61f;border-color:#7c73e64d}.skill-categories-grid{gap:var(--sp-md);margin-top:var(--sp-md);grid-template-columns:repeat(3,1fr);display:grid}.skill-categories-grid .skill-block{margin-bottom:0}.experience-section{background:var(--surface);border-top:1px solid var(--border)}.experience-grid{gap:var(--sp-xl);grid-template-columns:1fr 1fr;align-items:start;display:grid}.timeline-heading{align-items:center;gap:var(--sp-sm);font-family:var(--font-heading);font-weight:700;font-size:var(--fz-lg);color:var(--text-heading);margin-bottom:var(--sp-lg);display:flex}.timeline{flex-direction:column;padding-left:20px;display:flex;position:relative}.timeline:before{content:"";background:var(--border);width:1.5px;position:absolute;top:8px;bottom:8px;left:5px}.timeline-item{padding:0 0 var(--sp-lg) var(--sp-md);position:relative}.timeline-item:before{content:"";background:var(--accent);border:2px solid var(--bg);width:9px;height:9px;box-shadow:0 0 0 1.5px var(--accent);border-radius:50%;position:absolute;top:5px;left:-15px}.timeline-item:last-child{padding-bottom:0}.timeline-year{font-family:var(--font-mono);font-size:var(--fz-xs);color:var(--accent);letter-spacing:.04em;margin-bottom:4px;font-weight:600;display:inline-block}.timeline-title{font-family:var(--font-heading);font-weight:700;font-size:var(--fz-body);color:var(--text-heading);margin-bottom:2px}.timeline-company{font-size:var(--fz-sm);color:var(--text-muted);margin-bottom:4px;font-weight:500}.timeline-details{font-size:var(--fz-sm);color:var(--text-body);opacity:.8;line-height:1.65}@media (max-width:900px){.skill-categories-grid{grid-template-columns:repeat(2,1fr)}.experience-grid{grid-template-columns:1fr}}@media (max-width:600px){.skill-categories-grid{grid-template-columns:1fr}}.contact-grid{gap:var(--sp-xl);grid-template-columns:1fr 360px;align-items:start;display:grid}.contact-sub-heading{font-family:var(--font-heading);font-weight:700;font-size:var(--fz-lg);color:var(--text-heading);margin-bottom:var(--sp-md)}.contact-form{gap:var(--sp-md);flex-direction:column;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{font-size:var(--fz-sm);color:var(--text-heading);font-weight:600}.form-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text-body);font-family:var(--font-sans);font-size:var(--fz-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:11px 14px}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);outline:none}.form-textarea{resize:vertical;min-height:140px}.form-honeypot{visibility:hidden;position:absolute;left:-9999px}.form-error{font-size:var(--fz-sm);color:#f87171;border-radius:var(--radius-md);background:#f8717114;border:1px solid #f8717133;padding:10px 14px}.contact-submit{align-self:flex-start;gap:8px}.contact-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}.contact-success{align-items:flex-start;gap:var(--sp-md);padding:var(--sp-lg);background:var(--accent-dim);border-radius:var(--radius-lg);border:1px solid #00e5a040;flex-direction:column;display:flex}.contact-success-icon{background:var(--accent);width:44px;height:44px;color:var(--bg);border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;font-weight:700;display:flex}.contact-sidebar{gap:var(--sp-md);padding:var(--sp-lg);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex}.contact-info-block{gap:var(--sp-md);align-items:flex-start;display:flex}.contact-info-icon{background:var(--accent-dim);width:40px;height:40px;color:var(--accent);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.contact-info-content{flex-direction:column;gap:4px;display:flex}.contact-info-title{font-family:var(--font-heading);font-weight:700;font-size:var(--fz-sm);color:var(--text-heading)}.contact-info-value{font-size:var(--fz-sm);color:var(--text-muted);line-height:1.5}.contact-info-value[href]{color:var(--accent);transition:opacity var(--transition-fast)}.contact-info-value[href]:hover{opacity:.75}@media (max-width:900px){.contact-grid{grid-template-columns:1fr}.contact-sidebar{order:-1}}}
