/* Small typography: one family, three sizes, a consistent editorial rhythm. */
:root{--font-sans:"Portfolio Sans","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;--type-label:12px;--type-nav:14px;--type-body:16px;--type-secondary:#64645e}
body,button,input,textarea,select,dialog{font-family:var(--font-sans);font-synthesis:none}
.chapter-meta,.logo small,.hero-bottom,.scroll-guide span,.work-nav p,.work-controls>span,.work-card .meta,.card-number,.scene-content>p,.archive-heading>span,.archive-meta>span,.education>span,.skills-heading>span,.skill-item::before,.footer-name small,.footer-grid h3,.copyright,.opening-meta,.detail-hero .eyebrow{
 font-size:var(--type-label);font-weight:400;line-height:1.6;letter-spacing:.025em;font-variant-numeric:tabular-nums;
}
header nav a,.nav-right a,.nav-right button,.hero-side a,.explore,.demo-note,.archive-filters button,.skill-tools li,.footer-grid a,.back-top,#menu button,.close,.opening-skip,.project-gallery figcaption,.film-caption,.film-poster figcaption,.project-download,.project-study-link,.detail-next{
 font-size:var(--type-nav);font-weight:400;line-height:1.6;letter-spacing:.015em;
}
.about>p{font-size:var(--type-nav)!important;font-weight:400;line-height:1.8;letter-spacing:.025em}
.education,.about-intro,.skill-item p,.project-summary{font-size:var(--type-body);line-height:1.85;letter-spacing:.01em}
.education{font-weight:500}
.chapter-meta{padding:20px 0 24px;gap:24px;color:var(--type-secondary)}
.chapter-label{display:flex;align-items:baseline;gap:16px;flex-shrink:0}
.chapter-index{min-width:22px;color:var(--ink);font-weight:500;letter-spacing:.04em}
.chapter-name{letter-spacing:.09em}
.chapter-meta>span:last-child{letter-spacing:.025em}
.introduction .chapter-meta>span:last-child{letter-spacing:.09em}
.work-nav p,.archive-heading>span,.archive-meta>span,.about>p,.education>span,.skills-heading>span,.skill-item p,.skill-tools li,.project-summary,.detail-hero .eyebrow,.project-gallery figcaption{color:var(--type-secondary)}
.work-controls>span,.card-number,.skill-item::before,.education>span{letter-spacing:.06em}
.archive-meta>span{white-space:normal;max-width:18ch}
.demo-note{font-size:var(--type-nav)}
.skill-tools{display:flex;flex-wrap:wrap;gap:6px 16px;padding-top:14px;border-top:1px solid var(--line)}
.skill-tools li{color:var(--type-secondary)}
.skill-tools li+li::before{content:none}
.skill-item p{min-height:5.55em}
.footer-grid h3{color:#bcbcb2;letter-spacing:.045em}
footer .chapter-index{color:#eeeee7}
.footer-grid .email-link{font-size:var(--type-body);letter-spacing:0;font-weight:400;overflow-wrap:anywhere}
.copyright{color:#bcbcb2}
.project-gallery figcaption{gap:16px;align-items:baseline}
.project-summary{max-width:60ch}
.detail-hero .eyebrow{letter-spacing:.06em}
.selected-heading{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:24px;margin:12px 0 36px}
.selected-heading>.section-title{grid-column:1;grid-row:1;margin:0;white-space:nowrap}
.selected-heading>.work-nav{display:contents}
.selected-heading .work-nav p{grid-column:2;grid-row:1;justify-self:center;max-width:none;margin:0;text-align:center}
.selected-heading .work-controls{grid-column:3;grid-row:1;justify-self:end;margin:0;align-items:center}
.archive-heading,.skills-heading{align-items:center}
.archive-heading>span,.skills-heading>span{padding-bottom:0}
@media(max-width:1100px){.skill-item p{min-height:0}.archive-meta>span{max-width:none}}
@media(max-width:800px){
 .selected-heading{display:block;margin:8px 0 22px}
 .selected-heading>.section-title{margin:0 0 24px}
 .selected-heading>.work-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0}
 .selected-heading .work-nav p{max-width:none;text-align:left}
 .selected-heading .work-controls{margin:0;flex-shrink:0}
 .chapter-meta{padding:18px 0 22px;gap:16px}.chapter-label{gap:10px}.chapter-name{letter-spacing:.06em}
 .work-nav{flex-wrap:wrap;gap:12px 18px}.work-nav p{letter-spacing:.025em}.work-controls{margin-left:auto}
 .archive-meta{gap:6px 14px}.skill-tools{gap:6px 18px}.skills-heading>span{padding-bottom:0}
 .about-intro{max-width:30ch}.education>span{margin-top:10px}.copyright{gap:20px}
}
@media(max-width:520px){
 .chapter-meta>span:last-child{max-width:43%;text-align:right}.chapter-label{max-width:57%}
 .archive-meta{grid-template-columns:1fr}.archive-meta>span{text-align:left;max-width:none}
 .footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:nth-child(3){grid-column:1/-1}
}
