/* Shared readable typography; user text-spacing overrides remain supported. */
body :is(h1,h2,h3){letter-spacing:-.02em!important;line-height:1.22!important;overflow-wrap:anywhere}
body :is(p,button,input,a){letter-spacing:0;line-height:1.7}
body p{line-height:1.7!important}
body .hero h1 span{white-space:normal!important;line-height:inherit!important;letter-spacing:inherit!important}
.manuscript-subtitle{font-size:18px;font-weight:500;margin:24px 0 0;max-width:none}
[data-concept=play] .manuscript-subtitle{text-align:center}
.manuscript-english{font-size:16px!important;font-weight:500;margin:-8px 0 22px!important}
.metric strong{letter-spacing:-.02em!important;line-height:1.25!important;font-variant-numeric:tabular-nums}
.metric strong>.count-value{font-size:inherit!important;line-height:inherit;letter-spacing:inherit;margin:0!important;display:inline}
[data-concept=flow]{--color-page:#fff;--color-ink:#204bff;--color-primary:#204bff;--color-card:#fff;--color-section-muted:#f0f2f5;--color-highlight:#f0f2f5;--color-footer:#204bff;--concept-ink:#204bff;background:#fff!important;color:#204bff}
[data-concept=flow] :is(.hero,.intro-copy,.project,.values,.impact,.map-section,.photo-album){color:#204bff;background:#fff}
[data-concept=flow] .hero h1{font-size:clamp(55px,7.65vw,150px)}
[data-concept=flow] .hero-copy-v4{padding-top:50px}
[data-concept=flow] :is(.intro-copy,.values){background:#f0f2f5}
[data-concept=flow] :is(.project,.value,.period,.impact,.intro-copy,.map-selection){border-color:#204bff}
[data-concept=flow] .metric{background:#f0f2f5;color:#204bff}
[data-concept=flow] .metric.primary{background:#204bff;color:#fff}
[data-concept=flow] .metric.primary strong{color:#fff;font-size:clamp(80px,13vw,230px);white-space:normal}
[data-concept=flow] .contact{background:#204bff;color:white;border-color:#204bff}
html.flow-snap{scroll-snap-type:y proximity;scroll-behavior:smooth;scroll-padding-top:0}
.flow-snap #app>section,.flow-snap #app>footer{scroll-snap-align:start;scroll-snap-stop:normal}
html.flow-snap.motion-off{scroll-snap-type:none;scroll-behavior:auto}
[data-concept=flow] .photo-album.list-mode{height:auto;min-height:0;background:#fff}
[data-concept=flow] .list-mode .album-stage{height:auto;min-height:0;position:relative;padding:70px 0;background:#fff;display:block;overflow:visible}
[data-concept=flow] .gallery-heading{align-items:center;margin-bottom:30px}
.place-hint{font-size:14px;max-width:290px}
[data-concept=flow] .gallery-search{margin-bottom:30px}
[data-concept=flow] .gallery-search .results-meta{display:block!important;font-size:14px;margin-top:15px}
[data-concept=flow] .list-mode .gallery-viewport{overflow:visible;padding:0;scroll-snap-type:none}
[data-concept=flow] .list-mode .gallery-track{display:block;width:100%;min-width:0}
[data-concept=flow] .list-mode .location-row{display:grid;grid-template-columns:50px minmax(0,1fr) minmax(180px,24%);align-items:center;gap:25px;width:100%;max-width:none;min-width:0;min-height:145px;padding:35px 3vw;background:transparent;border-top:1px solid #204bff;color:#204bff;border-radius:0;text-align:left;transform:none!important;will-change:auto}
[data-concept=flow] .location-row:last-child{border-bottom:1px solid #204bff}
[data-concept=flow] .location-row h3{font-size:clamp(28px,3.8vw,62px);font-weight:500;transition:transform .25s ease-out;margin:0}
[data-concept=flow] .location-row p{font-size:14px;margin:0}
.location-number{font-size:15px;font-variant-numeric:tabular-nums}
.location-row:hover h3,.location-row:focus-visible h3{transform:translateX(10px)}
.location-preview{position:fixed;top:0;left:0;z-index:40;pointer-events:none;width:min(380px,38vw)}
.location-preview>div{opacity:0;transform:translate(-50%,-50%) scale(.9);transition:transform .3s cubic-bezier(.22,1,.36,1),opacity .2s ease;background:#204bff;color:white;padding:8px}
.location-preview.is-active>div{opacity:1;transform:translate(-50%,-50%) scale(1)}
.location-preview img{width:100%;height:250px;object-fit:cover}
.location-preview p{padding:10px 8px;font-size:14px;margin:0}
.reduced .location-preview>div,.reduced .location-row h3{transition:none}
@media(max-width:760px){
.manuscript-subtitle{font-size:15px;margin-top:20px}
[data-concept=flow] .hero h1{font-size:7.7vw}
[data-concept=flow] .metric.primary strong{font-size:22vw}
[data-concept=play] .hero h1{font-size:9vw}
[data-concept=play] .metric.primary strong{font-size:22vw}
[data-concept=play] .metric strong{font-size:10vw}
[data-concept=flow] .list-mode .location-row{grid-template-columns:28px minmax(0,1fr);gap:10px;min-height:0;padding:25px 20px}
[data-concept=flow] .location-row h3{font-size:27px}
[data-concept=flow] .location-row p{grid-column:2;font-size:13px}
.place-hint{margin-top:18px}.location-preview{display:none}
}
@media(prefers-reduced-motion:reduce){html.flow-snap{scroll-snap-type:none;scroll-behavior:auto}.location-preview>div,.location-row h3{transition:none}}
/* Reflow when visitors enlarge text spacing. */
[data-concept=flow] .contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
body .contact-grid>div{min-width:0}
body .contact-grid a{white-space:normal!important;overflow-wrap:anywhere;max-width:100%}
@media(max-width:760px){[data-concept=flow] .contact-grid{grid-template-columns:minmax(0,1fr)}}
