/* Apple-inspired system typography with native CJK rendering. */
:root{--sans:-apple-system,BlinkMacSystemFont,"Helvetica Neue","PingFang SC","Hiragino Sans GB","Source Han Sans CN","Microsoft YaHei",Arial,sans-serif;--serif:var(--sans)}
body{font-family:var(--sans);font-weight:400;letter-spacing:.012em}
button,select{font-family:var(--sans)}
h1,h2,h3{font-family:var(--serif);font-weight:500}
.site-header{height:78px;padding-inline:36px}
.site-header.scrolled{height:68px}
.header-actions{gap:15px}
.hero h1{font-family:var(--serif);font-size:clamp(36px,4vw,58px);font-weight:500;line-height:1.04;letter-spacing:.025em}
.hero h1:before{margin-bottom:16px;width:24px}
.hero-link{font-size:11px;font-weight:400;letter-spacing:.06em}
.hero-caption .coordinate{font-family:var(--sans);letter-spacing:.11em}
.small-wordmark{font-family:var(--sans);font-weight:500;letter-spacing:.09em;font-size:12px}
.mobile-menu a{font-family:var(--serif);font-weight:500;font-size:29px;letter-spacing:.035em;min-height:60px;padding-block:11px}
.route-dialog .section-heading h2,.collection-shell h2,.route-dialog .about-copy h2{font-family:var(--serif);font-weight:500;letter-spacing:.025em;line-height:1.35}
.route-dialog .section-heading h2{font-size:32px}
.collection-shell h2{font-size:42px}
html[lang="en"] .route-dialog .section-heading h2{font-size:43px}
html[lang="en"] .collection-shell h2{font-size:53px}
.journal-caption h3,.exif-panel h3,.series-label h3,.place-info h3,.lightbox-caption h3{font-family:var(--serif);font-weight:500;letter-spacing:.025em}
.route-dialog .work-caption h3,.collection-photo h3{font-family:var(--sans);font-size:12px;font-weight:400;line-height:1.65;letter-spacing:.025em}
.route-dialog .about-copy>p:not(.about-role){font-family:var(--sans);font-weight:400;line-height:2;font-size:13px}
.route-dialog .about-role{font-family:var(--sans);font-size:12px;line-height:1.9}
.route-dialog .about-copy h2 small{font-family:var(--sans);font-size:12px;letter-spacing:.1em}
.places h2{font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:.065em}
.country-filters button,.map-tabs button,.orientation-filter select{font-family:var(--sans);letter-spacing:.025em;font-weight:400}
.map-tabs button{font-size:11px}
.home-profile h2{font-family:var(--sans);font-size:18px;letter-spacing:.06em;line-height:1.5;font-weight:500}
.home-profile h2 span{font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.04em}
.profile-location{font-family:var(--sans);font-size:13px;letter-spacing:.015em}
.profile-role{font-family:var(--sans);font-size:11px;font-weight:400;line-height:1.8}
.profile-social{font-family:var(--sans);font-size:12px;letter-spacing:.02em}
.site-footer p{font-family:var(--sans);font-size:8px;letter-spacing:.025em}
.note-dialog blockquote{font-family:var(--serif);font-weight:500;font-size:28px;line-height:1.9;letter-spacing:.025em}
.contact-dialog h2{font-family:var(--serif);font-size:30px;font-weight:500}
.contact-dialog>p:not(.eyebrow){font-size:12px;line-height:1.95}
.reveal.observe,.reveal.observe.visible{opacity:1;transform:none;transition:none}
.site-header,.hero-slides,.hero-content{animation:none!important}
@media(max-width:800px){
 .site-header{height:70px;padding-inline:23px}.site-header.scrolled{height:64px}.header-actions{gap:10px}
 .hero h1{font-size:39px;letter-spacing:.02em}.home-profile h2{font-size:16px}.profile-location,.profile-social{font-size:11px}.profile-role{font-size:10px}.places h2{font-size:12px}.map-tabs button{font-size:10px}
}
@media(max-width:560px){
 .site-header{height:68px;padding-inline:20px}.site-header.scrolled{height:62px}.header-actions{gap:6px}
 .hero h1{font-size:clamp(29px,8vw,37px);line-height:1.1}.hero-link{font-size:10px}.hero-caption .coordinate{font-size:8px}
 .route-dialog .section-heading h2{font-size:28px}html[lang="en"] .route-dialog .section-heading h2{font-size:35px}
 .collection-shell h2{font-size:31px}html[lang="en"] .collection-shell h2{font-size:41px}.series-label h3,.lightbox-caption h3{font-size:21px}
 .mobile-menu a{font-size:27px;min-height:54px;padding-block:9px}.route-dialog .about-copy>p:not(.about-role){font-size:12px}.note-dialog blockquote{font-size:24px}
}

/* Natural text spacing and compact display hierarchy. */
body{letter-spacing:0;line-height:1.55}
h1,h2,h3{font-weight:600;letter-spacing:-.02em}
.hero h1{font-weight:600;letter-spacing:-.025em;line-height:1.06}
.mobile-menu a{font-weight:500;letter-spacing:-.015em}
.route-dialog .section-heading h2,.collection-shell h2,.route-dialog .about-copy h2{font-weight:600;letter-spacing:-.025em;line-height:1.2}
.journal-caption h3,.exif-panel h3,.series-label h3,.place-info h3,.lightbox-caption h3{font-weight:500;letter-spacing:-.015em}
.home-profile h2{font-weight:600;letter-spacing:-.015em}
.home-profile h2 span{letter-spacing:0}
.hero-link,.country-filters button,.map-tabs button,.profile-location,.profile-role,.profile-social{letter-spacing:0}
html[lang="zh-CN"] .route-dialog .section-heading h2,html[lang="zh-CN"] .collection-shell h2{letter-spacing:-.01em;line-height:1.35}
