:root{--bg:#f7f8fa;--surface:rgba(255,255,255,.82);--solid:#fff;--text:#16181d;--muted:#68707d;--line:#e4e7eb;--soft:#eef1f4;--shadow:rgba(20,25,32,.045)}
html[data-theme=dark]{--bg:#0b0d10;--surface:rgba(22,25,30,.84);--solid:#15181d;--text:#f2f4f7;--muted:#a5acb6;--line:#30353d;--soft:#20252c;--shadow:rgba(0,0,0,.22)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:linear-gradient(180deg,var(--solid),var(--bg) 45%,var(--solid));color:var(--text);font-family:Inter,sans-serif;overflow-x:hidden;transition:background .65s ease,color .45s ease}a{color:inherit;text-decoration:none}button{font:inherit}.progress-bar{position:fixed;top:0;left:0;width:0;height:3px;z-index:1100;background:var(--text)}
.site-header{position:fixed;top:0;left:0;right:0;z-index:1050;display:flex;justify-content:flex-end;padding:18px 28px;pointer-events:none}.header-actions{display:flex;gap:8px;pointer-events:auto}.contact-button,.theme-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--solid) 78%,transparent);backdrop-filter:blur(14px);color:var(--text);font-size:.78rem;font-weight:700;transition:.3s}.contact-button:hover,.theme-button:hover{transform:translateY(-2px);background:var(--solid)}.theme-button{width:40px;padding:0;cursor:pointer}.theme-button i{transition:transform .5s}.theme-button:hover i{transform:rotate(18deg)}
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:110px 0 90px}.hero-inner{position:relative;z-index:2}.eyebrow{margin:0 0 12px;color:var(--muted);font:600 .72rem/1.2 "Fira Code",monospace;letter-spacing:.16em}.hero h1{max-width:980px;margin:0;font-size:clamp(2.65rem,5.1vw,5.25rem);line-height:.99;letter-spacing:-.055em;font-weight:800}.cursor{display:inline-block;width:.08em;height:.82em;margin-left:.06em;background:var(--text);animation:blink .8s steps(1) infinite}@keyframes blink{50%{opacity:0}}.hero-description{max-width:700px;margin:28px 0 22px;color:var(--muted);font-size:clamp(1rem,1.5vw,1.18rem);line-height:1.7}.opportunity-card{max-width:720px;display:flex;align-items:center;gap:15px;margin-bottom:20px;padding:13px 15px;border:1px solid var(--line);border-radius:17px;background:var(--surface);backdrop-filter:blur(10px)}.opportunity-icon{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:12px;background:var(--text);color:var(--bg)}.opportunity-label{display:block;margin-bottom:7px;color:var(--muted);font:600 .65rem/1 "Fira Code",monospace;letter-spacing:.12em}.opportunity-tags{display:flex;flex-wrap:wrap;gap:6px}.opportunity-tags span{padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--solid);font-size:.72rem;font-weight:600}.cv-button{display:inline-flex;align-items:center;gap:9px;padding:12px 16px;border-radius:13px;background:var(--text);color:var(--bg);font-size:.82rem;font-weight:700;transition:.2s}.cv-button:hover{color:var(--bg);transform:translateY(-2px)}
.hero-avatar{position:relative;display:flex;justify-content:center;align-items:center;min-height:500px}.avatar-glow{position:absolute;width:390px;height:390px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--text) 10%,transparent),transparent 67%);filter:blur(5px)}.hero-avatar img{position:relative;z-index:1;display:block;width:min(100%,510px);height:auto}.scroll-indicator{position:absolute;right:30px;bottom:30px;display:flex;align-items:center;gap:10px;color:var(--muted);font:600 .62rem "Fira Code",monospace;letter-spacing:.12em;transform:rotate(-90deg) translateX(100%);transform-origin:right bottom}.scroll-indicator i{animation:bounce 1.6s ease-in-out infinite}.scroll-line{width:52px;height:1px;background:var(--line)}@keyframes bounce{50%{transform:translateX(6px)}}
.section{padding-top:110px;padding-bottom:110px}.section-heading{display:flex;gap:18px;margin-bottom:50px}.section-number{color:var(--muted);font:500 .75rem "Fira Code",monospace}.section-heading h2{margin:0;font-size:clamp(2rem,4vw,3.3rem);letter-spacing:-.04em}.timeline{position:relative}.timeline:before{content:"";position:absolute;top:0;bottom:0;left:7px;width:1px;background:var(--line)}.timeline-item{position:relative;padding-left:45px;margin-bottom:60px}.timeline-dot{position:absolute;top:5px;left:0;width:15px;height:15px;border:4px solid var(--solid);border-radius:50%;background:var(--text);box-shadow:0 0 0 1px var(--line)}.timeline-date{margin-bottom:12px;color:var(--muted);font:600 .68rem "Fira Code",monospace;text-transform:uppercase}.academic-card,.course-card,.experience-card,.project-card{border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 15px 45px var(--shadow);transition:.45s}.academic-card{display:flex;gap:26px;padding:28px}.academic-brand{flex:0 0 165px;display:flex;align-items:center;justify-content:center}.academic-brand img{width:150px;max-height:85px;object-fit:contain}.academic-main{flex:1}.academic-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.academic-card h3,.course-card h3,.experience-card h3,.project-card h3{margin:0 0 7px;font-size:1.3rem;letter-spacing:-.025em}.institution{margin:0;color:var(--muted);font-size:.88rem}.academic-card p:not(.institution){max-width:720px;margin:20px 0 16px;color:var(--muted);line-height:1.65}.course-status{display:inline-flex;padding:5px 8px;margin-bottom:12px;border-radius:999px;background:var(--soft);color:var(--text);font:600 .62rem "Fira Code",monospace;white-space:nowrap}.course-status.current{background:var(--text);color:var(--bg);margin:0}.expected-date{display:inline-flex;gap:8px;color:var(--muted);font-size:.78rem}.course-hint{display:flex;align-items:center;gap:8px;margin:-30px 0 17px;color:var(--muted);font:500 .7rem "Fira Code",monospace}.course-hint i{animation:hand 1.5s ease-in-out infinite}@keyframes hand{50%{transform:translateY(-3px) rotate(-5deg)}}
.course-card{width:100%;display:flex;flex-direction:column;align-items:flex-start;padding:24px;color:var(--text);text-align:left;cursor:pointer}.course-card:hover{transform:translateY(-5px);border-color:var(--muted)}.course-card-top{width:100%;display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.course-card-top img{width:88px;max-height:42px;object-fit:contain}.course-card-top i{color:var(--muted)}.course-mode{margin:4px 0 0;color:var(--muted);font-size:.75rem}.course-click{margin-top:auto;padding-top:22px;font:600 .68rem "Fira Code",monospace}.course-click i{transition:.2s}.course-card:hover .course-click i{transform:translateX(4px)}
.experience-section{background:color-mix(in srgb,var(--bg) 82%,var(--solid));transition:.5s}.experience-card,.project-card{padding:30px}.experience-top{display:flex;justify-content:space-between;gap:12px;margin-bottom:25px;color:var(--muted);font:600 .66rem "Fira Code",monospace}.tag{padding:6px 9px;border:1px solid var(--line);border-radius:999px;font-size:.68rem}.role{margin:0;color:var(--muted);font-size:.86rem;font-weight:600}.experience-card p:not(.role){margin:20px 0;color:var(--muted);line-height:1.7}.skills{display:flex;flex-wrap:wrap;gap:7px}.skills span,.modal-skills span{padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:var(--soft);font-size:.68rem;font-weight:600}.project-card{display:flex;flex-direction:column}.project-number{margin-bottom:42px;color:var(--muted);font:600 .68rem "Fira Code",monospace}.project-card p{margin:13px 0 28px;color:var(--muted);line-height:1.65}.project-footer{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem}.project-footer a{color:var(--text);font-weight:700}
.skills-marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}.marquee-track{width:max-content;display:flex;animation:marquee 28s linear infinite}.marquee-group{display:flex;align-items:center;flex-shrink:0;gap:24px;padding:18px 24px;white-space:nowrap}.marquee-group span{color:var(--muted);font:500 .72rem "Fira Code",monospace}.marquee-group b{color:var(--line);font-weight:400}@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.footer{padding:40px 0 45px;text-align:center}.footer a{color:var(--muted);font:600 .72rem "Fira Code",monospace}.course-modal{border:1px solid var(--line);border-radius:24px;overflow:hidden;background:var(--solid);color:var(--text)}.course-modal .modal-header{padding:28px 30px 18px;border:0}.course-modal .modal-body{padding:0 30px 30px}.course-modal h2{font-size:clamp(1.55rem,3vw,2.2rem);letter-spacing:-.035em}.modal-kicker{color:var(--muted);font:600 .64rem "Fira Code",monospace}.course-modal .modal-body>p{color:var(--muted);line-height:1.75}.course-modal h3{font-size:.86rem;text-transform:uppercase;letter-spacing:.08em}.modal-skills{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px}.modal-skills span{background:var(--text);border-color:var(--text);color:var(--bg)}.modal-detail{display:flex;gap:11px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--soft);color:var(--muted);font-size:.78rem;line-height:1.6}.modal-detail i{color:var(--text)}.btn-close{filter:none}html[data-theme=dark] .btn-close{filter:invert(1)}
.reveal{opacity:0;transform:translateY(18px);transition:.75s}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:991.98px){.hero{padding-top:120px}.hero-avatar{min-height:auto}.hero-avatar img{width:min(100%,390px)}.academic-card{flex-direction:column}.academic-brand{justify-content:flex-start}}
@media(max-width:767.98px){.site-header{padding:12px 14px}.header-actions{width:100%;justify-content:flex-end}.contact-button,.theme-button{width:40px;height:40px;min-height:40px;padding:0}.contact-button span{display:none}.hero{min-height:auto;padding:105px 0 100px}.hero h1{font-size:clamp(2.35rem,11vw,3.6rem);line-height:1.03}.opportunity-card{align-items:flex-start}.section{padding-top:80px;padding-bottom:80px}.timeline-item{padding-left:30px}.timeline:before{left:5px}.timeline-dot{left:-2px}.academic-card{padding:21px}.course-hint{margin-top:-17px;line-height:1.5}.course-card,.experience-card,.project-card{padding:21px}.experience-top,.academic-head{align-items:flex-start;flex-direction:column}.course-modal .modal-header,.course-modal .modal-body{padding-left:22px;padding-right:22px}.marquee-track{animation-duration:22s}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee-track,.cursor,.scroll-indicator i,.course-hint i{animation:none}.reveal{opacity:1;transform:none;transition:none}}

