:root{--bg:#f5f9ff;--surface:#fff;--surface-2:#eaf2ff;--ink:#14223a;--muted:#4a5f85;--line:#cdddff;--primary:#1d5ad4;--primary-2:#123a98;--accent:#2a78ff;--ring:#5a95ff;--shadow:0 18px 38px #1644a024;color:var(--ink);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Avenir Next,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 14% 4%, #2a78ff2b, transparent 34%), radial-gradient(circle at 88% 18%, #1d5ad424, transparent 32%), var(--bg);min-height:100vh;margin:0}a{color:inherit;text-decoration:none}.page{width:min(1140px,92vw);margin:0 auto;padding:1.25rem 0 3rem;position:relative}.icon{flex-shrink:0;width:1rem;height:1rem}.bg-orb{filter:blur(7px);z-index:-1;opacity:.45;border-radius:999px;position:fixed}.orb-a{background:linear-gradient(130deg,#215edc66,#215edc0f);width:300px;height:300px;top:120px;left:-140px}.orb-b{background:linear-gradient(130deg,#2a78ff61,#2a78ff0a);width:380px;height:380px;top:430px;right:-160px}.topbar{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);background:#ffffffd6;border-radius:999px;justify-content:space-between;align-items:center;padding:.6rem 1rem;display:flex;position:sticky;top:.75rem;box-shadow:0 10px 24px #194fb31c}.brand{letter-spacing:.08em;font-weight:700}.mail-entry{color:var(--muted);align-items:center;gap:.4rem;font-size:.9rem;display:inline-flex}main{gap:1.1rem;margin-top:1.2rem;display:grid}.hero{color:#eff5ff;box-shadow:var(--shadow);background:linear-gradient(132deg,#1c58cf,#123a98);border-radius:28px;padding:clamp(1.6rem,4vw,2.5rem)}.badge{letter-spacing:.08em;border:1px solid #f1f7ff94;border-radius:999px;padding:.3rem .84rem;font-size:.84rem;display:inline-flex}h1{margin:.8rem 0 0;font-size:clamp(2rem,4.8vw,3.4rem);line-height:1.1}.hero-subtitle{color:#f1f7fff7;margin:.78rem 0 0;font-size:1.12rem}.hero-intro{color:#ebf4fff0;max-width:760px;margin-top:.86rem}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.15rem;display:flex}.btn{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.62rem 1.08rem;font-weight:600;transition:transform .2s,box-shadow .2s,background .2s;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn.primary{color:var(--primary-2);background:#fff;box-shadow:0 9px 18px #081c4f2e}.btn.ghost,.btn.secondary{color:#eef5ff;background:#ffffff14;border-color:#eef6ffab}.view-switch{grid-template-columns:repeat(4,minmax(0,1fr));gap:.86rem;display:grid}.view-tile{appearance:none;border:1px solid var(--line);background:var(--surface);text-align:left;color:var(--ink);cursor:pointer;border-radius:18px;gap:.36rem;padding:.72rem .78rem;transition:transform .22s,box-shadow .22s,border-color .22s;display:grid;box-shadow:0 8px 20px #1f60d414}.view-tile:hover{transform:translateY(-2px);box-shadow:0 12px 24px #1f60d424}.view-tile-active{background:linear-gradient(#fff,#f0f6ff);border-color:#8ab4ff;box-shadow:0 14px 28px #2770ec2e}.window-dots{gap:.24rem;display:inline-flex}.window-dots i{background:#bed6ff;border-radius:999px;width:.4rem;height:.4rem}.window-dots i:first-child{background:#8fb7ff}.window-dots i:nth-child(2){background:#7eaafd}.window-dots i:nth-child(3){background:#6e9df8}.view-icon{color:var(--primary)}.view-tile strong{font-size:.96rem}.view-tile small{color:var(--muted)}.section-title{margin-top:.4rem}.section-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);align-items:center;gap:.36rem;margin:0;font-size:.8rem;display:inline-flex}.section-title h2{margin:.28rem 0 0;font-size:clamp(1.45rem,2.6vw,1.96rem)}.metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:.88rem;margin-top:.85rem;display:grid}.skill-grid,.project-grid,.edu-award-layout,.timeline-content,.edu-list{gap:.88rem;display:grid}.skill-grid,.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.88rem}.metric-card,.skill-card,.timeline-card,.project-card,.edu-card,.award-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:1rem 1.1rem;box-shadow:0 8px 20px #1f5ed814}.card-clickable{cursor:pointer;transition:transform .22s,box-shadow .22s,border-color .22s,background .22s}.card-clickable:hover{transform:translateY(-2px);box-shadow:0 14px 22px #1f5ed824}.card-clickable:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.card-active{background:linear-gradient(160deg,#fff,#eaf2ff);border-color:#8ab4ff;box-shadow:0 16px 28px #2369e333}.card-bump{animation:.62s cubic-bezier(.22,1,.36,1) mac-window-spring}@keyframes mac-window-spring{0%{transform:translate(0,0)scale(1)}28%{transform:translate(13px)scale(1.012)}48%{transform:translate(-7px)scale(.995)}68%{transform:translate(4px)scale(1.004)}to{transform:translate(0,0)scale(1)}}.metric-card p,.skill-card p,.project-role,.project-summary,.timeline-head p,.edu-card p{color:var(--muted)}.metric-card p{margin:0;font-size:.84rem}.metric-card h3{margin:.5rem 0 0;font-size:1.22rem}.metric-card small{color:var(--muted)}.skill-card h3,.timeline-card h3,.project-card h3,.edu-card h3,.award-card h3{align-items:center;gap:.4rem;margin:0;font-size:1.08rem;display:flex}.skill-card ul,.timeline-card ul,.project-card ul,.award-card ul{gap:.4rem;margin:.62rem 0 0;padding-left:1.1rem;display:grid}.timeline-jump{border:1px solid var(--line);background:var(--surface);border-radius:18px;margin-top:.9rem;padding:.95rem 1rem}.timeline-jump h3{align-items:center;gap:.4rem;margin:0;font-size:1rem;display:inline-flex}.jump-actions{flex-wrap:wrap;gap:.55rem;margin-top:.7rem;display:flex}.jump-actions button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#f3f8ff;border-radius:999px;padding:.35rem .75rem}.timeline-layout{grid-template-columns:300px 1fr;gap:.9rem;margin-top:.85rem;display:grid}.timeline-rail{align-self:start;position:sticky;top:5.2rem}.timeline-rail ol{gap:.68rem;margin:0;padding:0 0 0 1.2rem;list-style:none;display:grid;position:relative}.timeline-rail ol:before{content:"";background:linear-gradient(#8eb6ff,#cfe1ff);width:2px;position:absolute;top:.35rem;bottom:.35rem;left:.34rem}.timeline-node{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:.6rem;width:100%;padding:.56rem .7rem;display:flex}.timeline-dot{background:#86b0ff;border-radius:999px;width:.7rem;height:.7rem;box-shadow:0 0 0 3px #86b0ff3d}.timeline-node span{gap:.1rem;display:grid}.timeline-node small{color:var(--muted)}.timeline-node-active{background:#edf4ff;border-color:#8ab4ff;box-shadow:0 10px 18px #256fed26}.timeline-content{align-content:start}.timeline-card{scroll-margin-top:5.5rem}.timeline-card-focus{border-color:#8ab4ff}.timeline-head{justify-content:space-between;gap:1rem;display:flex}.timeline-head span,.edu-card span,.project-head span{color:var(--muted);white-space:nowrap;font-size:.92rem}.project-head{justify-content:space-between;gap:1rem;display:flex}.project-role{margin:.42rem 0 0;font-size:.92rem}.project-summary{margin:.42rem 0 0}.project-tags{flex-wrap:wrap;gap:.45rem;margin-top:.78rem;display:flex}.project-tags span{background:var(--surface-2);color:#204792;border:1px solid #b8cff8;border-radius:999px;padding:.22rem .58rem;font-size:.8rem}.edu-award-layout{grid-template-columns:1.2fr 1fr;margin-top:.88rem}.footer{color:#eef5ff;background:linear-gradient(160deg,#1c56c9,#123a98);border-radius:24px;margin-top:.8rem;padding:1.2rem}.footer h2{color:#eef5ff;margin:0}.footer p{color:#edf5fff2;margin:.45rem 0 0}.reveal{opacity:0;animation:.64s forwards rise;animation-delay:var(--delay,0s);transform:translateY(18px)}@keyframes rise{to{opacity:1;transform:translateY(0)}}@media (width<=990px){.view-switch,.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-layout{grid-template-columns:1fr}.timeline-rail{position:static}.skill-grid,.project-grid,.edu-award-layout{grid-template-columns:1fr}.timeline-head,.project-head{flex-direction:column}.timeline-head span,.project-head span,.edu-card span{white-space:normal}}@media (width<=620px){.page{width:min(1140px,95vw)}.hero{border-radius:22px}.view-switch,.metrics{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.card-bump,.reveal{animation:none}.card-clickable,.btn,.view-tile{transition:none}}
