:root{--bg: #05070f;--bg-alt: #090d1a;--card: rgba(255, 255, 255, .04);--card-solid: #0d1222;--border: rgba(255, 255, 255, .09);--text: #a6b0c8;--heading: #f2f5ff;--muted: #7c87a0;--accent: #6ee7ff;--accent-2: #818cf8;--accent-3: #c084fc;--grad: linear-gradient(120deg, #6ee7ff, #818cf8, #c084fc);--shadow: 0 20px 60px rgba(0, 0, 0, .5);--glow: 0 0 40px rgba(110, 231, 255, .18)}body.light{--bg: #f4f6fc;--bg-alt: #e9edf8;--card: rgba(255, 255, 255, .75);--card-solid: #ffffff;--border: rgba(20, 35, 70, .1);--text: #43506b;--heading: #101a30;--muted: #5e6b88;--accent: #0d9488;--accent-2: #4f46e5;--accent-3: #9333ea;--grad: linear-gradient(120deg, #0d9488, #4f46e5, #9333ea);--shadow: 0 18px 45px rgba(35, 55, 100, .12);--glow: 0 0 40px rgba(79, 70, 229, .15)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.65;overflow-x:hidden;transition:background .4s,color .4s}.container{width:min(1140px,92%);margin:0 auto}a{color:var(--accent);text-decoration:none}::selection{background:var(--accent-2);color:#fff}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--card-solid);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--accent-2)}.nav{position:fixed;inset:0 0 auto 0;z-index:100;padding:16px 0;transition:all .35s}.nav-scrolled{padding:9px 0;background:color-mix(in srgb,var(--bg) 70%,transparent);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid var(--border)}.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:14px}.logo{font-weight:800;font-size:1.2rem;font-family:Cascadia Code,Consolas,monospace;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.nav-links{display:flex;gap:4px}.nav-links a{color:var(--text);font-size:.88rem;font-weight:500;padding:7px 14px;border-radius:99px;transition:all .25s}.nav-links a:hover{color:var(--heading);background:var(--card)}.nav-links a.active{color:var(--heading);background:color-mix(in srgb,var(--accent) 14%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}.nav-actions{display:flex;gap:8px;align-items:center}.icon-btn{background:var(--card);border:1px solid var(--border);color:var(--text);width:38px;height:38px;border-radius:12px;display:grid;place-items:center;cursor:pointer;font-size:.95rem;transition:all .25s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.icon-btn:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.burger{display:none}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;padding:120px 0 0}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.aurora{position:absolute;border-radius:50%;filter:blur(130px);opacity:.5;animation:drift 14s ease-in-out infinite alternate}.a1{width:560px;height:560px;background:var(--accent-2);top:-180px;right:-80px}.a2{width:480px;height:480px;background:var(--accent);bottom:-160px;left:-140px;animation-delay:-5s;opacity:.32}.a3{width:380px;height:380px;background:var(--accent-3);top:30%;left:38%;animation-delay:-9s;opacity:.2}@keyframes drift{0%{transform:translate(0) scale(1)}to{transform:translate(60px,50px) scale(1.15)}}.grid-lines{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.35;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse 90% 70% at 50% 40%,black 20%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 40%,black 20%,transparent 75%)}.noise{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.04;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.hero-inner{position:relative;z-index:1}.hero-layout{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:48px}.hero-copy{min-width:0}.hero-hello{display:inline-flex;align-items:center;gap:9px;font-size:.82rem;font-weight:600;letter-spacing:.4px;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);padding:7px 16px;border-radius:99px;margin-bottom:22px}.dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent);animation:pulse 1.8s infinite}@keyframes pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 60%,transparent)}70%{box-shadow:0 0 0 9px transparent}to{box-shadow:0 0 0 0 transparent}}.hero-name{font-size:clamp(2.6rem,6.4vw,4.4rem);color:var(--heading);line-height:1.08;letter-spacing:-2px;font-weight:800;margin-bottom:10px}.gradient-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-role{font-size:clamp(1.35rem,3.4vw,2.1rem);color:var(--muted);font-weight:700;margin-bottom:20px;min-height:1.3em}.typing{color:var(--heading)}.cursor{color:var(--accent);animation:blink 1s step-end infinite;font-weight:400}@keyframes blink{50%{opacity:0}}.hero-tagline{max-width:540px;color:var(--muted);margin-bottom:30px;font-size:1.02rem}.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:26px}.btn{display:inline-flex;align-items:center;gap:10px;padding:13px 26px;border-radius:14px;font-weight:600;font-size:.94rem;transition:all .3s cubic-bezier(.22,1,.36,1);cursor:pointer;border:1.5px solid transparent}.btn-primary{background:var(--grad);color:#fff;box-shadow:0 8px 28px color-mix(in srgb,var(--accent-2) 40%,transparent);background-size:160% 160%}.btn-primary:hover{transform:translateY(-3px) scale(1.02);background-position:100% 50%;box-shadow:0 14px 38px color-mix(in srgb,var(--accent-2) 55%,transparent)}.btn-ghost{background:var(--card);border-color:var(--border);color:var(--heading);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-3px)}.btn-arrow{transition:transform .3s}.btn-primary:hover .btn-arrow{transform:translate(4px)}.hero-meta{display:flex;gap:20px;flex-wrap:wrap;color:var(--muted);font-size:.87rem;align-items:center}.hero-meta a{display:inline-flex;align-items:center;gap:7px;color:var(--muted);transition:all .25s}.hero-meta a:hover{color:var(--accent);transform:translateY(-2px)}.photo-wrap{position:relative;width:min(300px,64vw);aspect-ratio:1;display:grid;place-items:center}.photo-ring{width:84%;height:84%;border-radius:50%;background:var(--grad);padding:6px;box-shadow:var(--glow),var(--shadow)}@keyframes morph{0%{border-radius:32% 68% 63% 37%/43% 38% 62% 57%}50%{border-radius:55% 45% 40% 60%/55% 45%}to{border-radius:42% 58% 62% 38%/38% 60% 40% 62%}}.photo-img,.photo-fallback{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block;filter:saturate(1.05)}.photo-fallback{display:grid;place-items:center;font-size:4rem;font-weight:800;color:#fff;background:linear-gradient(140deg,#0d1222,#1b2440)}.orbit{position:absolute;width:96%;height:96%;border-radius:50%;border:1.5px dashed color-mix(in srgb,var(--accent) 40%,transparent);animation:spin 26s linear infinite;pointer-events:none}.o2{width:110%;height:110%;border-color:color-mix(in srgb,var(--accent-3) 35%,transparent);animation-duration:40s;animation-direction:reverse}@keyframes spin{to{transform:rotate(360deg)}}.badge{position:absolute;font-size:.74rem;font-weight:700;color:var(--heading);background:color-mix(in srgb,var(--card-solid) 82%,transparent);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:6px 13px;border-radius:99px;white-space:nowrap;animation:bob 4s ease-in-out infinite;box-shadow:var(--shadow);z-index:2}.badge-react{top:6%;right:-4%}.badge-ml{bottom:20%;left:-8%;animation-delay:-1.5s}.badge-net{bottom:-2%;right:0;animation-delay:-3s}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}.marquee{position:relative;z-index:1;margin-top:auto;width:100%;align-self:stretch;border-block:1px solid var(--border);background:color-mix(in srgb,var(--card-solid) 50%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden;padding:15px 0;mask-image:linear-gradient(90deg,transparent,black 8%,black 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,black 8%,black 92%,transparent)}.marquee-track{display:flex;gap:34px;width:max-content;animation:scroll 30s linear infinite}.marquee-track span{color:var(--muted);font-weight:600;font-size:.9rem;white-space:nowrap;display:flex;align-items:center;gap:34px}.marquee-track i{color:var(--accent);font-style:normal}@keyframes scroll{to{transform:translate(-50%)}}.section{padding:110px 0;position:relative}.section-alt{background:var(--bg-alt)}.section-title{font-size:clamp(1.8rem,4vw,2.4rem);color:var(--heading);margin-bottom:10px;font-weight:800;letter-spacing:-.8px}.section-sub{color:var(--muted);margin-bottom:48px;max-width:560px}.section-title:after{content:"";display:block;width:64px;height:4px;border-radius:4px;margin-top:12px;background:var(--grad)}.glass,.stat-card,.timeline-card,.project-card,.skill-card,.edu-card,.contact-card{background:var(--card);border:1px solid var(--border);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.about-grid{display:grid;grid-template-columns:1.25fr .95fr;gap:52px;align-items:center}.about-text p{margin-bottom:16px;font-size:1.01rem}.about-text strong{color:var(--heading)}.about-quote{border-left:3px solid var(--accent);padding:10px 18px;font-style:italic;color:var(--muted);background:color-mix(in srgb,var(--accent) 7%,transparent);border-radius:0 10px 10px 0}.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stat-card{border-radius:20px;padding:28px 18px;text-align:center;transition:all .35s cubic-bezier(.22,1,.36,1)}.stat-card:hover{transform:translateY(-7px) scale(1.02);border-color:var(--accent);box-shadow:var(--glow)}.stat-value{display:block;font-size:2.2rem;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.stat-label{font-size:.83rem;color:var(--muted)}.timeline{position:relative;padding-left:36px}.timeline:before{content:"";position:absolute;left:12px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--accent),var(--accent-2),var(--accent-3));opacity:.45}.timeline-item{position:relative;margin-bottom:26px}.timeline-marker{position:absolute;left:-36px;top:22px;width:26px;height:26px;border-radius:50%;background:var(--card-solid);border:2px solid var(--accent);display:grid;place-items:center;color:var(--accent);font-size:.58rem;z-index:1;box-shadow:var(--glow)}.timeline-card{border-radius:20px;overflow:hidden;transition:all .3s}.timeline-card:hover{border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:var(--shadow);transform:translate(4px)}.timeline-head{display:flex;align-items:center;gap:16px;padding:20px 24px;cursor:pointer;flex-wrap:wrap}.timeline-head h3{color:var(--heading);font-size:1.06rem}.company{color:var(--accent);font-size:.87rem;font-family:monospace}.period{margin-left:auto;font-size:.78rem;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);padding:5px 14px;border-radius:99px;white-space:nowrap}.chev{color:var(--muted);transition:transform .35s;flex-shrink:0}.timeline-item.collapsed .chev{transform:rotate(-90deg)}.timeline-body{padding:0 24px 22px 46px}.timeline-body li{margin-bottom:9px;font-size:.92rem}.timeline-body li::marker{color:var(--accent)}.timeline-item.collapsed .timeline-body{display:none}.filter-bar{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:38px}.chip{background:var(--card);border:1px solid var(--border);color:var(--muted);padding:8px 18px;border-radius:99px;font-size:.83rem;font-weight:500;cursor:pointer;transition:all .25s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.chip:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.chip-active{background:var(--grad);border-color:transparent;color:#fff;font-weight:600;box-shadow:0 6px 20px color-mix(in srgb,var(--accent-2) 40%,transparent)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px}.project-card{border-radius:22px;padding:28px;display:flex;flex-direction:column;gap:12px;transition:all .35s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.project-img{margin:-28px -28px 0;overflow:hidden;border-radius:22px 22px 0 0;aspect-ratio:16 / 9;background:var(--card, #101418)}.project-img img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .45s cubic-bezier(.22,1,.36,1)}.project-card:hover .project-img img{transform:scale(1.05)}.project-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .4s;background:radial-gradient(500px circle at var(--mx, 50%) var(--my, 0%),color-mix(in srgb,var(--accent) 9%,transparent),transparent 45%);pointer-events:none}.project-card:hover{transform:translateY(-9px);border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:var(--shadow)}.project-card:hover:before{opacity:1}.project-top{display:flex;justify-content:space-between;align-items:center}.folder{font-size:1.9rem;color:var(--accent);filter:drop-shadow(0 0 12px color-mix(in srgb,var(--accent) 45%,transparent))}.project-badge{font-size:.72rem;font-weight:700;color:var(--heading);background:var(--grad);padding:5px 13px;border-radius:99px}.project-card h3{color:var(--heading);font-size:1.12rem;line-height:1.4}.project-desc{font-size:.9rem;color:var(--muted);flex:1}.project-meta{font-size:.8rem;color:var(--muted);font-family:monospace}.tag-row{display:flex;gap:8px;flex-wrap:wrap}.tag-row.center{justify-content:center}.tag{font-size:.74rem;font-family:monospace;font-weight:600;color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 12%,transparent);padding:4px 12px;border-radius:7px;border:1px solid color-mix(in srgb,var(--accent-2) 20%,transparent)}.tag-soft{color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent);border-color:color-mix(in srgb,var(--accent) 20%,transparent);font-size:.85rem;padding:7px 18px;border-radius:99px;font-family:inherit}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:22px}.skill-card{border-radius:22px;padding:28px;transition:all .35s cubic-bezier(.22,1,.36,1)}.skill-card:hover{transform:translateY(-7px);border-color:var(--accent);box-shadow:var(--glow)}.skill-icon{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;background:var(--grad);color:#fff;font-size:1.25rem;margin-bottom:16px;box-shadow:0 8px 24px color-mix(in srgb,var(--accent-2) 35%,transparent)}.skill-card h3{color:var(--heading);font-size:1.02rem;margin-bottom:15px}.soft-skills{margin-top:44px;text-align:center}.soft-skills h3{color:var(--heading);margin-bottom:20px;font-size:1.1rem}.edu-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px}.edu-heading{display:flex;align-items:center;gap:11px;color:var(--heading);margin-bottom:24px;font-size:1.15rem}.edu-heading svg{color:var(--accent)}.edu-card{border-radius:20px;padding:24px;margin-bottom:16px;transition:all .3s}.edu-card:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:var(--shadow)}.edu-card h4{color:var(--heading);font-size:1rem;margin:8px 0 3px}.edu-detail{font-size:.87rem;color:var(--muted)}.contact-inner{text-align:center}.contact-inner .section-title:after{margin-inline:auto}.contact-inner .section-sub{margin-inline:auto}.contact-text{max-width:620px;margin:0 auto 38px;color:var(--muted);font-size:1.02rem}.contact-text strong{color:var(--heading)}.contact-cards{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:38px}.contact-card{display:inline-flex;align-items:center;gap:11px;border-radius:16px;padding:15px 24px;font-size:.9rem;color:var(--text);transition:all .3s}.contact-card svg{color:var(--accent)}a.contact-card:hover{transform:translateY(-5px);border-color:var(--accent);color:var(--heading);box-shadow:var(--glow)}.footer{text-align:center;padding:34px 0;color:var(--muted);font-size:.85rem;border-top:1px solid var(--border)}.heart{color:#ff5b77;animation:heartbeat 1.4s infinite;display:inline-block}@keyframes heartbeat{0%,to{transform:scale(1)}25%{transform:scale(1.25)}}.to-top{position:fixed;bottom:26px;right:26px;width:48px;height:48px;border-radius:14px;background:var(--grad);color:#fff;border:none;cursor:pointer;font-size:1rem;display:grid;place-items:center;box-shadow:0 10px 30px color-mix(in srgb,var(--accent-2) 45%,transparent);transition:all .3s;z-index:90}.to-top:hover{transform:translateY(-5px)}.reveal{opacity:1;transform:none}.reveal.in{animation:revealIn .8s cubic-bezier(.22,1,.36,1) both}@keyframes revealIn{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}.fade-in{animation:fadeInUp .6s cubic-bezier(.22,1,.36,1) both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@media (max-width: 960px){.hero-layout{grid-template-columns:1fr;justify-items:center;text-align:center;gap:40px}.hero-photo{order:-1}.hero-copy{display:flex;flex-direction:column;align-items:center}.hero-tagline{margin-inline:auto}.hero-cta,.hero-meta{justify-content:center}.about-grid,.edu-grid{grid-template-columns:1fr}}@media (max-width: 860px){.nav-links{position:fixed;inset:0 0 0 auto;width:min(72vw,300px);background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;padding:92px 26px;gap:8px;transform:translate(105%);transition:transform .4s cubic-bezier(.22,1,.36,1);border-left:1px solid var(--border);z-index:99}.nav-links.open{transform:translate(0)}.nav-links a{padding:12px 18px}.burger{display:grid}.section{padding:84px 0}}@media (max-width: 520px){.hero-cta .btn{flex:1;justify-content:center;min-width:130px}.contact-cards{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