/* Portfolio interaction refinements */
.cv-button{position:relative;overflow:hidden}.cv-arrow{transition:transform .28s ease}.cv-button:hover .cv-arrow{transform:translateY(4px)}
.experience-brand{display:flex;align-items:center;justify-content:flex-start;min-height:72px;margin-bottom:20px}.experience-brand img{width:145px;max-height:70px;object-fit:contain;object-position:left center}.experience-section .col-lg-6:nth-child(2) .experience-brand img{width:125px;max-height:82px}
.interest-card{border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 15px 45px var(--shadow);padding:26px;transition:.35s}.interest-card:hover{transform:translateY(-5px);border-color:var(--muted)}.interest-icon{width:42px;height:42px;display:grid;place-items:center;margin-bottom:22px;border-radius:12px;background:var(--text);color:var(--bg);font-size:1rem;transition:transform .35s}.interest-card:hover .interest-icon{transform:rotate(-5deg) scale(1.05)}.interest-card h3{margin:0 0 8px;font-size:1.15rem;letter-spacing:-.02em}.interest-card p{margin:0;color:var(--muted);line-height:1.65;font-size:.82rem}
@media(max-width:767.98px){.experience-brand{min-height:62px}.experience-brand img{width:125px;max-height:62px}.experience-section .col-lg-6:nth-child(2) .experience-brand img{width:110px;max-height:70px}.interest-card{padding:21px}}
