:root{--bg-primary: #feffff;--bg-secondary: #ffffff;--bg-tertiary: #f5f7f9;--text-primary: #000000;--text-secondary: #1a1a1a;--text-muted: #3a3a3a;--text-heading: #233d4d;--accent: #ffb703;--accent-light: #ffc857;--accent-hover: #e09f03;--border: #e1e5ea;--border-light: #f1f3f5;--shadow: rgba(16, 24, 40, .08);--shadow-strong: rgba(16, 24, 40, .16)}[data-theme=dark]{--bg-primary: #0f1216;--bg-secondary: #161b22;--bg-tertiary: #1f2630;--text-primary: #f5f7fa;--text-secondary: #d6d9de;--text-muted: #9aa3ad;--text-heading: #e9f1f7;--accent: #ffb703;--accent-light: #ffd166;--accent-hover: #e09f03;--border: #2b3440;--border-light: #364253;--shadow: rgba(0, 0, 0, .35);--shadow-strong: rgba(0, 0, 0, .5)}:root{--font-mono: "JetBrains Mono", "Fira Code", "Courier New", monospace;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--section-padding: 100px;--container-width: 1200px;--container-padding: 24px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;transition:background-color var(--transition-normal),color var(--transition-normal);overflow-x:hidden}body.menu-open{overflow:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-mono);font-weight:600;line-height:1.3;color:var(--text-heading)}h1{font-size:clamp(2.5rem,5vw,4rem)}h2{font-size:clamp(1.75rem,3vw,2.5rem)}h3{font-size:clamp(1.25rem,2vw,1.5rem)}p{color:var(--text-secondary);margin-bottom:1rem}a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-hover)}.container{max-width:var(--container-width);margin:0 auto;padding:0 var(--container-padding)}.section{padding:var(--section-padding) 0}.section:nth-child(2n){background-color:var(--bg-secondary)}.section-title{font-family:var(--font-mono);font-size:clamp(1.75rem,3vw,2.25rem);margin-bottom:3rem;position:relative;display:inline-block;text-transform:uppercase;letter-spacing:.05em}.section-title:after{content:"";position:absolute;left:0;bottom:-4px;width:100%;height:6px;background-color:var(--accent);border-radius:2px}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;background-color:transparent;transition:all var(--transition-normal);padding:1rem 0}.navbar.scrolled{background-color:var(--bg-secondary);box-shadow:0 2px 20px var(--shadow);padding:.75rem 0}.navbar.hidden{transform:translateY(-100%)}.nav-container{max-width:var(--container-width);margin:0 auto;padding:0 var(--container-padding);display:flex;align-items:center;justify-content:space-between}.nav-logo{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;color:var(--text-primary);text-decoration:none}.nav-logo .cursor{animation:blink 1s step-end infinite}.nav-links{display:flex;gap:2rem;list-style:none}.nav-links a{font-family:var(--font-mono);font-size:.875rem;color:var(--text-secondary);text-decoration:none;padding:.5rem 0;position:relative;transition:color var(--transition-fast)}.nav-links a:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background-color:var(--accent);transition:width var(--transition-normal)}.nav-links a:hover,.nav-links a.active{color:var(--text-primary)}.nav-links a:hover:after,.nav-links a.active:after{width:100%}.nav-actions{display:flex;align-items:center;gap:1rem}.lang-toggle{font-family:var(--font-mono);font-size:.75rem;font-weight:600;padding:.4rem .75rem;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.lang-toggle:hover{background-color:var(--accent);color:#fff;border-color:var(--accent)}.theme-toggle{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.theme-toggle:hover{color:var(--text-primary);background-color:var(--bg-tertiary)}.theme-toggle .icon-moon,[data-theme=dark] .theme-toggle .icon-sun{display:none}[data-theme=dark] .theme-toggle .icon-moon{display:block}.menu-toggle{display:none;flex-direction:column;gap:5px;width:30px;height:24px;background:transparent;border:none;cursor:pointer;padding:0}.menu-toggle span{display:block;width:100%;height:2px;background-color:var(--text-primary);transition:all var(--transition-fast)}.menu-toggle.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.menu-toggle.active span:nth-child(2){opacity:0}.menu-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:120px var(--container-padding) 60px;position:relative;overflow:hidden}.hero-decoration{position:absolute;top:0;right:0;width:350px;height:350px;pointer-events:none;z-index:0}.deco-circle{position:absolute;border-radius:50%}.deco-circle--large{width:280px;height:280px;background-color:var(--accent);top:-60px;right:-60px}.deco-circle--small{width:80px;height:80px;background-color:var(--text-heading);top:80px;right:160px}[data-theme=dark] .deco-circle--small{background-color:#3a5a6d}.hero-content{max-width:var(--container-width);margin:0 auto;width:100%;display:grid;grid-template-columns:auto 1fr;gap:4rem;align-items:center}.hero-image{flex-shrink:0}.profile-photo{width:250px;height:250px;border-radius:50%;object-fit:cover;border:4px solid var(--border);box-shadow:0 8px 30px var(--shadow);transition:all var(--transition-normal)}.profile-photo:hover{border-color:var(--accent);transform:scale(1.02);box-shadow:0 12px 40px var(--shadow-strong)}.image-placeholder{width:250px;height:250px;border-radius:50%;background-color:var(--bg-tertiary);border:3px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.875rem;color:var(--text-muted);transition:all var(--transition-normal)}.image-placeholder:hover{border-color:var(--accent)}.hero-text{flex:1}.hero-greeting{font-family:var(--font-mono);font-size:1rem;color:var(--accent);margin-bottom:.5rem}.hero-name{font-size:clamp(2.5rem,6vw,4.5rem);margin-bottom:1rem;letter-spacing:-.02em;position:relative;display:inline-block;text-transform:uppercase}.hero-name:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:8px;background-color:var(--accent);border-radius:2px;z-index:-1}.hero-title{font-family:var(--font-mono);font-size:clamp(1.25rem,2.5vw,1.75rem);color:var(--text-secondary);margin-bottom:1.5rem;min-height:2.5rem;display:flex;align-items:center}.typed-cursor{font-weight:300;animation:blink .7s step-end infinite;margin-left:2px}.hero-description{font-size:1.125rem;max-width:600px;margin-bottom:2rem;color:var(--text-secondary)}.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}.btn{font-family:var(--font-mono);font-size:.875rem;font-weight:500;padding:.875rem 1.75rem;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer;transition:all var(--transition-fast);text-decoration:none;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background-color:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background-color:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-secondary{background-color:transparent;color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.scroll-indicator{position:absolute;bottom:40px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem;animation:float 2s ease-in-out infinite}@keyframes float{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-10px)}}.about-content{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}.about-text p{font-size:1.05rem;line-height:1.8}.about-skills h3{margin-bottom:1.5rem}.skills-grid{display:flex;flex-direction:column;gap:1.25rem}.skill-category-group{display:flex;flex-direction:column;gap:.625rem}.skill-category-title{font-family:var(--font-mono);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin:0;padding-bottom:.375rem;border-bottom:1px solid var(--border)}.skill-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;opacity:0;transform:translate(-20px);transition:all var(--transition-normal)}.skill-item.animate{opacity:1;transform:translate(0)}.skill-name{font-family:var(--font-mono);font-size:.875rem;color:var(--text-primary);min-width:140px}.skill-dots{display:flex;gap:6px}.skill-dot{width:12px;height:12px;border-radius:3px;background-color:var(--bg-tertiary);border:1px solid var(--border);transition:all var(--transition-normal);transition-delay:calc(var(--dot-index, 0) * .1s)}.skill-dot.filled{background-color:var(--accent);border-color:var(--accent)}.skill-item.animate .skill-dot.filled{animation:dotFill .4s ease-out forwards}.skill-item.animate .skill-dot[data-index="0"]{animation-delay:.1s}.skill-item.animate .skill-dot[data-index="1"]{animation-delay:.2s}.skill-item.animate .skill-dot[data-index="2"]{animation-delay:.3s}.skill-item.animate .skill-dot[data-index="3"]{animation-delay:.4s}.skill-item.animate .skill-dot[data-index="4"]{animation-delay:.5s}@keyframes dotFill{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.skill-item:hover .skill-dot.filled{transform:scale(1.1);box-shadow:0 0 8px var(--accent)}.timeline{position:relative;padding-left:2rem}.timeline:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background-color:var(--border)}.timeline-item{position:relative;padding-bottom:3rem;opacity:0;transform:translateY(20px);transition:all var(--transition-normal)}.timeline-item:last-child{padding-bottom:0}.timeline-item.animate{opacity:1;transform:translateY(0)}.timeline-marker{position:absolute;left:-2rem;top:.25rem;width:12px;height:12px;background-color:var(--bg-primary);border:2px solid var(--accent);border-radius:50%;transform:translate(-5px);transition:all var(--transition-fast)}.timeline-item:hover .timeline-marker{background-color:var(--accent);transform:translate(-5px) scale(1.2)}.timeline-content{background-color:var(--bg-secondary);padding:1.5rem;border-radius:var(--radius-md);border:1px solid var(--border);transition:all var(--transition-fast)}.timeline-content:hover{border-color:var(--accent);box-shadow:0 4px 20px var(--shadow)}.timeline-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem;flex-wrap:wrap}.timeline-title{font-size:1.125rem;color:var(--text-primary)}.timeline-period{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);white-space:nowrap}.timeline-meta{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;font-size:.875rem;color:var(--text-muted)}.timeline-meta span{display:flex;align-items:center;gap:.25rem}.timeline-gpa{font-family:var(--font-mono);color:var(--accent);font-weight:600}.timeline-type{font-family:var(--font-mono);padding:.2rem .5rem;background-color:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:.75rem}.timeline-description{color:var(--text-secondary);margin-bottom:.5rem}.timeline-highlight{font-size:.875rem;color:var(--accent);margin-top:.75rem}.timeline-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.tag{font-family:var(--font-mono);font-size:.7rem;padding:.3rem .6rem;background-color:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition-fast)}.tag:hover{background-color:var(--accent);color:#fff}.research-grid{display:grid;gap:2rem}.research-card{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;opacity:0;transform:translateY(20px);transition:all var(--transition-normal)}.research-card.animate{opacity:1;transform:translateY(0)}.research-card:hover{border-color:var(--accent);box-shadow:0 8px 30px var(--shadow)}.research-image{width:100%;height:200px;overflow:hidden;border-radius:var(--radius-md) var(--radius-md) 0 0}.research-image img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform var(--transition-normal)}.research-image .image-placeholder{width:100%;height:100%;border-radius:0;background-color:var(--bg-tertiary);border:none;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.875rem;color:var(--text-muted)}.research-card:hover .research-image img{transform:scale(1.05)}.research-content{padding:1.5rem}.research-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem}.research-title{font-size:1.25rem;flex:1;max-width:70%;line-height:1.3}.research-period{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);flex-shrink:0;white-space:nowrap}.research-institution{font-size:.9rem;color:var(--text-muted);margin-bottom:1rem}.research-description{margin-bottom:1rem}.research-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.research-publication{border-top:1px solid var(--border);padding-top:1.5rem;margin-top:1rem}.research-publication h4{font-family:var(--font-mono);font-size:.875rem;color:var(--accent);margin-bottom:.75rem}.publication-citation{font-size:.9rem;font-style:italic;margin-bottom:.5rem}.publication-venue{font-size:.875rem;color:var(--text-muted);margin-bottom:.75rem}.publication-link{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.8rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem}.project-card{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;opacity:0;transform:translateY(30px);transition:all var(--transition-normal)}.project-card.animate{opacity:1;transform:translateY(0)}.project-card:hover{border-color:var(--accent);box-shadow:0 8px 30px var(--shadow);transform:translateY(-4px)}.project-image{width:100%;height:180px;overflow:hidden;border-radius:var(--radius-md) var(--radius-md) 0 0}.project-image img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform var(--transition-normal)}.project-image .image-placeholder{width:100%;height:100%;border-radius:0;background-color:var(--bg-tertiary);border:none;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:.875rem;color:var(--text-muted)}.project-card:hover .project-image img{transform:scale(1.05)}.project-content{padding:1.5rem}.project-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.25rem}.project-title{font-size:1.25rem}.project-period{font-family:var(--font-mono);font-size:.8rem;color:var(--accent)}.project-subtitle{font-size:.9rem;color:var(--text-secondary);margin-bottom:.5rem}.project-institution{font-size:.85rem;color:var(--text-muted);margin-bottom:1rem}.project-award{background:linear-gradient(135deg,var(--accent),var(--accent-light));color:#fff;font-family:var(--font-mono);font-size:.75rem;padding:.5rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem}.project-description{font-size:.95rem;margin-bottom:1rem}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.project-links{display:flex;gap:1rem;flex-wrap:wrap}.project-link{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.8rem;padding:.5rem .75rem;background-color:var(--bg-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.project-link:hover{background-color:var(--accent);color:#fff}.awards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.award-card{display:flex;gap:1.5rem;padding:1.5rem;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);opacity:0;transform:translateY(20px);transition:all var(--transition-normal)}.award-card.animate{opacity:1;transform:translateY(0)}.award-card:hover{border-color:var(--accent);box-shadow:0 4px 20px var(--shadow)}.award-icon{flex-shrink:0;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background-color:var(--bg-tertiary);border-radius:var(--radius-md);color:var(--accent)}.award-content{flex:1}.award-title{font-size:1rem;margin-bottom:.25rem}.award-year{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);display:block;margin-bottom:.75rem}.award-description{font-size:.9rem;color:var(--text-secondary)}.campus-activities-grid{display:grid;gap:1.5rem}.campus-activity-card{padding:1.5rem;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);opacity:0;transform:translateY(20px);transition:all var(--transition-normal)}.campus-activity-card.animate{opacity:1;transform:translateY(0)}.campus-activity-card:hover{border-color:var(--accent);box-shadow:0 4px 20px var(--shadow)}.campus-activity-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.campus-activity-title{font-size:1.125rem;margin-bottom:.25rem}.campus-activity-organization{font-size:.9rem;color:var(--text-muted)}.campus-activity-period{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);flex-shrink:0;white-space:nowrap}.campus-activity-description{margin-bottom:1rem;line-height:1.6}.campus-activity-tags{display:flex;flex-wrap:wrap;gap:.5rem}.contact-content{text-align:center;max-width:600px;margin:0 auto}.contact-description{font-size:1.125rem;margin-bottom:2rem}.contact-links{display:flex;justify-content:center;flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem}.contact-link{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:.9rem;color:var(--text-primary);transition:all var(--transition-fast)}.contact-link:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 15px var(--shadow)}.contact-link svg{color:var(--accent)}.contact-location{display:flex;justify-content:center;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.9rem}.footer{padding:3rem var(--container-padding);background-color:var(--bg-secondary);border-top:1px solid var(--border);text-align:center}.footer p{font-family:var(--font-mono);font-size:.875rem;color:var(--text-muted);margin-bottom:.5rem}.footer-credits{font-size:.8rem!important;opacity:.7}@media(max-width:1024px){.about-content{grid-template-columns:1fr;gap:3rem}.hero-content{grid-template-columns:1fr;text-align:center;gap:2rem}.hero-image{order:-1;justify-self:center}.hero-description{margin-left:auto;margin-right:auto}.hero-cta{justify-content:center}}@media(max-width:768px){:root{--section-padding: 60px}.nav-links{position:fixed;inset:0;background-color:var(--bg-primary);flex-direction:column;justify-content:center;align-items:center;gap:2rem;opacity:0;visibility:hidden;transition:all var(--transition-normal)}.nav-links.active{opacity:1;visibility:visible}.nav-links a{font-size:1.25rem}.menu-toggle{display:flex;z-index:1001}.image-placeholder,.profile-photo{width:180px;height:180px}.projects-grid{grid-template-columns:1fr}.timeline{padding-left:1.5rem}.timeline-marker{left:-1.5rem}.contact-links{flex-direction:column;align-items:center}.contact-link{width:100%;max-width:300px;justify-content:center}}@media(max-width:480px){.hero-name{font-size:2rem}.hero-title{font-size:1rem}.btn{width:100%;justify-content:center}.hero-cta{flex-direction:column}.award-card{flex-direction:column;text-align:center}.award-icon{margin:0 auto}}body:not(.loaded) *{animation-duration:0s!important;transition-duration:0s!important}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.loaded .hero-content{animation:fadeInUp .8s ease-out}.loaded .hero-greeting{animation:fadeInUp .8s ease-out .1s both}.loaded .hero-name{animation:fadeInUp .8s ease-out .2s both}.loaded .hero-title{animation:fadeInUp .8s ease-out .3s both}.loaded .hero-description{animation:fadeInUp .8s ease-out .4s both}.loaded .hero-cta{animation:fadeInUp .8s ease-out .5s both}
