/* HR-first homepage: light editorial design, based on the approved visual reference. */
:root{
  color-scheme:light;
  --ink:#191919; --muted:#676b73; --quiet:#9399a3; --orange:#f6651b; --orange-strong:#f25710;
  --orange-pale:#fff3e9; --line:#e9ecf0; --panel:#fff; --surface:#f9fafb;
  --shadow:0 8px 28px rgba(31,35,42,.035); --radius:12px;
  --font:"Inter","PingFang SC","Microsoft YaHei","Noto Sans SC",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,a{font:inherit}
a{color:inherit;text-decoration:none}
a:hover{color:var(--orange-strong)}
button{cursor:pointer}
img{max-width:100%;display:block}
p,h1,h2,h3,dl,dd{margin:0}
.container{width:min(1200px,calc(100% - 72px));margin-inline:auto}
.skip-link{position:absolute;z-index:99;top:-100px;left:20px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px}
.skip-link:focus{top:14px}
:focus-visible{outline:3px solid rgba(246,101,27,.55);outline-offset:3px}
.site-header{height:69px;position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(25,25,25,.055);background:rgba(255,255,255,.94);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px)}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}
.wordmark{font-size:22px;font-weight:850;letter-spacing:-.045em;white-space:nowrap}
.wordmark:hover{color:var(--ink)}
.wordmark-dot{color:var(--orange)}
.desktop-nav{height:100%;display:flex;align-items:stretch;gap:48px;margin-left:9%}
.nav-link{position:relative;display:flex;align-items:center;white-space:nowrap;color:#4f5360;font-size:14px;font-weight:650;transition:color .2s}
.nav-link:hover,.nav-link.is-active{color:var(--ink)}
.nav-link.is-active::after,.nav-link:hover::after{position:absolute;content:"";height:3px;background:var(--orange);bottom:0;left:0;right:0;border-radius:3px 3px 0 0}
.header-actions{display:flex;align-items:center;gap:12px}
.button{min-height:46px;padding:10px 22px;display:inline-flex;gap:15px;align-items:center;justify-content:center;border-radius:9px;font-weight:700;font-size:14px;letter-spacing:.005em;border:1px solid transparent;transition:background .16s,box-shadow .16s,transform .16s;color:var(--ink);white-space:nowrap}
.button:hover{transform:translateY(-1px)}
.button-primary{color:#fff;background:var(--orange);box-shadow:0 5px 15px rgba(246,101,27,.18)}
.button-primary:hover{color:#fff;background:var(--orange-strong);box-shadow:0 7px 19px rgba(246,101,27,.25)}
.button-outline{border-color:#e0e4e9;background:#fff;color:#34383f}
.button-outline:hover{border-color:#fab28a;background:var(--orange-pale);color:#9b370d}
.button-quiet{color:var(--orange);border-color:#ffd8c5;background:#fffaf7}
.button-sm{min-height:37px;padding:7px 20px;border-radius:23px;font-size:13px}
.menu-button,.mobile-nav{display:none}

/* Hero */
.hero{background:linear-gradient(100deg,#fff 0%,#fff 41%,#f4f4f4 100%);position:relative;overflow:hidden;border-bottom:1px solid #f0f0f0}
.hero-grid{min-height:480px;display:grid;grid-template-columns:55% 45%;align-items:stretch;position:relative}
.hero-copy{padding:54px 0 46px;position:relative;z-index:2}
.eyebrow{display:flex;align-items:center;gap:8px;color:#646b72;font-size:15px;margin-bottom:5px}
.hero h1{font-size:clamp(54px,6.2vw,91px);letter-spacing:-.075em;font-weight:900;line-height:1.2}
.hero h2{font-size:clamp(27px,3vw,42px);letter-spacing:-.05em;font-weight:820;line-height:1.32;margin-top:3px}
.short-accent{display:block;width:48px;height:4px;border-radius:2px;background:var(--orange);margin:8px 0 14px}
.hero-intro{max-width:615px;color:#51565d;font-size:16px;line-height:1.75;letter-spacing:-.018em}
.hero-intro strong{color:#30343a;font-weight:710}
.quick-profile{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:22px;max-width:645px}
.profile-item{display:flex;align-items:center;min-height:42px;gap:8px;padding:8px 11px;border:1px solid #e9ebef;background:rgba(255,255,255,.83);border-radius:7px;font-size:13px;min-width:0}
.profile-item dt{flex:0 0 83px;display:flex;gap:7px;align-items:center;color:#606770;white-space:nowrap}
.profile-icon{color:#262a32;width:15px;display:inline-flex;justify-content:center;font-size:15px;font-weight:800}
.profile-item dd{font-weight:650;min-width:0;overflow-wrap:anywhere;line-height:1.35;letter-spacing:-.02em}
.profile-item a{transition:color .2s}
.hero-cta{display:flex;gap:12px;align-items:center;margin-top:19px}
.hero-visual{position:relative;min-width:0;isolation:isolate}
.hero-visual::before{content:"";position:absolute;inset:0 -20vw 0 -12%;background:radial-gradient(circle at 50% 55%,#ededed 0%,#f7f7f7 45%,transparent 76%);z-index:-1}
.portrait-frame{height:100%;overflow:hidden;position:absolute;inset:0 -4.8vw 0 0;mask-image:linear-gradient(90deg,transparent 0%,#000 11%,#000 100%)}
.portrait-frame img{height:100%;width:100%;object-fit:cover;object-position:47% 36%;filter:saturate(.9)}
.hero-handwritten{position:absolute;top:16%;right:-8px;z-index:2;font-family:"STKaiti","KaiTi","Kaiti SC",cursive;font-size:clamp(18px,2.3vw,30px);font-weight:750;line-height:1.25;letter-spacing:.045em;transform:rotate(-9deg);color:#28231f;text-align:center;text-shadow:0 2px 6px rgba(255,255,255,.7)}
.hero-handwritten span{display:block;height:4px;background:var(--orange);border-radius:100%;width:90%;margin:12px auto 0;transform:rotate(-12deg)}

/* Headings and HR signal cards */
.section-pad{padding-top:36px}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px}
.section-heading h2{font-size:25px;font-weight:850;line-height:1.28;letter-spacing:-.045em;display:flex;gap:14px;align-items:center}
.section-heading h2::before{content:"";width:5px;height:24px;border-radius:4px;background:var(--orange);flex:none}
.section-heading p{font-size:13px;color:var(--muted);margin-top:6px;margin-left:19px}
.section-en{font-size:11px;letter-spacing:.09em;font-weight:650;color:#a1a6ae;white-space:nowrap}
.overview-shell{padding:18px 17px 16px;border:1px solid #e8ebed;border-radius:11px;background:linear-gradient(110deg,#fbfbfc,#f8f9fa);box-shadow:var(--shadow)}
.overview-heading{margin-bottom:12px}
.overview-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.overview-item{border:1px solid #edf0f2;border-radius:9px;background:#fff;min-height:116px;padding:14px 12px 13px;box-shadow:0 2px 7px rgba(50,50,50,.012)}
.info-symbol{display:flex;align-items:center;justify-content:center;width:31px;height:31px;border-radius:50%;background:#fff1e7;color:var(--orange);font-size:12px;font-weight:850;letter-spacing:-.01em;margin-bottom:5px}
.overview-item h3{font-size:13px;font-weight:800;margin-bottom:6px;white-space:nowrap}
.overview-item p{font-size:12.6px;color:#30343b;line-height:1.65}
.overview-item p strong{font-weight:800}

/* Projects */
.text-link{color:#777d87;font-size:13px;font-weight:700;display:flex;align-items:center;gap:10px;white-space:nowrap}
.text-link:hover{color:var(--orange)}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.project-card{border:1px solid #e8ebef;border-radius:11px;background:#fff;overflow:hidden;min-width:0;box-shadow:0 5px 15px rgba(31,35,42,.035);display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}
.project-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(27,35,46,.09)}
.project-image{display:block;position:relative;overflow:hidden;aspect-ratio:2.46;margin:12px 12px 0;border-radius:7px;background:#16171c}
.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.project-card:hover .project-image img{transform:scale(1.035)}
.project-badge{position:absolute;top:0;right:0;padding:6px 11px;border-radius:0 7px 0 7px;background:var(--orange);color:#fff;font-size:11px;font-weight:800}
.project-body{padding:12px 16px 13px;flex:1;display:flex;flex-direction:column}
.project-body h3{font-size:18px;line-height:1.35;font-weight:850;letter-spacing:-.04em;margin-bottom:7px}
.title-sub{font-size:15px;letter-spacing:-.01em}
.project-body>p{font-size:13.1px;line-height:1.75;color:#50555d;min-height:70px}
.project-points{list-style:none;margin:10px 0 12px;padding:0}
.project-points li{font-size:12.9px;color:#505660;line-height:1.7;position:relative;padding-left:14px;margin-bottom:3px}
.project-points li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--orange);position:absolute;top:8px;left:1px}
.project-bottom{margin-top:auto;border-top:1px solid #eff0f2;padding-top:10px;display:flex;align-items:center;gap:8px;color:#646e7a;font-size:11.8px;line-height:1.5;min-height:35px}
.stack-label{font-weight:750;padding:4px 7px;border-radius:5px;background:#f2f4f6;color:#394049;white-space:nowrap}
.project-more{display:inline-flex;align-items:center;justify-content:space-between;margin-top:10px;color:#df5915;font-size:12px;font-weight:750}

/* Metrics */
.results-section{padding-top:35px}
.results-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:linear-gradient(105deg,#fff7f0 0%,#fffaf5 100%);border-radius:10px;padding:18px 13px}
.result-item{display:flex;flex-direction:column;justify-content:center;position:relative;padding:2px 24px 3px;min-height:95px;line-height:1.25}
.result-item+.result-item::before{content:"";position:absolute;width:1px;height:62px;background:#f1e9e3;left:0;top:50%;transform:translateY(-50%)}
.result-number{font-size:clamp(25px,3.4vw,39px);font-weight:900;color:var(--orange-strong);letter-spacing:-.06em;white-space:nowrap}
.result-word{font-size:clamp(23px,2.9vw,36px)}
.result-unit{font-size:14px;font-weight:700;position:absolute;top:27px;left:auto;margin-left:0;transform:translateX(0);display:none}
.result-caption{margin-top:6px;line-height:1.5;color:#66707b;font-size:12px}
.metrics-note{margin-top:8px;font-size:11px;color:#9ba0a8}

/* Experience & skills */
.lower-section{display:grid;grid-template-columns:1.16fr 1fr;column-gap:34px;padding-bottom:50px}
.experience-panel{min-width:0}
.skills-panel{border-left:1px solid #eceef0;padding-left:33px;min-width:0}
.experience-timeline{list-style:none;margin:0;padding:2px 0 0 21px;border-left:1px solid #ffded0}
.experience-timeline li{position:relative;display:grid;grid-template-columns:116px 1fr;gap:8px;margin:0 0 19px;align-items:start}
.experience-timeline li:last-child{margin-bottom:0}
.experience-timeline li::before{position:absolute;content:"";height:8px;width:8px;background:var(--orange);border:2px solid #fff;border-radius:50%;left:-25px;top:8px;box-shadow:0 0 0 1px #ffb68e}
.experience-timeline time{font-size:12px;color:#808690;white-space:nowrap;padding-top:3px;font-variant-numeric:tabular-nums}
.experience-timeline h3{font-size:13px;line-height:1.5;font-weight:800;margin-bottom:4px}
.experience-timeline h3 span{font-weight:500;color:#6f737b}
.experience-timeline p{font-size:12px;line-height:1.65;color:#636a74}
.skills-panel .section-heading{gap:8px}
.skill-group{display:grid;grid-template-columns:100px 1fr;gap:11px;align-items:start;margin-bottom:12px}
.skill-group h3{font-size:12px;font-weight:750;color:#51555d;line-height:26px;background:#f5f6f7;border-radius:5px;text-align:center;white-space:nowrap}
.skill-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.skill-tags span{font-size:11.6px;font-weight:650;line-height:1.3;padding:5px 8px;border-radius:6px;border:1px solid #e9ecf0;color:#555e68;background:#fff;white-space:nowrap}
.education-card{display:flex;align-items:center;gap:13px;border-radius:9px;padding:14px;margin-top:23px;background:#fcfaf8;border:1px solid #f6eae3}
.education-icon{display:grid;place-items:center;flex:none;height:34px;width:34px;color:var(--orange);background:#fff0e8;border-radius:10px;font-size:18px}
.education-card strong{font-size:13px}
.education-card p{font-size:12px;color:#777d87;margin-top:1px}

/* Contact and footer */
.contact-section{background:#faf9f8;border-top:1px solid #f0eeeb;border-bottom:1px solid #f0eeeb}
.contact-inner{display:flex;justify-content:space-between;align-items:center;gap:32px;padding-top:31px;padding-bottom:32px}
.contact-kicker{display:inline-block;font-size:11px;letter-spacing:.14em;font-weight:750;color:var(--orange);margin-bottom:3px}
.contact-inner h2{font-size:25px;letter-spacing:-.035em;line-height:1.35}
.contact-inner p{margin-top:8px;color:#6e737d;font-size:13px}
.contact-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.contact-actions .button{font-size:12px;padding-inline:16px}
.footer{padding:23px 0 28px;color:#9b9fa5;font-size:12px}
.footer-inner,.footer-inner>span:last-child{display:flex;align-items:center;justify-content:space-between;gap:18px}
.footer a:hover{color:var(--orange)}

/* Tablet and compact laptop */
@media(max-width:1100px){
 .container{width:min(100% - 48px,1100px)}
 .desktop-nav{gap:28px;margin-left:0}
 .hero-grid{grid-template-columns:58% 42%}
 .hero-intro{font-size:14px}
 .profile-item{font-size:11.5px;padding:7px}
 .profile-item dt{flex-basis:76px}
 .overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .overview-item{min-height:105px}
 .project-body h3{font-size:16px}
 .project-bottom{display:block}
 .stack-label{display:inline-block;margin-right:5px}
 .experience-timeline li{grid-template-columns:104px 1fr}
 .skill-group{grid-template-columns:88px 1fr}
}
@media(max-width:780px){
 .container{width:calc(100% - 36px)}
 .site-header{height:62px}
 .desktop-nav{display:none}
 .menu-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:37px;height:37px;background:#fff;border:1px solid var(--line);border-radius:9px}
 .menu-button span{width:17px;height:2px;background:#424751;border-radius:4px}
 .mobile-nav:not([hidden]){display:flex;flex-direction:column;gap:0;background:#fff;border-top:1px solid var(--line);box-shadow:0 10px 20px rgba(0,0,0,.05);padding:7px 18px}
 .mobile-nav a{padding:10px 5px;border-bottom:1px solid #f1f2f4;font-size:14px;font-weight:650}
 .hero-grid{display:flex;flex-direction:column;min-height:0}
 .hero-copy{padding:37px 0 0}
 .hero h1{font-size:64px}
 .hero h2{font-size:31px}
 .hero-intro{font-size:14px;max-width:none}
 .hero-visual{height:260px;margin:15px -18px 0;order:2}
 .portrait-frame{inset:0;mask-image:linear-gradient(0deg,#000 0%,#000 95%)}
 .portrait-frame img{object-position:center 28%}
 .hero-handwritten{top:19%;right:9%;font-size:24px}
 .quick-profile{max-width:none}
 .overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .section-heading h2{font-size:23px}
 .project-grid{grid-template-columns:1fr;gap:16px}
 .project-image{aspect-ratio:2.45}
 .project-body>p{min-height:0}
 .project-bottom{display:flex}
 .lower-section{grid-template-columns:1fr;row-gap:36px}
 .skills-panel{border:0;padding:0}
 .contact-inner{flex-direction:column;align-items:stretch}
 .contact-actions{justify-content:flex-start}
}
@media(max-width:510px){
 html{scroll-padding-top:68px}
 .container{width:calc(100% - 30px)}
 .wordmark{font-size:20px}
 .button-sm{font-size:11.5px;padding:6px 12px}
 .hero-copy{padding-top:30px}
 .eyebrow{font-size:13px}
 .hero h1{font-size:56px}
 .hero h2{font-size:26px}
 .hero-intro{font-size:13.5px}
 .quick-profile{grid-template-columns:1fr 1fr;gap:6px}
 .profile-item{display:block;min-height:53px;padding:8px 8px;font-size:11px}
 .profile-item dt{margin-bottom:3px;font-size:10.5px}
 .profile-item dd{padding-left:1px;font-size:11px}
 .hero-cta{gap:8px}
 .hero-cta .button{font-size:12px;min-height:42px;padding:8px 13px;gap:5px}
 .hero-visual{height:210px;margin-top:8px}
 .hero-handwritten{font-size:20px;right:6%}
 .section-pad{padding-top:25px}
 .overview-shell{padding:15px 10px 11px}
 .section-heading{align-items:flex-start;gap:8px;margin-bottom:14px}
 .section-heading h2{font-size:21px;gap:9px}
 .section-heading h2::before{height:19px;width:4px}
 .section-heading p{font-size:11px;margin-left:13px}
 .section-en{font-size:9px;margin-top:4px}
 .overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .overview-item{min-height:112px;padding:10px 12px}
 .overview-item h3{font-size:12px}
 .overview-item p{font-size:12px}
 .project-body{padding:12px}
 .project-body h3{font-size:18px}
 .project-body>p{font-size:12.5px}
 .project-points li{font-size:12px}
 .results-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:15px;padding:16px 8px}
 .result-item{min-height:80px;padding:3px 14px}
 .result-item:nth-child(3)::before{display:none}
 .result-item::after{content:"";height:1px;background:#f1e9e3;position:absolute;bottom:-8px;left:10px;right:10px}
 .result-item:nth-child(n+3)::after{display:none}
 .result-number{font-size:29px}
 .result-word{font-size:24px}
 .result-caption{font-size:11px}
 .experience-timeline li{display:block}
 .experience-timeline time{display:block;margin-bottom:3px}
 .experience-timeline h3{font-size:12.5px}
 .skill-group{grid-template-columns:83px 1fr;gap:8px}
 .skill-tags span{font-size:10.5px;padding:5px 6px}
 .contact-inner h2{font-size:22px}
 .contact-actions .button{flex:1 1 auto}
 .footer-inner{flex-direction:column;gap:10px;align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Final QA refinements: present metric units and prevent narrow email wrapping. */
.result-item{display:block}
.result-number{display:inline-block}
.result-unit{display:inline-block;position:static;transform:none;margin-left:6px;font-size:13px;font-weight:700;color:#3f454d;vertical-align:baseline}
.result-caption{display:block}
@media(max-width:510px){
  .quick-profile .profile-item:nth-child(4){grid-column:1/-1;display:flex;align-items:center;min-height:43px;gap:6px}
  .quick-profile .profile-item:nth-child(4) dt{flex:0 0 79px;margin-bottom:0}
  .quick-profile .profile-item:nth-child(4) dd{font-size:12px;overflow-wrap:normal;word-break:normal}
  .quick-profile .profile-item:nth-child(4) dd a{white-space:nowrap}
}
