@font-face{font-family:Smiley Sans Local;src:url(/assets/fonts/SmileySans-Oblique.otf) format("opentype");font-display:swap}@font-face{font-family:ZhanKu KuaiLe Local;src:url(/assets/fonts/ZhanKuKuaiLeTi.ttf) format("truetype");font-display:swap}@font-face{font-family:"LXGW Heart Serif Local";src:url(/assets/fonts/LXGWHeartSerifCHS.ttf) format("truetype");font-display:swap}@font-face{font-family:WenQuan Mono Local;src:url(/assets/fonts/WenQuanDengKuanWeiMiHei.ttf) format("truetype");font-display:swap}:root{--bg: #f4f0e6;--text: #111111;--muted: #6f6a61;--line: #1f1f1f;--lavender: #b9b7f4;--peach: #f3b5a4;--kraft: #bd8755;--sage: #b7c8a3;--lime: #d7ed7a;--cream-card: #faf7ef;--black: #111111;--white: #ffffff;--font-display: "Smiley Sans Local", "ZhanKu KuaiLe Local", "Microsoft YaHei", sans-serif;--font-title: "Smiley Sans Local", "ZhanKu KuaiLe Local", "Noto Sans SC", sans-serif;--font-body: "LXGW Heart Serif Local", "Noto Sans SC", "HarmonyOS Sans SC", sans-serif;--font-mono: "WenQuan Mono Local", "IBM Plex Mono", monospace;--radius: 8px;--shadow: 10px 14px 0 rgba(17, 17, 17, .08);--nav-height: 64px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + 36px)}body{margin:0;background:radial-gradient(circle at 10% 12%,rgba(243,181,164,.22),transparent 22rem),radial-gradient(circle at 90% 4%,rgba(183,200,163,.22),transparent 18rem),var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.65;overflow-x:hidden}button,a{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}img,video{display:block;max-width:100%}.container{width:min(1180px,calc(100% - 32px));margin:0 auto}.section{padding:66px 0}.topbar{position:sticky;top:0;z-index:60;height:24px;background:var(--black);color:var(--white);display:grid;place-items:center;font-family:var(--font-mono);font-size:12px;letter-spacing:.03em}.navbar{position:sticky;top:24px;z-index:55;height:var(--nav-height);display:grid;grid-template-columns:auto 1fr auto;gap:30px;align-items:center;padding:0 max(18px,calc((100vw - 1180px)/2));background:#f4f0e6ed;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brand,.nav-links button,.menu-button,.project-card button,.timeline-summary,.honor-photo,.modal-gallery button,.timeline-images button{border:0;background:transparent;cursor:pointer;padding:0}.brand{display:flex;gap:10px;align-items:baseline;font-family:var(--font-mono)}.brand strong{font-family:var(--font-title);font-size:22px}.nav-links{display:flex;justify-content:center;gap:14px}.nav-links button{border:1px solid transparent;border-radius:999px;padding:8px 16px;font-family:ShangShou ChunYuanTi,WenQuan Mono Local,Noto Sans SC,Microsoft YaHei,sans-serif;font-size:15px;font-weight:600;letter-spacing:.04em}.nav-links button.is-active,.nav-links button:hover{border-color:var(--line);background:var(--lime)}.nav-actions{display:flex;align-items:center;gap:8px}.button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-family:var(--font-mono);font-size:13px;transition:transform .18s ease,background .18s ease,color .18s ease}.button:hover{transform:translateY(-2px)}.button.dark{background:var(--black);color:var(--white)}.button.ghost{background:var(--cream-card)}.button.disabled{opacity:.6;cursor:not-allowed}.menu-button{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:999px;place-items:center}.menu-button span{display:block;width:18px;height:2px;margin:3px auto;background:var(--black)}.hero{padding-top:30px}.hero-name h1{margin:0 0 18px;font-family:var(--font-display);font-size:clamp(82px,17vw,214px);line-height:1.08;letter-spacing:0;overflow:visible}.hero-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(280px,.88fr);gap:28px;align-items:stretch}.paper-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--cream-card)}.hero-card{padding:clamp(22px,4vw,42px);background:var(--lavender);transform:rotate(-1deg)}.tagline,.eyebrow,.mini-label,.tag-row span,.tool-tag,.floating-label{font-family:var(--font-mono);font-size:12px;text-transform:uppercase}.hero-card h2{margin:18px 0 12px;font-family:var(--font-title);font-size:clamp(32px,5vw,64px);line-height:1}.hero-card p{max-width:720px;color:#2b2925}.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.portrait-card{min-height:360px;position:relative;display:grid;place-items:center}.portrait-frame{width:min(340px,78vw);aspect-ratio:.82;border:1px solid var(--line);border-radius:48% 48% 42% 42%;background:var(--peach);overflow:hidden;position:relative;transform:rotate(2deg);box-shadow:0 0 0 10px #faf7efb8}.portrait-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transform:scale(1.035);filter:saturate(.92) contrast(1.02);transition:opacity .98s cubic-bezier(.22,1,.36,1),transform 1.2s cubic-bezier(.22,1,.36,1)}.portrait-frame img.is-active{opacity:1;transform:scale(1)}.portrait-switcher{position:absolute;left:50%;bottom:-4px;display:flex;gap:8px;transform:translate(-50%);z-index:2}.portrait-switcher button{width:34px;height:8px;border:1px solid var(--line);border-radius:999px;background:var(--cream-card);cursor:pointer;padding:0;transition:width .42s cubic-bezier(.22,1,.36,1),background .42s cubic-bezier(.22,1,.36,1),transform .42s cubic-bezier(.22,1,.36,1)}.portrait-switcher button.is-active{width:54px;background:var(--black);transform:translateY(-1px)}.floating-label{position:absolute;border:1px solid var(--line);border-radius:999px;background:var(--cream-card);padding:8px 12px}.label-a{top:24px;left:12px}.label-b{right:0;top:44%;background:var(--lime)}.label-c{bottom:18px;left:20%;background:var(--sage)}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:34px}.stat-card>div{min-height:126px;border:1px solid var(--line);border-radius:var(--radius);padding:18px;transition:transform .18s ease,box-shadow .18s ease}.stat-card:nth-child(2n)>div{transform:rotate(1deg)}.stat-card:hover>div{transform:translateY(-4px) rotate(0);box-shadow:var(--shadow)}.stat-card strong{display:block;font-family:var(--font-title);font-size:clamp(38px,6vw,64px);line-height:1}.stat-card span{font-family:var(--font-mono);font-size:13px}.section-heading{display:grid;gap:8px;margin-bottom:26px;overflow:visible}.section-heading h2{width:fit-content;margin:0;font-family:var(--font-title);font-size:clamp(42px,7vw,86px);line-height:1.12;transform:rotate(-2deg);overflow:visible}.section-heading p{max-width:660px;margin:0;color:var(--muted)}.advantage-grid,.education-grid,.about-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.advantage-card,.education-card,.about-card,.skill-item{padding:22px;transition:transform .18s ease,box-shadow .18s ease}.advantage-card:nth-child(1){background:var(--cream-card)}.advantage-card:nth-child(2){background:var(--peach)}.advantage-card:nth-child(3){background:var(--sage)}.advantage-card:nth-child(4){background:var(--lavender)}.advantage-card:hover,.project-card:hover,.education-card:hover,.about-card:hover,.skill-item:hover{transform:translateY(-4px) rotate(1deg);box-shadow:var(--shadow)}.card-index{display:block;font-family:var(--font-title);font-size:50px;line-height:1}h3{margin:14px 0 8px;font-family:var(--font-title);font-size:28px;line-height:1.1}p{margin:0}.skills-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.skills-list{display:grid;gap:14px}.skill-topline{display:flex;justify-content:space-between;gap:20px;align-items:baseline}.skill-topline h3{margin:0}.skill-topline span{font-family:var(--font-title);font-size:34px}.progress-shell{height:16px;border:1px solid var(--line);border-radius:999px;overflow:hidden;margin:14px 0;background:var(--bg)}.progress-shell span{display:block;width:0;height:100%;background:var(--lime);transition:width .9s cubic-bezier(.16,1,.3,1)}.reveal.is-visible .progress-shell span{width:var(--target)}.tool-tags,.tag-row{display:flex;flex-wrap:wrap;gap:8px}.tool-tag,.tag-row span,.mini-label{position:relative;display:inline-flex;border:1px solid var(--line);border-radius:999px;background:var(--cream-card);padding:5px 9px}.tool-tag:hover:after{content:attr(data-tooltip);position:absolute;left:0;bottom:calc(100% + 8px);z-index:4;width:max-content;max-width:260px;border:1px solid var(--line);border-radius:6px;background:var(--black);color:var(--white);padding:7px 9px;white-space:normal}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.project-card{overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.project-card:nth-child(2n){transform:translateY(18px)}.project-card button{width:100%;height:100%;text-align:left}.project-cover{aspect-ratio:1.36;overflow:hidden;border-bottom:1px solid var(--line);background:var(--sage)}.project-cover img,.modal-gallery img,.timeline-images img,.honor-photo img{width:100%;height:100%;object-fit:cover;transition:transform .18s ease}.project-card:hover .project-cover img{transform:scale(1.03)}.project-body{display:grid;gap:12px;padding:18px}.project-body h3,.project-body p,.project-body strong{margin:0}.project-body small{width:fit-content;border-bottom:1px solid var(--line);font-family:var(--font-mono)}.timeline{position:relative;display:grid;gap:18px}.timeline:before{content:"";position:absolute;left:18px;top:0;bottom:0;width:1px;background:var(--line)}.timeline-item{position:relative;padding-left:48px}.timeline-item:before{content:"";position:absolute;left:9px;top:24px;width:18px;height:18px;border:1px solid var(--line);border-radius:50%;background:var(--lime)}.timeline-summary,.timeline-detail{width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--cream-card);text-align:left}.timeline-summary{display:grid;gap:8px;padding:20px}.timeline-summary span{font-family:var(--font-mono);font-size:12px}.timeline-summary h3,.timeline-summary p{margin:0}.timeline-item.is-open .timeline-summary{background:var(--peach)}.timeline-detail{max-height:0;overflow:hidden;padding:0 20px;border-top:0;opacity:0;transition:max-height .26s ease,padding .26s ease,opacity .26s ease}.timeline-item.is-open .timeline-detail{max-height:620px;padding:20px;opacity:1}.metric-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}.metric-row strong{border:1px solid var(--line);border-radius:6px;padding:8px 10px;background:var(--lime);font-family:var(--font-mono);font-size:13px}.timeline-images,.modal-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.timeline-images button,.modal-gallery button{aspect-ratio:1.35;overflow:hidden;border:1px solid var(--line);border-radius:6px}.honors-section{overflow:hidden}.honors-marquee{margin:4px 0 34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow-x:auto;background:#faf7ef8c}.marquee-track{display:flex;width:max-content;gap:18px;padding:22px;animation:marquee 34s linear infinite}.honors-marquee:hover .marquee-track{animation-play-state:paused}.honor-photo{width:236px;border:1px solid var(--line);border-radius:6px;background:var(--white);padding:9px;transform:rotate(-2deg)}.honor-photo:nth-child(2n){transform:rotate(2deg)}.honor-photo img{aspect-ratio:1.25;border:1px solid rgba(17,17,17,.16)}.honor-photo span{display:block;margin-top:8px;font-family:var(--font-mono);font-size:12px}.education-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.footer{padding:72px 0;border-top:1px solid var(--line);background:var(--lavender)}.footer-grid{display:grid;grid-template-columns:minmax(560px,1.45fr) .8fr auto;gap:28px;align-items:center}.footer h2{margin:8px 0;font-family:var(--font-title);font-size:clamp(38px,4.6vw,58px);line-height:1.06;white-space:nowrap}address{display:grid;gap:8px;font-style:normal;font-family:var(--font-mono)}address a{text-decoration:underline}.qr-card{width:168px;border:1px solid var(--line);border-radius:8px;padding:10px;text-align:center;background:var(--cream-card);transform:rotate(2deg);transition:transform .7s cubic-bezier(.22,1,.36,1)}.qr-card:hover{transform:rotate(0) translateY(-4px) scale(1.03)}.qr-card img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid rgba(17,17,17,.16);border-radius:4px}.qr-card span{display:block;margin-top:8px;font-family:var(--font-mono);font-size:12px}.modal-backdrop,.lightbox{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:22px;background:#0000009e}.modal-panel{position:relative;width:min(980px,100%);max-height:88vh;overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);padding:clamp(20px,4vw,36px)}.modal-close,.lightbox figure button{position:absolute;top:14px;right:14px;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:var(--cream-card);cursor:pointer;font-size:26px}.modal-header h2{margin:8px 0 14px;font-family:var(--font-title);font-size:clamp(36px,6vw,74px);line-height:1}.modal-content{display:grid;gap:20px}.modal-content h3{margin-bottom:6px}.modal-video{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--black)}.attachment-row{display:flex;flex-wrap:wrap;gap:10px}.lightbox figure{position:relative;width:min(980px,100%);max-height:90vh;margin:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--cream-card);padding:18px}.lightbox img{width:100%;max-height:76vh;object-fit:contain}.lightbox figcaption{margin-top:10px;font-family:var(--font-mono);text-align:center}.reveal{opacity:0;transform:translate3d(0,42px,0) scale(.985);filter:blur(10px);transition:opacity .92s cubic-bezier(.22,1,.36,1),transform .92s cubic-bezier(.22,1,.36,1),filter .92s cubic-bezier(.22,1,.36,1);will-change:opacity,transform,filter}.reveal.is-visible{opacity:1;transform:translateZ(0) scale(1);filter:blur(0)}.section-heading.reveal{transform:translate3d(0,24px,0)}.project-card.reveal,.advantage-card.reveal,.skill-item.reveal,.timeline-item.reveal,.education-card.reveal,.about-card.reveal{transition-duration:.98s}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@media(max-width:980px){.navbar{grid-template-columns:auto auto}.nav-links{position:absolute;top:calc(var(--nav-height) - 1px);left:0;right:0;display:none;flex-direction:column;align-items:stretch;padding:14px 18px 18px;background:var(--bg);border-bottom:1px solid var(--line)}.nav-links.is-open{display:flex}.nav-links button{min-height:44px;text-align:left}.nav-actions{justify-self:end}.nav-actions .button{display:none}.menu-button{display:block}.hero-grid,.footer-grid{grid-template-columns:1fr}.footer h2{white-space:normal}.stats-grid,.advantage-grid,.project-grid,.about-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.section{padding:54px 0}.container{width:min(100% - 24px,1180px)}.brand span{display:none}.hero{padding-top:24px}.hero-name h1{font-size:clamp(68px,27vw,112px)}.stats-grid,.advantage-grid,.project-grid,.education-grid,.about-grid,.timeline-images,.modal-gallery{grid-template-columns:1fr}.project-card:nth-child(2n){transform:none}.button{min-height:44px}.timeline-item{padding-left:34px}.timeline:before{left:11px}.timeline-item:before{left:2px}.honor-photo{width:210px}.modal-backdrop,.lightbox{padding:10px}.modal-panel{max-height:92vh}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none;filter:none}}
