/* Nordic editorial rhythm: basalt, snow, cool light and one clear type system. */
:root{
 --sans:"Geist",-apple-system,BlinkMacSystemFont,"PingFang SC","Source Han Sans CN","Microsoft YaHei",Arial,sans-serif;
 --nav:"Manrope",var(--sans);
 --serif:"Noto Serif SC","Songti SC",SimSun,serif;
 --ink:#000000;
 --panel:#0d0d0d;
 --text:#f2f2ef;
 --muted:#a3a3a0;
 --line:rgba(242,242,239,.15);
 --accent:#cbcbc8;
 --warm:var(--accent);
 --silver:#d7d7d4;
 --glass:rgba(0,0,0,.94);
}
body{font-family:var(--sans);font-weight:400;font-optical-sizing:auto;letter-spacing:0;line-height:1.65}
button,select,input{font-family:var(--sans)}
h1,h2,h3{font-weight:650}
.hero{background:var(--ink)}
.desktop-nav,.mobile-menu{font-family:var(--nav)}
::selection{background:#cbcbc8;color:#000000}
:focus-visible{outline-color:var(--accent)}
.wordmark.name-wordmark>span{color:var(--text)}
.site-header{height:calc(var(--brand-bar-height) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}
.site-header.scrolled,.route-top,.collection-top{background:var(--glass);border-color:var(--line)}
.language-switch .language-toggle{border-color:rgba(242,242,239,.25);background:rgba(0,0,0,.08);font-weight:500;letter-spacing:.015em}
.language-switch .language-toggle:hover{border-color:var(--accent);background:rgba(210,210,208,.07)}
.desktop-nav>a:hover,.desktop-nav>a:focus-visible{color:var(--text)}
.desktop-nav>a:after{background:var(--accent)}
.hero-content{bottom:clamp(145px,18svh,200px);max-width:calc(100% - var(--header-gutter)*2)}
.hero h1{font-size:clamp(44px,5vw,68px);font-weight:700;letter-spacing:-.035em;line-height:1.08}
html[lang="zh-CN"] .hero h1{font-weight:600;letter-spacing:0;line-height:1.18}
.hero h1::before{width:26px;margin-bottom:22px;background:var(--accent);opacity:.75}
.hero-link{margin-top:22px;padding-bottom:6px;font-size:11px;font-weight:500;letter-spacing:.01em;color:var(--text);border-color:rgba(210,210,208,.45);transition:color 250ms,border-color 250ms}
.hero-link:hover{color:#fff;border-color:var(--accent)}
.hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.27) 0%,rgba(0,0,0,.03) 27%,rgba(0,0,0,0) 48%,rgba(0,0,0,.08) 62%,rgba(0,0,0,.32) 75%,rgba(0,0,0,.7) 87%,rgba(0,0,0,.96) 96%,var(--ink) 100%)}
.section-shell{padding-inline:var(--header-gutter)}
.home-profile.section-shell,.site-footer.section-shell{max-width:none;padding-left:max(var(--header-gutter),env(safe-area-inset-left,0px));padding-right:max(var(--header-gutter),env(safe-area-inset-right,0px))}
.places.section-shell{max-width:none;padding:0}
.places h2{font-size:14px;font-weight:500;letter-spacing:.045em;line-height:1.5}
.map-legend-inline{letter-spacing:.04em;color:var(--muted)}
.places .map-land{fill:#111111;stroke:#292929}
.places .map-region.visited .map-land{fill:#363636;stroke:#787878}
.places .map-region.visited[aria-pressed="true"] .map-land{fill:#505050;stroke:#c7c7c7}
.places .map-region.visited:hover .map-land,.places .map-region.visited:focus-visible .map-land{fill:#636363;stroke:#f2f2ef}
.places .map-tabs button.active{color:var(--accent)}
.places .map-tabs button::after{background:var(--accent)}
.places .place-info h3{font-size:17px;font-weight:400;letter-spacing:.005em}
.places .map-controls button{font-weight:400}
.home-profile h2{font-size:20px;font-weight:650;letter-spacing:-.015em;line-height:1.5}
.home-profile h2 span{font-family:var(--sans);font-size:13px;font-weight:400;letter-spacing:.08em;color:var(--muted)}
.profile-location{font-size:13px;letter-spacing:.01em;color:var(--silver)}
.profile-role{font-size:11px;line-height:1.8;color:var(--muted)}
.profile-social{font-size:12px;letter-spacing:.02em}
.profile-social a,.social-names a{border-color:rgba(210,210,208,.35);transition:color 250ms,border-color 250ms}
.profile-social a:hover,.social-names a:hover{color:var(--accent);border-color:var(--accent)}
.site-footer.section-shell{margin-inline:0;border-top:1px solid var(--line)}
.site-footer p{font-size:8px;letter-spacing:.025em;color:var(--muted)}
.mobile-menu{background:rgba(0,0,0,.78)}
.mobile-menu a{font-size:27px;font-weight:500;letter-spacing:.015em;border-color:var(--line)}
html[lang="en"] .mobile-menu a{font-size:24px;letter-spacing:-.015em}
.mobile-menu a:hover,.mobile-menu a:focus-visible{color:var(--accent);border-color:var(--accent)}
dialog{background:var(--ink);color:var(--text)}
.route-top,.collection-top,.lightbox-toolbar{height:calc(var(--brand-bar-height) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);padding-bottom:0;padding-left:max(var(--header-gutter),env(safe-area-inset-left,0px));padding-right:max(var(--header-gutter),env(safe-area-inset-right,0px));flex-shrink:0}
.lightbox-toolbar{border-bottom:1px solid var(--line)}
.lightbox[open]{grid-template-rows:calc(var(--brand-bar-height) + env(safe-area-inset-top,0px)) minmax(0,1fr) auto var(--lightbox-strip-height,85px)}
.small-wordmark{font-weight:500;letter-spacing:.12em}
.route-dialog>.section-shell{padding-top:48px;padding-bottom:48px}
.route-dialog .section-heading h2,.collection-shell h2,.route-dialog .about-copy h2{font-weight:650;letter-spacing:-.03em;line-height:1.2}
html[lang="zh-CN"] .route-dialog .section-heading h2,html[lang="zh-CN"] .collection-shell h2,html[lang="zh-CN"] .route-dialog .about-copy h2{font-weight:600;letter-spacing:0}
.route-dialog .section-heading h2{font-size:34px}
html[lang="en"] .route-dialog .section-heading h2{font-size:44px}
.collection-shell h2{font-size:42px}html[lang="en"] .collection-shell h2{font-size:52px}
.journal-caption h3,.exif-panel h3,.series-label h3,.place-info h3,.lightbox-caption h3{font-weight:600;letter-spacing:-.02em}
.route-dialog .about-copy>p:not(.about-role){max-width:480px;font-size:13px;line-height:2;letter-spacing:.01em}
.note-dialog blockquote{font-weight:500;letter-spacing:.01em}
.lightbox-caption,.lightbox-toolbar{padding-inline:var(--header-gutter)}
@media(min-width:1024px){
 .desktop-nav{gap:clamp(24px,2.2vw,34px)}
 .desktop-nav>a{font-size:14px;font-weight:500;letter-spacing:.025em;color:rgba(234,240,239,.76)}
 html[lang="en"] .desktop-nav>a{font-size:13px;letter-spacing:.015em}
 .home-profile{padding-block:40px}
 .route-dialog .work-grid{gap:28px}
 .collection-grid{column-gap:28px}
}
@media(max-width:1023px){
 .hero-content{bottom:calc(clamp(112px,16svh,145px) + env(safe-area-inset-bottom,0px))}
 .hero h1{font-size:clamp(27px,7.4vw,34px);font-weight:700;letter-spacing:-.025em;line-height:1.12}
 .hero h1::before{width:22px;margin-bottom:17px}
 .hero-link{margin-top:16px;font-size:10px;letter-spacing:.01em}
}
@media(max-width:800px){
 .places h2{font-size:12px;letter-spacing:.035em}
 .home-profile h2{font-size:17px;letter-spacing:-.01em}
 .home-profile h2 span{font-size:11px}
 .profile-location,.profile-social{font-size:11px}
 .profile-role{font-size:10px}
 .site-footer.section-shell{border-top:0}
 .mobile-menu a{font-size:25px;letter-spacing:.015em}
 html[lang="en"] .mobile-menu a{font-size:23px;letter-spacing:-.015em}
 .route-dialog>.section-shell{padding-top:30px;padding-bottom:36px}
 .route-dialog .section-heading h2{font-size:28px}
 html[lang="en"] .route-dialog .section-heading h2{font-size:34px}
 .collection-shell h2{font-size:31px}html[lang="en"] .collection-shell h2{font-size:39px}
 .route-dialog .about-copy>p:not(.about-role){font-size:12px}
 .series-label h3,.lightbox-caption h3{font-size:22px}
}
@media(orientation:landscape) and (max-height:600px) and (hover:none) and (pointer:coarse){
 .hero-content{bottom:calc(78px + env(safe-area-inset-bottom,0px))}
 .hero h1{font-size:clamp(24px,6svh,36px)}
 .hero-link{margin-top:8px}
}

@media(max-width:560px){:root{--lightbox-strip-height:72px}}

/* City labels for destination collections and author credits for original work. */
.series-city{margin-top:7px;font-size:12px;font-weight:400;letter-spacing:.02em;line-height:1.5;color:var(--silver)}
.collection-shell #collectionCity{display:block;margin-top:10px;font-size:13px;font-weight:400;letter-spacing:.015em;line-height:1.5;color:var(--muted)}
.lightbox-meta #lightboxAuthor{font-size:10px;font-weight:400;letter-spacing:.01em;color:var(--muted)}
@media(max-width:560px){.series-city{font-size:10px;margin-top:5px}.collection-shell #collectionCity{font-size:12px}}

.lightbox{background:var(--ink)}
.places .map-pin .pin-center{fill:#e1e1df}
.places .map-pin .pin-ring{stroke:#ffffff30}
.places .map-pin.active .pin-ring{fill:#ffffff0a;stroke:#ffffff94}

/* Keep supporting copy readable without competing with the photographs. */
.site-footer p{font-size:10px}
.profile-role,.profile-location,.profile-social{font-size:12px}
.route-dialog .about-copy>p:not(.about-role){font-size:14px}
.route-dialog .about-role{font-size:14px}
@media(max-width:800px){
 .route-dialog .about-copy>p:not(.about-role),.route-dialog .about-role{font-size:13px}
}
