*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.6}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{font:inherit;cursor:pointer;background:0 0;border:none}canvas{display:block}:root{--color-bg-primary:#0a0a0f;--color-bg-secondary:#12121a;--color-bg-tertiary:#1a1a2e;--color-purple:#7c3aed;--color-blue:#3b82f6;--color-pink:#ec4899;--color-cyan:#06b6d4;--color-violet:#8b5cf6;--color-gold:#f59e0b;--color-text-primary:#f0f0f5;--color-text-secondary:#a0a0b5;--color-text-muted:#8a8a9f;--gradient-primary:linear-gradient(135deg, var(--color-purple), var(--color-pink));--gradient-secondary:linear-gradient(135deg, var(--color-blue), var(--color-cyan));--gradient-hero:linear-gradient(135deg, var(--color-purple), var(--color-blue), var(--color-cyan));--gradient-accent:linear-gradient(90deg, var(--color-pink), var(--color-purple), var(--color-blue));--glass-bg:#ffffff0d;--glass-bg-hover:#ffffff14;--glass-border:#ffffff1a;--glass-border-hover:#ffffff2e;--glass-blur:12px;--glass-shadow:0 8px 32px #0000004d;--neon-purple:0 0 20px #7c3aed80, 0 0 40px #7c3aed33;--neon-cyan:0 0 20px #06b6d480, 0 0 40px #06b6d433;--neon-pink:0 0 20px #ec489980, 0 0 40px #ec489933;--neon-gold:0 0 20px #f59e0b80, 0 0 40px #f59e0b33;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--font-size-hero:clamp(2.5rem, 6vw, 5rem);--font-size-2xl:clamp(2rem, 4vw, 3rem);--font-size-xl:clamp(1.5rem, 3vw, 2rem);--font-size-lg:clamp(1.25rem, 2.5vw, 1.5rem);--font-size-base:clamp(1rem, 2vw, 1.125rem);--font-size-sm:clamp(.875rem, 1.8vw, 1rem);--font-size-xs:clamp(.75rem, 1.5vw, .875rem);--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:2rem;--space-xl:4rem;--space-2xl:6rem;--space-section:clamp(4rem, 10vh, 8rem);--max-width:1400px;--container-padding:clamp(1rem, 4vw, 2rem);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-back:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.2s;--duration-normal:.4s;--duration-slow:.8s;--duration-reveal:.6s;--z-particles:0;--z-content:1;--z-nav:100;--z-overlay:200}body{font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-bg-primary);overflow-x:hidden}h1,h2,h3,h4{font-weight:700;line-height:1.2}h2{font-size:var(--font-size-2xl);margin-bottom:var(--space-xl);text-align:center}p{color:var(--color-text-secondary);line-height:1.7}.gradient-text{background:var(--gradient-hero);-webkit-text-fill-color:transparent;background-size:200% 200%;-webkit-background-clip:text;background-clip:text;animation:6s infinite gradientShift}.section-heading{background:var(--gradient-primary);-webkit-text-fill-color:transparent;background-size:200% 200%;-webkit-background-clip:text;background-clip:text;animation:6s infinite gradientShift;display:inline-block}.mono{font-family:var(--font-mono)}::selection{color:var(--color-text-primary);background:#7c3aed66}.skip-link{top:-100%;left:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-purple);color:#fff;z-index:var(--z-overlay);font-size:var(--font-size-sm);transition:top var(--duration-fast) ease;border-radius:0 0 8px 8px;position:absolute}.skip-link:focus{top:0}:focus-visible{outline:2px solid var(--color-purple);outline-offset:4px}.section-alt{background:var(--color-bg-secondary)}.container{width:100%;max-width:var(--max-width);padding:0 var(--container-padding);margin:0 auto}section{z-index:var(--z-content);padding:var(--space-section) 0;position:relative}.hero{text-align:center;min-height:100vh;padding:var(--space-lg);flex-direction:column;justify-content:center;align-items:center;display:flex}.timeline{max-width:1600px;margin:0 auto;position:relative}.timeline:before{content:"";background:var(--gradient-primary);width:2px;box-shadow:var(--neon-purple);position:absolute;top:0;bottom:0;left:0}.timeline-item{padding-left:var(--space-xl);margin-bottom:var(--space-xl);position:relative}.timeline-item:before{content:"";background:var(--color-purple);width:12px;height:12px;box-shadow:var(--neon-purple);border-radius:50%;position:absolute;top:8px;left:-5px}.projects-grid,.skills-grid,.leadership-grid,.awards-grid{gap:var(--space-lg);grid-template-columns:1fr;display:grid}.contact-section{text-align:center}@media (width>=640px){.projects-grid,.skills-grid,.leadership-grid,.awards-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.timeline:before{left:50%;transform:translate(-50%)}.timeline-item{width:50%;padding-left:0}.timeline-item:nth-child(odd){padding-right:var(--space-xl);text-align:right}.timeline-item:nth-child(odd) .timeline-desc{text-align:left}.timeline-item:nth-child(odd):before{left:auto;right:-6px}.timeline-item:nth-child(2n){padding-left:var(--space-xl);margin-left:50%}.timeline-item:nth-child(2n):before{left:-6px}.skills-grid{grid-template-columns:repeat(3,1fr)}}@media (width>=1280px){.leadership-grid{grid-template-columns:repeat(4,1fr)}.awards-grid{grid-template-columns:repeat(3,1fr)}}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);padding:var(--space-lg);box-shadow:var(--glass-shadow);transition:background var(--duration-fast) ease, border-color var(--duration-fast) ease, box-shadow var(--duration-normal) ease, transform var(--duration-normal) var(--ease-out-expo);border-radius:16px}.glass-card:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}.glass-card--purple:hover{box-shadow:var(--neon-purple)}.glass-card--cyan:hover{box-shadow:var(--neon-cyan)}.glass-card--pink:hover{box-shadow:var(--neon-pink)}.glass-card--gold:hover{box-shadow:var(--neon-gold)}.project-card{display:block;position:relative;overflow:hidden}a.project-card:hover{transform:translateY(-4px)}.project-icon{width:48px;height:48px;margin-bottom:var(--space-md);border:1px solid var(--glass-border);background:#ffffff0d;border-radius:12px;padding:10px}.project-icon svg{width:100%;height:100%}.glass-card--pink .project-icon svg{stroke:var(--color-pink)}.glass-card--cyan .project-icon svg{stroke:var(--color-cyan)}.project-title{font-size:var(--font-size-xl);color:var(--color-text-primary);margin-bottom:var(--space-xs);font-weight:700}.project-url{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-md)}.project-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.7}.project-link-hint{margin-top:var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-muted);transition:color var(--duration-fast) ease;font-weight:600;display:inline-block}.project-links{gap:var(--space-xs);margin-top:var(--space-md);flex-direction:column;display:flex}.project-github-link{color:var(--color-text-muted);text-decoration:none}.project-card:hover .project-link-hint{color:var(--color-text-primary)}.timeline-card:hover{box-shadow:var(--neon-purple)}.timeline-date{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-purple);margin-bottom:var(--space-xs);font-weight:600}.timeline-role{font-size:var(--font-size-lg);color:var(--color-text-primary);margin-bottom:var(--space-xs);font-weight:700}.timeline-company{font-size:var(--font-size-sm);color:var(--color-cyan);margin-bottom:var(--space-md)}.timeline-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.7}.timeline-desc ul{margin-top:var(--space-sm);padding-left:var(--space-md)}.timeline-desc li{margin-bottom:var(--space-xs);color:var(--color-text-secondary);list-style:outside}.timeline-desc li::marker{color:var(--color-purple)}.skill-category-title{font-size:var(--font-size-lg);margin-bottom:var(--space-md);color:var(--color-text-primary)}.skill-subcategory{margin-bottom:var(--space-md)}.skill-subcategory-title{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-sm)}.skill-pills{gap:var(--space-sm);flex-wrap:wrap;display:flex}.skill-pill{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-secondary);transition:all var(--duration-fast) ease;background:#7c3aed1a;border:1px solid #7c3aed40;border-radius:99px;padding:.3rem .8rem;display:inline-block}.skill-pill:hover{color:var(--color-text-primary);border-color:var(--color-purple);background:#7c3aed33;box-shadow:0 0 12px #7c3aed4d}.leadership-title{font-size:var(--font-size-lg);margin-bottom:var(--space-sm);color:var(--color-text-primary)}.leadership-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.about-layout{gap:var(--space-xl);margin-bottom:var(--space-xl);grid-template-columns:1fr 300px;align-items:start;display:grid}@media (width<=768px){.about-layout{grid-template-columns:1fr}.about-photo-wrap{order:-1;max-width:200px}}.about-headline{font-size:var(--font-size-xl);color:var(--color-text-primary);margin-bottom:var(--space-md);font-weight:700}.about-body{font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:1.8}.about-photo-wrap{justify-content:center;display:flex}.about-photo{object-fit:cover;border:1px solid var(--glass-border);width:280px;height:280px;box-shadow:var(--glass-shadow);opacity:.9;transition:opacity var(--duration-fast) ease;border-radius:16px}.about-photo:hover{opacity:1}.about-highlights{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.about-highlight-label{font-size:var(--font-size-base);color:var(--color-cyan);margin-bottom:var(--space-xs);font-weight:700}.award-card{border-color:#f59e0b33}.award-card:hover{border-color:#f59e0b66}.award-title{font-size:var(--font-size-base);color:var(--color-gold);margin-bottom:var(--space-xs)}.hero-greeting{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-md)}.hero-name{font-size:var(--font-size-hero);margin-bottom:var(--space-md);font-weight:800;line-height:1.1}.hero-title{font-size:var(--font-size-xl);color:var(--color-text-secondary);min-height:2.5em}.hero-title .cursor{background:var(--color-purple);vertical-align:text-bottom;width:3px;height:1.1em;margin-left:4px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.scroll-indicator{bottom:var(--space-lg);align-items:center;gap:var(--space-sm);color:var(--color-text-muted);font-size:var(--font-size-xs);flex-direction:column;animation:3s ease-in-out infinite float;display:flex;position:absolute;left:50%;transform:translate(-50%)}.scroll-indicator svg{width:24px;height:24px;stroke:var(--color-text-muted)}@keyframes float{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(8px)}}.contact-btn{font-size:var(--font-size-lg);color:#fff;background:var(--gradient-primary);transition:box-shadow var(--duration-normal) ease, transform var(--duration-fast) ease;background-size:200% 200%;border-radius:99px;padding:1rem 2.5rem;font-weight:600;animation:4s infinite gradientShift;display:inline-block}.contact-btn:hover{box-shadow:var(--neon-purple);transform:translateY(-2px)}.contact-btn:active{transform:translateY(0)}.dot-nav{bottom:var(--space-md);z-index:var(--z-nav);gap:var(--space-sm);padding:var(--space-sm) var(--space-md);-webkit-backdrop-filter:blur(8px);border:1px solid var(--glass-border);background:#0a0a0fcc;border-radius:99px;flex-direction:row;display:flex;position:fixed;left:50%;transform:translate(-50%)}.dot-nav a{background:var(--color-text-muted);width:10px;height:10px;transition:all var(--duration-fast) ease;border-radius:50%;display:block;position:relative}.dot-nav a:hover,.dot-nav a.active{background:var(--color-purple);box-shadow:var(--neon-purple);transform:scale(1.3)}.dot-nav a:after{content:attr(data-label);font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--duration-fast) ease;margin-bottom:10px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.dot-nav a:hover:after{opacity:1}@media (width>=1024px){.dot-nav{bottom:auto;left:auto;right:var(--space-lg);gap:var(--space-md);-webkit-backdrop-filter:none;background:0 0;border:none;border-radius:0;flex-direction:column;padding:0;top:50%;transform:translateY(-50%)}.dot-nav a{width:12px;height:12px}.dot-nav a:after{margin-bottom:0;inset:50% 24px auto auto;transform:translateY(-50%)}}#particle-canvas,#three-canvas{z-index:var(--z-particles);pointer-events:none;opacity:0;transition:opacity 1.5s;position:fixed;inset:0}#particle-canvas.loaded,#three-canvas.loaded{opacity:1}.audio-btn{bottom:var(--space-md);right:var(--space-md);z-index:var(--z-nav);-webkit-backdrop-filter:blur(8px);border:1px solid var(--glass-border);width:40px;height:40px;color:var(--color-text-muted);cursor:pointer;transition:all var(--duration-fast) ease;background:#0a0a0fcc;border-radius:50%;padding:8px;position:fixed}.audio-btn svg{width:100%;height:100%}.audio-btn:hover{color:var(--color-text-primary);border-color:var(--glass-border-hover)}.audio-btn.active{color:var(--color-purple);border-color:var(--color-purple);box-shadow:var(--neon-purple)}@media (width<=1023px){.audio-btn{bottom:70px}}.pdf-btn{top:var(--space-md);right:var(--space-md);z-index:var(--z-nav);-webkit-backdrop-filter:blur(8px);border:1px solid var(--glass-border);color:var(--color-text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--duration-fast) ease;background:#0a0a0fcc;border-radius:99px;align-items:center;gap:8px;padding:8px 16px;font-weight:600;display:flex;position:fixed}.pdf-btn svg{flex-shrink:0;width:16px;height:16px}.pdf-btn:hover{color:var(--color-text-primary);border-color:var(--color-purple);box-shadow:var(--neon-purple);background:#7c3aed26}.pdf-btn:active{transform:scale(.96)}@media (width<=640px){.pdf-btn span{display:none}.pdf-btn{border-radius:50%;justify-content:center;width:40px;height:40px;padding:8px}}@keyframes gradientShift{0%,to{background-position:0%}50%{background-position:100%}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}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(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulseGlow{0%,to{box-shadow:var(--neon-purple)}50%{box-shadow:0 0 30px #7c3aedb3,0 0 60px #7c3aed4d}}.reveal{opacity:0;transition:opacity var(--duration-reveal) var(--ease-out-expo), transform var(--duration-reveal) var(--ease-out-expo)}.reveal--up{transform:translateY(40px)}.reveal--left{transform:translate(-40px)}.reveal--right{transform:translate(40px)}.reveal--scale{transform:scale(.9)}.reveal.is-visible{opacity:1;transform:translate(0)scale(1)}.stagger-1{transition-delay:.1s}.stagger-2{transition-delay:.2s}.stagger-3{transition-delay:.3s}.stagger-4{transition-delay:.4s}.stagger-5{transition-delay:.5s}.stagger-6{transition-delay:.6s}.stagger-7{transition-delay:.7s}.stagger-8{transition-delay:.8s}.hero-enter{opacity:0;animation:fadeInUp .8s var(--ease-out-expo) forwards;transform:translateY(30px)}.hero-enter:first-child{animation-delay:.2s}.hero-enter:nth-child(2){animation-delay:.4s}.hero-enter:nth-child(3){animation-delay:.6s}.hero-enter:nth-child(4){animation-delay:.8s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.hero-enter{opacity:1;transform:none}}
