@property --gradient-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}:root{--primary-color: #7c3aed;--secondary-color: #a855f7;--accent-color: #c084fc;--bg-primary: #080c14;--bg-secondary: #0d1117;--bg-tertiary: #111827;--card-bg-solid: #0f1623;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--border-color: rgba(255, 255, 255, .1);--gradient-1: linear-gradient(135deg, #7c3aed 0%, #a855f7 100%);--gradient-2: linear-gradient(135deg, #a855f7 0%, #c084fc 100%);--gradient-3: linear-gradient(135deg, rgba(124, 58, 237, .12) 0%, rgba(168, 85, 247, .08) 100%);--shadow: 0 4px 20px rgba(124, 58, 237, .25);--shadow-hover: 0 12px 40px rgba(124, 58, 237, .45);--glow: 0 0 20px rgba(124, 58, 237, .5);--glow-strong: 0 0 40px rgba(124, 58, 237, .7);--nav-bg: rgba(8, 12, 20, .85);--nav-bg-scrolled: rgba(8, 12, 20, .98);--glass-bg: rgba(255, 255, 255, .05);--glass-border: rgba(255, 255, 255, .09);--glass-shadow: 0 4px 24px rgba(0, 0, 0, .35);--transition: all .4s cubic-bezier(.4, 0, .2, 1)}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #faf9ff;--bg-tertiary: #f3f0ff;--card-bg-solid: #ffffff;--text-primary: #0f172a;--text-secondary: #475569;--border-color: #e2e8f0;--gradient-3: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);--shadow: 0 4px 20px rgba(124, 58, 237, .12);--shadow-hover: 0 12px 40px rgba(124, 58, 237, .25);--glow: 0 0 20px rgba(124, 58, 237, .2);--glow-strong: 0 0 40px rgba(124, 58, 237, .35);--nav-bg: rgba(255, 255, 255, .85);--nav-bg-scrolled: rgba(255, 255, 255, .98);--glass-bg: rgba(124, 58, 237, .04);--glass-border: rgba(124, 58, 237, .13);--glass-shadow: 0 4px 24px rgba(124, 58, 237, .07)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden;transition:background-color .4s ease,color .4s ease}body.custom-cursor-active,body.custom-cursor-active a,body.custom-cursor-active button,body.custom-cursor-active .btn,body.custom-cursor-active .theme-toggle,body.custom-cursor-active .hamburger,body.custom-cursor-active .nav-link,body.custom-cursor-active .project-link,body.custom-cursor-active .footer-social a,body.custom-cursor-active .social-links a{cursor:none}body.custom-cursor-active input,body.custom-cursor-active textarea{cursor:text}.container{max-width:1200px;margin:0 auto;padding:0 2rem}.cursor-dot{position:fixed;width:6px;height:6px;background:var(--primary-color);border-radius:50%;pointer-events:none;z-index:99999;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 0 10px var(--primary-color),0 0 20px #7c3aed80;transition:width .15s ease,height .15s ease}.cursor-dot.hovering{width:10px;height:10px;background:var(--secondary-color)}.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0%;background:var(--gradient-1);z-index:9999;transition:width .1s linear;box-shadow:0 0 8px #7c3aedcc}.theme-toggle{width:38px;height:38px;border-radius:50%;background:var(--glass-bg);border:1px solid var(--glass-border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);font-size:.9rem;transition:var(--transition);flex-shrink:0}.theme-toggle:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:var(--glow);transform:rotate(20deg) scale(1.1)}.navbar{position:fixed;top:0;width:100%;background-color:var(--nav-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:1000;transition:var(--transition);border-bottom:1px solid var(--glass-border)}.navbar.scrolled{background-color:var(--nav-bg-scrolled);box-shadow:var(--shadow)}.nav-container{max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.5rem;font-weight:700;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav-menu{display:flex;list-style:none;gap:2rem}.nav-link{color:var(--text-secondary);text-decoration:none;font-weight:500;transition:var(--transition);position:relative}.nav-link:after{content:"";position:absolute;bottom:-5px;left:0;width:0;height:2px;background:var(--gradient-1);transition:var(--transition)}.nav-link:hover{color:var(--text-primary)}.nav-link:hover:after{width:100%}.nav-right{display:flex;align-items:center;gap:1rem}.hamburger{display:none;flex-direction:column;cursor:pointer}.hamburger span{width:25px;height:3px;background-color:var(--text-primary);margin:3px 0;transition:var(--transition);border-radius:2px}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:6rem 2rem 4rem;position:relative;overflow:hidden;background:radial-gradient(ellipse at 20% 50%,rgba(124,58,237,.15) 0%,transparent 55%),radial-gradient(ellipse at 80% 20%,rgba(168,85,247,.1) 0%,transparent 55%),radial-gradient(ellipse at 60% 80%,rgba(192,132,252,.07) 0%,transparent 50%),var(--bg-primary)}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(124,58,237,.25) 1px,transparent 1px);background-size:40px 40px;mask-image:radial-gradient(ellipse at center,black 30%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 80%);z-index:0;opacity:.5}.hero:after{content:"";position:absolute;bottom:-30%;left:-10%;width:600px;height:600px;background:radial-gradient(circle,rgba(168,85,247,.1) 0%,transparent 70%);border-radius:50%;animation:blob-float 15s ease-in-out infinite reverse;z-index:0}@keyframes blob-float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-50px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}.hero-content{max-width:1200px;display:grid;grid-template-columns:1.4fr .6fr;gap:2rem;align-items:center;position:relative;z-index:1}.hero-text h1{font-size:4rem;font-weight:800;margin-bottom:1rem;line-height:1.2}.glitch{position:relative;display:inline-block;animation:wave-text 3s ease-in-out infinite}@keyframes wave-text{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-5px) rotate(.5deg)}75%{transform:translateY(5px) rotate(-.5deg)}}.subtitle{font-size:1.5rem;color:var(--text-secondary);margin-bottom:2rem}.hero-buttons{display:flex;gap:1rem;margin-bottom:2rem}.btn{padding:.875rem 2rem;border-radius:50px;text-decoration:none;font-weight:600;transition:var(--transition);display:inline-block;position:relative;overflow:hidden;cursor:pointer}.btn-primary{background:var(--gradient-1);color:#fff;border:2px solid transparent}.btn-primary:hover{transform:translateY(-3px) scale(1.02);box-shadow:var(--shadow-hover),var(--glow)}.btn-secondary{background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--text-primary);border:2px solid var(--glass-border)}.btn-secondary:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color);transform:translateY(-3px) scale(1.02);box-shadow:var(--shadow-hover),var(--glow)}.social-links{display:flex;gap:1rem}.social-links a{width:50px;height:50px;border-radius:50%;background:var(--glass-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--glass-border);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);text-decoration:none;transition:var(--transition);font-size:1.25rem}.social-links a:hover{background:var(--gradient-1);color:#fff;border-color:transparent;transform:translateY(-5px) rotate(5deg);box-shadow:var(--shadow),var(--glow)}.hero-image{display:flex;justify-content:center}.image-wrapper{padding:4px;border-radius:50%;background:conic-gradient(from var(--gradient-angle),#7c3aed,#a855f7,#c084fc,#7c3aed);animation:spin-gradient 4s linear infinite;display:inline-block;line-height:0}@keyframes spin-gradient{to{--gradient-angle: 360deg}}.image-container{position:relative;width:320px;height:320px;overflow:hidden;border-radius:50%;background:var(--bg-primary)}.image-container img{width:100%;height:100%;object-fit:cover;object-position:55% center;border-radius:50%;animation:morph 8s ease-in-out infinite;display:block}@keyframes morph{0%,to{border-radius:50%;transform:rotate(0)}25%{border-radius:60% 40%;transform:rotate(2deg)}50%{border-radius:40% 60%;transform:rotate(-2deg)}75%{border-radius:55% 45%;transform:rotate(1deg)}}.image-overlay{display:none}.scroll-indicator{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);font-size:2rem;color:var(--text-secondary);animation:bounce 2s infinite;z-index:1}@keyframes bounce{0%,20%,50%,80%,to{transform:translate(-50%) translateY(0)}40%{transform:translate(-50%) translateY(-10px)}60%{transform:translate(-50%) translateY(-5px)}}.section{padding:6rem 0;position:relative}.section-alt{background-color:var(--bg-secondary)}.section-title{font-size:3rem;font-weight:700;text-align:center;margin-bottom:4rem;position:relative;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section-title:after{content:"";display:block;width:80px;height:3px;background:var(--gradient-1);margin:1rem auto 0;border-radius:2px;box-shadow:var(--glow)}.about-text-only{max-width:900px;margin:0 auto;text-align:center}.about-text-only .lead{font-size:1.25rem;color:var(--text-secondary);margin-bottom:1.5rem}.about-text-only p{margin-bottom:1.5rem;color:var(--text-secondary);line-height:1.8}.education-section{margin-top:4rem}.subsection-title{font-size:2rem;font-weight:700;margin-bottom:2rem;color:var(--text-primary)}.education-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.education-item{padding:2rem;background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:16px;transition:var(--transition)}.education-item:hover{transform:translateY(-5px);border-color:var(--primary-color);box-shadow:var(--shadow-hover),var(--glow)}.education-item h4{font-size:1.25rem;margin:.5rem 0;color:var(--text-primary)}.institution{color:var(--text-secondary);font-weight:500;margin-bottom:1rem}.timeline{position:relative;max-width:800px;margin:0 auto}.timeline:before{content:"";position:absolute;left:50%;transform:translate(-50%);width:2px;height:100%;background:var(--gradient-1);box-shadow:0 0 8px #7c3aed80}.timeline-item{position:relative;margin-bottom:3rem;display:flex;align-items:center}.timeline-item:nth-child(odd) .timeline-content{margin-left:auto;text-align:left}.timeline-item:nth-child(2n) .timeline-content{margin-right:auto;text-align:right}.timeline-dot{position:absolute;left:50%;transform:translate(-50%);width:20px;height:20px;background:var(--primary-color);border-radius:50%;border:4px solid var(--bg-primary);box-shadow:0 0 0 4px var(--primary-color),var(--glow);z-index:1;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{box-shadow:0 0 0 4px var(--primary-color),0 0 #7c3aed66}50%{box-shadow:0 0 0 4px var(--primary-color),0 0 0 10px #7c3aed00}}.timeline-content{width:calc(50% - 40px);padding:2rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--glass-shadow);transition:var(--transition)}.timeline-content:hover{transform:translate(10px);border-color:var(--primary-color);box-shadow:var(--shadow-hover),var(--glow)}.timeline-item:nth-child(2n) .timeline-content:hover{transform:translate(-10px)}.timeline-date{color:var(--primary-color);font-weight:600;margin-bottom:.5rem}.timeline-content h3{font-size:1.5rem;margin-bottom:.5rem}.timeline-content h4{color:var(--text-secondary);margin-bottom:1rem;font-weight:600}.timeline-content p{color:var(--text-secondary);margin-bottom:1rem}.achievements{list-style:none;margin:1rem 0}.achievements li{color:var(--text-secondary);padding:.5rem 0 .5rem 1.5rem;position:relative}.achievements li:before{content:"▹";position:absolute;left:0;color:var(--primary-color);font-size:1.2rem}.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.tag{padding:.4rem 1rem;background:#7c3aed26;color:var(--accent-color);border-radius:20px;font-size:.85rem;font-weight:500;border:1px solid rgba(124,58,237,.2)}.coursework-container{padding:1.5rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;transition:var(--transition)}.coursework-container:hover{border-color:var(--primary-color);box-shadow:var(--shadow),var(--glow)}.coursework-tags{display:flex;flex-wrap:wrap;gap:.5rem}.course-tag{padding:.4rem .9rem;background:#7c3aed1a;color:var(--accent-color);border:1px solid rgba(124,58,237,.2);border-radius:20px;font-size:.85rem;font-weight:500;transition:var(--transition)}.course-tag:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color);transform:translateY(-2px);box-shadow:var(--glow)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.project-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:20px;overflow:hidden;transition:var(--transition)}.project-card:hover{transform:translateY(-10px) scale(1.02);box-shadow:var(--shadow-hover),var(--glow);border-color:var(--primary-color)}.project-image{position:relative;height:250px;overflow:hidden}.project-image img{width:100%;height:100%;object-fit:cover;transition:var(--transition)}.project-card:hover .project-image img{transform:scale(1.1)}.project-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#7c3aedf2,#a855f7f2);display:flex;align-items:center;justify-content:center;gap:1rem;opacity:0;transition:var(--transition)}.project-card:hover .project-overlay{opacity:1}.project-link{width:50px;height:50px;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;text-decoration:none;transition:var(--transition);border:1px solid rgba(255,255,255,.3)}.project-link:hover{transform:scale(1.2) rotate(360deg);background:#fff;color:var(--primary-color)}.project-content{padding:2rem}.project-content h3{font-size:1.5rem;margin-bottom:1rem;color:var(--text-primary)}.project-content p{color:var(--text-secondary);margin-bottom:1rem}.experience-subsection{margin-bottom:4rem}.experience-subsection:last-child{margin-bottom:0}.work-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem}.work-item{padding:2rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;transition:var(--transition)}.work-item:hover{transform:translateY(-5px);border-color:var(--primary-color);box-shadow:var(--shadow),var(--glow)}.work-item h4{font-size:1.25rem;margin-bottom:.5rem;color:var(--text-primary)}.company{color:var(--primary-color);font-weight:600;margin-bottom:.5rem}.skills-simple{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.skill-category-simple{padding:1.5rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;transition:var(--transition)}.skill-category-simple:hover{border-color:var(--primary-color);box-shadow:var(--shadow),var(--glow)}.skill-category-simple h4{font-size:1.1rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;color:var(--text-primary)}.skill-category-simple i{color:var(--primary-color);font-size:1rem}.skill-tags{display:flex;flex-wrap:wrap;gap:.5rem}.skill-tag{padding:.4rem .9rem;background:#7c3aed1a;color:var(--accent-color);border:1px solid rgba(124,58,237,.2);border-radius:20px;font-size:.85rem;font-weight:500;transition:var(--transition)}.skill-tag:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color);transform:translateY(-2px);box-shadow:var(--glow)}.contact-content{display:flex;justify-content:center;max-width:800px;margin:0 auto}.contact-info h3{font-size:2rem;margin-bottom:1rem}.contact-info p{color:var(--text-secondary);margin-bottom:2rem}.contact-items{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:1rem}.contact-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;transition:var(--transition)}.contact-item:hover{transform:translate(8px);border-color:var(--primary-color);box-shadow:var(--shadow),var(--glow)}.contact-item i{font-size:1.5rem;color:var(--primary-color);width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#7c3aed26;border-radius:10px;transition:var(--transition);flex-shrink:0}.contact-item:hover i{transform:scale(1.1) rotate(-5deg);background:var(--primary-color);color:#fff}.contact-item h4{font-size:.9rem;color:var(--text-secondary);margin-bottom:.25rem}.contact-item a,.contact-item p{color:var(--text-primary);text-decoration:none;font-size:.9rem}.contact-item a:hover{color:var(--secondary-color)}.footer{background:var(--bg-secondary);padding:2rem 0;border-top:1px solid var(--glass-border)}.footer p{color:var(--text-secondary)}.footer-content{display:flex;justify-content:space-between;align-items:center}.footer-social{display:flex;gap:1rem}.footer-social a{width:40px;height:40px;border-radius:50%;background:var(--glass-bg);border:1px solid var(--glass-border);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);text-decoration:none;transition:var(--transition)}.footer-social a:hover{background:var(--gradient-1);color:#fff;border-color:transparent;transform:translateY(-3px) rotate(360deg);box-shadow:var(--glow)}.fade-in{opacity:0;animation:fadeInSlide .8s cubic-bezier(.16,1,.3,1) forwards}@keyframes fadeInSlide{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transform:translateY(50px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.reveal.active{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transform:translate(-60px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.reveal-left.active{opacity:1;transform:translate(0)}.reveal-right{opacity:0;transform:translate(60px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.reveal-right.active{opacity:1;transform:translate(0)}.reveal-scale{opacity:0;transform:scale(.85);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.reveal-scale.active{opacity:1;transform:scale(1)}.reveal-rotate{opacity:0;transform:rotate(-5deg) scale(.9);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.reveal-rotate.active{opacity:1;transform:rotate(0) scale(1)}.reveal-flip{opacity:0;transform:perspective(1000px) rotateY(-15deg);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.reveal-flip.active{opacity:1;transform:perspective(1000px) rotateY(0)}.reveal-blur{opacity:0;filter:blur(10px);transform:translateY(30px);transition:opacity .8s cubic-bezier(.16,1,.3,1),filter .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.reveal-blur.active{opacity:1;filter:blur(0);transform:translateY(0)}.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}@media (max-width: 968px){.nav-menu{position:fixed;left:-100%;top:70px;flex-direction:column;background-color:var(--bg-secondary);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);width:100%;text-align:center;transition:.3s;padding:2rem 0;box-shadow:var(--shadow);border-bottom:1px solid var(--glass-border)}.nav-menu.active{left:0}.hamburger{display:flex}.hero-content{grid-template-columns:1fr;text-align:center}.hero-text h1{font-size:2.5rem}.hero-buttons,.social-links{justify-content:center}.image-container{width:260px;height:260px}.about-content{grid-template-columns:1fr}.timeline:before{left:0}.timeline-item{flex-direction:column;align-items:flex-start}.timeline-dot{left:0;transform:translate(-50%)}.timeline-item:nth-child(odd) .timeline-content,.timeline-item:nth-child(2n) .timeline-content{width:calc(100% - 40px);margin-left:40px;text-align:left}.contact-content{padding:0 1rem}.contact-items{grid-template-columns:1fr}.section-title{font-size:2rem}.skills-simple{grid-template-columns:1fr}.cursor-dot{display:none}}@media (max-width: 480px){.hero-text h1{font-size:2rem}.subtitle{font-size:1.2rem}.hero-buttons{flex-direction:column}.btn{width:100%;text-align:center}.image-container{width:220px;height:220px}}[data-theme=light] .hero{background:radial-gradient(ellipse at 20% 50%,rgba(124,58,237,.07) 0%,transparent 55%),radial-gradient(ellipse at 80% 20%,rgba(168,85,247,.05) 0%,transparent 55%),var(--bg-primary)}[data-theme=light] .hero:before{opacity:.15}[data-theme=light] .image-container{background:#f5f3ff}
