@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/32687112bd2dd8db-s.0gspg~~t9nou8.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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/28868e710e86be81-s.0rx81dn62y51_.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:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(../media/0c89a48fa5027cee-s.p.0rd3rjvnnhw7n.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:Space Grotesk Fallback;src:local(Arial);ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.0%;size-adjust:109.69%}.space_grotesk_d7b50fc5-module__qeW00a__className{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.space_grotesk_d7b50fc5-module__qeW00a__variable{--font-space-grotesk:"Space Grotesk", "Space Grotesk Fallback"}
@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/4ba802ed8e67eac5-s.04ygcc0k6zvvf.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:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d7a0600e467cf0bd-s.18awt9904y5ei.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:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/dc0d9adbac686440-s.p.0~z396rbj0t4w.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:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b8f2b92a9960dd69-s.09-.4z_6a6fti.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:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/28e60ca39c9ae554-s.1841exvy3.1-g.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:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8d05cfa5faa8406c-s.p.0kbulo~7o8gic.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:Space Mono Fallback;src:local(Arial);ascent-override:81.58%;descent-override:26.3%;line-gap-override:0.0%;size-adjust:137.28%}.space_mono_fdf5de47-module__aex0MW__className{font-family:Space Mono,Space Mono Fallback;font-style:normal}.space_mono_fdf5de47-module__aex0MW__variable{--font-space-mono:"Space Mono", "Space Mono Fallback"}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--accent:#cdfe01;--bg:#0a0a0a;--bg2:#0e0e0e;--card:#141414;--white:#fff;--white60:#fff9;--white50:#ffffff80;--white40:#fff6;--white30:#ffffff4d;--white20:#fff3;--white10:#ffffff1a;--white08:#ffffff14;--white05:#ffffff0d;--border:#ffffff1a;--font-sans:var(--font-space-grotesk);--font-mono:var(--font-space-mono);--max:1152px;--px:76.5px}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--white);font-family:var(--font-sans);overflow-x:hidden}nav{z-index:100;padding:0 calc(var(--px) + 24px);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--white08);background:#0a0a0ad9;justify-content:space-between;align-items:center;height:82px;animation:.6s ease-out slideDownFadeIn;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{color:var(--white);letter-spacing:-.46px;font-size:18.4px;font-weight:700;text-decoration:none}.nav-list{gap:32px;list-style:none;display:flex}.nav-list a{color:var(--white60);padding-bottom:4px;font-size:14.4px;font-weight:500;text-decoration:none;transition:color .2s;position:relative}.nav-list a:after{content:"";background:var(--accent);width:0;height:2px;transition:width .3s ease-out;position:absolute;bottom:0;left:0}.nav-list a:hover{color:var(--white)}.nav-list a:hover:after{width:100%}@media (max-width:768px){.nav-list a{padding-bottom:3px;font-size:13px}}.nav-hire{border:1px solid var(--white20);color:var(--white);border-radius:9999px;padding:11px 21px;font-size:13.6px;font-weight:500;text-decoration:none;transition:background .3s ease-out,color .3s ease-out,border-color .3s ease-out}.nav-hire:hover{background:var(--accent);color:#000;border-color:var(--accent)}.section-inner{max-width:var(--max);margin:0 auto}#hero{background:var(--bg);min-height:877px;padding-top:82px;position:relative;overflow:hidden}.hero-bg-img{opacity:.2;background:url(https://www.figma.com/api/mcp/asset/dadd9440-6fb9-445b-9200-fa274fd4e1a3) 50%/cover no-repeat;position:absolute;inset:0}.hero-bg-grad{background:linear-gradient(#0a0a0a99 0%,#0a0a0a66 50%,#0a0a0a 100%);position:absolute;inset:0}.hero-content{z-index:2;max-width:var(--max);margin:0 auto;padding:78px 24px 60px;position:relative}.hero-badge{font-family:var(--font-mono);color:var(--accent);opacity:0;background:#cdfe011a;border:1px solid #cdfe014d;border-radius:9999px;align-items:center;gap:8px;margin-bottom:68px;padding:8px 16px;font-size:12px;animation:.8s ease-out .1s forwards bounceIn,3s ease-in-out 1s infinite pulseGlow;display:inline-flex}.hero-badge-dot{background:var(--accent);opacity:.85;border-radius:50%;width:8px;height:8px}.hero-h1{letter-spacing:-2.74px;color:var(--white);opacity:0;margin-bottom:28px;font-size:91.35px;font-weight:700;line-height:1.05;animation:1.2s ease-out .3s forwards textReveal;overflow:hidden}.hero-h1 span{color:var(--accent)}.hero-bottom{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px;margin-top:40px;display:flex}.hero-desc{color:var(--white50);opacity:0;max-width:382px;font-size:16.8px;line-height:1.7;animation:.8s ease-out .6s forwards fadeInUp}.hero-cta{align-items:center;gap:16px;display:flex}.btn-primary{background:var(--accent);color:#000;white-space:nowrap;border-radius:9999px;align-items:center;gap:8px;height:54.8px;padding:0 28px;font-size:15.2px;font-weight:700;text-decoration:none;transition:all .3s ease-out;display:inline-flex;position:relative;overflow:hidden}.btn-primary:before{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.btn-primary:hover:before{left:100%}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 25px #cdfe014d}@media (max-width:768px){.btn-primary{height:48px;padding:0 24px;font-size:14px}}.btn-icon{border:1px solid var(--white20);width:48px;height:48px;color:var(--white);border-radius:50%;justify-content:center;align-items:center;text-decoration:none;transition:border-color .2s;display:flex}.btn-icon:hover{border-color:var(--white)}.btn-icon svg{width:18px;height:18px;fill:var(--white)}.hero-stats{border-top:1px solid var(--white10);opacity:0;flex-wrap:wrap;gap:0;margin-top:48px;padding-top:32px;animation:.8s ease-out .6s forwards fadeInUp;display:flex}.stat{flex-direction:column;gap:4px;width:155px;display:flex}.stat-num{color:var(--white);font-size:28.8px;font-weight:700}.stat-label{color:var(--white40);font-size:12px;font-family:var(--font-mono)}#projects{background:var(--bg);padding:112px var(--px) 80px}.section-tag{font-family:var(--font-mono);color:var(--accent);margin-bottom:12px;font-size:12px}.section-h2{color:var(--white);font-size:48px;font-weight:700;line-height:1.1}.projects-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:48px;display:flex}.projects-desc{color:var(--white40);opacity:0;max-width:320px;font-size:14.4px;line-height:1.7;animation:.6s ease-out .3s forwards fadeInUp}.project-card{background:var(--card);border:1px solid var(--white05);cursor:pointer;border-radius:16px;transition:all .4s ease-out;position:relative;overflow:hidden}.project-card:hover{border-color:var(--white10);transform:translateY(-8px);box-shadow:0 25px 50px #0000004d}.project-card-lg{height:422px}.project-card-sm{height:342px}.project-grid{flex-direction:column;gap:20px;display:flex}.project-row2{grid-template-columns:1fr 1fr;gap:20px;display:grid}.card-img{opacity:.4;background-position:50%;background-size:cover;transition:all .4s ease-out;position:absolute;inset:0}.project-card:hover .card-img{opacity:.6;transform:scale(1.05)}.card-grad{background:linear-gradient(to top, var(--card) 0%, #14141480 50%, transparent 100%);position:absolute;inset:0}.card-body{flex-direction:column;justify-content:space-between;padding:32px;transition:transform .4s ease-out;display:flex;position:absolute;inset:0}.project-card:hover .card-body{transform:translateY(-4px)}.card-top{justify-content:space-between;align-items:center;display:flex}.card-tag{font-family:var(--font-mono);color:#000;opacity:0;border-radius:9999px;padding:5px 12px;font-size:11.2px;font-weight:400;animation:.5s ease-out forwards fadeInScale}.card-year{font-family:var(--font-mono);color:var(--white30);font-size:12px}.card-title{color:var(--white);margin-bottom:8px;font-size:22.4px;font-weight:700;transition:color .3s ease-out}.project-card:hover .card-title{color:var(--accent)}.card-desc{color:var(--white50);max-width:416px;margin-bottom:20px;font-size:14.08px;line-height:1.65;transition:color .3s ease-out}.project-card:hover .card-desc{color:var(--white70)}.card-bottom{justify-content:space-between;align-items:center;gap:16px;display:flex}.card-tags{flex-wrap:wrap;gap:8px;display:flex}.tag-pill{border:1px solid var(--white10);color:var(--white50);border-radius:9999px;padding:4px 12px;font-size:12px;transition:all .3s ease-out}.project-card:hover .tag-pill{border-color:var(--accent);color:var(--accent);background:#cdfe011a}.card-btn{border:1px solid var(--white20);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:all .3s ease-out;display:flex}.card-btn:hover{border-color:var(--accent);background:var(--accent);transform:rotate(45deg)}.card-btn:hover svg{stroke:#000;transform:rotate(-45deg)}.card-btn svg{width:16px;height:16px;transition:all .3s ease-out}.projects-more{justify-content:center;align-items:center;margin-top:48px;display:flex}.btn-outline{border:1px solid var(--white20);height:58px;color:var(--white);background:0 0;border-radius:9999px;align-items:center;gap:8px;padding:0 32px;font-size:16px;font-weight:500;text-decoration:none;transition:border-color .2s,color .2s;display:inline-flex}.btn-outline:hover{border-color:var(--white)}.btn-outline svg{width:16px;height:16px;fill:var(--white)}@media (max-width:768px){.btn-outline{height:48px;padding:0 28px;font-size:14px}}#about{background:var(--bg2);padding:112px var(--px)}.about-grid{grid-template-columns:535px 1fr;align-items:start;gap:80px;display:grid}.about-photo{border-radius:16px;width:535px;height:662px;transition:transform .5s ease-out;position:relative;overflow:hidden}.about-photo:hover{transform:scale(1.02)}.about-photo img{object-fit:cover;object-position:top;width:100%;height:121%;transition:transform .5s ease-out}.about-photo:hover img{transform:scale(1.05)}.about-badge{border:1px solid var(--white10);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a0a0ae6;border-radius:14px;width:min(480px,100% - 64px);padding:21px;position:absolute;bottom:32px;left:32px}.about-badge-dot-row{align-items:center;gap:12px;margin-bottom:8px;display:flex}.ab-dot{background:var(--accent);opacity:.85;border-radius:50%;width:10px;height:10px}.ab-status{font-family:var(--font-mono);color:var(--accent);font-size:11.52px}.ab-desc{color:#ffffffb3;max-width:415px;font-size:13.6px;line-height:1.5}.about-right{flex-direction:column;gap:24px;display:flex}.section-tag{font-family:var(--font-mono);color:var(--accent);letter-spacing:2px;text-transform:uppercase;font-size:14px}.about-h2{color:var(--white);margin:34px 0 0;font-size:41.6px;font-weight:700;line-height:1.15}.about-p{color:var(--white50);margin-top:24px;font-size:16px;line-height:1.8}.exp-label{font-family:var(--font-mono);color:var(--white30);letter-spacing:1.088px;text-transform:uppercase;margin-top:40px;margin-bottom:20px;font-size:10.88px}.exp-list{flex-direction:column;gap:16px;display:flex}.exp-item{border-top:1px solid var(--white08);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding-top:16px;transition:all .4s ease-out;display:flex}.exp-item:hover{border-color:var(--accent);background:#cdfe010d;transform:translate(12px)}.exp-company{color:var(--white);font-size:15.2px;font-weight:700;transition:color .3s ease-out}.exp-item:hover .exp-company{color:var(--accent)}.exp-role{color:var(--white40);margin-top:2px;font-size:13.12px;transition:color .3s ease-out}.exp-item:hover .exp-role{color:var(--white60)}.exp-date{font-family:var(--font-mono);color:var(--white30);white-space:nowrap;font-size:12px;transition:color .3s ease-out}.exp-item:hover .exp-date{color:var(--accent)}#skills{background:var(--bg);padding:112px var(--px) 60px}.skills-grid{grid-template-columns:1fr 1fr;gap:64px;margin-top:48px;display:grid}.skill-item{border-top:1px solid var(--white08);margin-bottom:16px;padding-top:29px}.skill-num{font-family:var(--font-mono);color:var(--accent);font-size:12px}.skill-name{color:var(--white);margin:8px 0 4px;font-size:18.4px;font-weight:700}.skill-desc{color:var(--white40);font-size:14.08px;line-height:1.7}.skills-right{flex-direction:column;gap:40px;display:flex}.skill-group-label{font-family:var(--font-mono);color:var(--white30);letter-spacing:1.088px;text-transform:uppercase;margin-bottom:20px;font-size:10.88px}.skill-bars{flex-direction:column;gap:16px;display:flex}.skill-bar-row{flex-direction:column;gap:6px;display:flex}.skill-bar-top{justify-content:space-between;align-items:center;gap:16px;display:flex}.skill-bar-name{color:#ffffffb3;font-size:13.6px;transition:color .3s ease-out}.skill-bar-row:hover .skill-bar-name{color:var(--accent)}.skill-bar-pct{font-family:var(--font-mono);color:var(--white30);font-size:12px}.skill-bar-track{background:var(--white08);border-radius:9999px;height:4px;transition:box-shadow .3s ease-out;overflow:hidden;box-shadow:0 0 12px #cdfe011a}.skill-bar-row:hover .skill-bar-track{box-shadow:0 0 16px #cdfe014d}.skill-bar-fill{background:var(--accent);border-radius:9999px;width:0;height:100%;animation:2s ease-out .5s both progressFill;box-shadow:0 0 10px #cdfe0180}.tools-ticker-wrap{border-top:1px solid var(--white08);border-bottom:1px solid var(--white08);margin-top:48px;padding:21px 0;position:relative;overflow:hidden}.tools-ticker-wrap:before,.tools-ticker-wrap:after{content:"";z-index:1;pointer-events:none;width:100px;height:100%;position:absolute;top:0}.tools-ticker-wrap:before{background:linear-gradient(to right, var(--bg), transparent);left:0}.tools-ticker-wrap:after{background:linear-gradient(to left, var(--bg), transparent);right:0}.tools-ticker{white-space:nowrap;will-change:transform;gap:48px;animation:40s linear infinite tickerSmooth;display:flex}.tool-item{align-items:center;gap:12px;transition:transform .3s ease-out;display:flex}.tool-item:hover{transform:scale(1.1)}.tool-name{color:var(--white20);font-size:13.6px;font-weight:500;transition:color .3s ease-out}.tool-item:hover .tool-name{color:var(--accent)}.tool-sep{color:var(--accent);opacity:.5;font-size:13.6px;transition:opacity .3s ease-out}.tool-item:hover .tool-sep{opacity:1}@keyframes ticker{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDownFadeIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes underlineSlide{0%{width:0;left:0}to{width:100%;left:0}}@keyframes textReveal{0%{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}@keyframes floatingText{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes parallaxFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes charReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes rotateIn{0%{opacity:0;transform:rotate(-180deg)scale(.5)}to{opacity:1;transform:rotate(0)scale(1)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 5px #cdfe0180}50%{box-shadow:0 0 20px #cdfe01cc,0 0 30px #cdfe0166}}@keyframes typewriter{0%{width:0}to{width:100%}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes slideUpStagger{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes cardHoverLift{0%{transform:translateY(0);box-shadow:0 4px 15px #0000001a}to{transform:translateY(-8px);box-shadow:0 20px 40px #0003}}@keyframes progressFill{0%{width:0}to{width:var(--progress-width,0%)}}@keyframes backgroundFloat{0%,to{opacity:.5;transform:translateY(0)rotate(0)}25%{opacity:.7;transform:translateY(-20px)rotate(1deg)}50%{opacity:.6;transform:translateY(-10px)rotate(-.5deg)}75%{opacity:.8;transform:translateY(-30px)rotate(.5deg)}}@keyframes tickerSmooth{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes imageParallax{0%{transform:translateY(0)scale(1.1)}50%{transform:translateY(-20px)scale(1.1)}to{transform:translateY(0)scale(1.1)}}@keyframes pageFlipIn{0%{opacity:0;filter:blur(10px);transform:rotateY(90deg)}50%{filter:blur(5px)}to{opacity:1;filter:blur();transform:rotateY(0)}}@keyframes pageFlipOut{0%{opacity:1;transform:rotateY(0)}to{opacity:0;transform:rotateY(-90deg)}}@keyframes pageSlideIn{0%{opacity:0;transform:translateY(100%)rotateX(15deg)}to{opacity:1;transform:translateY(0)rotateX(0)}}@keyframes pageSlideOut{0%{opacity:1;transform:translateY(0)rotateX(0)}to{opacity:0;transform:translateY(-100%)rotateX(-15deg)}}@keyframes fillAnimation{0%{width:0}to{width:var(--fill-width,100%)}}.animate-fade-in-up{animation:.6s ease-out forwards fadeInUp}.animate-fade-in-left{animation:.6s ease-out forwards fadeInLeft}.animate-fade-in-right{animation:.6s ease-out forwards fadeInRight}.animate-scale-in{animation:.6s ease-out forwards scaleIn}.animate-slide-in-up{animation:.8s ease-out forwards slideInUp}.animate-text-reveal{animation:.8s ease-out forwards textReveal}.animate-floating{animation:3s ease-in-out infinite floatingText}.animate-parallax-float{animation:2.5s ease-in-out infinite parallaxFloat}.animate-shimmer{background:linear-gradient(90deg,#0000,#cdfe0133,#0000) 0 0/1000px 100%;animation:2s infinite shimmer}.animate-bounce-in{animation:.8s ease-out forwards bounceIn}.animate-slide-in-bottom{animation:.6s ease-out forwards slideInFromBottom}.animate-rotate-in{animation:.8s ease-out forwards rotateIn}.animate-pulse-glow{animation:2s ease-in-out infinite pulseGlow}.animate-typewriter{white-space:nowrap;border-right:2px solid var(--accent);animation:2s steps(40,end) forwards typewriter;overflow:hidden}.animate-fade-in-scale{animation:.6s ease-out forwards fadeInScale}.animate-slide-up-stagger{animation:.6s ease-out forwards slideUpStagger}.animate-card-hover-lift{transition:transform .3s ease-out,box-shadow .3s ease-out}.animate-card-hover-lift:hover{animation:.3s ease-out forwards cardHoverLift}.animate-progress-fill{animation:1.5s ease-out forwards progressFill}.animate-ticker-smooth{animation:30s linear infinite tickerSmooth}.animate-image-parallax{animation:6s ease-in-out infinite imageParallax}.gallery-item{opacity:0}.gallery-item.in-view{animation:.6s ease-out forwards fadeInUp}.gallery-item:first-child{animation-delay:0s}.gallery-item:nth-child(2){animation-delay:.1s}.gallery-item:nth-child(3){animation-delay:.2s}.gallery-item:nth-child(4){animation-delay:.1s}.gallery-item:nth-child(5){animation-delay:.2s}.gallery-item:nth-child(6){animation-delay:.3s}.gallery-item:nth-child(7){animation-delay:.2s}.gallery-item:nth-child(8){animation-delay:.3s}.gallery-item.in-view,.gallery-item:first-child.in-view{animation-delay:0s!important}.gallery-item:nth-child(2).in-view{animation-delay:.1s!important}.gallery-item:nth-child(3).in-view{animation-delay:.2s!important}.gallery-item:nth-child(4).in-view{animation-delay:.1s!important}.gallery-item:nth-child(5).in-view{animation-delay:.2s!important}.gallery-item:nth-child(6).in-view{animation-delay:.3s!important}.gallery-item:nth-child(7).in-view{animation-delay:.2s!important}.gallery-item:nth-child(8).in-view{animation-delay:.3s!important}.project-card{opacity:0}.project-card.in-view{animation:.6s ease-out forwards fadeInUp}.parallax-image{transition:transform .1s ease-out;transform:translateZ(0)}.about-photo.parallax-effect{position:relative}.about-photo.parallax-effect img{transition:transform .1s ease-out;transform:translateZ(0)}@media (max-width:768px){.hero-bg-img{animation:none!important;transform:none!important}.parallax-image,.about-photo.parallax-effect img{transition:none!important;transform:none!important}}#gallery{background:var(--bg2);padding:112px var(--px) 80px}.gallery-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:48px;display:flex}.gallery-filter{flex-wrap:wrap;gap:8px;margin-bottom:36px;display:flex}.filter-btn{border:1px solid var(--white10);color:var(--white50);cursor:pointer;font-size:13px;font-family:var(--font-sans);background:0 0;border-radius:9999px;padding:7px 18px;transition:all .2s}.filter-btn.active,.filter-btn:hover{background:var(--accent);color:#000;border-color:var(--accent);font-weight:600}.gallery-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.gallery-item{background:var(--card);border:1px solid var(--white05);cursor:pointer;border-radius:16px;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden}.gallery-item:first-child{grid-row:span 2}.gallery-item:nth-child(4){grid-column:span 2}.gallery-img-wrap{width:100%;padding-bottom:75%;position:relative;overflow:hidden}.gallery-item:first-child .gallery-img-wrap{height:100%;min-height:520px;padding-bottom:0}.gallery-item:nth-child(4) .gallery-img-wrap{padding-bottom:45%}.gallery-img{object-fit:cover;width:100%;height:100%;transition:transform .4s;position:absolute;inset:0}.gallery-item:hover .gallery-img{transform:scale(1.05)}@media (max-width:768px){.gallery-item:hover .gallery-img{transform:scale(1.02)}.gallery-item:first-child .gallery-img-wrap{min-height:350px}}.gallery-overlay{opacity:0;background:linear-gradient(#0000 0%,#0a0a0a33 50%,#0a0a0ae6 100%);flex-direction:column;justify-content:flex-end;padding:24px;transition:opacity .3s;display:flex;position:absolute;inset:0}.gallery-item-title{color:var(--white);margin-bottom:6px;font-size:16px;font-weight:700}.gallery-item-cat{font-family:var(--font-mono);color:var(--accent);font-size:11px}.gallery-placeholder{flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.upload-icon{opacity:.25}.upload-text{color:var(--white30);font-size:13px;font-family:var(--font-mono)}.lightbox{z-index:200;background:#000000eb;justify-content:center;align-items:center;padding:40px;display:none;position:fixed;inset:0}.lightbox.open{display:flex}.lightbox-img{object-fit:contain;border-radius:8px;max-width:90vw;max-height:85vh}.lightbox-close{border:1px solid var(--white20);width:40px;height:40px;color:var(--white);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:20px;transition:border-color .2s;display:flex;position:absolute;top:24px;right:32px}.lightbox-close:hover{border-color:var(--accent);color:var(--accent)}#contact{background:var(--bg2);padding:112px var(--px) 80px}.contact-header{margin-bottom:64px}.contact-h2{opacity:0;margin-top:16px;font-size:64px;font-weight:700;line-height:1.05;animation:1.2s ease-out .2s forwards textReveal;overflow:hidden}.contact-h2 span{color:var(--accent)}.contact-grid{grid-template-columns:422px 1fr;gap:64px;display:grid}.contact-info{flex-direction:column;gap:40px;display:flex}.contact-desc{color:var(--white50);opacity:0;max-width:402px;font-size:16px;line-height:1.8;animation:.8s ease-out .4s forwards fadeInUp}.contact-detail{cursor:pointer;align-items:center;gap:16px;transition:transform .3s ease-out;display:flex}.contact-detail:hover{transform:translate(8px)}.contact-detail-icon{border:1px solid var(--white10);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:all .3s ease-out;display:flex}.contact-detail:hover .contact-detail-icon{border-color:var(--accent);background:#cdfe011a;transform:scale(1.1)}.contact-detail-icon svg{width:15px;height:15px;fill:var(--white);transition:fill .3s ease-out}.contact-detail:hover .contact-detail-icon svg{fill:var(--accent)}.contact-detail-label{font-family:var(--font-mono);color:var(--white30);letter-spacing:1.088px;text-transform:uppercase;margin-bottom:4px;font-size:10.88px;transition:color .3s ease-out}.contact-detail:hover .contact-detail-label{color:var(--accent)}.contact-detail-val{color:var(--white);font-size:14.72px;transition:color .3s ease-out}.contact-detail:hover .contact-detail-val{color:var(--accent)}.follow-label{font-family:var(--font-mono);color:var(--white30);letter-spacing:1.088px;text-transform:uppercase;opacity:0;margin-bottom:16px;font-size:10.88px;animation:.6s ease-out .6s forwards fadeInLeft}.social-icons{opacity:0;gap:12px;animation:.8s ease-out .8s forwards fadeInUp;display:flex}.social-btn{border:1px solid var(--white10);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;text-decoration:none;transition:all .3s ease-out;display:flex;position:relative;overflow:hidden}.social-btn:before{content:"";background:var(--accent);z-index:-1;width:100%;height:100%;transition:left .3s ease-out;position:absolute;top:0;left:-100%}.social-btn:hover:before{left:0}.social-btn:hover{border-color:var(--accent);transform:translateY(-4px)}.social-btn svg{width:15px;height:15px;fill:var(--white);z-index:1;transition:fill .3s ease-out;position:relative}.social-btn:hover svg{fill:#000}.contact-form{opacity:0;flex-direction:column;gap:20px;animation:.8s ease-out 1s forwards fadeInUp;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:20px;display:grid}.form-group{flex-direction:column;gap:8px;display:flex}.form-label{font-family:var(--font-mono);color:var(--white40);letter-spacing:.52px;text-transform:uppercase;font-size:10.4px;transition:color .3s ease-out}.form-input:focus+.form-label,.form-select:focus+.form-label,.form-textarea:focus+.form-label{color:var(--accent)}.form-input,.form-select,.form-textarea{background:var(--card);border:1px solid var(--border);color:var(--white);font-size:14.4px;font-family:var(--font-sans);border-radius:14px;outline:none;padding:14px 16px;transition:all .3s ease-out}.form-input::placeholder,.form-textarea::placeholder{color:var(--white20);transition:color .3s ease-out}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 0 0 3px #cdfe011a}.form-input:focus::placeholder,.form-textarea:focus::placeholder{color:var(--white40)}.form-select{color:var(--white20);appearance:none;cursor:pointer}.form-textarea{resize:none;height:140px}.btn-submit{background:var(--accent);color:#000;cursor:pointer;height:54.8px;font-size:15.2px;font-weight:700;font-family:var(--font-sans);border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;transition:all .3s ease-out;display:flex;position:relative;overflow:hidden}.btn-submit:before{content:"";background:linear-gradient(90deg,#0000,#fff3,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.btn-submit:hover:before{left:100%}.btn-submit:hover{transform:translateY(-2px);box-shadow:0 10px 25px #cdfe014d}.btn-submit svg{fill:#000;width:16px;height:16px;transition:transform .3s ease-out}.btn-submit:hover svg{transform:translate(4px)}@media (max-width:768px){.btn-submit{height:48px;font-size:14px}}.gallery-section{padding:112px var(--px) 80px;background:var(--bg)}.gallery-header{margin-bottom:64px}.gallery-h2{opacity:0;margin-top:16px;font-size:64px;font-weight:700;line-height:1.05;animation:1.2s ease-out .2s forwards textReveal;overflow:hidden}.gallery-h2 span{color:var(--accent)}.gallery-desc{color:var(--white50);opacity:0;max-width:600px;font-size:16px;line-height:1.8;animation:.8s ease-out .4s forwards fadeInUp}.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:32px;margin-top:64px;display:grid}.gallery-item{aspect-ratio:4/3;cursor:pointer;opacity:0;border-radius:20px;transition:all .4s ease-out;animation:.8s ease-out forwards fadeInScale;position:relative;overflow:hidden;transform:scale(.9)}.gallery-item:hover{transform:scale(1.02);box-shadow:0 20px 40px #0000004d}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform .4s ease-out}.gallery-item:hover img{transform:scale(1.1)}.gallery-overlay{opacity:0;background:linear-gradient(135deg,#000000b3,#0000004d);justify-content:center;align-items:center;transition:opacity .3s ease-out;display:flex;position:absolute;inset:0}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-title{color:var(--white);text-align:center;font-size:24px;font-weight:700;transition:transform .3s ease-out .1s;transform:translateY(20px)}.gallery-item:hover .gallery-title{transform:translateY(0)}.animate-on-scroll{opacity:0;transition:all .6s ease-out;transform:translateY(30px)}.animate-on-scroll.in-view{opacity:1;transform:translateY(0)}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}.stagger-6{animation-delay:.6s}.fade-in-up{opacity:0;animation:.8s ease-out forwards fadeInUp}.fade-in-left{opacity:0;animation:.8s ease-out forwards fadeInLeft}.fade-in-right{opacity:0;animation:.8s ease-out forwards fadeInRight}.fade-in-scale{opacity:0;animation:.8s ease-out forwards fadeInScale;transform:scale(.9)}.bounce-in{opacity:0;animation:.8s ease-out forwards bounceIn}.slide-up{opacity:0;animation:.8s ease-out forwards slideInFromBottom}.rotate-in{opacity:0;animation:.8s ease-out forwards rotateIn}.text-reveal{opacity:0;animation:1.2s ease-out forwards textReveal;overflow:hidden}.card-hover-lift{transition:all .3s ease-out}.card-hover-lift:hover{transform:translateY(-8px);box-shadow:0 15px 35px #0003}.progress-fill{--progress-width:var(--target-width,0%);width:0;animation:2s ease-out forwards progressFill}.ticker-smooth{animation:20s linear infinite tickerSmooth}.image-reveal{opacity:0;animation:1.2s ease-out forwards imageReveal;transform:scale(.8)rotate(-5deg)}.mobile-only{display:none}.whatsapp-icon{color:#fff;background:linear-gradient(135deg,#25d366 0%,#128c7e 100%)}.whatsapp-icon svg{fill:#fff}.whatsapp-link:hover .whatsapp-icon{background:linear-gradient(135deg,#20ba5a 0%,#0d7377 100%);box-shadow:0 8px 20px #25d3664d}footer{background:var(--bg);border-top:1px solid var(--white08);padding:41px var(--px);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex}.footer-brand{align-items:center;gap:12px;display:flex}.footer-logo{color:var(--white);font-size:16.8px;font-weight:700}.footer-logo span{color:var(--accent)}.footer-sep{color:var(--white20);font-size:16px}.footer-tagline{color:var(--white30);font-size:13.12px}.footer-copy{font-family:var(--font-mono);color:#ffffff40;font-size:11.52px}.footer-status{align-items:center;gap:12px;display:flex}.footer-dot{background:var(--accent);opacity:.85;border-radius:50%;width:8px;height:8px}.footer-status-text{color:var(--white30);font-size:12.48px}@media (max-width:1100px){:root{--px:24px}nav{padding:0 calc(var(--px) + 8px)}.about-grid{grid-template-columns:1fr}.about-photo{width:100%;height:520px}.skills-grid,.contact-grid{grid-template-columns:1fr}}@media (max-width:720px){.nav-list{display:none}nav{padding:0 calc(var(--px) + 16px);height:70px}.nav-logo{font-size:16px}#hero{min-height:600px;padding-top:70px}.hero-h1{letter-spacing:-1.5px;margin-bottom:20px;font-size:54px}.hero-badge{margin-bottom:40px}.hero-bottom{flex-direction:column;gap:24px}.hero-desc{max-width:100%;font-size:15px}.hero-stats{flex-direction:column;gap:24px}.stat{width:100%}#projects{padding:60px var(--px) 40px}.section-h2{font-size:36px}.projects-header{flex-direction:column;margin-bottom:32px}.project-row2{grid-template-columns:1fr}.project-card-lg{height:300px}.project-card-sm{height:280px}.card-title{font-size:18px}.card-desc{font-size:13px}#about{padding:60px var(--px)}.about-photo{height:400px}.about-h2{margin-top:24px;font-size:32px}.about-p{margin-top:16px;font-size:15px}#skills{padding:60px var(--px) 40px}.skill-item{margin-bottom:12px;padding-top:20px}.skill-name{font-size:16px}.skill-desc{font-size:13px}.skills-right{gap:32px}#gallery{padding:60px var(--px) 40px}.gallery-grid{grid-template-columns:1fr;gap:16px}.gallery-item:first-child,.gallery-item:nth-child(4){grid-area:auto}.gallery-item:first-child .gallery-img-wrap{min-height:300px}.gallery-item:nth-child(4) .gallery-img-wrap{padding-bottom:60%}#contact{padding:60px var(--px)}.contact-h2{font-size:40px}.contact-desc{max-width:100%;font-size:15px}.contact-detail{gap:12px}.contact-detail:nth-of-type(2){display:none}.mobile-only{display:flex}.form-row{grid-template-columns:1fr;gap:16px}.form-input,.form-select,.form-textarea{padding:12px 14px;font-size:13px}.form-textarea{height:120px}footer{padding:32px var(--px);text-align:center;flex-direction:column}.footer-brand,.footer-status{justify-content:center;width:100%}.hero-h1,.section-h2,.about-h2,.contact-h2,.gallery-h2{animation-duration:.8s;animation-delay:.1s}.hero-desc,.about-p,.contact-desc,.gallery-desc{animation-duration:.6s;animation-delay:.2s}.project-card,.skill-item,.gallery-item{animation-duration:.5s;transform:scale(.95)}.project-card:hover,.gallery-item:hover{transform:scale(1.01);box-shadow:0 8px 20px #00000026}.contact-detail:hover{transform:translate(4px)}.social-btn:hover{transform:translateY(-2px)}.btn-submit:hover{transform:translateY(-1px)}.stagger-1{animation-delay:50ms}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}@media (hover:none){.project-card:hover,.gallery-item:hover,.contact-detail:hover,.social-btn:hover,.btn-submit:hover{transform:none}.project-card:active,.gallery-item:active{transition:transform .1s ease-out;transform:scale(.98)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}}@media (max-width:480px){:root{--px:16px}nav{padding:0 var(--px);height:60px}.nav-logo{font-size:14px}.nav-hire{padding:8px 16px;font-size:12px}#hero{min-height:500px;padding-top:60px}.hero-h1{font-size:42px;line-height:1.1}.hero-desc{font-size:14px;line-height:1.6}.hero-h1,.section-h2,.about-h2,.contact-h2,.gallery-h2{animation-duration:.6s;animation-delay:50ms}.project-card,.skill-item,.gallery-item{animation-duration:.4s;transform:scale(.98)}.project-card:hover,.gallery-item:hover{transform:scale(1.005)}.stagger-1{animation-delay:20ms}.stagger-2{animation-delay:40ms}.stagger-3{animation-delay:60ms}.stagger-4{animation-delay:80ms}.stagger-5{animation-delay:.1s}.stagger-6{animation-delay:.12s}.project-card:active,.gallery-item:active,.contact-detail:active{transition:transform 80ms ease-out;transform:scale(.96)}.social-btn:active,.btn-submit:active{transform:translateY(-1px)}.hero-h1{letter-spacing:-1px;font-size:40px}.hero-badge{padding:6px 12px;font-size:11px}.hero-bottom{gap:16px}.hero-cta{flex-direction:column;width:100%}.btn-primary{justify-content:center;width:100%}.btn-icon{width:44px;height:44px}.section-tag{font-size:11px}.section-h2{font-size:28px}#projects{padding:40px var(--px)}.project-card-lg,.project-card-sm{height:220px}.card-body{padding:20px}.card-title{margin-bottom:6px;font-size:16px}.card-desc{display:none}#about{padding:40px var(--px)}.about-photo{height:300px;margin-bottom:24px}.about-h2{font-size:28px}#skills{padding:40px var(--px)}.skills-grid{gap:32px}#gallery{padding:40px var(--px)}.gallery-filter{gap:6px;margin-bottom:20px}.filter-btn{padding:6px 14px;font-size:12px}#contact{padding:40px var(--px)}.contact-h2{font-size:32px}.contact-form{gap:16px}.btn-outline,.btn-submit{height:48px;font-size:14px}.animate-fade-in-up,.animate-fade-in-left,.animate-fade-in-right,.animate-scale-in{animation-duration:.4s!important}}
