/* Generated by scripts/build_site.py. Do not edit this production bundle directly. */

/* ===== assets/css/top-preview.css ===== */
:root{
  --paper:#fffdf9;
  --ink:#0b2c57;
  --muted:#6d7885;
  --line:rgba(11,44,87,.13);
  --soft:#f7f5ef;
  --sans:"Hanken Grotesk",sans-serif;
  --jp:"Shippori Mincho",serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input{font:inherit;color:inherit}
button{cursor:pointer}
img{display:block;max-width:100%}
.shell{width:min(1460px,calc(100% - 56px));margin:0 auto}

.top-header{min-height:82px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:34px}
.brand-block{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:max-content}
.wordmark{font:700 clamp(22px,1.9vw,31px)/1 var(--sans);letter-spacing:.24em;white-space:nowrap}
.brand-block small{font-size:9px;letter-spacing:.05em;color:#4e6071}
.top-header nav{display:flex;justify-content:center;gap:clamp(24px,3vw,52px);font-size:13px;font-weight:700}
.top-header nav a,.wish-link{transition:opacity .18s ease}
.top-header nav a:hover,.wish-link:hover{opacity:.58}
.wish-link{padding:0;border:0;background:none;font-size:13px;font-weight:700;white-space:nowrap}

.top-hero{display:grid;grid-template-columns:.34fr .66fr;gap:24px;align-items:center;min-height:375px;padding:2px 0 12px}
.hero-copy{padding:18px 0 18px 12px}
.hero-copy h1{margin:0;font:600 clamp(42px,4.1vw,66px)/1.23 var(--jp);letter-spacing:.01em}
.hero-copy .lead{margin:22px 0 0;font:500 clamp(14px,1.25vw,18px)/1.85 var(--jp);color:#273b4d}
.primary{margin-top:26px;display:inline-grid;grid-template-columns:26px 1fr auto;align-items:center;gap:12px;min-width:240px;min-height:52px;padding:0 18px;border-radius:9px;background:var(--ink);color:#fff;font-size:14px;font-weight:700;box-shadow:0 7px 18px rgba(11,44,87,.13)}
.primary-mark{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--ink);font-size:13px}.primary b{font-size:23px;font-weight:400}
.hero-visual{position:relative;min-width:0;padding:4px 0 24px;transition:opacity .18s ease,transform .18s ease}
.hero-visual.is-changing{opacity:.66;transform:translateY(2px)}
.hero-visual img{width:100%;aspect-ratio:1.77/1;object-fit:cover;border-radius:0;filter:contrast(1.045) saturate(1.045)}
.hero-arrow{position:absolute;top:46%;z-index:4;width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(11,44,87,.12);border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 3px 12px rgba(11,44,87,.11);font-size:26px;line-height:1}.hero-arrow--prev{left:-18px}.hero-arrow--next{right:-18px}
.hero-controls{position:absolute;left:50%;bottom:4px;display:flex;gap:7px;transform:translateX(-50%)}
.hero-controls button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#d2d4d7}.hero-controls button.is-active{background:var(--ink)}

.explore{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:10px 28px 30px}
.explore-card{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(11,44,87,.055);transition:transform .16s ease,box-shadow .16s ease}
.explore-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(11,44,87,.09)}
.explore-card__art{height:112px;background-position:center;background-size:cover;filter:contrast(1.04) saturate(1.03)}
.explore-card--map .explore-card__art{background-image:url("../images/top/world-map-watercolor.svg")}
.explore-card--theme .explore-card__art{background-image:url("../images/tajikistan/navruz-palace.svg")}
.explore-card--country .explore-card__art{background-image:url("../images/tajikistan/wakhan-corridor.svg")}
.explore-card__copy{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;min-height:76px;padding:10px 14px 11px}
.explore-icon{width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(11,44,87,.12);border-radius:50%;font-size:22px;background:#fff}
.explore-card__copy h2{margin:0;font-size:15px}.explore-card__copy p{margin:4px 0 0;font-size:10px;line-height:1.5;color:#3a4b5b}.explore-card__copy>b{font-size:25px;font-weight:400}

.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;padding:0 4px 12px}
.section-head h2{margin:0;font:700 clamp(20px,1.75vw,28px)/1.2 var(--sans);letter-spacing:.01em}.section-head h2 small{font-size:.6em;font-weight:600}.section-head p{margin:5px 0 0;font-size:11px;color:#445566}
.section-link,.all-countries-toggle{padding:7px 0;border:0;background:none;font-size:11px;font-weight:700}.section-link span,.all-countries-toggle span{margin-left:7px;font-size:17px}

.countries{padding:18px 0 34px}
.rail-wrap{position:relative}
.country-rail{display:grid;grid-auto-flow:column;grid-auto-columns:166px;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:2px 3px 8px}.country-rail::-webkit-scrollbar{display:none}
.rail-arrow{position:absolute;top:62px;z-index:5;width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(11,44,87,.13);border-radius:50%;background:rgba(255,255,255,.96);box-shadow:0 3px 10px rgba(11,44,87,.1);font-size:25px}.rail-arrow--prev{left:-18px}.rail-arrow--next{right:-18px}
.country-card{scroll-snap-align:start;min-height:176px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff;display:flex;flex-direction:column;position:relative;box-shadow:0 1px 5px rgba(11,44,87,.045);transition:transform .16s ease,box-shadow .16s ease}.country-card.is-open{border-color:rgba(11,44,87,.62)}.country-card.is-open:hover{transform:translateY(-2px);box-shadow:0 5px 13px rgba(11,44,87,.1)}
.country-card__art{height:104px;position:relative;overflow:hidden;background:linear-gradient(145deg,hsl(var(--hue,198) 40% 88%),hsl(calc(var(--hue,198) + 38) 28% 94%) 50%,hsl(calc(var(--hue,198) + 72) 28% 82%));background-position:center;background-size:cover;filter:contrast(1.03) saturate(1.02)}
.country-card__art:before{content:"";position:absolute;left:-6%;right:38%;bottom:-24px;height:62px;border-radius:55% 45% 0 0;background:hsla(calc(var(--hue,198) + 18),32%,45%,.16);transform:rotate(-4deg)}
.country-card__art.has-image:before{display:none}
.country-card__flag{position:absolute;left:8px;bottom:6px;z-index:2;font-size:20px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.12))}
.country-card__body{min-height:72px;padding:8px 9px 9px;position:relative}.country-card h3{margin:0;font-size:12px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.country-card p{margin:4px 0 0;font-size:10px;color:#33485a}.country-card__lens{display:none}.country-card__open{position:absolute;right:8px;bottom:8px;font-size:15px}.country-card:not(.is-open) .country-card__open{display:none}
.rail-meta{display:flex;justify-content:center;align-items:center;gap:18px;min-height:27px}.rail-meta>span{font-size:8px;letter-spacing:.11em;color:#89939c}.rail-dots{display:flex;gap:6px}.rail-dots i{width:7px;height:7px;border-radius:50%;background:#d3d4d5}.rail-dots i.is-active{background:var(--ink)}
.alphabet{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 0 0}.alphabet>span{width:1px;height:14px;background:var(--line)}.alphabet #alphabet-buttons{display:flex;gap:9px;flex-wrap:wrap;justify-content:center}.alphabet button{padding:2px;border:0;background:none;font-size:10px;font-weight:600;color:#25415f}.alphabet button.is-active{text-decoration:underline;text-underline-offset:4px}
.all-countries-panel{margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:12px;background:#fafbf9}.all-countries-panel__head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:15px}.all-countries-panel__head strong{font-size:18px}.all-countries-panel__head p{margin:4px 0 0;font-size:10px;color:var(--muted)}.country-search{min-width:250px;height:38px;display:grid;grid-template-columns:26px 1fr;align-items:center;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:#fff}.country-search input{width:100%;border:0;outline:0;background:none;font-size:11px}.country-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.country-grid .country-card{min-height:64px;display:grid;grid-template-columns:52px 1fr}.country-grid .country-card__art{height:100%;min-height:64px}.country-grid .country-card__flag{left:50%;bottom:50%;transform:translate(-50%,50%)}.country-grid .country-card__body{min-height:64px;padding:10px 8px}.country-empty,.country-load-error{font-size:11px;color:var(--muted)}

.explore-detail{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:14px 0 34px}
.detail-panel{min-height:300px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:18px 20px 16px;box-shadow:0 1px 6px rgba(11,44,87,.035)}
.detail-heading{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}.detail-heading>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(11,44,87,.15);font-size:18px}.detail-heading h2{margin:0;font-size:17px}.detail-heading p{margin:4px 0 0;font-size:10px;color:#536270}
.mini-map{height:180px;position:relative;display:grid;place-items:center;margin-top:8px}.mini-map img{width:92%;height:100%;object-fit:contain;filter:saturate(.88) contrast(1.03)}.mini-map button{position:absolute;left:var(--x);top:var(--y);width:10px;height:10px;padding:0;border:2px solid #fff;border-radius:50%;background:var(--ink);box-shadow:0 0 0 2px rgba(11,44,87,.18)}
.detail-link{display:flex;align-items:center;gap:10px;margin-top:4px;padding:0;border:0;background:none;font-size:11px;font-weight:700}.detail-link span{font-size:18px}
.theme-icons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:22px}.theme-icons button{min-height:78px;padding:10px 6px;border:1px solid rgba(11,44,87,.1);border-radius:8px;background:#fff}.theme-icons button:hover{background:#f5f7f8}.theme-icons span{display:block;font-size:22px}.theme-icons b{display:block;margin-top:6px;font-size:9px;line-height:1.35}

.lens-world{padding:38px 0 28px;border-top:1px solid var(--line)}.lens-head{align-items:center}.lens-head h2{font:700 19px/1.2 var(--sans)}.lens-head p{max-width:620px}.lens-rail{display:grid;grid-auto-flow:column;grid-auto-columns:150px;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:2px 2px 8px}.lens-rail::-webkit-scrollbar{display:none}.lens-card{scroll-snap-align:start;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 1px 5px rgba(11,44,87,.04)}.lens-card__art{height:98px;overflow:hidden;background:#e8eef0}.lens-card__art img{width:100%;height:100%;object-fit:cover}.lens-card__body{display:grid;grid-template-columns:auto 1fr;gap:7px;align-items:start;padding:8px}.lens-card__body>span{font-size:17px}.lens-card h3{margin:0;font-size:11px}.lens-card p{margin:3px 0 0;font-size:9px;color:#51606d}.lens-art{position:relative}.lens-art:before,.lens-art:after{content:"";position:absolute}.lens-art--antarctica{background:linear-gradient(180deg,#a9d5ed 0 44%,#356f96 45% 63%,#eef4f8 64%)}.lens-art--antarctica:before{width:72%;height:58%;left:4%;bottom:31%;clip-path:polygon(0 100%,25% 24%,44% 66%,60% 15%,100% 100%);background:#edf4f8}.lens-art--bolivia{background:linear-gradient(180deg,#bfdfea 0 48%,#f8fbfb 49% 70%,#cbe4eb 71%)}.lens-art--botswana{background:linear-gradient(180deg,#e8bc71 0 62%,#b37534 63%)}.lens-art--botswana:before{width:84px;height:38px;left:50%;bottom:28px;border-radius:50%;transform:translateX(-50%);background:#75502b}.lens-art--zambia{background:linear-gradient(180deg,#a8d4df 0 44%,#54765b 45% 55%,#d9eef2 56%)}.lens-art--zambia:before{left:34%;top:43%;width:31%;height:58%;background:linear-gradient(90deg,rgba(255,255,255,.3),#f8ffff,rgba(255,255,255,.18))}.lens-art--peru{background:linear-gradient(180deg,#b4d7e2 0 46%,#617953 47%)}.lens-art--peru:before{width:78%;height:58%;left:8%;bottom:0;clip-path:polygon(0 100%,18% 45%,32% 72%,48% 19%,62% 58%,78% 34%,100% 100%);background:#365942}.lens-art--cuba{background:linear-gradient(180deg,#88c4d8 0 48%,#d7b477 49% 56%,#e28450 57%)}.lens-art--cuba:before{left:13%;right:13%;bottom:20px;height:44px;background:linear-gradient(90deg,#d9e8e3 0 18%,#e4bd7e 18% 36%,#c8816d 36% 53%,#e9d4b5 53% 72%,#8dbcc4 72%);clip-path:polygon(0 100%,0 35%,8% 35%,8% 12%,16% 12%,16% 45%,26% 45%,26% 0,36% 0,36% 44%,47% 44%,47% 20%,58% 20%,58% 48%,70% 48%,70% 7%,82% 7%,82% 39%,100% 39%,100% 100%)}

.top-footer{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line)}.footer-links{display:flex;gap:28px;flex-wrap:wrap}.footer-links a{font-size:9px}.top-footer small{font-size:9px;color:var(--muted)}
.top-toast{position:fixed;right:22px;bottom:22px;z-index:30;max-width:min(420px,calc(100% - 44px));padding:11px 14px;border-radius:8px;background:var(--ink);color:#fff;font-size:10px;box-shadow:0 8px 22px rgba(11,44,87,.23)}

@media(max-width:1100px){
  .shell{width:min(100% - 34px,1460px)}
  .top-header{grid-template-columns:auto 1fr}.wish-link{display:none}.top-header nav{justify-content:end;gap:20px}
  .top-hero{grid-template-columns:.42fr .58fr}.country-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:760px){
  .shell{width:min(100% - 22px,1460px)}
  .top-header{min-height:68px;grid-template-columns:1fr auto}.brand-block small{display:none}.wordmark{font-size:20px;letter-spacing:.18em}.top-header nav a:not(:first-child){display:none}
  .top-hero{grid-template-columns:1fr;gap:8px;padding-top:10px}.hero-copy{padding:16px 4px 8px}.hero-copy h1{font-size:clamp(36px,10vw,50px)}.hero-copy .lead{font-size:13px}.hero-visual img{aspect-ratio:16/9}.hero-arrow{width:38px;height:38px}.hero-arrow--prev{left:5px}.hero-arrow--next{right:5px}
  .explore{grid-template-columns:1fr;padding-left:0;padding-right:0}.explore-card{display:grid;grid-template-columns:40% 60%}.explore-card__art{height:100%;min-height:102px}.explore-icon{width:34px;height:34px}
  .section-head{align-items:flex-start}.section-head h2 small{display:block;margin-top:3px}.country-rail{grid-auto-columns:minmax(150px,43vw)}.rail-arrow{display:none}.alphabet{gap:7px}.country-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.all-countries-panel{padding:14px}.all-countries-panel__head{align-items:stretch;flex-direction:column}.country-search{min-width:0;width:100%}
  .explore-detail{grid-template-columns:1fr}.detail-panel{min-height:270px}.theme-icons{grid-template-columns:repeat(4,minmax(0,1fr))}.theme-icons b{font-size:8px}
  .lens-world{padding-top:28px}.lens-rail{grid-auto-columns:44vw}.top-footer{align-items:flex-start;flex-direction:column;padding:18px 0}.footer-links{gap:14px 20px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}


/* ===== assets/css/top-layout-v3.css ===== */
.top-header{grid-template-columns:auto 1fr}
.top-header nav{justify-content:flex-end;gap:clamp(20px,2.5vw,42px)}

/* The detailed discovery sections are intentionally stacked vertically. */
.explore-detail{grid-template-columns:1fr;gap:18px;padding-top:16px}
.detail-panel{min-height:248px;display:grid;grid-template-columns:minmax(230px,.38fr) minmax(0,.62fr);grid-template-rows:auto auto;column-gap:34px;align-items:center;padding:22px 26px}
.detail-panel .detail-heading{grid-column:1;grid-row:1;align-self:end}
.detail-panel .detail-link{grid-column:1;grid-row:2;align-self:start}
.map-panel .mini-map{grid-column:2;grid-row:1 / span 2;height:220px;margin:0}
.theme-panel .theme-icons{grid-column:2;grid-row:1 / span 2;margin:0;grid-template-columns:repeat(4,minmax(0,1fr))}

/* Keep the atlas name as the final visual element on the page. */
.top-footer{min-height:126px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:24px 0 28px;border-top:1px solid var(--line)}
.footer-links{width:100%;display:flex;justify-content:center;gap:24px;font-size:10px;color:#5f6d79}
.footer-brand{display:block;font:700 clamp(20px,1.8vw,28px)/1 var(--sans);letter-spacing:.24em;text-align:center}

@media(max-width:1050px){
  .top-header nav{gap:18px;font-size:12px}
  .detail-panel{grid-template-columns:minmax(210px,.4fr) minmax(0,.6fr)}
}

@media(max-width:760px){
  .top-header{grid-template-columns:1fr auto}
  .top-header nav a{display:none}
  .top-header nav a:first-child{display:block}
  .detail-panel{display:block;min-height:0;padding:18px}
  .map-panel .mini-map{height:190px;margin-top:14px}
  .theme-panel .theme-icons{margin-top:18px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail-panel .detail-link{margin-top:14px}
  .top-footer{min-height:112px}
}

/* ===== assets/css/top-layout-v4.css ===== */
/* ============================================================
   JOURNEY ATLAS — top page final rhythm / typography pass
   ============================================================ */

:root{
  --top-section-title:20px;
  --top-card-title:16px;
  --top-body:11.5px;
  --top-small:10px;
  --top-radius:14px;
}

/* Header */
.top-header{
  min-height:78px;
  grid-template-columns:auto 1fr;
  gap:36px;
}
.brand-block{gap:5px}
.wordmark{
  font-size:clamp(23px,1.75vw,29px);
  line-height:1;
  letter-spacing:.23em;
}
.brand-block small{
  font-size:9.5px;
  line-height:1.35;
  letter-spacing:.04em;
}
.top-header nav{
  justify-content:flex-end;
  gap:clamp(22px,2.5vw,40px);
  font-size:12.5px;
  line-height:1;
}

/* Hero */
.top-hero{
  grid-template-columns:minmax(470px,.42fr) minmax(0,.58fr);
  gap:28px;
  min-height:372px;
  padding:10px 0 18px;
}
.hero-copy{
  min-width:0;
  padding:18px 0 26px 10px;
}
.hero-copy h1{
  margin:0;
  font-size:clamp(38px,3vw,48px);
  line-height:1.22;
  letter-spacing:.01em;
}
.hero-title span{
  display:block;
  white-space:nowrap;
}
.hero-copy .lead{
  max-width:31em;
  margin:21px 0 0;
  font-size:clamp(14px,1.05vw,16.5px);
  line-height:1.9;
  letter-spacing:.01em;
  color:#304354;
}
.hero-visual{padding:2px 0 26px}
.hero-controls{bottom:5px}

/* Three entry cards directly below the hero */
.explore{
  gap:16px;
  padding:14px 28px 36px;
}
.explore-card{
  border-radius:11px;
}
.explore-card__art{height:118px}
.explore-card__copy{
  grid-template-columns:auto 1fr auto;
  gap:12px;
  min-height:84px;
  padding:12px 15px 13px;
}
.explore-icon{
  width:38px;
  height:38px;
  font-size:20px;
}
.explore-card__copy h2{
  margin:0;
  font-size:var(--top-card-title);
  line-height:1.35;
  font-weight:700;
}
.explore-card__copy p{
  margin:5px 0 0;
  font-size:var(--top-body);
  line-height:1.55;
  color:#435466;
}
.explore-card__copy>b{
  font-size:23px;
  line-height:1;
}

/* ============================================================
   Discovery sections — one visual language for Country / Map / Theme
   ============================================================ */
.countries,
.detail-panel{
  border:1px solid var(--line);
  border-radius:var(--top-radius);
  background:#fff;
  box-shadow:0 1px 6px rgba(11,44,87,.035);
}

.countries{
  margin-top:4px;
  padding:26px 28px 24px;
}
.countries .section-head,
.detail-heading{
  margin:0;
  padding:0;
}
.countries .section-head{
  align-items:center;
  padding-bottom:18px;
}
.countries .section-head h2,
.detail-heading h2{
  margin:0;
  font-size:var(--top-section-title);
  line-height:1.35;
  font-weight:700;
  letter-spacing:0;
}
.countries .section-head p,
.detail-heading p{
  margin:6px 0 0;
  font-size:var(--top-body);
  line-height:1.65;
  color:#526274;
}
.all-countries-toggle,
.section-link{
  font-size:11px;
  line-height:1.4;
}
.countries .rail-wrap{margin-top:0}
.countries .rail-meta{margin-top:3px}
.countries .alphabet{padding-top:9px}
.country-card h3{font-size:12.5px;line-height:1.25}
.country-card p{font-size:10.5px;line-height:1.4}

.explore-detail{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
  padding:22px 0 34px;
}
.detail-panel{
  min-height:252px;
  display:grid;
  grid-template-columns:minmax(240px,.34fr) minmax(0,.66fr);
  grid-template-rows:auto auto;
  column-gap:42px;
  align-items:center;
  padding:26px 28px;
}
.detail-panel .detail-heading{
  display:block;
  grid-column:1;
  grid-row:1;
  align-self:end;
}
.detail-heading>span{display:none}
.detail-heading p{max-width:28em}
.detail-panel .detail-link{
  grid-column:1;
  grid-row:2;
  align-self:start;
  margin-top:15px;
  font-size:11.5px;
  line-height:1.4;
}
.map-panel .mini-map{
  grid-column:2;
  grid-row:1 / span 2;
  height:220px;
  margin:0;
}

/* Approved theme design: illustration-led eight-card row */
.theme-panel{
  min-height:0;
  display:block;
  padding:28px 28px 30px;
}
.theme-panel .theme-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:28px;
}
.theme-panel .theme-heading p{
  max-width:660px;
}
.theme-panel .theme-all-link{
  flex:0 0 auto;
  align-self:auto;
  margin:0 0 2px;
}
.theme-panel .theme-icons{
  display:grid;
  grid-template-columns:repeat(8,minmax(0,1fr));
  gap:10px;
  margin:22px 0 0;
}
.theme-icons button{
  min-width:0;
  min-height:188px;
  padding:12px 8px 14px;
  border:1px solid rgba(28,67,92,.10);
  border-radius:14px;
  background:#fffdfa;
  text-align:center;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.theme-icons button:hover{
  transform:translateY(-2px);
  border-color:rgba(28,67,92,.24);
  box-shadow:0 7px 18px rgba(33,67,86,.08);
}
.theme-art{
  display:block;
  width:96px;
  height:102px;
  margin:0 auto 9px;
  border-radius:49% 49% 47% 47% / 45% 45% 54% 54%;
  overflow:hidden;
  background-repeat:no-repeat;
  background-size:800% 100%;
  background-color:transparent;
  box-shadow:none;
}
.theme-icons b{
  display:block;
  margin-top:2px;
  font-size:11.5px;
  line-height:1.4;
  color:#173b5d;
}
.theme-icons small{
  display:block;
  max-width:11em;
  margin:6px auto 0;
  font-size:9.2px;
  line-height:1.55;
  color:#667787;
  font-weight:500;
}

/* ============================================================
   JOURNEY LENS — compact horizontal strip from approved mockup
   ============================================================ */
.lens-world{
  min-height:188px;
  margin-top:0;
  margin-bottom:28px;
  padding:25px 24px;
  display:grid;
  grid-template-columns:minmax(280px,.38fr) minmax(0,.62fr);
  gap:30px;
  align-items:center;
  border:0;
  border-radius:14px;
  background:#f8f3e8;
  box-shadow:none;
}
.lens-world .section-head{
  display:block;
  margin:0;
  padding:0;
}
.lens-head h2{
  margin:0;
  font-size:18px;
  line-height:1.35;
  letter-spacing:0;
}
.lens-head p{
  margin:8px 0 0;
  max-width:35em;
  font-size:10.5px;
  line-height:1.7;
  color:#525e68;
}
.lens-head .section-link{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:16px;
  padding:8px 13px;
  border:1px solid rgba(11,44,87,.55);
  border-radius:5px;
  background:#fff;
  font-size:10.5px;
  font-weight:700;
}
.lens-head .section-link span{
  margin-left:2px;
  font-size:15px;
}
.lens-rail{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:minmax(78px,1fr);
  gap:8px;
  overflow:hidden;
  padding:0;
  align-items:stretch;
}
.lens-card{
  min-width:0;
  border:0;
  border-radius:5px;
  box-shadow:none;
  background:transparent;
  overflow:hidden;
}
.lens-card:nth-child(n+7){display:none}
.lens-card__art{
  height:108px;
  border-radius:5px;
  overflow:hidden;
  background:#e8eef0;
}
.lens-card__art img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.lens-card__body{display:none}

/* About follows JOURNEY LENS */
.about-note{
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  gap:42px;
  align-items:start;
  margin-top:0;
  padding:36px 4px 44px;
  border-top:1px solid var(--line);
}
.about-note strong{
  font-size:var(--top-section-title);
  line-height:1.35;
  font-weight:700;
  letter-spacing:0;
}
.about-note p{
  max-width:1080px;
  margin:1px 0 0;
  font:500 12px/1.85 var(--jp);
  color:#405364;
}
.about-note p span{display:block}

/* JOURNEY LENS-like colophon structure, ATLAS palette */
.atlas-colophon{
  background:var(--paper);
  color:var(--ink);
  padding:clamp(38px,6vh,62px) clamp(18px,5vw,80px);
  border-top:1px solid var(--line);
}
.atlas-colophon .colophon-grid{
  max-width:1240px;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:34px;
  flex-wrap:wrap;
}
.atlas-colophon .mark{
  font-family:var(--sans);
  font-weight:700;
  letter-spacing:.3em;
  text-transform:uppercase;
  font-size:.95rem;
}
.atlas-colophon .mark-tag{
  display:block;
  margin-top:9px;
  font-family:var(--jp);
  font-weight:400;
  letter-spacing:.04em;
  text-transform:none;
  font-size:.84rem;
  line-height:1.6;
  color:#657485;
}
.atlas-colophon .meta{
  font-family:var(--sans);
  font-size:.66rem;
  letter-spacing:.07em;
  line-height:1.95;
  color:#667483;
  text-align:right;
}
.atlas-colophon .meta-note{opacity:.68}
.atlas-colophon .meta-links{display:inline-flex;gap:22px;justify-content:flex-end}
.atlas-colophon a{color:inherit}
.atlas-colophon a:hover{color:var(--ink)}

@media(max-width:1050px){
  .top-header nav{gap:18px;font-size:12px}
  .top-hero{grid-template-columns:minmax(405px,.44fr) minmax(0,.56fr);gap:20px}
  .hero-copy h1{font-size:38px}
  .detail-panel{grid-template-columns:minmax(220px,.38fr) minmax(0,.62fr);column-gap:28px}
  .theme-panel{display:block;min-height:0}
  .theme-panel .theme-icons{grid-template-columns:repeat(4,minmax(0,1fr))}
  .theme-icons button{min-height:184px}
  .lens-world{grid-template-columns:minmax(240px,.42fr) minmax(0,.58fr);padding:22px}
  .lens-rail{grid-auto-columns:minmax(72px,1fr)}
  .about-note{grid-template-columns:220px minmax(0,1fr);gap:30px}
  .about-note p span{display:inline}
  .about-note p span+span:before{content:" ";}
}

@media(max-width:760px){
  .shell{width:min(100% - 28px,1460px)}
  .top-header{min-height:68px;grid-template-columns:1fr auto}
  .top-header nav a{display:none}
  .top-header nav a:first-child{display:block}
  .brand-block small{display:none}

  .top-hero{display:block;min-height:0;padding:14px 0 14px}
  .hero-copy{padding:10px 0 20px}
  .hero-copy h1{font-size:clamp(29px,8.1vw,38px);line-height:1.25}
  .hero-title span{white-space:nowrap}
  .hero-copy .lead{font-size:13.5px;line-height:1.85;margin-top:17px}
  .hero-visual{padding-bottom:22px}

  .explore{grid-template-columns:1fr;padding:10px 0 28px;gap:12px}
  .explore-card{display:grid;grid-template-columns:36% 64%}
  .explore-card__art{height:100%;min-height:108px}
  .explore-card__copy{min-height:108px;padding:12px}
  .explore-card__copy h2{font-size:15px}
  .explore-card__copy p{font-size:11px}

  .countries{padding:20px 16px 18px}
  .countries .section-head{align-items:flex-start;gap:16px;padding-bottom:16px}
  .countries .section-head h2,.detail-heading h2,.about-note strong{font-size:18px}
  .countries .section-head p,.detail-heading p{font-size:11px}

  .detail-panel{display:block;min-height:0;padding:20px 18px}
  .map-panel .mini-map{height:190px;margin-top:16px}
  .theme-panel{display:block;min-height:0;padding:20px 16px}
  .theme-panel .theme-heading{display:block}
  .theme-panel .theme-all-link{margin-top:12px}
  .theme-panel .theme-icons{margin-top:18px;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .theme-icons button{min-height:180px;padding:10px 7px 12px}
  .theme-art{width:88px;height:94px;margin-bottom:8px}
  .theme-icons b{font-size:11px}
  .theme-icons small{font-size:8.8px}
  .detail-panel .detail-link{margin-top:14px}

  .lens-world{
    min-height:0;
    grid-template-columns:1fr;
    gap:16px;
    padding:20px 16px;
  }
  .lens-rail{
    overflow-x:auto;
    grid-auto-columns:94px;
    justify-content:start;
  }
  .lens-card:nth-child(n+7){display:block}
  .lens-card__art{height:96px}

  .about-note{grid-template-columns:1fr;gap:10px;padding:28px 0 34px}
  .about-note p{font-size:11.5px;max-width:none}
  .about-note p span{display:inline}
  .about-note p span+span:before{content:" ";}

  .atlas-colophon .meta{text-align:left}
  .atlas-colophon .meta-links{justify-content:flex-start}
}

/* ===== assets/css/map-regions.css ===== */
/* JOURNEY ATLAS — illustrated zoomable map + synchronized country navigator */
.map-panel.map-explorer{display:block;min-height:0;padding:30px 30px 32px;background:linear-gradient(180deg,#fffdf9 0%,#fff 100%)}
.map-explorer .map-heading{display:block;margin:0}
.map-explorer .map-heading::before{content:'EXPLORE BY MAP';display:block;margin-bottom:7px;color:#8b7457;font:700 9px/1.2 var(--sans);letter-spacing:.18em}
.map-explorer .map-heading p{max-width:790px}

.map-region-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:21px 0 10px}
.map-region-tabs button,.map-subregion-tabs button{border:1px solid rgba(25,62,87,.13);border-radius:999px;background:#fffdfa;color:#405466;box-shadow:0 1px 4px rgba(28,58,74,.035);font:600 10.5px/1.2 var(--jp);cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease}
.map-region-tabs button{padding:8px 14px}
.map-region-tabs button:hover,.map-subregion-tabs button:hover{transform:translateY(-1px);border-color:rgba(25,62,87,.28);box-shadow:0 4px 10px rgba(28,58,74,.07)}
.map-region-tabs button.is-active{border-color:#234866;background:#234866;color:#fff;box-shadow:none}
.map-region-tabs button[data-map-tab='asia'].is-active{background:#718f7a;border-color:#718f7a}
.map-region-tabs button[data-map-tab='europe'].is-active{background:#b99060;border-color:#b99060}
.map-region-tabs button[data-map-tab='africa'].is-active{background:#b47b54;border-color:#b47b54}
.map-region-tabs button[data-map-tab='north-america'].is-active{background:#6f8da0;border-color:#6f8da0}
.map-region-tabs button[data-map-tab='south-america'].is-active{background:#829765;border-color:#829765}
.map-region-tabs button[data-map-tab='oceania'].is-active{background:#5d9a9a;border-color:#5d9a9a}
.map-region-tabs button[data-map-tab='antarctica'].is-active{background:#7899aa;border-color:#7899aa}

.map-subregion-tabs{min-height:31px;display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:0 0 18px;padding:9px 11px;border:1px solid rgba(34,70,91,.08);border-radius:12px;background:linear-gradient(90deg,rgba(247,243,232,.72),rgba(245,250,248,.66))}
.map-subregion-tabs[hidden]{display:none}
.map-subregion-tabs__guide{margin-right:2px;color:#9a856b;font:700 8px/1.2 var(--sans);letter-spacing:.13em;white-space:nowrap}
.map-subregion-tabs button{padding:6px 10px;background:rgba(255,255,255,.78);font-size:9.5px}
.map-subregion-tabs button.is-active{border-color:var(--map-accent,#234866);background:color-mix(in srgb,var(--map-accent,#234866) 12%,white);color:color-mix(in srgb,var(--map-accent,#234866) 90%,#173b5d);box-shadow:none}

.map-explorer-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(285px,.68fr);gap:24px;align-items:stretch}
.atlas-map-wrap{position:relative;min-height:430px;padding:14px;overflow:hidden;border:1px solid rgba(31,63,82,.11);border-radius:18px;background:radial-gradient(circle at 18% 13%,rgba(255,255,255,.94) 0 1.5%,transparent 18%),radial-gradient(circle at 79% 16%,rgba(255,255,255,.68) 0 1%,transparent 19%),linear-gradient(180deg,#eaf5f5 0%,#eff7f5 58%,#f7f4e9 100%);box-shadow:inset 0 0 0 7px rgba(255,255,255,.42),inset 0 -28px 58px rgba(175,160,126,.05),0 8px 24px rgba(37,67,79,.055)}
.atlas-map-wrap::before{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.22;background-image:linear-gradient(115deg,rgba(255,255,255,.32) 0 1px,transparent 1px 8px),linear-gradient(20deg,rgba(91,102,91,.035) 0 1px,transparent 1px 11px);mix-blend-mode:multiply}
.atlas-map-wrap::after{content:'N\A✦';white-space:pre;position:absolute;top:22px;right:24px;z-index:5;width:34px;height:34px;display:grid;place-items:center;color:#536e78;text-align:center;font:700 9px/1.02 var(--sans);letter-spacing:.08em;opacity:.62;pointer-events:none}
.atlas-country-map{position:absolute;inset:10px;z-index:2;width:calc(100% - 20px);height:calc(100% - 20px);display:block;border-radius:13px;touch-action:pan-y;cursor:grab;user-select:none}
.atlas-country-map.is-dragging{cursor:grabbing}
.country-map-ocean,.country-map-grid{pointer-events:none}
.country-map-paper{fill:rgba(245,241,228,.23);opacity:.46;pointer-events:none}
.country-map-wash{fill:#fff;opacity:.16;filter:blur(5px);pointer-events:none}
.country-map-wash--two{opacity:.11}.country-map-wash--three{fill:#d6d4b9;opacity:.08}
.country-map-layer{filter:drop-shadow(0 3px 4px rgba(47,74,75,.075))}
.country-map-ice-layer,.country-map-overlay-layer{pointer-events:none}
.antarctica-glow{fill:#fff;opacity:.86;stroke:#cbdfe3;stroke-width:4;vector-effect:non-scaling-stroke;filter:drop-shadow(0 -4px 7px rgba(255,255,255,.72))}

.country-shape{vector-effect:non-scaling-stroke;stroke:#fffaf1;stroke-width:1.02;stroke-linejoin:round;transition:opacity .18s ease,stroke .18s ease,filter .18s ease,fill .18s ease,fill-opacity .18s ease}
.country-shape.tone-0{fill-opacity:.87}.country-shape.tone-1{fill-opacity:.93}.country-shape.tone-2{fill-opacity:.97}.country-shape.tone-3{fill-opacity:.90}
.country-shape.is-outside-atlas{fill:#dfe7e3;opacity:.18;pointer-events:none}
.country-shape.is-destination{cursor:pointer;outline:none}
.country-shape.is-muted{opacity:.12;filter:saturate(.45)}
.country-shape.is-in-focus{opacity:1;filter:drop-shadow(0 2px 3px rgba(50,74,69,.08))}
.country-shape.is-destination:hover,.country-shape.is-destination:focus,.country-shape.is-hovered{fill:#e7c585!important;fill-opacity:1;opacity:1!important;stroke:#fff;stroke-width:1.8;filter:drop-shadow(0 2px 3px rgba(61,75,63,.20))}
.country-shape.is-selected{fill:#e0aa59!important;fill-opacity:1;opacity:1!important;stroke:#173b5d!important;stroke-width:2.2!important;filter:drop-shadow(0 3px 5px rgba(38,54,61,.24))}
.country-shape--antarctica{stroke:#f9ffff;stroke-width:1.45}
.country-shape--wrapped{display:none}
.map-explorer[data-active-subregion='polynesia'] .country-shape--wrapped{display:block}

.country-focus-pin{pointer-events:none;filter:drop-shadow(0 2px 3px rgba(35,65,72,.24))}
.country-focus-pin[hidden]{display:none}
.country-fallback-pin{cursor:pointer;outline:none;filter:drop-shadow(0 2px 3px rgba(35,65,72,.22));transition:opacity .14s ease,filter .14s ease}
.country-fallback-pin[hidden]{display:none}
.country-fallback-pin:hover,.country-fallback-pin:focus,.country-fallback-pin.is-hovered,.country-fallback-pin.is-selected{filter:drop-shadow(0 3px 5px rgba(35,65,72,.34))}

.map-zoom-controls{position:absolute;left:22px;top:20px;z-index:9;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(34,66,82,.12);border-radius:10px;background:rgba(255,253,248,.93);box-shadow:0 5px 16px rgba(37,67,79,.10);backdrop-filter:blur(6px)}
.map-zoom-controls button{width:34px;height:32px;padding:0;border:0;border-bottom:1px solid rgba(34,66,82,.09);background:transparent;color:#29465e;font:600 17px/1 var(--sans);cursor:pointer}
.map-zoom-controls button:last-child{border-bottom:0;font-size:14px}
.map-zoom-controls button:hover,.map-zoom-controls button:focus{outline:none;background:rgba(35,72,102,.08)}

.map-tooltip{position:absolute;left:0;top:0;z-index:10;min-width:118px;padding:8px 10px;border:1px solid rgba(25,62,87,.11);border-radius:9px;background:rgba(255,253,248,.96);box-shadow:0 6px 18px rgba(38,60,70,.12);pointer-events:none;backdrop-filter:blur(6px)}
.map-tooltip[hidden]{display:none}
.map-tooltip strong{display:block;color:#173b5d;font:700 10.5px/1.25 var(--jp)}
.map-tooltip span{display:block;margin-top:3px;color:#78858e;font:700 8px/1.25 var(--sans);letter-spacing:.05em}
.map-hint{position:absolute;left:65px;bottom:13px;z-index:6;margin:0;padding:6px 10px;border:1px solid rgba(59,82,88,.05);border-radius:999px;background:rgba(255,255,255,.84);color:#647681;font:600 9.3px/1.35 var(--jp);box-shadow:0 2px 8px rgba(44,70,77,.06);backdrop-filter:blur(5px);pointer-events:none}

.map-region-panel{--map-accent:#234866;position:relative;min-width:0;min-height:430px;padding:22px 18px 18px;overflow:hidden;border:1px solid rgba(28,67,92,.10);border-radius:18px;background:radial-gradient(circle at 100% 0,rgba(255,255,255,.95),transparent 36%),linear-gradient(180deg,#fffbf1 0%,#fff 100%);box-shadow:0 8px 24px rgba(37,67,79,.05)}
.map-region-panel::before{content:'';position:absolute;left:0;top:0;width:100%;height:4px;background:var(--map-accent)}
.map-explorer[data-active-region='asia'] .map-region-panel{--map-accent:#718f7a}
.map-explorer[data-active-region='europe'] .map-region-panel{--map-accent:#b99060}
.map-explorer[data-active-region='africa'] .map-region-panel{--map-accent:#b47b54}
.map-explorer[data-active-region='north-america'] .map-region-panel{--map-accent:#6f8da0}
.map-explorer[data-active-region='south-america'] .map-region-panel{--map-accent:#829765}
.map-explorer[data-active-region='oceania'] .map-region-panel{--map-accent:#5d9a9a}
.map-explorer[data-active-region='antarctica'] .map-region-panel{--map-accent:#7899aa}
.map-region-kicker{display:block;color:var(--map-accent);font:700 8.5px/1.2 var(--sans);letter-spacing:.15em}
.map-region-panel h3{margin:7px 0 0;color:#173b5d;font-size:20px;line-height:1.3}
.map-region-panel>p{margin:7px 0 0;color:#667680;font-size:9.7px;line-height:1.62}
.map-region-count{display:inline-flex;margin-top:10px;padding:4px 8px;border-radius:999px;background:color-mix(in srgb,var(--map-accent) 12%,white);color:color-mix(in srgb,var(--map-accent) 82%,#173b5d);font:700 8.5px/1.2 var(--sans);letter-spacing:.06em}

.map-country-preview{margin-top:16px}
.map-country-preview__empty{display:grid;grid-template-columns:40px 1fr;gap:11px;align-items:center;min-height:102px;padding:15px;border:1px dashed color-mix(in srgb,var(--map-accent) 28%,#d7ddd9);border-radius:12px;background:rgba(255,255,255,.58)}
.map-country-preview__marker{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--map-accent) 13%,white);color:var(--map-accent);font:500 21px/1 var(--sans)}
.map-country-preview__empty strong{display:block;color:#29465e;font-size:11px;line-height:1.35}
.map-country-preview__empty p{margin:5px 0 0;color:#71808a;font-size:9.5px;line-height:1.55}

.map-country-nav{margin-top:13px}
.map-country-nav__wrap{display:flex;flex-direction:column;min-height:0}
.map-country-nav__selected{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;margin-bottom:10px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--map-accent) 18%,#dde4e0);border-radius:10px;background:color-mix(in srgb,var(--map-accent) 6%,white)}
.map-country-nav__selected-flag{font-size:21px;line-height:1}
.map-country-nav__selected-names{min-width:0}
.map-country-nav__selected-names strong{display:block;overflow:hidden;color:#173b5d;font:600 10.5px/1.3 var(--jp);text-overflow:ellipsis;white-space:nowrap}
.map-country-nav__selected-names span{display:block;margin-top:2px;overflow:hidden;color:#71808a;font:700 7.8px/1.25 var(--sans);letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap}
.map-country-nav__selected-link,.map-country-nav__selected-waiting{white-space:nowrap;font:700 8px/1.2 var(--sans);letter-spacing:.04em}
.map-country-nav__selected-link{padding:5px 7px;border:1px solid var(--map-accent);border-radius:6px;color:var(--map-accent);text-decoration:none;background:#fff}
.map-country-nav__selected-waiting{color:#9a958a}
.map-country-nav__guide{display:flex;align-items:end;justify-content:space-between;gap:8px;margin-bottom:7px;padding:0 2px}
.map-country-nav__guide strong{color:#29465e;font:600 9.5px/1.2 var(--jp)}
.map-country-nav__guide span{color:#8a969d;font:500 7.8px/1.2 var(--jp);white-space:nowrap}
.map-country-nav__list{max-height:260px;overflow:auto;padding:2px 3px 2px 0;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--map-accent) 24%,#dbe2de) transparent}
.map-country-nav__item{position:relative;width:100%;display:grid;grid-template-columns:25px minmax(0,1fr);gap:8px;align-items:center;margin:0;padding:7px 8px;border:0;border-bottom:1px solid rgba(38,68,84,.065);border-radius:7px;background:transparent;text-align:left;cursor:pointer;transition:background .14s ease,transform .14s ease,box-shadow .14s ease}
.map-country-nav__item::before{content:'';position:absolute;left:0;top:7px;bottom:7px;width:2px;border-radius:2px;background:transparent}
.map-country-nav__item:hover,.map-country-nav__item:focus,.map-country-nav__item.is-hovered{outline:none;background:color-mix(in srgb,var(--map-accent) 8%,white);transform:translateX(2px)}
.map-country-nav__item:hover::before,.map-country-nav__item:focus::before,.map-country-nav__item.is-hovered::before{background:var(--map-accent)}
.map-country-nav__item.is-selected{background:color-mix(in srgb,var(--map-accent) 12%,white);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--map-accent) 20%,transparent)}
.map-country-nav__item.is-selected::before{background:var(--map-accent)}
.map-country-nav__flag{font-size:16px;line-height:1;text-align:center}
.map-country-nav__names{min-width:0}
.map-country-nav__names strong{display:block;overflow:hidden;color:#304b60;font:600 9.5px/1.25 var(--jp);text-overflow:ellipsis;white-space:nowrap}
.map-country-nav__names small{display:block;margin-top:1px;overflow:hidden;color:#8a969d;font:600 7.2px/1.2 var(--sans);letter-spacing:.035em;text-overflow:ellipsis;white-space:nowrap}
.map-country-status{min-height:15px;margin-top:8px!important;color:#8a6c47!important;font-size:8.8px!important}
.has-country-map .atlas-map{display:none}

@media(max-width:1050px){
  .map-explorer-grid{grid-template-columns:minmax(0,1.35fr) minmax(255px,.72fr)}
  .atlas-map-wrap,.map-region-panel{min-height:385px}
  .map-country-nav__list{max-height:225px}
}
@media(max-width:760px){
  .map-panel.map-explorer{padding:21px 16px 22px}
  .map-explorer .map-heading::before{margin-bottom:6px}
  .map-region-tabs{flex-wrap:nowrap;overflow-x:auto;margin:17px -2px 8px;padding:0 2px 5px}
  .map-region-tabs button{flex:0 0 auto}
  .map-subregion-tabs{flex-wrap:nowrap;overflow-x:auto;margin:0 -2px 13px;padding:8px 9px}
  .map-subregion-tabs>*{flex:0 0 auto}
  .map-explorer-grid{grid-template-columns:1fr;gap:13px}
  .atlas-map-wrap{min-height:320px;padding:9px;border-radius:14px}
  .atlas-map-wrap::after{top:14px;right:16px}
  .atlas-country-map{inset:7px;width:calc(100% - 14px);height:calc(100% - 14px);touch-action:pan-y}
  .map-zoom-controls{left:14px;top:14px}
  .map-zoom-controls button{width:32px;height:30px}
  .map-hint{left:54px;right:12px;bottom:9px;width:max-content;max-width:calc(100% - 66px);font-size:8.2px}
  .map-region-panel{min-height:0;padding:18px 15px 15px;border-radius:14px}
  .map-region-panel h3{font-size:19px}
  .map-country-nav__list{max-height:245px}
  .map-country-nav__selected{grid-template-columns:30px minmax(0,1fr) auto}
}


/* ===== assets/css/top-scope.css ===== */
/* JOURNEY ATLAS — canonical 201-destination scope + shared visual language */

:root{
  --paper:#f7f3e9;
  --soft:#fbf8f0;
  --line:#d8d0c0;
  --jp-ui:"Zen Kaku Gothic New","Hanken Grotesk",sans-serif;
}
html{scroll-padding-top:96px;}
body{
  background:var(--paper);
  padding-top:82px;
}

/* Keep the global header visible while exploring the long top page. */
.top-header.shell{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:100;
  width:100%;
  min-height:82px;
  margin:0;
  padding-inline:max(28px,calc((100vw - 1460px)/2));
  background:rgba(247,243,233,.94);
  border-bottom:1px solid rgba(11,44,87,.11);
  box-shadow:0 3px 14px rgba(9,42,75,.045);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.explore-card__copy{
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:14px!important;
  padding-left:18px!important;
  padding-right:18px!important;
}
.explore-card__copy>div{min-width:0}
.explore-icon{display:none!important}

.explore-card__kicker,
.section-kicker{
  display:block;
  margin:0 0 5px;
  color:#8b7457;
  font:700 8.5px/1.2 var(--sans);
  letter-spacing:.18em;
  text-transform:uppercase;
}
.explore-card__kicker{margin-bottom:6px}
.explore-card__copy h2{margin-top:0}

/* Keep the top hero editorial, while shared UI typography follows country pages. */
.explore-card__copy h2,
.explore-card__copy p,
.section-head h2,
.section-head p,
.detail-heading h2,
.detail-heading p,
.theme-icons b,
.theme-icons small,
.all-countries-panel__head strong,
.all-countries-panel__head p,
.country-card p,
.lens-card p,
.top-header nav{
  font-family:var(--jp-ui)!important;
}

.explore-card,
.country-card,
.detail-panel,
.theme-icons button,
.lens-card,
.all-countries-panel{
  border-color:var(--line)!important;
  background:var(--soft)!important;
}
.explore-card{border-radius:13px!important;}
.detail-panel,.all-countries-panel{border-radius:14px!important;}
.country-card,.lens-card,.theme-icons button{border-radius:9px!important;}

.countries .section-head>div,
.theme-panel .theme-heading>div{min-width:0}
.countries .section-kicker,
.theme-panel .section-kicker{margin-bottom:7px}

.country-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.wish-list-toggle{color:#8a5c48}

.lens-head .lens-kicker{
  margin-bottom:7px;
  color:#8b7457;
}

#about.about-note{
  grid-template-columns:220px minmax(0,1fr);
  gap:54px;
  align-items:start;
}
.about-note__label{min-width:0}
.about-note__label .section-kicker{margin:0 0 8px}
.about-note__label strong{
  display:block;
  font-size:18px;
  line-height:1.3;
  letter-spacing:.08em;
  font-family:var(--sans);
}
.about-note__content{max-width:920px}
#about.about-note .about-note__content p{
  display:block!important;
  max-width:none;
  margin:0;
}
#about.about-note .about-note__lead{
  font:500 17px/1.8 var(--jp);
  color:#243d52;
  letter-spacing:.01em;
}
#about.about-note .about-note__lead + p{
  margin-top:12px;
  font:500 12.5px/1.9 var(--jp-ui);
  color:#405364;
}
#about.about-note .about-note__definition{
  margin-top:18px;
  padding-top:0;
  border-top:0;
  font:500 9.5px/1.8 var(--jp-ui);
  color:#7a858c;
}
#about.about-note .about-note__definition b{
  margin-right:7px;
  color:#64737c;
  font-weight:700;
}

@media(max-width:760px){
  html{scroll-padding-top:84px;}
  body{padding-top:72px;}
  .top-header.shell{
    min-height:72px;
    padding-inline:18px;
  }
  .explore-card__copy{padding:12px 14px!important}
  .explore-card__kicker{font-size:7.8px;letter-spacing:.15em}
  .section-kicker{font-size:8px}
  .country-head-actions{width:100%;justify-content:flex-start}

  #about.about-note{
    display:block;
    padding-top:30px;
    padding-bottom:36px;
  }
  .about-note__label{margin-bottom:18px}
  .about-note__label strong{font-size:16px}
  #about.about-note .about-note__lead{font-size:15px;line-height:1.75}
  #about.about-note .about-note__lead + p{margin-top:10px;font-size:11.5px;line-height:1.85}
  #about.about-note .about-note__definition{margin-top:15px;padding-top:0;border-top:0;font-size:8.8px;line-height:1.75}
}


/* ===== assets/css/site-unify.css ===== */
/* JOURNEY ATLAS — shared visual rules across top and country pages */

:root{
  --ja-header-height:82px;
  --ja-header-mobile:70px;
  --ja-paper:#f7f3e9;
  --ja-soft:#fbf8f0;
  --ja-line:#d8d0c0;
  --ja-navy:#12365c;
  --ja-ui:"Zen Kaku Gothic New","Hanken Grotesk",sans-serif;
}

/* ---------- GLOBAL HEADER LANGUAGE ---------- */
.top-header.shell,
.site-header.page-shell{
  position:fixed!important;
  inset:0 0 auto 0!important;
  z-index:100!important;
  width:100%!important;
  height:var(--ja-header-height)!important;
  min-height:var(--ja-header-height)!important;
  margin:0!important;
  padding-inline:max(28px,calc((100vw - 1460px)/2))!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:36px!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  transition:background-color .22s ease,border-color .22s ease,box-shadow .22s ease,backdrop-filter .22s ease;
}

.top-header.shell.is-scroll-sticky,
.site-header.page-shell.is-scroll-sticky{
  background:rgba(247,243,233,.96)!important;
  border-bottom:1px solid rgba(11,44,87,.11)!important;
  box-shadow:0 3px 14px rgba(9,42,75,.045)!important;
  backdrop-filter:blur(10px)!important;
  -webkit-backdrop-filter:blur(10px)!important;
}

html{scroll-padding-top:96px!important;}

/* Keep country identity clear of the persistent transparent header. */
.country-page .hero-copy{
  padding-top:calc(var(--ja-header-height) + 38px)!important;
}

.wordmark,
.country-brand__wordmark{
  display:block;
  color:var(--ja-navy)!important;
  font-family:"Hanken Grotesk",sans-serif!important;
  font-size:clamp(23px,1.75vw,29px)!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:.23em!important;
  white-space:nowrap;
}
.brand-block,
.country-brand{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:5px!important;
  color:inherit!important;
  text-decoration:none!important;
}
.brand-block small,
.country-brand small{
  display:block!important;
  color:#62717d!important;
  font-family:var(--ja-ui)!important;
  font-size:9.5px!important;
  font-weight:500!important;
  line-height:1.35!important;
  letter-spacing:.04em!important;
  white-space:nowrap;
}

.top-header nav,
.utility-nav{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:clamp(22px,2.5vw,40px)!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  font-family:var(--ja-ui)!important;
  font-size:12.5px!important;
  line-height:1!important;
}
.utility-nav a{
  min-width:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:7px 0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--ja-navy)!important;
  font-family:var(--ja-ui)!important;
  font-size:12.5px!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-decoration:none!important;
  white-space:nowrap;
}
.utility-nav a:hover,
.utility-nav a:focus-visible{
  background:transparent!important;
  color:#092a4b!important;
  text-decoration:underline;
  text-underline-offset:5px;
  outline:none!important;
}

/* ---------- COUNTRY HERO: PRIMARY TRAVEL THEMES ---------- */
.country-theme-context{
  width:360px;
  max-width:100%;
  margin-top:20px;
  display:flex;
  align-items:flex-start;
  gap:10px;
}
.country-theme-context[hidden]{display:none!important;}
.country-theme-context__label{
  flex:0 0 auto;
  padding-top:5px;
  color:#8a6b55;
  font-family:"Spline Sans Mono",ui-monospace,monospace;
  font-size:8.5px;
  font-weight:500;
  line-height:1.25;
  letter-spacing:.12em;
}
.country-theme-context__list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.country-theme-chip{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 9px 4px;
  border:1px solid rgba(18,54,92,.16);
  border-radius:999px;
  background:rgba(251,248,240,.78);
  color:#12365c;
  font-family:var(--ja-ui);
  font-size:10.5px;
  font-weight:600;
  line-height:1.3;
  white-space:nowrap;
}

/* ---------- TOP PAGE: SAME-LEVEL HEADINGS ---------- */
.countries .section-head h2,
.detail-heading h2,
.lens-head h2,
.about-note__label strong{
  margin-top:0!important;
  font-family:var(--ja-ui)!important;
  font-size:20px!important;
  line-height:1.35!important;
  font-weight:700!important;
  letter-spacing:0!important;
  color:var(--ja-navy)!important;
}

/* Country discovery should use the same paper panel as map/theme discovery. */
.countries{
  background:var(--ja-soft)!important;
  border-color:var(--ja-line)!important;
}

/* ---------- COUNTRY MAP / EDITORIAL HEADS ---------- */
.panel-title-wrap{
  display:block!important;
  min-height:0!important;
  margin-bottom:18px!important;
}

/* The SVGs are generated on a 1200 × 760 canvas. Match that ratio so the
   map image and coordinate marker layer share exactly the same geometry. */
.map-art{
  aspect-ratio:1200 / 760!important;
}
.map-base{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
}

.scenes-heading,
.atlas-extras__head,
.travel-trivia__head{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(300px,38%)!important;
  align-items:start!important;
  gap:36px!important;
  min-height:0!important;
  margin-bottom:18px!important;
}
.panel-title-copy,
.scenes-title-wrap,
.atlas-extras__head>div,
.travel-trivia__head>div{min-width:0;}

.scenes-intro,
.atlas-extras__intro,
.travel-trivia__intro{
  justify-self:end!important;
  align-self:start!important;
  width:100%!important;
  max-width:470px!important;
  margin:0!important;
  padding-top:25px!important;
  color:#66717a!important;
  font-size:11.5px!important;
  line-height:1.7!important;
  text-align:right!important;
}
.scenes-intro{white-space:nowrap;}

.map-legend--below{
  justify-content:flex-end!important;
  margin:10px 2px 0!important;
}

@media(max-width:1000px){
  .scenes-heading,
  .atlas-extras__head,
  .travel-trivia__head{
    grid-template-columns:minmax(0,1fr) minmax(270px,40%)!important;
    gap:24px!important;
  }
  .scenes-intro{white-space:normal;}
}

@media(max-width:760px){
  :root{--ja-header-height:var(--ja-header-mobile);}
  html{scroll-padding-top:82px!important;}
  .top-header.shell,
  .site-header.page-shell{
    height:var(--ja-header-mobile)!important;
    min-height:var(--ja-header-mobile)!important;
    padding-inline:18px!important;
    gap:18px!important;
  }
  .country-page .hero-copy{
    padding-top:calc(var(--ja-header-mobile) + 24px)!important;
  }
  .wordmark,
  .country-brand__wordmark{
    font-size:clamp(19px,5.8vw,23px)!important;
  }
  .brand-block small,
  .country-brand small{display:none!important;}
  .top-header nav,
  .utility-nav{
    gap:14px!important;
    font-size:11px!important;
  }
  .utility-nav a{font-size:11px!important;}

  .country-theme-context{
    margin-top:16px;
    display:block;
  }
  .country-theme-context__label{
    display:block;
    padding-top:0;
    margin-bottom:6px;
  }

  .panel-title-wrap,
  .scenes-heading,
  .atlas-extras__head,
  .travel-trivia__head{
    display:block!important;
    min-height:0!important;
  }
  .scenes-intro,
  .atlas-extras__intro,
  .travel-trivia__intro{
    max-width:none!important;
    margin-top:8px!important;
    padding-top:0!important;
    text-align:left!important;
    white-space:normal;
  }
  .map-legend--below{
    justify-content:flex-start!important;
    margin-top:8px!important;
  }
}

/* ===== assets/css/site-footer.css ===== */
/* JOURNEY ATLAS — shared site footer */
.atlas-footer{
  margin-top:0;
  border-top:1px solid rgba(11,44,87,.12);
  background:#fffdf9;
  color:#0b2c57;
}
.atlas-footer__inner{
  width:min(100% - 56px,1240px);
  min-height:72px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
.atlas-footer__nav{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:clamp(20px,2.5vw,36px);
}
.atlas-footer a,
.atlas-footer__nav span,
.atlas-footer__copyright{
  font-family:"Hanken Grotesk","Zen Kaku Gothic New",sans-serif;
  font-size:11px;
  line-height:1.5;
  letter-spacing:.02em;
  color:#0b2c57;
}
.atlas-footer a{text-decoration:none;}
.atlas-footer a:hover,
.atlas-footer a:focus-visible{
  text-decoration:underline;
  text-underline-offset:4px;
}
.atlas-footer__copyright{
  margin-left:auto;
  white-space:nowrap;
}
.atlas-footer__nav .is-static{cursor:default;}

/* Old colophon must never compete with the shared footer. */
.atlas-colophon{display:none!important;}

@media(max-width:760px){
  .atlas-footer__inner{
    width:min(100% - 36px,1240px);
    min-height:0;
    padding:22px 0;
    display:block;
  }
  .atlas-footer__nav{gap:14px 22px;}
  .atlas-footer__copyright{
    display:block;
    margin-top:18px;
  }
}

