@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600&display=swap";:root{font-family:DM Sans,Noto Sans SC,sans-serif;color:#303330;background:#f8f7f4;font-synthesis:none;--bg:#f8f7f4;--surface:#fffefd;--text:#303330;--muted:#858780;--line:#e5e4de;--blue:#5e7fa5;--soft-blue:#e8eef4;--card:#f0f1ed;--shadow:0 14px 45px #35434b0b}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:5px}button svg,a svg{flex-shrink:0}header{height:88px;background:color-mix(in srgb,var(--bg) 92%,transparent);border-bottom:1px solid color-mix(in srgb,var(--line) 50%,transparent);position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.nav-wrap{max-width:1160px;margin:auto;height:100%;display:flex;align-items:center;gap:32px;padding:0 28px}.brand{font-size:22px;font-weight:700;letter-spacing:-.8px;white-space:nowrap}.brand>span{color:var(--blue);margin-left:2px}nav{display:flex;align-items:center;gap:34px;margin-left:auto;font-size:13px;color:#737872}nav a:hover{color:var(--blue)}.nav-resume{display:flex;align-items:center;gap:9px;background:none;border:0;padding:0;color:var(--text)}.icon-button{height:36px;width:36px;border:1px solid var(--line);border-radius:10px;display:grid;place-items:center;background:var(--surface)}.theme-toggle{margin-left:3px}.mobile-toggle{display:none}.hero{position:relative;min-height:680px;overflow:hidden;background:radial-gradient(ellipse 39% 85% at 96% 14%,#c8d6e699,transparent 80%),radial-gradient(ellipse 35% 60% at 2% 95%,#c8d3da66,transparent 75%),radial-gradient(ellipse 27% 50% at 61% 68%,#e9ddd455,transparent 80%)}.hero-inner{max-width:1160px;margin:auto;padding:111px 28px 130px;display:grid;grid-template-columns:1fr 300px;gap:70px;align-items:center}.eyebrow{margin:0 0 27px;color:var(--blue);font-size:13px;letter-spacing:.7px;display:flex;align-items:center;gap:9px;font-weight:600}.status-dot{width:7px;height:7px;background:#7f9a8c;border-radius:50%;box-shadow:0 0 0 4px #7f9a8c11}.hero h1{font-family:DM Sans,Noto Sans SC,sans-serif;font-size:84px;line-height:1.05;letter-spacing:-3px;font-weight:400;margin:0 0 27px;display:flex;align-items:baseline;gap:23px}.chinese-name{font-family:Noto Sans SC,sans-serif;font-size:18px;color:#969991;letter-spacing:1px;font-weight:400}.hero h2{font-weight:500;font-size:23px;letter-spacing:1px;margin:0 0 13px}.hero-role{color:var(--muted);font-size:15px;margin:0}.hero-description{font-size:14px;line-height:1.95;color:#82867f;margin:28px 0 22px}.hero-meta{font-size:12px;color:#92978f;display:flex;align-items:center;gap:14px}.hero-meta>span{display:flex;align-items:center;gap:5px}.meta-separator{width:3px;height:3px;border-radius:50%;background:#c6c9c2}.hero-actions{display:flex;gap:11px;align-items:center;margin-top:31px}.button{white-space:nowrap;flex-shrink:0;height:46px;padding:0 20px;border-radius:7px;display:inline-flex;gap:10px;align-items:center;justify-content:center;font-size:13px;font-weight:500;transition:transform .2s,background .2s;border:1px solid transparent}.button:hover{transform:translateY(-2px)}.primary{background:var(--blue);color:#fff;box-shadow:0 3px 8px #4b699710}.primary:hover{background:#4e7099}.secondary{background:var(--surface);border-color:var(--line)}.social-button{display:grid;place-items:center;height:40px;width:35px;background:transparent;border:0;color:#7c827b}.social-button:hover{color:var(--blue)}.portrait-area{margin-top:16px;position:relative}.portrait{position:relative;width:264px;height:302px;margin:auto;background:linear-gradient(150deg,#f5f6f3,#e3e8e6);border:8px solid var(--surface);border-radius:19px;box-shadow:0 14px 44px #52606812,0 0 0 1px #d8ded9aa;overflow:hidden;transform:rotate(2deg)}.portrait-grid{position:absolute;inset:0;background-image:linear-gradient(#8496890a 1px,transparent 1px),linear-gradient(90deg,#8496890a 1px,transparent 1px);background-size:24px 24px}.portrait-illustration{position:absolute;bottom:0;left:0;width:100%;height:100%}.portrait-label{position:absolute;bottom:0;left:0;right:0;background:#fffffff0;color:#7d897e;padding:12px 13px;font-size:8px;letter-spacing:2px;display:flex;justify-content:space-between}.portrait-label span{font-size:14px;line-height:8px}.portrait-caption{font-family:Georgia,serif;font-style:italic;color:#92978c;font-size:12px;text-align:center;margin-top:25px}.tiny-spark{font-size:20px;color:#97a88e;vertical-align:middle;margin-right:5px}.scroll-cue{position:absolute;left:calc(50% - 552px);bottom:30px;display:flex;gap:18px;align-items:center;color:#92988f;font-size:8px;letter-spacing:2px}.scroll-cue>span:last-child{font-size:18px}.hero-index{position:absolute;bottom:35px;right:calc(50% - 552px);font-size:8px;color:#a2a79d;letter-spacing:1.5px}.section{max-width:1160px;padding:88px 28px 0;margin:auto;scroll-margin-top:15px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:40px;gap:20px}.section-label{display:inline-block;font-size:10px;letter-spacing:2px;font-weight:600;color:var(--blue);margin-bottom:15px}.section-heading h2,.contact-section h2{font-family:DM Sans,Noto Sans SC,sans-serif;font-size:49px;line-height:1.1;letter-spacing:-1px;font-weight:400;margin:0}.section-heading h2>span,.contact-section h2>span{color:var(--blue)}.heading-note{font-size:11px;color:#9a9d94;padding-bottom:6px;letter-spacing:.8px}.about-layout{display:grid;grid-template-columns:1fr 360px;gap:100px}.about-copy p{font-size:13px;line-height:2.1;color:#85897f;margin:0 0 17px}.about-copy .lead{font-size:20px;line-height:1.8;color:var(--text);letter-spacing:.3px;margin-bottom:22px}.lead>span{color:var(--blue)}.about-copy .placeholder-note,.placeholder-note{font-size:11px;color:#9b9e94;line-height:1.8}.about-card{align-self:start;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:27px 28px;box-shadow:var(--shadow)}.small-label{font-size:8px;letter-spacing:2px;color:#9a9e94;font-weight:600}.about-card>div:not(.card-rule):not(.skill-tags){display:flex;gap:13px;margin-top:16px}.card-symbol{color:var(--blue);font-size:28px;line-height:1}.about-card p{margin:0}.about-card b{font-size:13px;font-weight:500;display:block;margin-bottom:9px}.about-card p span{font-size:11px;color:#969b90}.card-rule{height:1px;background:var(--line);margin:24px 0 20px}.skill-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.skill-tags>span{font-size:10px;padding:7px 10px;border:1px solid var(--line);border-radius:5px;background:var(--bg);color:#7d8578}.card-footnote{display:block;font-size:9px;color:#a7aa9f;margin-top:17px}.education-section{padding-top:80px}.education-row{position:relative;display:flex;gap:25px;padding:31px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.school-icon{width:57px;height:57px;flex-shrink:0;border:1px solid #dce4ea;background:var(--soft-blue);color:var(--blue);font-family:Georgia,serif;font-size:24px;border-radius:11px;display:grid;place-items:center}.education-content{flex:1}.education-title{display:flex;align-items:center;gap:20px;justify-content:space-between;padding-right:140px}.education-title h3{font-size:16px;font-weight:500;margin:0 0 10px}.education-time{font-size:11px;color:#949b91;white-space:nowrap}.education-content>p{font-size:12px;color:#7d857a;margin:0 0 17px}.education-content>p>span{margin:0 8px;color:#b6bbb0}.course-list{font-size:11px;color:#92998e}.course-list>span{color:#687c90;margin-right:13px}.education-content .education-description{font-size:11px;color:#969d92;margin:12px 0 0}.education-badge{font-size:9px;border:1px solid var(--line);border-radius:20px;padding:6px 11px;position:absolute;right:0;top:30px;color:#93998f}.projects-section{padding-top:85px}.projects-section .section-heading{margin-bottom:27px}.project-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;gap:20px}.project-toolbar>p{font-size:12px;color:#969c91;margin:0}.filters{display:flex;gap:5px}.filters button{border:0;background:transparent;border-radius:5px;padding:7px 10px;color:#90978c;font-size:10px;white-space:nowrap}.filters button.active{color:var(--blue);background:var(--soft-blue)}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}.project-card{text-align:left;display:block;padding:0;border:none;background:transparent;width:100%;border-radius:10px}.project-art{position:relative;height:225px;border-radius:9px;overflow:hidden;display:flex;align-items:center;justify-content:center;isolation:isolate}.project-art.website{background:#e5ebee}.project-art.planner{background:#e9e9df}.project-art.data{background:#e6e5ee}.project-open{position:absolute;bottom:13px;right:13px;background:#ffffffc9;border:1px solid #ffffffd9;width:29px;height:29px;border-radius:50%;display:grid;place-items:center;color:#6b787b;opacity:0;transform:translate(-5px);transition:.2s}.project-card:hover .project-open{opacity:1;transform:rotate(-40deg)}.project-card:hover .project-art>div:first-child{transform:translateY(-4px) rotate(0)}.project-art>div:first-child{transition:transform .3s}.mock-browser{width:82%;height:160px;border-radius:5px;background:#fffdfa;box-shadow:0 12px 20px #5d77821c;transform:rotate(-4deg);overflow:hidden;color:#333c39}.mock-toolbar{height:18px;border-bottom:1px solid #eeede6;display:flex;gap:3px;align-items:center;padding:0 7px}.mock-toolbar>i{width:3px;height:3px;border-radius:50%;background:#cccfc7}.mock-toolbar>span{font-size:4px;margin:auto;color:#b3b6ac}.mock-content{position:relative;padding:21px 18px}.mock-kicker{font-size:4px;letter-spacing:1px;color:#7b95a5}.mock-content b{display:block;font-family:Georgia,serif;font-size:20px;line-height:1.2;margin-top:9px;font-weight:400}.mock-content b>span{color:#7b95a5}.mock-lines{display:grid;gap:4px;margin-top:8px}.mock-lines>i{width:80px;height:2px;background:#e4e6df}.mock-lines>i:last-child{width:56px}.mock-pill{width:30px;height:9px;border-radius:2px;background:#7492a8;margin-top:9px}.mock-photo{position:absolute;right:17px;top:38px;background:#d6e0e2;width:61px;height:74px;border-radius:30px 30px 4px 4px;display:grid;place-items:center;font-family:Georgia,serif;font-size:35px;color:#9fb2b9}.mock-photo span{position:absolute;top:-10px;right:-9px;color:#b2b295;font-size:26px}.planner{width:85%;height:160px;background:#fffef8;border-radius:5px;box-shadow:0 12px 20px #73765e1b;transform:rotate(3deg);display:flex;color:#4b5549}.planner-side{width:33px;border-right:1px solid #edeee5;display:flex;align-items:center;flex-direction:column;gap:13px;padding:10px}.planner-side>span{font-size:13px}.planner-side i{background:#e1e4d6;width:11px;height:3px}.planner-main{padding:18px 13px;flex:1}.planner-main>span{font-size:4px;letter-spacing:1px;color:#9b9f8e}.planner-main>b{font-family:Georgia,serif;font-size:12px;font-weight:400;display:block;margin-top:6px}.week{display:flex;justify-content:space-between;margin:12px 0 7px}.week>span{font-size:4px;text-align:center;color:#9ea58d;padding:4px;border-radius:3px}.week>span strong{font-size:6px;display:block;margin-top:4px}.week>span.selected{background:#e2e8d6;color:#738466}.task{font-size:4px;background:#f3f3ea;margin:4px 0;padding:5px;display:flex;align-items:center;gap:4px}.task>i{height:4px;width:4px;border:1px solid #bdc7a8;border-radius:1px}.task small{margin-left:auto;font-size:3px;color:#a0a593}.data-art{width:80%;height:176px;background:#faf9fc;border-radius:6px;padding:18px 18px 10px;box-shadow:0 12px 20px #77708f1c;transform:rotate(-3deg);color:#565064}.data-art>span{font-size:4px;letter-spacing:1px;color:#ada6b6}.data-art>b{font-family:Georgia,serif;font-size:15px;display:block;margin-top:6px;font-weight:400}.chart{height:101px;display:flex;align-items:flex-end;gap:5px;border-bottom:1px solid #e4e0ed;padding:10px 0 0;overflow:hidden}.chart>i{background:#c5bfd6;flex:1;border-radius:3px 3px 0 0;max-height:90%;transform:scaleY(.5);transform-origin:bottom;margin-bottom:0}.chart>i:nth-child(3n){background:#9185af}.chart>i:nth-child(4n){background:#aea3c8}.chart-bottom{display:flex;justify-content:space-between;margin-top:7px;font-size:4px;letter-spacing:.8px;color:#9d94ac}.project-info{padding-top:20px}.project-category{color:#84917f;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px}.project-category>span{color:#b2b6aa}.project-info h3{font-family:DM Sans,Noto Sans SC,sans-serif;font-size:28px;font-weight:400;margin:11px 0 10px;letter-spacing:-.3px}.project-info h4{font-size:12px;font-weight:500;margin:0 0 10px}.project-info p{font-size:11px;line-height:1.95;color:#92998d;margin:0 0 17px}.project-tags{display:flex;flex-wrap:wrap;gap:7px}.project-tags>span{border:1px solid var(--line);font-size:8px;color:#8d9685;border-radius:4px;padding:4px 7px}.project-note{text-align:center;font-size:10px;color:#a4ab9b;margin:36px 0 0}.contact-section{margin-top:85px;border-top:1px solid var(--line);padding-top:57px;padding-bottom:62px;display:flex;align-items:center;justify-content:space-between}.contact-section h2{font-size:48px}.contact-section p{font-size:12px;color:#92998b;line-height:1.9;margin:19px 0 0}.contact-button{height:46px;min-width:145px}footer{max-width:1104px;margin:0 auto;padding:29px 0 32px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}footer .brand{font-size:17px}footer>span{font-size:10px;color:#a2a899}footer>div{display:flex;gap:20px;align-items:center}.preview-badge{font-size:9px;color:#9aab93}footer>div>a{height:28px;width:28px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:#8d9785}dialog{position:fixed;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:16px;width:min(580px,calc(100% - 32px));max-height:85vh;padding:43px 35px 32px;box-shadow:0 30px 100px #0002}dialog::backdrop{background:#24333c66;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:15px;top:15px;border:none;background:var(--bg)}dialog h2{font-family:DM Sans,Noto Sans SC,sans-serif;font-size:34px;font-weight:400;margin:8px 0 25px}dialog h3{font-size:15px;font-weight:500;margin-top:24px}dialog p{font-size:13px;line-height:1.9;color:var(--muted)}dialog .dialog-art{height:230px}dialog .dialog-art>div{max-width:300px}.contact-placeholder{padding:22px;background:var(--soft-blue);border-radius:8px;margin:25px 0;color:var(--blue);font-size:14px}.resume-sheet h3{border-bottom:1px solid var(--line);padding-bottom:10px}.resume-sheet h2{font-size:31px}.print-button{margin-top:12px}[data-theme=dark]{--bg:#1c2225;--surface:#252c30;--text:#e6e9e4;--muted:#a1aba7;--line:#384145;--blue:#90afcf;--soft-blue:#2e3f4b;--card:#2b3333;background:var(--bg);color:var(--text)}[data-theme=dark] .hero{background:radial-gradient(ellipse 40% 85% at 96% 14%,#42617a55,transparent 80%),radial-gradient(ellipse 35% 60% at 2% 95%,#4c686633,transparent 75%)}[data-theme=dark] .primary{background:#567b9f}[data-theme=dark] nav{color:#a6b0b1}[data-theme=dark] .project-art{filter:brightness(.8)}@media(min-width:1500px){.hero{min-height:720px}.hero-inner{padding-top:132px;padding-bottom:145px}}@media(max-width:1150px){.scroll-cue{left:28px}.hero-index{right:28px}footer{margin:0 28px}.hero-inner{gap:25px}.hero h1{font-size:74px}.chinese-name{font-size:15px}.about-layout{gap:55px;grid-template-columns:1fr 330px}.project-grid{gap:20px}.project-art{height:210px}}@media(max-width:850px){.hero-inner{grid-template-columns:1fr 240px;padding-top:85px;padding-bottom:110px;gap:20px}.hero{min-height:630px}.hero h1{font-size:61px;gap:13px;flex-wrap:wrap}.hero h2{font-size:19px}.chinese-name{font-size:13px}.portrait{width:212px;height:254px}.portrait-caption{font-size:10px}.hero-description,.hero-role{font-size:12px}.hero-meta{font-size:10px}.about-layout{grid-template-columns:1fr 290px;gap:35px}.heading-note{font-size:10px}.section-heading h2{font-size:42px}.project-grid{grid-template-columns:1fr 1fr;gap:30px 24px}.project-toolbar{align-items:flex-start;flex-direction:column;gap:18px}.project-art{height:230px}.education-title{padding-right:0}.education-badge{display:none}}@media(max-width:620px){header{height:71px}.nav-wrap{padding:0 23px;gap:12px}.brand{font-size:20px}.theme-toggle{margin-left:auto}.mobile-toggle{display:grid}nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--surface);padding:22px 25px;border-bottom:1px solid var(--line);box-shadow:var(--shadow);gap:22px}nav.is-open{display:flex;flex-wrap:wrap}.hero{min-height:0}.hero-inner{padding:56px 25px 94px;display:flex;flex-direction:column-reverse;align-items:flex-start;gap:36px}.portrait-area{align-self:flex-end;margin-top:0;margin-right:15px}.portrait{width:148px;height:174px;border-width:6px;border-radius:13px}.portrait-label{font-size:5px;padding:8px;letter-spacing:1px}.portrait-caption{font-size:9px;margin-top:14px}.tiny-spark{font-size:15px}.eyebrow{font-size:10px;margin-bottom:21px}.hero h1{font-size:64px;letter-spacing:-2px;margin-bottom:23px;gap:15px}.hero h2{font-size:20px;letter-spacing:.4px}.hero-role{font-size:12px}.hero-description{font-size:12px;margin:25px 0 19px}.hero-actions{gap:8px;margin-top:27px}.button{padding:0 12px;font-size:11px;height:44px}.social-button{width:28px}.hero-meta{font-size:11px}.scroll-cue{left:25px;bottom:23px;font-size:7px}.hero-index{display:none}.section{padding:62px 25px 0}.section-heading{margin-bottom:30px}.section-heading h2{font-size:39px;letter-spacing:-.7px}.section-label{font-size:9px;letter-spacing:1.6px;margin-bottom:15px}.heading-note{display:none}.about-layout{grid-template-columns:1fr;gap:25px}.about-copy .lead{font-size:18px}.about-copy p{font-size:12px}.about-card{padding:25px}.education-row{gap:17px;padding:25px 0}.school-icon{width:43px;height:46px;font-size:21px;border-radius:8px}.education-title{align-items:flex-start;gap:6px;flex-direction:column}.education-title h3{font-size:15px;margin-bottom:3px}.education-time{font-size:10px;margin-bottom:10px}.education-content>p{font-size:11px}.course-list{font-size:10px;line-height:1.8}.course-list>span{display:block}.education-content .education-description{font-size:10px;line-height:1.8}.project-toolbar>p{font-size:11px}.filters{gap:2px;flex-wrap:wrap}.filters button{padding:7px 9px;font-size:10px}.project-grid{grid-template-columns:1fr;gap:36px}.project-art{height:255px}.project-art>div:first-child{width:77%;max-width:300px}.project-info{padding-top:18px}.project-info h3{font-size:31px}.project-info p{font-size:12px}.project-info h4{font-size:13px}.project-tags>span{font-size:9px}.project-note{font-size:9px;line-height:1.9;text-align:left;margin-top:29px}.contact-section{margin:62px 25px 0;padding:37px 0 40px;align-items:flex-start;flex-direction:column;gap:25px}.contact-section h2{font-size:43px}.contact-section p{font-size:11px;max-width:290px}.contact-button{min-width:135px}footer{margin:0 25px;padding:25px 0;flex-wrap:wrap;gap:17px}footer>span{display:none}footer .brand{font-size:16px}footer>div{gap:10px}.preview-badge{font-size:8px}dialog{padding:45px 24px 25px}dialog h2{font-size:29px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}@media print{body>*{display:none!important}body #root{display:block!important}#root>*{display:none!important}#root dialog[open]{display:block!important;position:static;width:100%;max-height:none;border:0;box-shadow:none;padding:20px;background:#fff;color:#222}dialog::backdrop{display:none}.dialog-close,.print-button{display:none!important}dialog h2{font-size:30px}dialog p{color:#555}}body{background:radial-gradient(ellipse 640px 780px at 100% 5%,#c8d6e67a,transparent 85%),radial-gradient(ellipse 500px 680px at 0% 45%,#c8d3da4d,transparent 85%),radial-gradient(ellipse 480px 600px at 58% 55%,#e9ddd438,transparent 85%),var(--bg);background-attachment:fixed}header{border-bottom:0;height:100px}.nav-wrap{max-width:1360px;padding:0 38px}.brand{font-family:DM Sans,Noto Sans SC,sans-serif;font-size:33px;font-weight:600;letter-spacing:-.5px}nav{gap:12px;font-size:14px}nav>a{padding:11px 16px;border-radius:9px}nav>a:first-child{background:var(--soft-blue);color:var(--blue)}.nav-resume{padding:11px 16px}.theme-toggle{height:40px;width:40px;margin-left:0}.profile-layout{max-width:1240px;display:grid;grid-template-columns:300px minmax(0,1fr);gap:70px;margin:0 auto;padding:52px 36px 72px;align-items:start;scroll-margin-top:100px}.profile-sidebar{text-align:center;position:sticky;top:132px}.profile-portrait{width:252px;height:252px;margin:0 auto 24px}.profile-portrait .portrait{width:100%;height:100%;border:0;border-radius:16px;transform:none;box-shadow:0 8px 25px #35434b12,0 0 0 1px #d8ded970}.profile-portrait .portrait-illustration{height:109%;bottom:-4px}.profile-portrait .portrait-label{font-size:7px;padding:10px 12px;background:#ffffffe6}.profile-sidebar h1{font-family:DM Sans,Noto Sans SC,sans-serif;font-size:45px;font-weight:600;letter-spacing:-.6px;margin:0 0 9px;line-height:1.15}.profile-chinese-name{font-size:13px;letter-spacing:3px;color:#989e97;margin:0 0 15px}.profile-role{color:var(--blue);font-size:17px;margin:0 0 10px}.profile-university{font-size:14px;color:var(--muted);margin:0}.profile-socials{display:flex;align-items:center;justify-content:center;gap:17px;margin:23px 0 25px}.profile-socials .social-button{height:32px;width:29px;color:#758694}.profile-location{display:flex;align-items:center;gap:5px;color:#85919a;font-size:11px;white-space:nowrap}.interests-panel{text-align:left;background:color-mix(in srgb,var(--soft-blue) 68%,transparent);border:1px solid color-mix(in srgb,var(--line) 40%,transparent);border-radius:9px;padding:20px 22px}.interests-panel h2{font-size:14px;font-weight:600;margin:0 0 15px}.interests-panel ul{padding:0;margin:0;list-style:none;display:grid;gap:12px;font-size:13px;color:#76838b}.interests-panel>p{font-size:10px;color:#98a2a4;margin:18px 0 0}.sidebar-resume{background:var(--soft-blue);color:var(--blue);height:38px;padding:0 16px;font-size:12px;margin:23px 0 0}.sidebar-note{display:flex;align-items:center;justify-content:center;gap:8px;color:#9ca69b;font-size:10px;margin:20px 0 0}.sidebar-note .status-dot{width:5px;height:5px;box-shadow:none}.profile-main{min-width:0}.content-section{scroll-margin-top:125px;margin:0 0 37px}.content-section h2{font-family:DM Sans,Noto Sans SC,sans-serif;font-size:34px;line-height:1.2;font-weight:600;margin:0 0 21px;letter-spacing:-.3px}.content-section h2>span{color:var(--blue)}.profile-about>p{font-size:14px;line-height:2;color:#76818a;margin:0 0 18px}.profile-about strong{color:var(--blue);font-weight:500}.inline-demo-note{color:#a1aaa6;font-size:10px;letter-spacing:.3px}.profile-about{margin-bottom:37px}.content-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px}.view-all{display:flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--blue);font-size:11px;padding:8px 0;white-space:nowrap}.profile-filters{gap:5px;margin-bottom:14px}.profile-filters button{font-size:10px;padding:6px 10px}.project-list{display:grid;gap:15px}.project-list-card{display:block;width:100%;text-align:left;background:color-mix(in srgb,var(--surface) 62%,transparent);border:1px solid color-mix(in srgb,var(--blue) 16%,var(--line));border-radius:9px;padding:20px 21px 19px;box-shadow:0 3px 8px #34485704;transition:background .2s,box-shadow .2s,transform .2s}.project-list-card:hover{background:var(--surface);box-shadow:0 6px 20px #3448570c;transform:translateY(-2px)}.project-list-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.project-list-title>svg{color:#96a9ba;transform:rotate(-40deg);margin-top:3px;flex-shrink:0}.project-list-title h3{font-size:15px;line-height:1.6;font-weight:600;margin:0;color:var(--text)}.project-list-title h3>span{font-weight:500;font-size:13px}.project-byline{font-size:12px;margin:10px 0 7px;color:var(--blue);display:flex;gap:6px;align-items:center;flex-wrap:wrap}.project-byline>span{color:#8c98a1}.project-byline .sample-label{font-size:8px;color:#9da7a5;border:1px solid var(--line);padding:2px 5px;border-radius:4px;margin-left:auto}.list-tech{font-size:11px;color:#84939e;margin-bottom:10px;letter-spacing:.2px}.project-list-description{font-size:12px;line-height:1.9;color:#8795a0;margin:0}.profile-education{margin-top:39px}.profile-education-row{display:flex;gap:17px;padding:21px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:flex-start}.profile-education-row .school-icon{height:45px;width:45px;font-size:21px;border-radius:8px}.profile-education-row h3{font-size:14px;font-weight:500;margin:2px 0 9px}.profile-education-row p{font-size:12px;margin:0;color:var(--muted)}.profile-education-row .education-courses{font-size:10px;margin-top:12px;line-height:1.8}.profile-education-row time{margin-left:auto;white-space:nowrap;font-size:10px;color:#8b989d;padding-top:5px}.profile-contact{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:36px 0 0}.profile-contact h2{font-size:29px;margin-bottom:12px}.profile-contact p{font-size:12px;color:var(--muted);margin:0}.profile-contact .button{height:39px;font-size:12px}footer{max-width:1168px;padding-top:25px;padding-bottom:25px;margin:auto}footer .brand{font-size:23px}[data-theme=dark] body{background:radial-gradient(ellipse 640px 780px at 100% 5%,#42617a45,transparent 85%),radial-gradient(ellipse 500px 680px at 0% 45%,#4c68662a,transparent 85%),var(--bg);background-attachment:fixed}[data-theme=dark] .profile-about>p{color:#a1adb3}[data-theme=dark] .project-list-description,[data-theme=dark] .interests-panel ul{color:#a0adb5}@media(min-width:1500px){.profile-layout{max-width:1360px;grid-template-columns:330px minmax(0,1fr);gap:85px;padding-top:57px}.profile-portrait{width:270px;height:270px}.profile-about>p{font-size:16px}.content-section h2{font-size:36px}.project-list-title h3{font-size:16px}.project-list-description{font-size:14px}.project-list-card{padding:21px 23px}.profile-about{margin-bottom:38px}}@media(max-width:1000px){.profile-layout{grid-template-columns:245px minmax(0,1fr);gap:37px;padding:39px 28px 56px}.profile-portrait{width:220px;height:220px}.profile-sidebar h1{font-size:39px}.profile-socials{gap:11px}.interests-panel{padding:19px}.content-section h2{font-size:31px}.project-list-title h3>span{display:block}.profile-about>p{font-size:13px}footer{margin:0 28px}}@media(max-width:720px){header{height:76px}.nav-wrap{padding:0 23px;gap:10px}.brand{font-size:28px}nav{display:none;top:75px;font-size:13px}.theme-toggle{margin-left:auto}.mobile-toggle{display:grid}.profile-layout{display:block;padding:32px 25px 45px}.profile-sidebar{position:static;max-width:430px;margin:0 auto 43px}.profile-portrait{width:205px;height:205px;margin-bottom:22px}.profile-sidebar h1{font-size:41px}.profile-chinese-name{margin-bottom:12px}.profile-role{font-size:15px}.profile-university{font-size:13px}.profile-socials{gap:18px;margin:19px 0}.interests-panel{padding:18px 21px;margin-top:22px}.interests-panel h2{font-size:13px;margin-bottom:13px}.interests-panel ul{display:flex;gap:9px;flex-wrap:wrap;font-size:11px}.interests-panel li{padding:5px 9px;border:1px solid color-mix(in srgb,var(--blue) 14%,transparent);border-radius:5px}.interests-panel>p{margin-top:12px;font-size:9px}.sidebar-resume{margin-top:19px}.sidebar-note{margin-top:15px}.content-section{scroll-margin-top:100px;margin-bottom:33px}.content-section h2{font-size:31px}.profile-about>p{font-size:13px;line-height:2}.content-heading{gap:12px}.view-all{font-size:10px}.profile-filters{gap:2px}.profile-filters button{font-size:9px;padding:6px 8px}.project-list-card{padding:17px 16px}.project-list-title{gap:9px}.project-list-title h3{font-size:14px}.project-list-title h3>span{font-size:12px}.project-byline,.project-list-description{font-size:11px}.list-tech{font-size:10px}.profile-education-row{gap:12px;flex-wrap:wrap}.profile-education-row>div:nth-child(2){flex:1}.profile-education-row time{margin-left:57px;padding-top:0;margin-top:-4px}.profile-contact{margin-top:31px}.profile-contact h2{font-size:27px}.profile-contact p{font-size:11px}.profile-contact .button{padding:0 11px;font-size:11px}footer{margin:0 25px}footer .brand{font-size:22px}}@media print{.profile-layout{display:none!important}}.monogram{display:grid;place-items:center;background:linear-gradient(145deg,#edf1ed,#d8e4ee)}.monogram-letters{position:relative;font-family:DM Sans,Noto Sans SC,sans-serif;font-size:108px;letter-spacing:-9px;color:#54718b;line-height:1}.monogram-letters>span{color:#91a59a}.experience-label{font-size:10px;color:var(--muted);white-space:nowrap}.experience-list{display:grid;gap:18px}.experience-card{background:color-mix(in srgb,var(--surface) 65%,transparent);border:1px solid var(--line);border-radius:10px;padding:23px}.experience-top{display:flex;justify-content:space-between;align-items:start;gap:15px}.experience-top h3{font-size:16px;line-height:1.5;margin:0 0 7px;font-weight:600}.experience-company{font-size:13px;color:var(--blue);margin:0;line-height:1.6}.experience-top time{color:var(--muted);font-size:10px;white-space:nowrap;padding-top:5px}.experience-meta{font-size:11px;color:var(--muted);margin:12px 0 16px}.experience-card ul,.resume-sheet ul{padding-left:17px;margin:0;color:#76818a;font-size:12px;line-height:1.95}.experience-card li+li,.resume-sheet li+li{margin-top:8px}.experience-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.experience-tags span{font-size:10px;color:var(--blue);background:var(--soft-blue);padding:5px 8px;border-radius:4px}.profile-role{font-size:15px;line-height:1.6}.interests-panel ul{display:flex;gap:7px;flex-wrap:wrap}.interests-panel li{font-size:10px;line-height:1.5;border:1px solid color-mix(in srgb,var(--blue) 18%,transparent);border-radius:4px;padding:5px 7px}.profile-sidebar{position:static}.resume-sheet h4{font-size:14px;margin-bottom:5px}.resume-sheet a{overflow-wrap:anywhere;color:var(--blue)}[data-theme=dark] .monogram{background:linear-gradient(145deg,#33424a,#2b3b48)}[data-theme=dark] .monogram-letters{color:#a9c1d7}[data-theme=dark] .experience-card ul,[data-theme=dark] .resume-sheet ul{color:#a1adb3}@media(max-width:720px){.experience-card{padding:19px 17px}.experience-top{flex-direction:column;gap:3px}.experience-top h3{font-size:15px}.experience-top time{font-size:10px}.experience-card ul{font-size:12px}.experience-label{display:none}.monogram-letters{font-size:92px}.profile-education-row time{margin-left:57px}.profile-university{line-height:1.7}}@media print{.resume-sheet ul{color:#555;font-size:11px}.resume-sheet h4{break-after:avoid}.resume-sheet>div{break-inside:avoid}dialog{overflow:visible}}.profile-portrait{height:auto;aspect-ratio:1164 / 1351}.profile-photo{display:block;width:100%;height:100%;object-fit:cover}:root{--muted:#727b80}.nav-wrap{max-width:1400px}nav{font-size:17px;gap:14px}.brand{font-size:35px}.profile-layout{max-width:1360px;grid-template-columns:320px minmax(0,1fr);gap:76px;padding:60px 40px 88px}.profile-sidebar h1{font-size:54px;line-height:1.15;margin-bottom:16px}.profile-role{font-size:20px;line-height:1.55;margin-bottom:13px}.profile-university{font-size:17px;line-height:1.65}.profile-portrait{width:270px;margin-bottom:30px}.profile-location{font-size:15px}.profile-socials{gap:20px;margin:26px 0 30px}.profile-socials .social-button{width:36px;height:40px}.interests-panel{padding:25px}.interests-panel h2{font-size:19px;margin-bottom:19px}.interests-panel ul{gap:9px}.interests-panel li{font-size:14px;padding:7px 9px}.sidebar-resume{font-size:16px;height:48px;padding:0 20px;margin-top:27px}.content-section{margin-bottom:52px}.content-section h2{font-size:44px;margin-bottom:27px}.content-heading{margin-bottom:24px}.content-heading h2{margin:0}.profile-about>p{font-size:19px;line-height:1.85;margin-bottom:23px;color:#65717b}.experience-label{font-size:14px}.experience-list{gap:24px}.experience-card{padding:29px 30px}.experience-top{flex-wrap:wrap;gap:8px 18px}.experience-top h3{font-size:23px;line-height:1.45;margin-bottom:9px}.experience-company{font-size:17px;line-height:1.6}.experience-top time{font-size:14px;line-height:1.65}.experience-meta{font-size:15px;line-height:1.65;margin:16px 0 20px}.experience-card ul{font-size:17px;line-height:1.85;padding-left:21px;color:#65717b}.experience-card li+li{margin-top:14px}.experience-tags{gap:9px;margin-top:24px}.experience-tags span{font-size:14px;padding:7px 10px}.profile-education-row{gap:20px;padding:28px 0;flex-wrap:wrap}.profile-education-row>div:nth-child(2){flex:1;min-width:180px}.profile-education-row h3{font-size:21px;line-height:1.5;margin:0 0 12px}.profile-education-row p,.profile-education-row .education-courses{font-size:17px;line-height:1.8;margin-top:0}.profile-education-row time{font-size:14px;line-height:1.8}.profile-education-row .school-icon{width:51px;height:53px;font-size:25px}.profile-contact{margin-top:45px;gap:24px;flex-wrap:wrap}.profile-contact h2{font-size:39px;margin-bottom:16px}.profile-contact p{font-size:17px;line-height:1.7}.profile-contact .button{height:48px;font-size:16px;padding:0 18px}footer{max-width:1280px;padding:30px 0}footer .brand{font-size:29px}footer>span{font-size:14px;line-height:1.6}dialog{width:min(760px,calc(100% - 32px));padding:48px 38px 36px}.resume-sheet h2{font-size:42px}.resume-sheet h3{font-size:22px;margin-top:30px}.resume-sheet h4{font-size:19px;line-height:1.5}.resume-sheet p{font-size:17px;line-height:1.8}.resume-sheet ul{font-size:16px;line-height:1.8}.resume-sheet .section-label{font-size:13px}.print-button{font-size:16px;height:48px}[data-theme=dark] .profile-about>p,[data-theme=dark] .experience-card ul{color:#b5c0c6}@media(max-width:1100px){.profile-layout{grid-template-columns:275px minmax(0,1fr);gap:42px;padding:44px 28px 65px}.profile-portrait{width:245px}.profile-sidebar h1{font-size:47px}.profile-role{font-size:19px}.profile-about>p{font-size:18px}.experience-card{padding:25px}.experience-top h3{font-size:22px}.profile-education-row time{margin-left:71px}footer{margin:0 28px}}@media(min-width:721px)and (max-width:900px){.nav-wrap{padding:0 24px;gap:16px}.brand{font-size:29px}nav{gap:0;font-size:15px}nav>a,.nav-resume{padding:10px}.profile-layout{grid-template-columns:240px minmax(0,1fr);gap:30px}.profile-portrait{width:220px}.profile-sidebar h1{font-size:42px}.interests-panel{padding:20px}.experience-card{padding:22px}}@media(max-width:720px){.nav-wrap{padding:0 22px}.brand{font-size:30px}nav{font-size:17px;gap:8px}nav>a,.nav-resume{padding:10px 12px}.profile-layout{display:block;padding:38px 24px 55px}.profile-sidebar{margin-bottom:54px;max-width:440px}.profile-portrait{width:230px;margin-bottom:26px}.profile-sidebar h1{font-size:48px}.profile-role{font-size:20px}.profile-university{font-size:17px}.profile-location{font-size:15px}.interests-panel{padding:23px}.interests-panel h2{font-size:19px}.interests-panel li{font-size:14px}.sidebar-resume{font-size:16px}.content-section h2{font-size:38px}.content-section{margin-bottom:43px}.profile-about>p{font-size:18px;line-height:1.8;margin-bottom:21px}.experience-card{padding:23px 20px}.experience-top h3{font-size:21px}.experience-company{font-size:16px}.experience-top time{font-size:14px}.experience-meta{font-size:14px}.experience-card ul{font-size:16px;line-height:1.8;padding-left:18px}.experience-tags span{font-size:13px}.experience-tags{gap:7px}.profile-education-row{gap:15px}.profile-education-row h3{font-size:20px}.profile-education-row .education-courses{font-size:16px}.profile-education-row time{margin-left:66px;font-size:14px}.profile-contact h2{font-size:35px}.profile-contact p,.profile-contact .button{font-size:16px}footer{margin:0 24px}footer .brand{font-size:27px}dialog{padding:48px 24px 28px}.resume-sheet h2{font-size:36px}.resume-sheet p{font-size:16px}.resume-sheet ul{font-size:15px}}@media print{.resume-sheet h2{font-size:30px}.resume-sheet h3{font-size:18px}.resume-sheet h4{font-size:15px}.resume-sheet p,.resume-sheet ul{font-size:12px}}.profile-socials.contact-links{display:flex;justify-content:center;gap:12px;margin:28px 0 30px}.contact-link{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-width:72px;min-height:76px;padding:12px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000005;font-size:14px;font-weight:500;line-height:1.2;transition:background .18s,color .18s,border-color .18s}.contact-link:hover{background:var(--soft-blue);border-color:var(--blue);color:var(--blue)}.contact-link:focus-visible{outline:3px solid var(--blue);outline-offset:4px}.contact-link:disabled{opacity:.5;cursor:default;box-shadow:none;background:var(--surface);color:var(--muted);border-color:var(--line)}@media(min-width:721px)and (max-width:900px){.profile-socials.contact-links{gap:8px}.contact-link{min-width:68px;padding:12px 8px}}.nav-resume:disabled,.sidebar-resume:disabled{opacity:.5;cursor:default;transform:none}.profile-project{min-height:140px}@media(max-width:900px){.nav-wrap{gap:12px}.theme-toggle{margin-left:auto}.mobile-toggle{display:grid}nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;padding:20px 24px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow);font-size:17px;gap:8px}nav.is-open{display:flex;flex-wrap:wrap}}.profile-project h2{padding-bottom:24px;border-bottom:1px solid var(--line)}.profile-socials.contact-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.contact-links .contact-link{min-width:0;padding:12px 4px;font-size:13px}@media(min-width:721px)and (max-width:1100px),(max-width:380px){.profile-socials.contact-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}.profile-education-row .cityu-logo{background:#fff;border-color:var(--line);padding:6px}.cityu-logo img{display:block;width:100%;height:100%;object-fit:contain}.brand-logo{display:block;flex-shrink:0;object-fit:contain}[data-theme=dark] .brand-logo{filter:invert(1)}.welcome-message{color:var(--blue);font-size:22px;font-weight:600;line-height:1.6;letter-spacing:.2px;margin:0 0 28px}.welcome-message span{display:inline-block;margin-left:4px}.profile-chinese-name{font-size:24px;line-height:1.5;letter-spacing:3px;margin:-3px 0 20px;color:var(--muted)}@media(max-width:720px){.welcome-message{font-size:20px;margin-bottom:24px}.profile-chinese-name{font-size:22px}}.brand{font-weight:700;letter-spacing:-1px}.profile-sidebar h1{font-weight:700;letter-spacing:-1.8px;line-height:1.15}.content-section h2{font-weight:600;letter-spacing:-1.2px;line-height:1.2}.profile-chinese-name{font-weight:500;letter-spacing:2px}.brand,.profile-sidebar h1,.content-section h2{font-family:Georgia,Times New Roman,serif;font-weight:700;letter-spacing:-.5px}.profile-sidebar h1{letter-spacing:-1px}.profile-sidebar h1{font-size:42px;letter-spacing:-1px}.content-section h2{font-size:36px;letter-spacing:-.5px}.brand{font-size:29px}.profile-contact h2{font-size:33px}@media(min-width:721px)and (max-width:1100px){.profile-sidebar h1{font-size:36px}.content-section h2{font-size:34px}}@media(min-width:721px)and (max-width:900px){.profile-sidebar h1{font-size:32px}.brand{font-size:27px}}@media(max-width:720px){.profile-sidebar h1{font-size:40px}.content-section h2{font-size:32px}.brand{font-size:27px}.profile-contact h2{font-size:30px}}
