@font-face{font-family:Fraunces;src:url('fonts/fraunces.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('fonts/source-sans-3.ttf') format('truetype');font-weight:200 900;font-display:swap}
:root{--ink:#24152f;--muted:#6c536e;--paper:#fff3da;--line:#d9c5b5;--accent:#922852;--gold:#f5a623;--coral:#e85b48;--pink:#c83e83;--teal:#167d8d}
body{background:var(--paper);color:var(--ink);font-family:'Source Sans 3',sans-serif;font-size:18px}
.wrap{width:min(1200px,calc(100% - 64px))}.top{padding:22px 0;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:22px}.brand-icon{width:78px;height:78px;object-fit:contain}.brand-wordmark{width:150px;height:96px;object-fit:contain}.brand-divider{height:58px;border-left:1px solid var(--line)}
.top-note{font-size:.7rem;letter-spacing:.15em;color:var(--ink)}.intro{padding:65px 0 70px}.intro h1,.intro h2{font-family:Fraunces,Georgia,serif;font-weight:750;font-variation-settings:'SOFT' 60,'WONK' 1;letter-spacing:-.055em;font-size:clamp(3rem,5.2vw,4.55rem);line-height:1.03}.intro .eyebrow:before{content:'';display:block;width:36px;height:5px;background:var(--coral);margin-bottom:20px}.intro>div+div .eyebrow:before{background:var(--teal)}.intro p:not(.eyebrow){font-size:1.13rem;max-width:430px}.eyebrow{font-size:.7rem;color:var(--muted)}.jump{display:inline-block;background:var(--ink);color:var(--paper);padding:11px 19px;text-decoration:none;font-size:.9rem}.jump:hover{background:#492750}.intro>div+div .jump{background:var(--gold);color:var(--ink)}
.section-copy h2{font-family:Fraunces,Georgia,serif;font-weight:650;letter-spacing:-.045em}.section-copy p:last-child{font-size:1.05rem}.section-copy{border-top:1px solid var(--line)}
#map{background:var(--ink);color:var(--paper);padding:0 32px 10px;margin:0 -32px 35px;position:relative;border-top:6px solid var(--gold)}#map .section-copy{border-top:0;padding-top:40px}#map .eyebrow{color:var(--gold)}#map .split>div+div{border-color:#654760}.map-controls button{background:#38223f;border:1px solid #72506e;color:var(--paper);font-size:.85rem}.map-controls button:hover{background:#533251}.map-controls button:focus-visible{outline-color:var(--gold)}.map-world{background:#2d1c37;border:1px solid #58384e}.map-world svg g{fill:#62495f;stroke:#37223f;stroke-width:.8}.pin{border-color:var(--gold);background:var(--ink)}.pin.ready{background:var(--gold);box-shadow:0 0 0 4px #f5a6231a}.pin:hover,.pin:focus-visible,.pin[aria-pressed=true]{outline-color:#f5a62366}.pin span{background:var(--gold);color:var(--ink)}.map-selection{background:#38223f;border-left:3px solid var(--gold)}.map-selection h3{font-family:Fraunces,serif;font-weight:600}.map-selection .city-links a{color:var(--gold)}.legend{color:#e0cbd8;font-size:.8rem;padding-bottom:20px}.map-selection .city-links{font-size:.85rem}
.cities{gap:42px 26px}.city img{filter:none;aspect-ratio:1;transition:filter .2s}.city-photo:hover img{filter:brightness(1.06)}.city h3{font-family:Fraunces,serif;font-weight:650;font-size:1.65rem;letter-spacing:-.04em}.city h3 small{font-family:'Source Sans 3',sans-serif;font-size:.9rem}.city-meta{color:var(--muted);font-size:.65rem;letter-spacing:.09em;margin-top:17px}.city-links{font-size:.8rem;padding-top:14px;border-color:var(--line)}.city-links a{text-decoration:none;display:block}.city-links a:hover{text-decoration:underline}.city-links a:first-child{color:#882d4b}.city-links a:last-child{color:#096472}.city-links span{color:var(--muted)}.city-placeholder{background:var(--ink);color:var(--gold);position:relative;overflow:hidden}.city-placeholder:after{content:'';position:absolute;width:115%;height:115%;border:1px solid currentColor;border-radius:50%;top:20%;left:24%;box-shadow:0 0 0 10px #ffffff0a,0 0 0 21px #ffffff0a,0 0 0 32px #ffffff0a;opacity:.28;pointer-events:none}.city-placeholder>span{font:600 4.4rem Fraunces,serif;position:relative;z-index:1}.city-placeholder small{font-family:'Source Sans 3',sans-serif;z-index:1}.city:nth-child(3n+2) .city-placeholder{background:#126676;color:var(--paper)}.city:nth-child(3n) .city-placeholder{background:#7f2959;color:var(--paper)}.afterword{margin-top:70px;padding-bottom:60px}.closing{padding:28px 0 40px;border-color:var(--line)}.closing strong{font-family:Fraunces,serif;font-size:1.4rem}.closing:after{content:'';display:block;width:120px;height:6px;background:linear-gradient(to right,var(--gold) 0 25%,var(--coral) 25% 50%,var(--pink) 50% 75%,var(--teal) 75%)}
@media(max-width:700px){.wrap{width:calc(100% - 36px)}.top{padding:15px 0}.brand{gap:10px}.brand-icon{width:52px;height:60px}.brand-wordmark{width:108px;height:70px}.brand-divider{height:40px}.top-note{font-size:.55rem;max-width:100px}.intro{padding:42px 0}.intro h1,.intro h2{font-size:clamp(2.8rem,10.3vw,4rem)}#map{margin:0 -18px 20px;padding:0 18px 10px}.map-world{margin:0}.map-selection .city-links{gap:15px}.cities{gap:32px 18px}.city h3{font-size:1.4rem}.city-placeholder{padding:16px}.city-placeholder>span{font-size:3.4rem}.city-links{font-size:.78rem}}
@media(prefers-reduced-motion:reduce){.city img{transition:none}}
/* Compact map controls and city popover. */
#map .map-world{isolation:isolate}
#map .map-layer{width:100%}
#map .map-controls{position:absolute;z-index:6;left:14px;bottom:14px;margin:0;display:flex;gap:3px;align-items:center;padding:5px;background:#24152ff2;border:1px solid #72506e;box-shadow:0 3px 14px #0003;cursor:default;touch-action:manipulation}
#map .map-controls button{min-width:38px;min-height:38px;padding:5px 10px;border:0;background:transparent;font-size:1rem}
#map .map-controls button:hover{background:#533251}
#map #zoom-reset{font-size:.72rem}
#map .map-controls output{font-size:.7rem;margin:0 6px;color:var(--paper);min-width:32px}
#map .map-selection{position:absolute;z-index:8;display:block;width:250px;max-width:calc(100% - 16px);min-height:0;padding:18px;background:var(--paper);color:var(--ink);border:0;border-top:3px solid var(--gold);box-shadow:0 5px 28px #0005;cursor:default;touch-action:auto}
#map .map-selection[hidden]{display:none}
#map .map-selection h3{font-size:1.25rem;line-height:1.2;padding-right:22px;margin:0 0 15px}
#map .map-selection .city-links{display:flex;gap:18px;flex-wrap:wrap;font-size:.88rem}
#map .map-selection .city-links a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
#map .popup-close{position:absolute;right:6px;top:4px;border:0;background:transparent;color:var(--ink);font-size:1.5rem;width:34px;height:34px;cursor:pointer}
#map .legend{padding:12px 0 8px;font-size:.72rem}
@media(max-width:700px){#map .map-layer{width:576px}#map .map-world{height:240px}#map .map-controls{left:8px;bottom:8px}}
/* EN and ES share row heights, so corresponding content stays aligned. */
@media(min-width:701px){
 .intro>div{display:grid;grid-template-rows:subgrid;grid-row:span 4;min-width:0}
 .intro .jump{justify-self:start;align-self:start}
 .split.section-copy>div{display:grid;grid-template-rows:subgrid;grid-row:span 3;min-width:0}
 .split.afterword>div{grid-row:span 2}
 .intro h1,.intro h2,.section-copy h2{text-wrap:balance;align-self:start}
 .intro p,.section-copy p{align-self:start}
}
.development-note{font-size:.72rem;color:var(--muted);max-width:440px;line-height:1.6}
#map .section-copy{padding-top:24px;padding-bottom:24px}
#map .section-copy h2{font-size:clamp(1.4rem,2.2vw,1.75rem);font-weight:500;line-height:1.2;letter-spacing:-.025em;margin:10px 0 14px}
#map .section-copy .eyebrow{font-size:.62rem;letter-spacing:.12em;font-weight:600;margin-bottom:0}
#map .section-copy p:last-child{font-size:.95rem;color:#e0cbd8;margin-bottom:0}
.legal-links{font-size:.75rem;line-height:1.8;display:flex;gap:1rem;flex-wrap:wrap}.closing{flex-wrap:wrap}
