@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Sora:wght@500;600;700;800&family=Space+Grotesk:wght@500;600;700&family=Dancing+Script:wght@600;700&display=swap";:root{--sans:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--display:"Sora", "Inter", system-ui, sans-serif;--bg:#0c0a08;--bg-soft:#14110d;--surface:#fff5e609;--surface-2:#fff5e60f;--border:#f0c88c1a;--border-strong:#f0c88c38;--text:#f4ece1;--text-dim:#b3a795;--text-faint:#7d7364;--accent:#e6a94e;--accent-2:#f4cf86;--accent-glow:#e6a94e66;--gradient:linear-gradient(120deg, #e6a94e 0%, #f7d79a 100%);--radius:16px;--radius-lg:24px;--shadow:0 20px 50px -20px #0009;--maxw:1120px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#faf6ef;--bg-soft:#fff;--surface:#3c280a08;--surface-2:#3c280a0d;--border:#3c280a1a;--border-strong:#3c280a2e;--text:#221b12;--text-dim:#6a5c48;--text-faint:#9a8b76;--accent:#b6791d;--accent-2:#d99a34;--accent-glow:#b6791d38;--gradient:linear-gradient(120deg, #b6791d 0%, #d99a34 100%);--shadow:0 20px 50px -24px #50370f47;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{font-family:var(--sans);background:var(--bg);color:var(--text);letter-spacing:.1px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.6;overflow-x:hidden}body:before,body:after{content:"";z-index:-1;filter:blur(120px);opacity:.5;pointer-events:none;border-radius:50%;position:fixed}body:before{background:radial-gradient(circle, var(--accent-glow), transparent 70%);width:55vw;height:55vw;top:-20vw;right:-15vw}body:after{background:radial-gradient(circle,#f7d79a2e,#0000 70%);width:45vw;height:45vw;bottom:-15vw;left:-12vw}h1,h2,h3{font-family:var(--display);color:var(--text);letter-spacing:-.02em;margin:0;line-height:1.12}p{margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid var(--bg);border-radius:20px}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}.section{padding:110px 0;position:relative}@media (width<=768px){.section{padding:72px 0}}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;margin-bottom:16px;font-size:13px;font-weight:600;display:inline-flex}.eyebrow:before{content:"";background:var(--gradient);border-radius:2px;width:26px;height:2px}.section-title{margin-bottom:14px;font-size:clamp(28px,5vw,44px);font-weight:700}.section-sub{color:var(--text-dim);max-width:560px;font-size:17px}.gradient-text{background:var(--gradient);color:#0000;-webkit-background-clip:text;background-clip:text}.btn{font-family:var(--sans);cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:9px;padding:13px 24px;font-size:15px;font-weight:600;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex}.btn-primary{background:var(--gradient);color:#fff;box-shadow:0 10px 30px -8px var(--accent-glow)}.btn-primary:hover{box-shadow:0 16px 40px -8px var(--accent-glow);transform:translateY(-2px)}.btn-ghost{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-ghost:hover{background:var(--surface-2);transform:translateY(-2px)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:transform .25s,border-color .25s,background .25s}.chip{color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:500;display:inline-block}.nav{z-index:100;border-bottom:1px solid #0000;transition:background .3s,border-color .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;position:fixed;top:0;left:0;right:0}.nav.scrolled{background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom-color:var(--border)}.nav-inner{justify-content:space-between;align-items:center;height:72px;display:flex}.nav-logo{font-family:var(--display);letter-spacing:-.02em;align-items:center;gap:10px;font-size:20px;font-weight:800;display:flex}.nav-logo .dot{background:var(--gradient);width:10px;height:10px;box-shadow:0 0 14px var(--accent-glow);border-radius:50%}.nav-links{align-items:center;gap:6px;display:flex}.nav-links a{color:var(--text-dim);border-radius:999px;padding:8px 14px;font-size:14.5px;font-weight:500;transition:color .2s,background .2s}.nav-links a:hover{color:var(--text);background:var(--surface-2)}.icon-btn{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:50%;place-items:center;font-size:17px;transition:transform .2s,border-color .2s;display:grid}.icon-btn:hover{border-color:var(--border-strong);transform:translateY(-2px)}.nav-toggle{display:none}.mobile-menu{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);flex-direction:column;gap:4px;padding:12px 24px 20px;display:none}.mobile-menu a{color:var(--text-dim);border-radius:10px;padding:12px 8px;font-weight:500}.mobile-menu a:hover{background:var(--surface-2);color:var(--text)}@media (width<=820px){.nav-links{display:none}.nav-toggle{display:grid}}.hero{align-items:center;min-height:100svh;padding:120px 0 60px;display:flex;position:relative;overflow:hidden}.hero-inner{z-index:2;width:100%;position:relative}.hero-bgword{font-family:var(--display);letter-spacing:-.03em;white-space:nowrap;color:#0000;-webkit-text-stroke:1.5px var(--border-strong);opacity:.22;z-index:1;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:clamp(80px,17vw,270px);font-weight:800;line-height:1;position:absolute;top:62%;left:50%;transform:translate(-50%,-50%)}.hero-greeting{font-family:var(--display);color:var(--text-dim);justify-content:center;align-items:center;gap:4px;margin-bottom:6px;font-size:clamp(15px,2.4vw,20px);font-weight:500;display:flex}.hero-greeting .wave{transform-origin:70% 70%;margin-right:8px;animation:2.4s ease-in-out infinite wave;display:inline-block}@keyframes wave{0%,60%,to{transform:rotate(0)}10%,30%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}}.hero-greeting .typed{color:var(--accent);font-weight:600}.hero-greeting .caret{color:var(--accent);font-weight:400;animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.hero-name{text-align:center;letter-spacing:-.04em;text-transform:uppercase;margin-bottom:8px;font-size:clamp(52px,13vw,168px);font-weight:800;line-height:.95}.hero-body{grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;margin-top:-8px;display:grid}.hero-col{flex-direction:column;gap:20px;display:flex}.hero-left{align-items:flex-start;padding-top:40px}.hero-right{text-align:right;align-items:flex-end;padding-top:40px}.hero-year{font-family:var(--display);color:var(--text-faint);font-size:15px;font-weight:700}.hero-contact{color:var(--text-dim);flex-direction:column;gap:4px;font-size:14px;display:flex}.hero-contact a:hover{color:var(--accent)}.hero-cta{flex-wrap:wrap;gap:12px;display:flex}.hero-tagline{color:var(--text-dim);max-width:300px;font-size:15.5px}.hero-socials{color:var(--text-dim);gap:16px;font-size:14px;font-weight:500;display:flex}.hero-socials a:hover{color:var(--accent)}.scroll-cue{letter-spacing:.2em;color:var(--text-faint);align-items:center;gap:10px;font-size:12px;display:flex}.scroll-cue .scroll-line{background:var(--border-strong);width:46px;height:1px;position:relative;overflow:hidden}.scroll-cue .scroll-line:after{content:"";background:var(--accent);width:40%;animation:1.8s ease-in-out infinite scrollLine;position:absolute;inset:0}@keyframes scrollLine{0%{transform:translate(-100%)}to{transform:translate(250%)}}.hero-portrait{z-index:3;justify-self:center;margin-top:-24px;position:relative}.portrait-glow{background:radial-gradient(ellipse 60% 55% at 50% 40%, var(--accent-glow), transparent 68%);filter:blur(18px);z-index:0;position:absolute;inset:-8% -16% -4%}.portrait-frame{z-index:1;width:clamp(300px,44vw,520px);height:auto;position:relative;-webkit-mask-image:linear-gradient(#000 90%,#0000 100%);mask-image:linear-gradient(#000 90%,#0000 100%)}.portrait-frame img{object-fit:contain;width:100%;height:auto}.hero-seal{z-index:2;width:150px;height:150px;position:absolute;bottom:128px;left:4px}.seal-spin{width:100%;height:100%;animation:20s linear infinite sealspin}@keyframes sealspin{to{transform:rotate(360deg)}}.seal-text{fill:var(--text-dim);font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;font-size:13px;font-weight:600}.seal-center{color:var(--accent);place-items:center;font-size:24px;display:grid;position:absolute;inset:0}@media (width<=980px){.hero-seal{display:none}}.hero-stats{border-top:1px solid var(--border);z-index:2;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px;padding-top:30px;display:grid;position:relative}.stat{text-align:center}.stat .stat-value{font-family:var(--display);font-size:clamp(30px,5vw,46px);font-weight:800}.stat .stat-label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;margin-top:2px;font-size:13.5px}@media (width<=900px){.hero{padding-top:100px}.hero-body{text-align:center;grid-template-columns:1fr;justify-items:center}.hero-portrait{order:-1;margin-top:-8px}.hero-left,.hero-right{text-align:center;align-items:center}.hero-tagline{max-width:420px}.scroll-cue,.hero-bgword{display:none}}@media (width<=560px){.hero-stats{grid-template-columns:repeat(2,1fr);gap:24px 16px}.portrait-frame{width:260px;height:330px}.hero-bgword{-webkit-text-stroke-width:1px}}.about-grid{grid-template-columns:1fr .9fr;align-items:start;gap:56px;display:grid}.about-text p{color:var(--text-dim);margin-bottom:18px;font-size:17px}.about-text p:first-of-type{color:var(--text);font-size:18px}.about-highlights{gap:12px;display:grid}.about-highlights .hl{align-items:center;gap:14px;padding:16px 18px;font-weight:500;display:flex}.about-highlights .hl-icon{background:var(--accent-glow);width:38px;height:38px;color:var(--accent);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.about-highlights .hl:hover{border-color:var(--border-strong);transform:translate(4px)}.about-label{font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:4px 0 12px;font-size:13px;font-weight:600;display:block}.about-research{margin-top:26px}.chip-row{flex-wrap:wrap;gap:9px;display:flex}.chip-accent{color:var(--text);border-color:var(--border-strong);transition:transform .2s,border-color .2s,color .2s}.chip-accent:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.about-langs{color:var(--text-dim);margin-top:24px;font-size:15.5px}.about-langs .about-label{margin-bottom:6px}.tl-org{color:var(--accent);font-weight:500}@media (width<=820px){.about-grid{grid-template-columns:1fr;gap:36px}}.timeline{margin-top:20px;position:relative}.timeline:before{content:"";background:linear-gradient(var(--accent), transparent);width:2px;position:absolute;top:6px;bottom:6px;left:15px}.tl-item{padding:0 0 34px 52px;position:relative}.tl-item:last-child{padding-bottom:0}.tl-dot{background:var(--bg);border:3px solid var(--accent);width:16px;height:16px;box-shadow:0 0 0 4px var(--accent-glow);border-radius:50%;position:absolute;top:4px;left:8px}.tl-period{letter-spacing:.06em;color:var(--accent);text-transform:uppercase;font-size:13px;font-weight:600}.tl-degree{font-family:var(--display);margin:6px 0 2px;font-size:20px;font-weight:600}.tl-school{color:var(--text);margin-bottom:8px;font-weight:500}.tl-detail{color:var(--text-dim);font-size:15.5px}.projects-grid{grid-template-columns:repeat(2,1fr);gap:22px;margin-top:20px;display:grid}.project{flex-direction:column;padding:26px;display:flex;position:relative;overflow:hidden}.project:after{content:"";background:radial-gradient(400px circle at var(--mx,50%) var(--my,0%), var(--accent-glow), transparent 40%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.project:hover{border-color:var(--border-strong);transform:translateY(-5px)}.project:hover:after{opacity:.5}.project-top{align-items:center;gap:12px;margin-bottom:16px;display:flex}.project-num{font-family:var(--display);color:var(--accent);opacity:.85;font-size:18px;font-weight:800}.project-top .project-icon{margin-left:auto}.project-tag{letter-spacing:.05em;text-transform:uppercase;color:var(--accent-2);background:color-mix(in srgb, var(--accent-2) 12%, transparent);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600}.project-icon{color:var(--text-faint);font-size:20px;transition:color .2s,transform .2s}.project:hover .project-icon{color:var(--accent);transform:translate(3px,-3px)}.project h3{margin-bottom:10px;font-size:21px;font-weight:600}.project p{color:var(--text-dim);flex-grow:1;margin-bottom:18px;font-size:15.5px}.project-tech{flex-wrap:wrap;gap:8px;display:flex}@media (width<=700px){.projects-grid{grid-template-columns:1fr}}.skills-grid{grid-template-columns:repeat(2,1fr);gap:20px;margin-top:20px;display:grid}.skill-group{padding:24px 26px}.skill-group:hover{border-color:var(--border-strong)}.skill-group h3{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px;font-size:15px;font-weight:600}.skill-tags{flex-wrap:wrap;gap:9px;display:flex}.skill-tags .chip{padding:8px 14px;font-size:14px;transition:transform .2s,color .2s,border-color .2s}.skill-tags .chip:hover{color:var(--text);border-color:var(--accent);transform:translateY(-2px)}@media (width<=640px){.skills-grid{grid-template-columns:1fr}}.ach-grid{grid-template-columns:repeat(2,1fr);gap:20px;margin-top:20px;display:grid}.ach{align-items:flex-start;gap:18px;padding:24px 26px;display:flex}.ach:hover{border-color:var(--border-strong);transform:translateY(-4px)}.ach-year{font-family:var(--display);color:#fff;background:var(--gradient);border-radius:10px;flex-shrink:0;padding:8px 12px;font-size:15px;font-weight:800}.ach h3{margin-bottom:6px;font-size:18px;font-weight:600}.ach p{color:var(--text-dim);font-size:15px}@media (width<=640px){.ach-grid{grid-template-columns:1fr}}.contact-card{text-align:center;border-radius:var(--radius-lg);background:radial-gradient(600px circle at 50% -20%, var(--accent-glow), transparent 60%), var(--surface);border:1px solid var(--border);padding:64px 40px;position:relative;overflow:hidden}.contact-card h2{margin-bottom:16px;font-size:clamp(30px,5vw,46px);font-weight:800}.contact-card p{color:var(--text-dim);max-width:520px;margin:0 auto 32px;font-size:18px}.contact-actions{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.contact-socials{justify-content:center;gap:14px;margin-top:34px;display:flex}.footer{border-top:1px solid var(--border);margin-top:40px;padding:32px 0}.footer-inner{color:var(--text-faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;font-size:14.5px;display:flex}.footer a:hover{color:var(--text)}.footer-links{gap:20px;display:flex}.process-list{border-top:1px solid var(--border);margin-top:24px}.process-row{border-bottom:1px solid var(--border);grid-template-columns:80px 200px 1fr 40px;align-items:center;gap:24px;padding:26px 12px;transition:background .3s,padding .3s;display:grid;position:relative}.process-row:before{content:"";background:var(--gradient);transform-origin:top;width:2px;transition:transform .35s;position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.process-row:hover{background:var(--surface);padding-left:24px}.process-row:hover:before{transform:scaleY(1)}.process-num{font-family:var(--display);color:#0000;-webkit-text-stroke:1.5px var(--accent);font-size:clamp(30px,5vw,44px);font-weight:800;transition:color .3s}.process-row:hover .process-num{color:var(--accent)}.process-title{font-family:var(--display);font-size:22px;font-weight:600}.process-detail{color:var(--text-dim);font-size:16px}.process-arrow{color:var(--text-faint);font-size:22px;transition:transform .3s,color .3s}.process-row:hover .process-arrow{color:var(--accent);transform:translate(6px)}@media (width<=760px){.process-row{grid-template-columns:60px 1fr;gap:8px 18px}.process-detail{grid-column:2}.process-arrow{display:none}}.scroll-progress{background:var(--gradient);z-index:200;transform-origin:0%;height:3px;position:fixed;top:0;left:0}@media (width<=560px){.contact-card{padding:44px 24px}}
