.background{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.background__gradient{background:radial-gradient(ellipse 80% 50% at 50% -20%, rgba(var(--glow-1), .18), transparent), radial-gradient(ellipse 60% 40% at 100% 50%, rgba(var(--glow-2), .1), transparent), radial-gradient(ellipse 50% 30% at 0% 80%, rgba(var(--glow-3), .08), transparent);position:absolute;inset:0}.background__grid-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.background__orb{filter:blur(80px);opacity:.5;border-radius:50%;animation:20s ease-in-out infinite float;position:absolute}.background__orb--1{background:rgba(var(--glow-1), .25);width:420px;height:420px;top:-10%;right:-5%}.background__orb--2{background:rgba(var(--glow-2), .2);width:320px;height:320px;animation-delay:-7s;bottom:20%;left:-8%}.background__orb--3{background:rgba(var(--glow-3), .15);width:260px;height:260px;animation-delay:-14s;top:45%;right:15%}@keyframes float{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-20px)scale(1.05)}66%{transform:translate(-20px,15px)scale(.95)}}.navbar{z-index:100;transition:background var(--transition), backdrop-filter var(--transition), border-color var(--transition);padding:1rem 1.5rem;position:fixed;top:0;left:0;right:0}.navbar--scrolled{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);background:#07070dbf}.navbar__inner{justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;display:flex}.navbar__brand{align-items:center;gap:.35rem;display:flex}.navbar__logo{font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:700;display:flex}.navbar__zhu{cursor:pointer;transition:transform var(--transition);background:0 0;border:none;align-items:center;gap:0;margin-top:.1rem;margin-left:.15rem;padding:.2rem .15rem .2rem .45rem;display:inline-flex;position:relative;overflow:visible}.navbar__zhu-icon{background-color:var(--text-muted);opacity:.32;width:1.15rem;height:1.15rem;transition:opacity var(--transition), background-color var(--transition), transform .35s cubic-bezier(.22, 1, .36, 1), filter var(--transition);flex-shrink:0;display:block;-webkit-mask-image:url(/Images/zhu-logo-mask.png);mask-image:url(/Images/zhu-logo-mask.png);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.navbar__zhu-hint{opacity:0;flex-direction:column;align-items:center;max-width:0;transition:max-width .45s cubic-bezier(.22,1,.36,1),opacity .35s,transform .45s cubic-bezier(.22,1,.36,1);display:inline-flex;overflow:hidden;transform:translate(-4px)}.navbar__zhu-hint-text{font-family:var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-1);white-space:nowrap;padding:0 .35rem 0 .5rem;font-size:.62rem;font-weight:600}.navbar__zhu-hint-brush{background:linear-gradient(90deg, transparent, var(--accent-1), var(--accent-3), transparent);transform-origin:0;border-radius:999px;width:calc(100% - .5rem);height:2px;margin-top:.15rem;margin-left:.5rem;transition:transform .45s cubic-bezier(.22,1,.36,1);display:block;transform:scaleX(0)}.navbar__zhu:hover .navbar__zhu-icon,.navbar__zhu:focus-visible .navbar__zhu-icon{opacity:.92;background-color:var(--accent-1);filter:drop-shadow(0 0 10px rgba(var(--glow-1), .45));transform:translateY(-1px)}.navbar__zhu:hover .navbar__zhu-hint,.navbar__zhu:focus-visible .navbar__zhu-hint{opacity:1;max-width:4.5rem;transform:translate(0)}.navbar__zhu:hover .navbar__zhu-hint-brush,.navbar__zhu:focus-visible .navbar__zhu-hint-brush{transform:scaleX(1)}.navbar__zhu:focus-visible{outline:none}.navbar__zhu:focus-visible .navbar__zhu-icon{outline:1px solid rgba(var(--glow-1), .35);outline-offset:4px}.navbar__zhu:active{transform:scale(.97)}.navbar__actions{align-items:center;gap:.25rem;display:flex}.navbar__menu-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);cursor:pointer;width:2.5rem;height:2.5rem;transition:border-color var(--transition), background var(--transition), transform var(--transition);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:none;position:relative}.navbar__menu-toggle:hover,.navbar__menu-toggle:focus-visible{border-color:var(--border-hover);background:#ffffff0f}.navbar__menu-toggle:focus-visible{outline:1px solid rgba(var(--glow-1), .35);outline-offset:2px}.navbar__menu-bar{background:var(--text);border-radius:999px;width:1.05rem;height:2px;transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .2s;position:absolute;left:50%;transform:translate(-50%)}.navbar__menu-bar:first-child{transform:translate(-50%,-6px)}.navbar__menu-bar:nth-child(2){transform:translate(-50%)}.navbar__menu-bar:nth-child(3){transform:translate(-50%,6px)}.navbar__menu-toggle--open .navbar__menu-bar:first-child{transform:translate(-50%)rotate(45deg)}.navbar__menu-toggle--open .navbar__menu-bar:nth-child(2){opacity:0}.navbar__menu-toggle--open .navbar__menu-bar:nth-child(3){transform:translate(-50%)rotate(-45deg)}.navbar__nav{gap:.25rem;display:flex}.navbar__link{color:var(--text-muted);border-radius:var(--radius-sm);transition:color var(--transition), background var(--transition);padding:.5rem 1rem;font-size:.9rem;font-weight:500}.navbar__link:hover,.navbar__link--active{color:var(--text);background:var(--bg-elevated)}main{max-width:1100px;margin:0 auto;padding:0 1.5rem}.section{padding:6rem 0}.section__header{margin-bottom:3rem}.section__header--row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;display:flex}.portfolio__view-all{flex-shrink:0;padding:.7rem 1.25rem;font-size:.9rem}.section__label{text-transform:uppercase;letter-spacing:.12em;color:var(--accent-1);margin-bottom:.75rem;font-size:.8rem;font-weight:600;display:inline-block}.section__title{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;line-height:1.15}.card{border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:border-color var(--transition), box-shadow var(--transition);background:#ffffff08}.card:hover{border-color:var(--border-hover)}.hero{flex-direction:column;justify-content:center;min-height:100vh;padding-top:5rem;display:flex;position:relative}.hero__content{max-width:1000px}.hero__eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);margin-bottom:1.25rem;font-size:.85rem;font-weight:600}.hero__title{font-family:var(--font-display);letter-spacing:-.04em;margin-bottom:1.25rem;font-size:clamp(2.75rem,7vw,4.5rem);font-weight:800;line-height:1.05}.hero__name{background:var(--gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero__tagline{color:var(--text-muted);flex-direction:column;gap:.35rem;max-width:520px;margin-bottom:2.5rem;font-size:clamp(1.1rem,2.5vw,1.35rem);display:flex}.hero__tagline-line{line-height:1.5;display:block}.hero__tagline-brand{vertical-align:middle;white-space:nowrap;transition:opacity var(--transition);text-decoration:none;display:inline-flex}.hero__tagline-brand:hover{opacity:.9}.hero__tagline-brand-inner{--shine-size:300px;--shine-x:0px;--shine-offset:0px;align-items:center;gap:.3em;display:inline-flex}.hero__tagline-company,.hero__tagline-logo{background-image:linear-gradient(90deg, var(--accent-1), var(--accent-2), var(--accent-3), var(--accent-1));background-size:var(--shine-size) 100%;background-position:calc(var(--shine-x) - var(--shine-offset)) 50%;background-repeat:no-repeat}.hero__tagline-company{font-family:var(--font-brand);letter-spacing:.02em;-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.08em;font-weight:400;line-height:1;transform:translateY(.04em)}@media (prefers-reduced-motion:reduce){.hero__tagline-company,.hero__tagline-logo{background-image:var(--gradient);background-position:0%;background-size:100% 100%}}.hero__tagline-suffix{letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;margin-left:.35em;font-size:.72em;font-weight:500}.hero__tagline-logo{width:1.61em;height:1em;-webkit-mask-image:var(--logo-url);-webkit-mask-image:var(--logo-url);mask-image:var(--logo-url);flex-shrink:0;display:inline-block;transform:translateY(-.1em);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.hero__actions{flex-wrap:wrap;gap:1rem;display:flex}.hero__scroll{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);align-items:center;gap:.75rem;font-size:.75rem;font-weight:500;display:flex;position:absolute;bottom:2.5rem;left:0}.hero__scroll-line{background:var(--border);width:48px;height:1px;position:relative;overflow:hidden}.hero__scroll-line:after{content:"";background:var(--gradient);animation:2s ease-in-out infinite scrollPulse;position:absolute;inset:0}@keyframes scrollPulse{0%,to{transform:translate(-100%)}50%{transform:translate(100%)}}.btn{border-radius:var(--radius-sm);transition:transform var(--transition), box-shadow var(--transition), background var(--transition);justify-content:center;align-items:center;padding:.85rem 1.75rem;font-size:.95rem;font-weight:600;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn--primary{background:var(--gradient);color:#fff;box-shadow:0 8px 32px rgba(var(--glow-1), .35)}.btn--primary:hover{box-shadow:0 12px 40px rgba(var(--glow-1), .45)}.btn--ghost{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text)}.btn--ghost:hover{border-color:var(--border-hover);background:#ffffff0f}.about__layout{flex-direction:column;gap:1.5rem;display:flex}.about__top{align-items:stretch;gap:2.5rem;display:flex}.about__photo-outer{aspect-ratio:3/4;z-index:1;flex-shrink:0;align-self:stretch;width:auto;max-width:340px;position:relative}.about__photo-frame{border-radius:16px;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:0 20px 50px #0006}.about__photo{object-fit:cover;object-position:center 8%;background:var(--bg);width:100%;height:100%;display:block}.about__bio-card{box-sizing:border-box;flex:1;min-width:0;margin:0;padding:2rem 2.25rem}.about__bio{color:var(--text-muted);font-size:1.05rem;line-height:1.75}.about__bio+.about__bio{margin-top:1.25rem}.about__skills{padding:2rem}.about__skills-title{font-family:var(--font-display);margin-bottom:1.25rem;font-size:1rem;font-weight:600}.about__skills-list{flex-wrap:wrap;gap:.5rem;display:flex}.tag{color:var(--text-muted);border:1px solid var(--border);background:#ffffff0a;border-radius:999px;padding:.4rem .85rem;font-size:.8rem;font-weight:500;display:inline-block}.tag--sm{padding:.25rem .65rem;font-size:.75rem}.portfolio__grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.project-card{padding:2rem;position:relative;overflow:hidden}.project-card__glow{background:radial-gradient(circle, rgba(var(--glow-1), .12), transparent 70%);opacity:0;width:100%;height:100%;transition:opacity var(--transition);pointer-events:none;position:absolute;top:-50%;right:-50%}.project-card:hover .project-card__glow{opacity:1}.project-card__header{align-items:baseline;gap:1rem;margin-bottom:1rem;display:flex}.project-card__index{font-family:var(--font-display);color:var(--accent-1);opacity:.7;font-size:.85rem;font-weight:700}.project-card__title{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.25rem;font-weight:700}.project-card__desc{color:var(--text-muted);margin-bottom:1.25rem;font-size:.95rem;line-height:1.65}.project-card__tags{flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem;display:flex}.project-card__links{gap:1.25rem;display:flex}.project-card__link{color:var(--accent-1);transition:gap var(--transition), color var(--transition);align-items:center;gap:.35rem;font-size:.9rem;font-weight:600;display:inline-flex}.project-card__link:hover{color:var(--accent-2);gap:.55rem}.section--contact{padding-bottom:4rem}.contact__card{text-align:center;max-width:560px;margin:0 auto;padding:3rem}.contact__title{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:.75rem;font-size:clamp(1.75rem,4vw,2.25rem);font-weight:700}.contact__text{color:var(--text-muted);margin-bottom:2rem}.contact__links{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.contact__link{border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--transition), background var(--transition), transform var(--transition);background:#ffffff0a;align-items:center;gap:.6rem;padding:.75rem 1.25rem;font-size:.9rem;font-weight:500;display:inline-flex}.contact__link:hover{border-color:var(--border-hover);background:#ffffff12;transform:translateY(-2px)}.contact__link--static{cursor:default}.contact__link--static:hover{border-color:var(--border);background:#ffffff0a;transform:none}.contact__link-icon{color:var(--text-muted);display:flex}.footer{text-align:center;color:var(--text-muted);padding:2rem 1.5rem 3rem;font-size:.85rem}@media (width<=768px){.navbar--menu-open{z-index:200}.navbar__menu-toggle{display:inline-flex}.navbar__inner{gap:.75rem}.navbar__logo{font-size:1rem}.navbar__zhu-hint{display:none}.navbar--menu-open,.navbar--menu-open.navbar--scrolled{background:var(--bg-solid);border-bottom:1px solid var(--border)}.navbar__nav{z-index:1;background:var(--bg-solid);border-top:1px solid var(--border);opacity:1;visibility:hidden;pointer-events:none;flex-direction:column;align-items:stretch;gap:.35rem;padding:1rem 1.5rem 2rem;transition:visibility .3s,transform .3s cubic-bezier(.22,1,.36,1);position:fixed;inset:4.25rem 0 0;transform:translateY(-.75rem);box-shadow:0 24px 48px #00000073}.navbar--menu-open .navbar__nav,.navbar__nav--open{visibility:visible;pointer-events:auto;transform:translateY(0)}.navbar__link{color:var(--text);border-radius:var(--radius-sm);background:#ffffff0a;border:1px solid #0000;padding:.85rem 1rem;font-size:1.05rem;font-weight:600}.navbar__link:hover,.navbar__link:focus-visible{color:var(--text);background:#ffffff14}.navbar__link--active{color:var(--text);background:rgba(var(--glow-1), .14);border-color:rgba(var(--glow-1), .35)}.about__top{flex-direction:column;align-items:center;gap:1.5rem}.about__photo-outer{aspect-ratio:3/4;align-self:center;width:min(300px,85vw);height:auto}.about__bio-card{width:100%}.hero__scroll{display:none}.contact__card{padding:2rem 1.5rem}.education-card__header{flex-direction:column;align-items:flex-start;gap:.5rem}.section__header--row{align-items:flex-start}}.education-page{max-width:720px;margin:0 auto;padding:7rem 0 4rem}.education-page__header{flex-direction:column;align-items:flex-start;margin-bottom:3rem;display:flex}.education-page__back{color:var(--text-muted);transition:color var(--transition);align-items:center;gap:.4rem;margin-bottom:2rem;font-size:.9rem;font-weight:500;display:inline-flex}.education-page__back:hover{color:var(--text)}.education-page__title{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:.75rem;font-size:clamp(2rem,5vw,2.75rem);font-weight:700;line-height:1.1}.education-page__intro{color:var(--text-muted);max-width:540px;font-size:1.05rem;line-height:1.65}.education-timeline{flex-direction:column;gap:0;list-style:none;display:flex}.education-timeline__item{grid-template-columns:28px 1fr;gap:1.25rem;display:grid;position:relative}.education-timeline__item:not(:last-child) .education-timeline__marker:after{content:"";background:linear-gradient(to bottom, var(--accent-1), transparent);opacity:.35;width:2px;height:calc(100% + 1.5rem);position:absolute;top:20px;left:50%;transform:translate(-50%)}.education-timeline__marker{justify-content:center;padding-top:1.75rem;display:flex;position:relative}.education-timeline__dot{background:var(--gradient);width:12px;height:12px;box-shadow:0 0 16px rgba(var(--glow-1), .5);border-radius:50%;flex-shrink:0}.education-card{margin-bottom:1.5rem;padding:1.75rem 2rem}.education-card__header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem;display:flex}.education-card__degree{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.2rem;font-weight:700;line-height:1.3}.education-card__field{color:var(--text-muted);font-weight:500}.education-card__institution{color:var(--accent-1);margin-top:.25rem;font-size:.95rem;font-weight:600}.education-card__period{color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;background:#ffffff0a;border-radius:999px;flex-shrink:0;padding:.35rem .75rem;font-size:.8rem;font-weight:600}.education-card__location{color:var(--text-muted);margin-bottom:.75rem;font-size:.85rem}.education-card__desc{color:var(--text-muted);font-size:.95rem;line-height:1.65}.projects-page{padding:7rem 0 4rem}.projects-page__header{flex-direction:column;align-items:flex-start;margin-bottom:3rem;display:flex}.projects-page__back{color:var(--text-muted);transition:color var(--transition);align-items:center;gap:.4rem;margin-bottom:2rem;font-size:.9rem;font-weight:500;display:inline-flex}.projects-page__back:hover{color:var(--text)}.projects-page__title{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:.75rem;font-size:clamp(2rem,5vw,2.75rem);font-weight:700;line-height:1.1}.projects-page__intro{color:var(--text-muted);max-width:540px;font-size:1.05rem;line-height:1.65}.portfolio__grid--all{margin-bottom:2rem}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#07070d;--bg-solid:#07070d;--bg-elevated:#ffffff08;--border:#ffffff14;--border-hover:#ffffff29;--text:#e8e8ef;--text-muted:#8b8b9e;--accent-1:#6366f1;--accent-2:#a855f7;--accent-3:#ec4899;--glow-1:99, 102, 241;--glow-2:168, 85, 247;--glow-3:236, 72, 153;--gradient:linear-gradient(135deg, var(--accent-1), var(--accent-2), var(--accent-3));--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-display:"Outfit", var(--font-sans);--font-brand:"Floundery Gothic", var(--font-display);--font-zh:"LXGW WenKai", "PingFang SC", "Microsoft YaHei", sans-serif;--font-zh-display:"Noto Serif SC", "LXGW WenKai", serif;--radius:16px;--radius-sm:10px;--shadow:0 24px 80px #00000073;--transition:.25s cubic-bezier(.22, 1, .36, 1)}[data-theme=zhu]{--bg:#080606;--bg-solid:#080606;--text:#ece8e6;--text-muted:#9a918d;--accent-1:#c85546;--accent-2:#963d35;--accent-3:#d4a574;--glow-1:200, 85, 70;--glow-2:150, 61, 53;--glow-3:212, 165, 116;--gradient:linear-gradient(135deg, var(--accent-1), var(--accent-2), var(--accent-3))}@font-face{font-family:Floundery Gothic;src:url(/fonts/FloundaryGothicRegular-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.6;transition:background-color .5s,color .5s;overflow-x:hidden}html[lang=zh-CN]{font-family:var(--font-zh)}html[lang=zh-CN] body{font-family:var(--font-zh);line-height:1.75}html[lang=zh-CN] :where(.navbar__logo,.navbar__link,.navbar__zhu-hint-text,.btn,.section__label,.section__title,.hero__eyebrow,.hero__title,.hero__name,.hero__tagline-line,.hero__scroll,.about__bio,.about__skills-title,.project-card__index,.project-card__title,.project-card__desc,.contact__title,.contact__text,.contact__link,.education-page__title,.education-page__intro,.education-page__back,.projects-page__title,.projects-page__intro,.projects-page__back,.education-card__degree,.education-card__field,.education-card__institution,.education-card__desc,.education-card__period,.education-card__location,.footer,.tag){font-family:var(--font-zh);letter-spacing:.02em}html[lang=zh-CN] :where(.navbar__logo,.section__title,.hero__title,.hero__name,.about__skills-title,.project-card__title,.contact__title,.education-page__title,.education-card__degree,.projects-page__title){font-family:var(--font-zh-display);letter-spacing:.04em;font-weight:600}html[lang=zh-CN] .hero__tagline-company,html[lang=zh-CN] .hero__tagline-brand{font-family:var(--font-brand);letter-spacing:normal}a{color:inherit;text-decoration:none}ul{list-style:none}img{max-width:100%;display:block}::selection{background:rgba(var(--glow-1), .35);color:#fff}
