/* Image-led first view. Hero images always keep a real 16:9 box. */
.home-hero{min-height:0;max-height:none;display:block;padding-block:var(--space-5) var(--space-6)}
.hero-media .placeholder-center{font:var(--text-sm) var(--font-mono);letter-spacing:.16em;opacity:.5}
.home-hero-copy{position:static;text-align:center;width:100%;margin-top:var(--space-5)}
.home-hero h1{font-size:var(--text-hero-caption);font-family:var(--font-serif);font-weight:400;line-height:2;letter-spacing:.13em}
.home-hero h1 span,.home-hero h1 span:nth-child(1),.home-hero h1 span:nth-child(3){color:var(--hero-secondary)}
.hero-bottom{position:relative;inset:auto;display:block;text-align:center;margin-top:var(--space-5);font-size:var(--text-xs);letter-spacing:.1em;padding-inline:7rem}.hero-bottom>span{display:block;text-align:center}.hero-bottom .scroll-cue{position:absolute;right:0;top:0}
.architecture-intro{padding-block:var(--space-5);display:flex;align-items:center;justify-content:space-between;gap:var(--space-5)}
.architecture-intro h1{font-size:var(--text-lg);letter-spacing:.025em;line-height:1.6}
.architecture-intro h1 span{font:var(--text-sm)/1.6 var(--font-serif);color:var(--muted);margin-left:var(--space-5)}
.architecture-hero-media{aspect-ratio:16/9;width:100%;position:relative;overflow:hidden;isolation:isolate;--architecture-slide:0}
.architecture-hero-media>img,.architecture-hero-media>.media-placeholder{width:100%;height:100%;aspect-ratio:16/9;object-fit:cover}
.architecture-carousel-track{display:flex;width:100%;height:100%;transform:translateX(calc(var(--architecture-slide) * -100%));transition:transform 1s var(--ease);will-change:transform}
.architecture-carousel-slide{flex:0 0 100%;width:100%;height:100%;margin:0}
.architecture-carousel-slide img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.architecture-carousel-control{position:absolute;z-index:2;top:50%;transform:translateY(-50%);width:48px;height:64px;padding:0;display:grid;place-items:center;color:var(--ink);opacity:.45;transition:opacity var(--transition)}
.architecture-carousel-control:hover,.architecture-carousel-control:focus-visible{opacity:1}
.architecture-carousel-control span{font:300 3rem/1 var(--font-sans)}
.architecture-carousel-control.previous{left:var(--space-4)}
.architecture-carousel-control.next{right:var(--space-4)}
.architecture-carousel-status{position:absolute;z-index:2;right:var(--space-4);bottom:var(--space-4);margin:0;font:var(--text-xs)/1.4 var(--font-mono);letter-spacing:.12em;color:var(--ink);text-shadow:0 1px 12px rgba(0,0,0,.5)}
.architecture-intro-copy{font-size:var(--text-sm);color:var(--muted);max-width:760px;margin-top:var(--space-5);line-height:1.9}
.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.page-hero{padding-block:var(--page-hero-space) var(--space-6)}
.page-hero .eyebrow{font-size:var(--text-xs);margin-bottom:var(--space-4);letter-spacing:.1em}
.page-hero h1{font-family:var(--font-sans);font-size:var(--text-page-title);letter-spacing:.04em;line-height:1.6}
.page-hero .en-title{font-size:var(--text-page-note);margin-top:var(--space-2)}
.page-hero .intro{font-size:var(--text-base);line-height:1.9;margin-top:var(--space-5);max-width:760px}
.profile-name h2{font-size:var(--text-profile-name);letter-spacing:-.03em;line-height:1.4}
.profile{padding-top:var(--space-5);gap:var(--space-8)}
.profile-bio>p{font-size:var(--text-base)}
.profile-bio .english{font-size:var(--text-base)}
.project-info-column h1{font-family:var(--font-sans);font-size:var(--text-page-title);line-height:1.6;margin-top:var(--space-4)}
.viewer-info h2{font-size:var(--text-lg);line-height:1.7}
@media(max-width:1100px){.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-7) var(--space-4)}.project-card h3{font-size:var(--text-sm)}.project-card .entry-head small{font-size:var(--text-xs)}.project-card .placeholder-label{left:var(--space-3);bottom:var(--space-3);right:var(--space-3)}.home-hero{min-height:0}.home-hero h1{font-size:var(--text-hero-caption)}.architecture-intro h1 span{display:block;margin-left:0}.architecture-intro .eyebrow{font-size:var(--text-xs)}}
@media(max-width:760px){.home-hero{min-height:0;padding-top:var(--space-4)}.home-hero h1{font-size:var(--text-hero-caption);line-height:2}.hero-bottom{margin-top:var(--space-6);letter-spacing:.06em;padding-inline:0}.hero-bottom>span{max-width:none;text-align:center}.hero-bottom .scroll-cue{position:static;justify-content:center;margin-top:var(--space-4)}.architecture-intro{align-items:start}.architecture-intro h1{font-size:var(--text-base)}.architecture-intro .eyebrow{display:none}.architecture-intro-copy{font-size:var(--text-sm)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-7) var(--space-4)}.project-card .entry-head .arrow{display:none}.project-card .card-meta{font-size:var(--text-xs);display:block}.project-card .card-meta>span:last-child{display:block;margin-top:.5rem}.project-card .placeholder-label{font-size:var(--text-xs)}.project-card .placeholder-center{font-size:2rem}}
@media(max-width:520px){.project-grid{grid-template-columns:1fr}.project-card h3{font-size:var(--text-base)}}

