@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Outfit:wght@300;400;500;600;700;800;900&display=swap";
:root{--bg-primary:#050a18;--bg-secondary:#0a1128;--bg-card:#0d1530;--bg-card-hover:#111d42;--accent-blue:#3b82f6;--accent-cyan:#06b6d4;--accent-light:#60a5fa;--accent-glow:#3b82f626;--text-primary:#e8edf5;--text-secondary:#94a3c0;--text-muted:#5a6a8a;--border-color:#3b82f61f;--glass-bg:#0a1128b3;--glass-border:#3b82f626}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}body{background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6;overflow-x:hidden}::selection{background-color:var(--accent-blue);color:#fff}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--accent-blue);border-radius:3px}.font-display{font-family:Outfit,Inter,sans-serif}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem}.gradient-bg-hero{pointer-events:none;background:radial-gradient(80% 60% at 50% -10%,#3b82f61f 0%,#0000 60%),radial-gradient(50% 40% at 80% 20%,#06b6d414 0%,#0000 50%);position:absolute;inset:0}.grid-pattern{pointer-events:none;background-image:linear-gradient(90deg,#3b82f60a 1px,#0000 1px),linear-gradient(#3b82f60a 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 50% at 50% 0,#000 70%,#0000 100%);mask-image:radial-gradient(60% 50% at 50% 0,#000 70%,#0000 100%)}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border)}.reveal{opacity:0;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transform:translateY(40px)}.reveal.revealed{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transform:translate(-50px)}.reveal-left.revealed{opacity:1;transform:translate(0)}.reveal-right{opacity:0;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transform:translate(50px)}.reveal-right.revealed{opacity:1;transform:translate(0)}.reveal-scale{opacity:0;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);transform:scale(.9)}.reveal-scale.revealed{opacity:1;transform:scale(1)}.stagger-children>.reveal:first-child{transition-delay:0s}.stagger-children>.reveal:nth-child(2){transition-delay:.1s}.stagger-children>.reveal:nth-child(3){transition-delay:.2s}.stagger-children>.reveal:nth-child(4){transition-delay:.3s}.stagger-children>.reveal:nth-child(5){transition-delay:.4s}.stagger-children>.reveal:nth-child(6){transition-delay:.5s}.stagger-children>.reveal:nth-child(7){transition-delay:.6s}.stagger-children>.reveal:nth-child(8){transition-delay:.7s}.stagger-children>.reveal:nth-child(9){transition-delay:.8s}.stagger-children>.reveal:nth-child(10){transition-delay:.9s}.stagger-children>.reveal:nth-child(11){transition-delay:1s}.stagger-children>.reveal:nth-child(12){transition-delay:1.1s}.glow-text{text-shadow:0 0 30px #3b82f666,0 0 60px #3b82f626}.glow-box{box-shadow:0 0 30px #3b82f61a,0 0 60px #3b82f60d}.btn-primary{background:linear-gradient(135deg,var(--accent-blue),var(--accent-cyan));color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 2rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex;position:relative;overflow:hidden}.btn-primary:before{content:"";background:linear-gradient(135deg,var(--accent-cyan),var(--accent-blue));opacity:0;transition:opacity .3s;position:absolute;inset:0}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #3b82f64d}.btn-primary:hover:before{opacity:1}.btn-primary span{z-index:1;position:relative}.btn-outline{color:var(--accent-light);border:2px solid var(--accent-blue);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 2rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .3s;display:inline-flex;position:relative;overflow:hidden}.btn-outline:before{content:"";background:linear-gradient(135deg,var(--accent-blue),var(--accent-cyan));z-index:0;border-radius:50%;width:100%;height:200%;transition:left .5s;position:absolute;top:50%;left:-100%;transform:translateY(-50%)}.btn-outline:hover{color:#fff;border-color:var(--accent-cyan);transform:translateY(-2px)}.btn-outline:hover:before{left:0}.btn-outline span{z-index:1;position:relative}.project-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;transition:all .4s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.project-card:before{content:"";opacity:0;background:linear-gradient(135deg,#3b82f60d 0%,#0000 60%);transition:opacity .4s;position:absolute;inset:0}.project-card:hover{border-color:var(--accent-blue);background:var(--bg-card-hover);transform:translateY(-4px);box-shadow:0 16px 48px #3b82f61a}.project-card:hover:before{opacity:1}.project-card-image-wrap{aspect-ratio:16/9;background:var(--bg-secondary);border-radius:15px 15px 0 0;width:100%;position:relative;overflow:hidden}.project-card-img{filter:brightness(.85);transition:transform .5s cubic-bezier(.16,1,.3,1),filter .5s}.project-card:hover .project-card-img{filter:brightness();transform:scale(1.05)}.project-card-image-overlay{pointer-events:none;z-index:1;position:absolute;inset:0}.project-card-placeholder{background:linear-gradient(135deg,var(--bg-secondary)0%,var(--bg-card)100%);border-bottom:1px solid var(--border-color);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;display:flex;position:absolute;inset:0}.project-card-placeholder:before{content:"";pointer-events:none;border:2px dashed #3b82f626;border-radius:8px;position:absolute;inset:12px}.project-card-placeholder-emoji{filter:grayscale(.3);font-size:2.5rem;transition:filter .3s,transform .3s}.project-card:hover .project-card-placeholder-emoji{filter:grayscale(0);transform:scale(1.1)}.project-card-placeholder-text{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.75rem;font-weight:500}.skill-badge{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:10px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.85rem;transition:all .3s;display:inline-flex}.skill-badge:hover{border-color:var(--accent-blue);color:var(--accent-light);background:var(--bg-card-hover);transform:translateY(-2px)}.tech-tag{color:var(--accent-light);background:#3b82f614;border:1px solid #3b82f626;border-radius:20px;padding:.25rem .75rem;font-size:.75rem;display:inline-block}.section-label{color:var(--accent-light);letter-spacing:.05em;text-transform:uppercase;background:#3b82f614;border:1px solid #3b82f633;border-radius:20px;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.35rem 1rem;font-size:.8rem;font-weight:500;display:inline-flex}.section-title{color:var(--text-primary);margin-bottom:1rem;font-family:Outfit,sans-serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.15}.section-subtitle{color:var(--text-secondary);max-width:600px;font-size:1.05rem;line-height:1.7}.social-icon{background:var(--bg-card);border:1px solid var(--border-color);width:42px;height:42px;color:var(--text-secondary);border-radius:10px;justify-content:center;align-items:center;text-decoration:none;transition:all .3s;display:inline-flex}.social-icon:hover{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff;transform:translateY(-3px);box-shadow:0 8px 20px #3b82f64d}.hero-greeting-badge{color:var(--accent-light);background:#3b82f614;border:1px solid #3b82f633;border-radius:50px;align-items:center;gap:.5rem;padding:.4rem 1.2rem;display:inline-flex}.hero-greeting-dot{background:#22c55e;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse-glow;display:inline-block;box-shadow:0 0 8px #22c55e80}.hero-greeting-cycle{filter:drop-shadow(0 0 30px #3b82f64d);min-height:1.3em;margin-bottom:.5rem;font-family:Outfit,sans-serif;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:800;overflow:hidden}.hero-name{background:linear-gradient(135deg,var(--text-primary)0%,var(--accent-light)50%,var(--accent-cyan)100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:Outfit,sans-serif;font-size:clamp(3rem,8vw,5.5rem);font-weight:800;line-height:1.05}.hero-accent{color:var(--accent-blue);-webkit-text-fill-color:var(--accent-blue);text-shadow:0 0 40px #3b82f666;font-family:Outfit,sans-serif;font-style:italic}.hero-description{color:var(--text-secondary);max-width:550px;margin:1rem auto 2rem;font-size:clamp(.95rem,2vw,1.15rem);line-height:1.8}.hero-divider{background:linear-gradient(90deg,var(--accent-blue),var(--accent-cyan));border-radius:2px;width:80px;height:3px;margin:0 auto}.hero-scroll-indicator{flex-direction:column;align-items:center;gap:0;display:flex;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.hero-scroll-mouse{border:2px solid var(--text-muted);opacity:.5;border-radius:12px;width:22px;height:36px;position:relative}.hero-scroll-wheel{background:var(--accent-blue);border-radius:3px;width:3px;height:8px;animation:2s ease-in-out infinite scroll-wheel;position:absolute;top:6px;left:50%;transform:translate(-50%)}@keyframes scroll-wheel{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(12px)}}.hero-aurora-container{pointer-events:none;position:absolute;inset:0;overflow:hidden}.hero-aurora{filter:blur(80px);opacity:.4;mix-blend-mode:screen;width:150%;height:60%;position:absolute}.hero-aurora-1{background:radial-gradient(at 30%,#3b82f64d 0%,#0000 60%);animation:12s ease-in-out infinite aurora-shift-1;top:-20%;left:-25%}.hero-aurora-2{background:radial-gradient(at 70% 40%,#06b6d440 0%,#0000 55%);animation:15s ease-in-out infinite aurora-shift-2;top:-10%;right:-25%}.hero-aurora-3{background:radial-gradient(at 40% 60%,#8b5cf626 0%,#0000 55%);animation:18s ease-in-out infinite aurora-shift-3;bottom:-20%;left:10%}@keyframes aurora-shift-1{0%,to{transform:translate(0)translateY(0)scale(1)}33%{transform:translate(10%)translateY(-5%)scale(1.1)}66%{transform:translate(-5%)translateY(8%)scale(.95)}}@keyframes aurora-shift-2{0%,to{transform:translate(0)translateY(0)scale(1)}33%{transform:translate(-8%)translateY(5%)scale(1.05)}66%{transform:translate(12%)translateY(-3%)scale(1.1)}}@keyframes aurora-shift-3{0%,to{opacity:.4;transform:translate(0)translateY(0)scale(1)}50%{opacity:.6;transform:translate(5%)translateY(-10%)scale(1.15)}}.hero-geo-rings{pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hero-ring{border:1px solid #3b82f61a;border-radius:50%;position:absolute;top:50%;left:50%}.hero-ring-1{border-style:dashed;border-color:#3b82f614;width:500px;height:500px;margin-top:-250px;margin-left:-250px;animation:30s linear infinite ring-rotate-1}.hero-ring-2{border-color:#06b6d40f;width:700px;height:700px;margin-top:-350px;margin-left:-350px;animation:45s linear infinite ring-rotate-2}@keyframes ring-rotate-1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ring-rotate-2{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.hero-light-burst{pointer-events:none;background:conic-gradient(#0000 0deg,#3b82f608 30deg,#0000 60deg,#06b6d405 120deg,#0000 150deg,#3b82f608 210deg,#0000 240deg,#8b5cf605 300deg,#0000 330deg,#3b82f608 360deg);width:100%;height:100%;animation:40s linear infinite light-burst-rotate;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes light-burst-rotate{0%{transform:translate(-50%,-50%)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)}}.hero-sparkles{pointer-events:none;position:absolute;inset:0}.hero-sparkle{background:var(--accent-blue);border-radius:50%;animation:ease-in-out infinite sparkle-twinkle;position:absolute}@keyframes sparkle-twinkle{0%,to{opacity:0;transform:scale(.5);box-shadow:0 0 4px #3b82f64d}50%{opacity:.8;transform:scale(1.2);box-shadow:0 0 12px #3b82f699,0 0 24px #3b82f64d}}.floating-orb{filter:blur(60px);pointer-events:none;border-radius:50%;animation:8s ease-in-out infinite float;position:absolute}@keyframes float{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-20px)scale(1.05)}}@keyframes pulse-glow{0%,to{opacity:.5}50%{opacity:1}}.divider-line{background:linear-gradient(90deg,var(--accent-blue),var(--accent-cyan));border-radius:2px;width:60px;height:3px}.navbar{z-index:100;padding:1rem 0;transition:all .3s;position:fixed;top:0;left:0;right:0}.navbar.scrolled{-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color);background:#050a18d9;padding:.65rem 0}.navbar-inner{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:0 1.5rem;display:flex}.navbar-logo{color:var(--accent-blue);letter-spacing:-.02em;font-family:Outfit,sans-serif;font-size:1.5rem;font-weight:800;text-decoration:none}.navbar-links{align-items:center;gap:2rem;list-style:none;display:none}@media (min-width:768px){.navbar-links{display:flex}}.navbar-links a{color:var(--text-secondary);font-size:.9rem;font-weight:500;text-decoration:none;transition:color .3s;position:relative}.navbar-links a:after{content:"";background:var(--accent-blue);width:0;height:2px;transition:width .3s;position:absolute;bottom:-4px;left:0}.navbar-links a:hover{color:var(--accent-light)}.navbar-links a:hover:after{width:100%}.menu-btn{background:var(--accent-blue);color:#fff;cursor:pointer;letter-spacing:.05em;text-transform:uppercase;border:none;border-radius:24px;justify-content:center;align-items:center;padding:.5rem 1.25rem;font-family:Inter,sans-serif;font-size:.85rem;font-weight:600;transition:all .3s;display:flex}@media (min-width:768px){.menu-btn{display:none}}.menu-btn:hover{background:var(--accent-cyan)}.mobile-menu{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:99;opacity:0;pointer-events:none;background:#050a18f7;flex-direction:column;justify-content:center;align-items:center;gap:2rem;transition:opacity .4s;display:flex;position:fixed;inset:0}.mobile-menu.open{opacity:1;pointer-events:all}.mobile-menu a{color:var(--text-primary);font-family:Outfit,sans-serif;font-size:2rem;font-weight:600;text-decoration:none;transition:color .3s}.mobile-menu a:hover{color:var(--accent-blue)}.footer{border-top:1px solid var(--border-color);text-align:center;padding:3rem 0}.footer-text{color:var(--text-muted);font-size:.85rem}.footer-text a{color:var(--accent-light);text-decoration:none;transition:color .3s}.footer-text a:hover{color:var(--accent-blue)}.scroll-over-wrapper{position:relative}.sticky-hero{z-index:1;height:100vh;position:sticky;top:0}.overlay-content{z-index:2;background:var(--bg-primary);border-top-left-radius:32px;border-top-right-radius:32px;position:relative;overflow:hidden;box-shadow:0 -20px 60px #00000080,0 -4px 20px #3b82f614}.overlay-content:before{content:"";background:linear-gradient(90deg,transparent,var(--accent-blue),var(--accent-cyan),transparent);opacity:.6;border-radius:2px;width:200px;height:2px;position:absolute;top:0;left:50%;transform:translate(-50%)}@media (max-width:768px){.container{padding:0 1rem}.overlay-content{border-top-left-radius:20px;border-top-right-radius:20px}}@media (max-width:400px){.project-card-image-wrap{aspect-ratio:3/2}}.particles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.particle{background:var(--accent-blue);opacity:.3;border-radius:50%;width:3px;height:3px;animation:linear infinite particle-rise;position:absolute}@keyframes particle-rise{0%{opacity:0;transform:translateY(100vh)scale(0)}10%{opacity:.3}90%{opacity:.3}to{opacity:0;transform:translateY(-10vh)scale(1)}}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.text-reveal-container{display:inline}.text-reveal-word{will-change:opacity,transform,filter;transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1),filter .5s cubic-bezier(.16,1,.3,1);display:inline-block}
