:root{--bg-0:#0a0a0f;--bg-1:#0f0f17;--bg-2:#16161f;--bg-3:#1e1e2a;--line:#ffffff14;--line-strong:#ffffff29;--text-1:#f5f5f7;--text-2:#a1a1aa;--text-3:#71717a;--accent:#7c5cff;--accent-soft:#7c5cff1f;--accent-2:#22d3ee;--max-width:1700px;--nav-height:72px;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--ease:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg-0);color:var(--text-1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}::selection{background:var(--accent);color:#fff}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 48px}.section{padding:120px 0;position:relative}.section-label{letter-spacing:.2em;text-transform:uppercase;color:var(--text-3);align-items:center;gap:8px;margin-bottom:24px;font-size:12px;display:inline-flex}.section-label:before{content:"";background:var(--accent);width:24px;height:1px}.section-title{letter-spacing:-.02em;margin-bottom:48px;font-size:clamp(28px,4vw,48px);font-weight:600;line-height:1.2}.section-title em{color:var(--accent);font-style:normal}.btn{transition:all .3s var(--ease);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:12px 24px;font-size:14px;font-weight:500;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#6a49ff;transform:translateY(-1px)}.btn-ghost{border:1px solid var(--line-strong);color:var(--text-1)}.btn-ghost:hover{border-color:var(--text-2);background:#ffffff0a}@media (width<=1024px){.container{padding:0 32px}.section{padding:96px 0}}@media (width<=640px){.container{padding:0 20px}.section{padding:72px 0}}.nav{z-index:100;height:var(--nav-height);transition:all .3s var(--ease);position:fixed;top:0;left:0;right:0}.nav-scrolled{-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line);background:#0a0a0fbf}.nav-inner{justify-content:space-between;align-items:center;gap:32px;height:100%;display:flex}.nav-logo{letter-spacing:.02em;align-items:center;gap:10px;font-size:16px;font-weight:600;display:flex}.nav-logo-mark{color:var(--accent);font-size:18px}.nav-links{align-items:center;gap:4px;list-style:none;display:flex}.nav-link{color:var(--text-2);transition:all .2s var(--ease);border-radius:999px;padding:8px 16px;font-size:14px}.nav-link:hover{color:var(--text-1)}.nav-link.active{color:var(--text-1);background:#ffffff0f}.nav-actions{align-items:center;gap:12px;display:flex}.nav-cta{padding:10px 20px}.nav-toggle{flex-direction:column;gap:5px;padding:8px;display:none}.nav-toggle span{background:var(--text-1);width:22px;height:2px;transition:all .3s var(--ease);border-radius:2px;display:block}@media (width<=768px){.nav-links{top:var(--nav-height);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--line);opacity:0;pointer-events:none;transition:all .3s var(--ease);background:#0a0a0ff5;flex-direction:column;gap:0;padding:16px;position:fixed;left:0;right:0;transform:translateY(-10px)}.nav-links-open{opacity:1;pointer-events:auto;transform:translateY(0)}.nav-links li{width:100%}.nav-link{text-align:left;border-radius:var(--radius-sm);width:100%;padding:14px 16px;font-size:15px;display:block}.nav-toggle{display:flex}.nav-cta{display:none}}.hero{align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero-video{object-fit:cover;z-index:0;opacity:.35;width:100%;height:100%;position:absolute;inset:0}.hero-overlay{z-index:1;background:radial-gradient(80% 60% at 70% 40%, #7c5cff40, transparent 70%), radial-gradient(60% 50% at 20% 80%, #22d3ee1f, transparent 70%), linear-gradient(180deg, #0a0a0f80 0%, var(--bg-0) 95%);position:absolute;inset:0}.hero-grid{z-index:1;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 75%);mask-image:radial-gradient(#000 30%,#0000 75%)}.hero-content{z-index:2;padding-top:calc(var(--nav-height) + 40px);padding-bottom:80px;position:relative}.hero-meta{border:1px solid var(--line-strong);color:var(--text-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:999px;align-items:center;gap:8px;margin-bottom:32px;padding:6px 14px;font-size:12px;display:inline-flex}.hero-dot{background:#22c55e;border-radius:50%;width:6px;height:6px;box-shadow:0 0 10px #22c55e}.hero-title{flex-direction:column;gap:16px;margin-bottom:32px;display:flex}.hero-name{letter-spacing:-.04em;background:linear-gradient(#fff 0%,#b8b8c0 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(48px,9vw,120px);font-weight:700;line-height:1}.hero-tag{color:var(--text-2);letter-spacing:.01em;font-size:clamp(18px,2.2vw,26px);font-weight:400}.hero-sub{color:var(--text-2);max-width:540px;margin-bottom:48px;font-size:clamp(15px,1.4vw,18px)}.hero-actions{flex-wrap:wrap;gap:12px;margin-bottom:80px;display:flex}.hero-scroll{letter-spacing:.2em;text-transform:uppercase;color:var(--text-3);align-items:center;gap:16px;font-size:11px;display:flex}.hero-scroll-line{background:linear-gradient(90deg, var(--text-3), transparent);width:60px;height:1px;position:relative;overflow:hidden}.hero-scroll-line:after{content:"";background:var(--accent);width:30px;height:1px;animation:2s infinite scrollLine;position:absolute;top:0;left:-30px}@keyframes scrollLine{0%{left:-30px}to{left:60px}}@media (width<=640px){.hero-actions .btn{flex:1;justify-content:center}}.about{background:var(--bg-0)}.about-grid{grid-template-columns:360px 1fr;align-items:start;gap:80px;margin-bottom:96px;display:grid}.about-avatar-wrap{width:100%;max-width:360px;position:relative}.about-avatar-glow{background:radial-gradient(circle at center, var(--accent-soft), transparent 70%);filter:blur(40px);z-index:0;position:absolute;inset:-20px}.about-avatar-frame{z-index:1;aspect-ratio:4/5;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--bg-2);position:relative;overflow:hidden}.about-avatar{object-fit:cover;width:100%;height:100%}.about-avatar-badge{z-index:2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);color:var(--text-1);background:#0a0a0fb3;border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-size:12px;display:inline-flex;position:absolute;bottom:16px;left:16px}.about-avatar-dot{background:#22c55e;border-radius:50%;width:6px;height:6px}.about-bio{color:var(--text-2);max-width:640px;margin-bottom:40px;font-size:16px;line-height:1.8}.about-contact-list{border-top:1px solid var(--line);grid-template-columns:repeat(2,1fr);gap:20px 32px;padding-top:32px;display:grid}.about-contact-item{flex-direction:column;gap:4px;display:flex}.about-contact-label{color:var(--text-3);letter-spacing:.1em;text-transform:uppercase;font-size:12px}.about-contact-value{color:var(--text-1);font-size:15px;transition:color .2s}a.about-contact-value:hover{color:var(--accent)}.about-placeholder{color:var(--text-3);font-style:italic}.about-stats{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);grid-template-columns:repeat(4,1fr);gap:1px;display:grid;overflow:hidden}.about-stat{background:var(--bg-1);text-align:left;padding:40px 32px}.about-stat-value{letter-spacing:-.02em;color:var(--text-1);margin-bottom:8px;font-size:clamp(28px,3vw,40px);font-weight:600}.about-stat-label{color:var(--text-3);font-size:13px}@media (width<=900px){.about-grid{grid-template-columns:1fr;gap:48px}.about-avatar-wrap{max-width:280px;margin:0 auto}.about-stats{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.about-contact-list{grid-template-columns:1fr}.about-stat{padding:28px 20px}}.experience{background:var(--bg-1);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.experience-grid{grid-template-columns:1fr 1fr;gap:80px;display:grid}.exp-col-title{color:var(--text-2);letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--line);align-items:center;gap:12px;margin-bottom:40px;padding-bottom:20px;font-size:14px;font-weight:500;display:flex}.exp-col-icon{font-size:10px}.exp-col-icon.work{color:var(--accent)}.exp-col-icon.edu{color:var(--accent-2)}.timeline{flex-direction:column;gap:40px;display:flex;position:relative}.timeline:before{content:"";background:var(--line);width:1px;position:absolute;top:8px;bottom:8px;left:7px}.timeline-item{grid-template-columns:16px 1fr;gap:24px;display:grid}.timeline-marker{justify-content:center;padding-top:6px;display:flex}.timeline-dot{border:2px solid var(--bg-1);outline:1px solid var(--line-strong);background:var(--bg-0);z-index:1;border-radius:50%;width:14px;height:14px;position:relative}.timeline-dot.work{background:var(--accent)}.timeline-dot.edu{background:var(--accent-2)}.timeline-period{color:var(--text-3);letter-spacing:.1em;margin-bottom:8px;font-size:12px}.timeline-title{color:var(--text-1);margin-bottom:4px;font-size:18px;font-weight:600}.timeline-sub{color:var(--text-2);margin-bottom:12px;font-size:14px}.timeline-desc{color:var(--text-3);font-size:14px;line-height:1.7}.exp-placeholder{border:1px dashed var(--line);border-radius:var(--radius-md);color:var(--text-3);text-align:center;padding:24px;font-size:14px}@media (width<=768px){.experience-grid{grid-template-columns:1fr;gap:60px}}.projects{background:var(--bg-0)}.projects-head{grid-template-columns:1fr 1fr;align-items:end;gap:60px;margin-bottom:80px;display:grid}.projects-desc{color:var(--text-2);padding-bottom:12px;font-size:15px;line-height:1.8}.project-list{flex-direction:column;gap:120px;display:flex}.project-card{grid-template-columns:1.3fr 1fr;align-items:center;gap:60px;display:grid}.project-card.reverse{grid-template-columns:1fr 1.3fr}.project-card.reverse .project-media{order:2}.project-card.reverse .project-info{order:1}.project-media{aspect-ratio:4/3;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--bg-2);position:relative;overflow:hidden}.project-media img{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease)}.project-card:hover .project-media img{transform:scale(1.03)}.project-media-overlay{background:linear-gradient(#0000 50%,#0a0a0f99 100%);justify-content:flex-start;align-items:flex-end;padding:24px;display:flex;position:absolute;inset:0}.project-year{color:var(--text-1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0006;border:1px solid #ffffff1a;border-radius:999px;padding:6px 12px;font-size:14px}.project-info{flex-direction:column;gap:16px;display:flex}.project-index{color:var(--accent);letter-spacing:.1em;font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:13px}.project-category{color:var(--text-3);letter-spacing:.2em;text-transform:uppercase;font-size:12px}.project-title{letter-spacing:-.02em;font-size:clamp(24px,3vw,36px);font-weight:600;line-height:1.2}.project-desc{color:var(--text-2);font-size:15px;line-height:1.8}.project-tags{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.project-tag{background:var(--bg-2);border:1px solid var(--line);color:var(--text-2);border-radius:999px;padding:4px 12px;font-size:12px}.project-link{color:var(--text-1);border-bottom:1px solid var(--line-strong);width:fit-content;transition:all .2s var(--ease);align-items:center;gap:8px;margin-top:8px;padding:12px 0;font-size:14px;display:inline-flex}.project-link:hover{color:var(--accent);border-color:var(--accent);gap:12px}@media (width<=900px){.projects-head{grid-template-columns:1fr;gap:24px}.project-card,.project-card.reverse{grid-template-columns:1fr;gap:32px}.project-card.reverse .project-media,.project-card.reverse .project-info{order:0}.project-list{gap:72px}}.skills{background:var(--bg-1);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.skills-grid{grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:64px;display:grid}.skill-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-lg);transition:all .3s var(--ease);padding:36px 32px}.skill-card:hover{border-color:var(--line-strong);background:var(--bg-3);transform:translateY(-4px)}.skill-card-head{border-bottom:1px solid var(--line);align-items:center;gap:14px;margin-bottom:24px;padding-bottom:20px;display:flex}.skill-icon{border-radius:var(--radius-sm);background:var(--accent-soft);width:40px;height:40px;color:var(--accent);justify-content:center;align-items:center;display:flex}.skill-title{font-size:18px;font-weight:600}.skill-list{flex-direction:column;gap:12px;list-style:none;display:flex}.skill-list li{color:var(--text-2);padding-left:20px;font-size:14px;position:relative}.skill-list li:before{content:"";background:var(--accent);opacity:.6;border-radius:50%;width:6px;height:6px;position:absolute;top:10px;left:0}.tools-wrap{border-top:1px solid var(--line);padding-top:48px}.tools-label{letter-spacing:.2em;text-transform:uppercase;color:var(--text-3);margin-bottom:20px;font-size:12px}.tools-list{flex-wrap:wrap;gap:10px;display:flex}.tool-chip{color:var(--text-2);background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:8px 18px;font-size:13px;transition:all .2s}.tool-chip:hover{color:var(--text-1);border-color:var(--line-strong)}@media (width<=768px){.skills-grid{grid-template-columns:1fr}}.contact{padding-bottom:48px;position:relative;overflow:hidden}.contact-bg{background:radial-gradient(60% 60% at 50% 0%, #7c5cff33, transparent 70%), linear-gradient(180deg, var(--bg-0) 0%, #05050a 100%);z-index:0;position:absolute;inset:0}.contact-inner{z-index:1;position:relative}.contact-title{letter-spacing:-.03em;margin-bottom:24px;font-size:clamp(40px,7vw,88px);font-weight:700;line-height:1.1}.contact-title em{background:linear-gradient(135deg, var(--accent), var(--accent-2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-style:normal}.contact-sub{color:var(--text-2);max-width:560px;margin-bottom:56px;font-size:16px}.contact-card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;gap:32px;padding:40px;display:flex}.contact-main{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius-md);transition:all .3s var(--ease);grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:28px 32px;display:grid}.contact-main:hover{border-color:var(--accent);background:var(--bg-3)}.contact-main-label{letter-spacing:.2em;text-transform:uppercase;color:var(--text-3);font-size:12px}.contact-main-value{letter-spacing:-.02em;font-size:clamp(20px,2.4vw,30px);font-weight:600}.contact-meta{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.contact-meta-item{background:var(--bg-1);flex-direction:column;gap:6px;padding:24px;display:flex}.contact-meta-item span{color:var(--text-3);letter-spacing:.1em;text-transform:uppercase;font-size:12px}.contact-meta-item strong{color:var(--text-1);font-size:15px;font-weight:500}.contact-social{flex-wrap:wrap;gap:10px;display:flex}.contact-social-btn{color:var(--text-2);border:1px solid var(--line);background:0 0;border-radius:999px;padding:10px 20px;font-size:13px;transition:all .2s}.contact-social-btn:hover{color:var(--text-1);border-color:var(--text-2);background:#ffffff08}.contact-footer{border-top:1px solid var(--line);color:var(--text-3);justify-content:space-between;align-items:center;margin-top:80px;padding-top:32px;font-size:13px;display:flex}.contact-logo{color:var(--text-2);align-items:center;gap:10px;display:flex}@media (width<=768px){.contact-card{padding:24px}.contact-main{grid-template-columns:1fr;gap:8px;padding:24px}.contact-main svg{display:none}.contact-meta{grid-template-columns:1fr}.contact-footer{text-align:center;flex-direction:column;gap:12px}}