.wordmark{font-weight:var(--wordmark-weight);letter-spacing:-.045em}
.wordmark{font-family:var(--font-sans);font-size:var(--wordmark-size);letter-spacing:.025em;display:flex;align-items:baseline;gap:var(--space-3);white-space:nowrap}
.wordmark .wordmark-name{font-weight:var(--wordmark-weight)}
.wordmark .wordmark-section{font:var(--wordmark-section-size)/1 var(--font-sans);letter-spacing:.06em;color:var(--muted);display:inline;margin-left:0}
.footer:not(:has(.footer-top)){padding-top:0}
.places-index{display:block;min-width:0}
.places-scroll{max-height:var(--places-index-height);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding-right:var(--space-3)}
.place-continent h3{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-xs);color:var(--muted);padding-block:var(--space-5) var(--space-2)}
.place-continent h3 small{font:var(--text-xs) var(--font-mono);letter-spacing:.1em}
.place-continent h3{background:var(--map-index-highlight);padding:var(--space-2) var(--space-3);margin-block:var(--space-4) var(--space-2)}
.places-index .province-index{margin-left:var(--space-3);padding-block:var(--space-3);border-bottom:0}
.places-index .province-index summary{font-size:var(--text-xs)}
.places-index .country-index[open]>summary{color:var(--map-hover)}
.places-index details[open]>summary>span{transform:rotate(45deg)}
.places-index details:not([open])>summary>span{transform:none}
.map-stage{aspect-ratio:16/9;background:var(--map-sea);overflow:hidden;min-height:0}
.interactive-map{height:100%;width:100%;overflow:hidden}
.map-region path{stroke:var(--map-border);stroke-width:.65}
.map-region.visited path{stroke:#91b4c8}
.china-atlas .interactive-map{max-height:none}
@media(max-width:1200px){.nav-inner{gap:var(--space-5)}.nav-links{gap:var(--space-5)}.wordmark{font-size:1.4rem}.wordmark .wordmark-section{max-width:9em;white-space:normal}}
@media(max-width:760px){.places-scroll{max-height:320px}.places-index{margin-bottom:var(--space-5)}.wordmark .wordmark-section{max-width:none;white-space:nowrap}.map-stage{aspect-ratio:16/9}.place-city-links{gap:var(--space-3) var(--space-5)}}
.home-hero{padding-top:var(--space-6)}
.home-hero-caption{width:100%}
.hero-carousel{width:100%;overflow:hidden;position:relative;outline-offset:-4px}
.hero-carousel-stage{position:relative;height:calc(var(--hero-slide-width) * 9 / 16)}
.hero-carousel-track{position:absolute;inset:0}
.hero-carousel-slide{position:absolute;left:50%;top:0;width:var(--hero-slide-width);height:100%;margin-left:calc(var(--hero-slide-width) / -2);transform:translateX(calc(var(--offset) * (var(--hero-slide-width) + var(--hero-slide-gap)))) scale(var(--hero-neighbor-scale));opacity:var(--hero-neighbor-opacity);transform-origin:center;will-change:transform}
.hero-carousel-slide.is-current{transform:translateX(calc(var(--offset) * (var(--hero-slide-width) + var(--hero-slide-gap)))) scale(1);opacity:1;z-index:1}
.hero-carousel.is-moving .hero-carousel-slide{transition:transform var(--carousel-duration) var(--ease),opacity var(--carousel-duration) var(--ease)}
.hero-carousel-slide>img,.hero-carousel-slide>.media-placeholder{width:100%;height:100%;aspect-ratio:var(--hero-slide-ratio);object-fit:cover}
.hero-carousel-slide .placeholder-label{font-size:var(--text-xs)}
.hero-preview-hit{position:absolute;inset:0;width:100%;padding:0;cursor:pointer}
.hero-carousel-control{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:48px;height:64px;padding:0;display:grid;place-items:center;color:var(--ink);opacity:.7;transition:opacity var(--transition)}
.hero-carousel-control[hidden]{display:none}
.hero-carousel-control:hover,.hero-carousel-control:focus-visible{opacity:1}
.hero-carousel-control span{font:300 3rem/1 var(--font-sans)}
.hero-carousel-control.previous{left:var(--space-5)}
.hero-carousel-control.next{right:var(--space-5)}
.hero-carousel-status{text-align:center;min-height:1.5em;margin-top:var(--space-4);font:var(--text-xs)/1.5 var(--font-mono);letter-spacing:.12em;color:var(--muted)}
.hero-carousel-status:empty{display:none}
@media(max-width:760px){:root{--hero-slide-width:82vw;--hero-slide-gap:1rem;--hero-neighbor-scale:.92}.home-hero{padding-top:var(--space-5);padding-inline:0}.home-hero-copy{margin-top:var(--space-5)}.hero-carousel-control{width:32px;height:48px}.hero-carousel-control.previous{left:0}.hero-carousel-control.next{right:0}.hero-carousel-control span{font-size:2.3rem}.hero-carousel-slide .placeholder-label{left:var(--space-3);right:var(--space-3);bottom:var(--space-3)}.hero-carousel-status{margin-top:var(--space-3)}}
