/* ══════════════════════════════════════════════════════════════════════════
   v3-globe.css — globe-/kaart-specifieke stijl voor The Journey + trip-pagina's
   ──────────────────────────────────────────────────────────────────────────
   Laad NAAST rebuild.css (na rebuild.css). Gebruikt UITSLUITEND de semantische
   tokens uit rebuild.css (--bg/--fg/--surface/--accent/--line/--mono-c/--star …)
   en de stam-tokens alleen waar een effect modus-onafhankelijk hoort te zijn.

   Gewenste TOKEN-TOEVOEGINGEN aan rebuild.css (apart genoteerd, niet hier gezet):
     --globe-hero-h: clamp(360px, 64svh, 620px);   (hoogte hero-globe)
     --map-thumb-h:  330px;                          (designer-maat kaart-thumb)
   Voor nu lokaal als fallback-constanten via .jr-* / .tmap-* hieronder.
   ══════════════════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════════════════
   HERO: de grote inzoombare canvas-ATLAS als hoofdnavigatie.
   De bol ademt VRIJ — geen ronde uitsnede, geen blauwe rand, geen overflow-clip.
   globe.js tekent zijn eigen zachte limb-fade in het papier, dus de bol mag
   gewoon tot de schermranden lopen. De tekst zweeft eroverheen.
   ══════════════════════════════════════════════════════════════════════════ */
.jr-hero{
  position:relative;
  min-height:clamp(560px,92svh,1000px);
  padding:0 !important;                          /* band-padding mag de atlas niet inkapen */
  overflow:visible;                              /* NOOIT de bol afkappen */
  isolation:isolate;
}

/* de atlas: vult de hele held, achter de tekst; geen kader, geen radius */
.jr-atlas{position:absolute;inset:0;z-index:0}
.jr-atlas .atl-frame{position:absolute;inset:0}
.jr-canvas{
  position:absolute;inset:0;width:100%;height:100%;display:block;
  background:transparent;outline:none;touch-action:pan-y;cursor:grab;
}
.jr-canvas.armed{cursor:grabbing}
.jr-canvas:focus-visible{outline:2px dashed var(--focus);outline-offset:-6px}

/* zachte papierwarmte achter de bol zodat de fade van globe.js naadloos oplost
   in de pagina (geen harde cirkelrand meer zichtbaar) */
.jr-atlas::before{
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(120% 90% at 62% 42%, rgba(255,252,243,0) 0%, rgba(250,247,241,.0) 52%, var(--bg) 100%);
}

/* zoek + zoomknoppen, rechtsonder op het blad */
.atl-controls{
  position:absolute;right:clamp(12px,2.4vw,28px);bottom:clamp(58px,9vh,84px);z-index:3;
  display:flex;flex-direction:column;align-items:flex-end;gap:10px;max-width:min(78vw,320px);
}
.atl-search{position:relative}
.atl-search input{
  width:clamp(180px,40vw,260px);
  font-family:var(--f-i);font-style:italic;font-size:14px;color:var(--fg);
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border:1px solid var(--line);border-radius:100px;padding:9px 16px 9px 34px;
  box-shadow:0 6px 18px rgba(34,30,24,.12);
}
.atl-search::before{content:'⌕';position:absolute;left:13px;top:50%;transform:translateY(-50%);
  color:var(--mono-c);font-size:16px;pointer-events:none}
.atl-search input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.atl-zoom{display:inline-flex;gap:6px;
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border:1px solid var(--line);border-radius:100px;padding:5px;box-shadow:0 6px 18px rgba(34,30,24,.12)}
.atl-zoom button{
  width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;
  background:transparent;color:var(--fg);font-size:20px;line-height:1;
  display:flex;align-items:center;justify-content:center;transition:background .16s var(--ease)}
.atl-zoom button:hover,.atl-zoom button:focus-visible{background:var(--surface-2,rgba(34,30,24,.07));outline:none}
.atl-zoom #atlWorld{font-size:15px;color:var(--accent)}

.atl-hint{
  position:absolute;left:50%;bottom:clamp(14px,2.4vh,22px);transform:translateX(-50%);z-index:3;
  font-family:var(--f-m);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mono-c);
  opacity:.8;pointer-events:none;text-align:center;
}

/* ── LEGENDA: gekleurde reisroutes (ronde 3 → herplaatst ronde 4) ─────────────
   RECHTS-onder op het blad, NET BOVEN de zoek/zoomknoppen — niet langer links-
   onder, waar ze (ronde 4-bug) bovenop het "Aanbevolen verhalen"-paneel (.jr-rec
   in de linker tekstkolom) viel. Door legenda én controls op de rechterrand te
   stapelen, blijft de hele linkerhelft vrij voor de copy + aanbevelingen; ze
   kunnen elkaar nooit meer overlappen (desktop). Eén regel per reis met een
   streepje in de routekleur; klik zoomt de atlas naar die reis. De grote reis
   krijgt een dikker streepje (pronkstuk). Klein, fluisterend. */
.atl-legend{
  position:absolute;right:clamp(12px,2.4vw,28px);left:auto;
  /* boven de controls: controls-bottom (max 84px) + controls-hoogte (~92px) + marge */
  bottom:calc(clamp(58px,9vh,84px) + 104px);z-index:4;
  display:flex;flex-direction:column;gap:2px;max-width:min(46vw,240px);align-items:stretch;
  background:color-mix(in srgb,var(--surface) 86%,transparent);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border:1px solid var(--line);border-radius:12px;padding:8px 9px;
  box-shadow:0 6px 18px rgba(34,30,24,.12);
}
.atl-legend[hidden]{display:none}
.atl-legend-head{
  font-family:var(--f-m);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mono-c);
  padding:1px 6px 5px;
}
.lg-row{
  display:flex;align-items:center;gap:9px;width:100%;text-align:left;cursor:pointer;
  background:none;border:none;border-radius:8px;padding:6px 7px;color:inherit;font-family:inherit;
  transition:background .15s var(--ease);
}
.lg-row:hover,.lg-row:focus-visible{background:var(--surface-2,rgba(34,30,24,.06));outline:none}
.lg-line{width:22px;height:0;border-top:2px solid currentColor;flex:0 0 auto;border-radius:2px}
.lg-row.lg-grote .lg-line{border-top-width:3px}
.lg-name{font-family:var(--f-i);font-style:italic;font-size:12.5px;line-height:1.2;color:var(--fg);min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lg-row.lg-grote .lg-name{font-style:normal;font-weight:600}
/* de actieve reis: zacht gemarkeerd zodat de selectie voelbaar is (klik/submenu/sheet) */
.lg-row.lg-active{background:var(--surface-2,rgba(34,30,24,.08))}
.lg-row.lg-active .lg-name{color:var(--accent)}
.lg-row.lg-active .lg-line{border-top-width:3px}

/* de tekstlaag zweeft links-boven over het blad */
.jr-hero-overlay{
  position:relative;z-index:2;pointer-events:none;
  padding-top:clamp(96px,15vh,170px);padding-bottom:clamp(40px,7vh,90px);
  min-height:inherit;display:flex;align-items:flex-start;
}
.jr-hero-copy{
  max-width:33rem;pointer-events:auto;
  background:linear-gradient(105deg, color-mix(in srgb,var(--bg) 86%,transparent) 0%,
    color-mix(in srgb,var(--bg) 70%,transparent) 64%, transparent 100%);
  -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  border-radius:18px;padding:clamp(8px,2vw,18px) clamp(10px,2.4vw,24px);margin:-8px 0 0 -8px;
}
.jr-hero h1{
  font-family:var(--f-d);font-weight:700;line-height:1.04;letter-spacing:-.02em;
  font-size:clamp(34px,6.4vw,62px);color:var(--fg);margin:.3em 0 .26em;
}
.jr-hero h1 .wm-dot{color:var(--accent)}
.jr-hero .lead{
  font-family:var(--f-i);font-style:italic;font-size:clamp(17px,2.4vw,22px);
  line-height:1.5;color:var(--fg-soft);max-width:30rem;
}
.jr-hero-actions{margin-top:clamp(20px,3.2vh,30px);display:flex;flex-wrap:wrap;gap:14px;align-items:center}

/* live-badge: pulserend rondje + mono "nu · plek · stop N" */
.live-badge{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--f-m);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--mono-c);
  border:1px solid var(--line);border-radius:100px;padding:6px 13px;background:var(--surface);
}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);position:relative;flex:0 0 auto}
.live-dot::after{content:'';position:absolute;inset:-3px;border-radius:50%;border:1px solid var(--accent);
  animation:livePulse 2.4s ease-out infinite}
@keyframes livePulse{0%{transform:scale(.6);opacity:.8}70%{transform:scale(1.8);opacity:0}100%{opacity:0}}

/* ── "VERRAS ME" — random-verhaal-dobbelsteen (easter egg) ────────────────── */
.dice{
  position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;
  font-family:var(--f-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg);
  background:var(--surface);border:1px solid var(--line);border-radius:100px;
  padding:8px 16px 8px 10px;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease);
}
.dice:hover,.dice:focus-visible{transform:translateY(-1px);border-color:var(--accent);
  box-shadow:0 8px 22px rgba(180,70,43,.22);outline:none}
.dice-face{position:relative;width:26px;height:26px;border-radius:7px;flex:0 0 auto;
  background:var(--accent);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.dice-face i{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--on-accent)}
.dice-face i:nth-child(1){left:4px;top:4px}
.dice-face i:nth-child(2){right:4px;top:4px}
.dice-face i:nth-child(3){left:50%;top:50%;transform:translate(-50%,-50%)}
.dice-face i:nth-child(4){left:4px;bottom:4px}
.dice-face i:nth-child(5){right:4px;bottom:4px}
.dice:hover .dice-face{animation:diceTilt 1.6s ease-in-out infinite}
.dice.rolling .dice-face{animation:diceRoll .6s cubic-bezier(.5,1.4,.4,1)}
@keyframes diceTilt{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}
@keyframes diceRoll{0%{transform:rotate(0) scale(1)}40%{transform:rotate(220deg) scale(1.18)}100%{transform:rotate(360deg) scale(1)}}

/* ══════════════════════════════════════════════════════════════════════════
   LAND-/REIS-SUBMENU onder "The Journey" in de nav.
   Een scrollbaar atlas-blad (perkament, dunne potloodlijn) — geen lompe
   dropdown-bak. Opent op hover/focus (desktop) of via het ▾-knopje (touch/
   toetsenbord). Klikken zoomt de atlas naar die reis.
   ══════════════════════════════════════════════════════════════════════════ */
.nav-has-sub{position:relative;display:inline-flex;align-items:center;gap:4px}
.nav-sub-toggle{
  display:inline-flex;align-items:center;justify-content:center;
  width:20px;height:20px;padding:0;border:none;background:none;cursor:pointer;
  color:var(--fg-soft);font-size:11px;line-height:1;border-radius:5px;
  transition:transform .2s var(--ease),color .16s var(--ease);
}
.nav-has-sub:hover .nav-sub-toggle,.nav-sub-toggle:hover,.nav-sub-toggle:focus-visible{color:var(--accent);outline:none}
.nav-has-sub.sub-open .nav-sub-toggle{transform:rotate(180deg);color:var(--accent)}

.nav-sub{
  position:absolute;left:-10px;top:calc(100% + 12px);z-index:60;
  width:min(340px,calc(100vw - 32px));
  background:var(--surface);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border:1px solid var(--line);border-radius:14px;
  box-shadow:0 18px 44px rgba(34,30,24,.20);
  padding:10px;
  opacity:0;transform:translateY(-6px);pointer-events:none;
  transition:opacity .18s var(--ease),transform .18s var(--ease);
}
/* zacht perkament-randje boven (de "scheur" van het blad) */
.nav-sub::before{
  content:'';position:absolute;left:24px;top:-6px;width:12px;height:12px;
  background:var(--surface);border-left:1px solid var(--line);border-top:1px solid var(--line);
  transform:rotate(45deg);
}
.nav-has-sub.sub-open .nav-sub{opacity:1;transform:none;pointer-events:auto}
.nav-sub[hidden]{display:none}
.nav-sub-head{
  font-family:var(--f-m);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mono-c);
  padding:4px 8px 8px;margin-bottom:4px;border-bottom:1px dashed var(--line);
}
.nav-sub-scroll{
  display:flex;flex-direction:column;gap:1px;
  max-height:min(60vh,420px);overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.jm-row{
  display:flex;align-items:center;gap:11px;width:100%;text-align:left;cursor:pointer;
  background:none;border:none;border-radius:9px;padding:10px 9px;color:inherit;font-family:inherit;
  transition:background .15s var(--ease);
}
.jm-row:hover,.jm-row:focus-visible{background:var(--surface-2,rgba(34,30,24,.06));outline:none}
.jm-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 3px color-mix(in srgb,var(--bg) 70%,transparent)}
.jm-dot-world{width:auto;height:auto;border-radius:0;box-shadow:none;color:var(--accent);font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center}
.jm-text{flex:1;min-width:0;display:flex;flex-direction:column}
.jm-name{font-family:var(--f-d);font-weight:600;font-size:14px;line-height:1.2;color:var(--fg);white-space:normal}
.jm-sub{font-family:var(--f-i);font-style:italic;font-size:12px;color:var(--fg-soft);margin-top:1px}
.jm-when{font-family:var(--f-m);font-size:10.5px;color:var(--mono-c);flex:0 0 auto;align-self:center}
.jm-world{border-bottom:1px dashed var(--line);border-radius:9px 9px 0 0;margin-bottom:3px;padding-bottom:11px}
.jm-empty{font-family:var(--f-i);font-style:italic;color:var(--fg-soft);font-size:14px;padding:12px 9px}

/* mobiel: het submenu hoort in het uitschuif-menu — vol breed, statisch blad.
   720px = hetzelfde breekpunt waarop rebuild.css de nav-links in het slide-out
   paneel zet, zodat het submenu nooit half-absoluut in dat paneel hangt. */
@media (max-width:720px){
  .nav-has-sub{flex-direction:column;align-items:stretch;width:100%}
  .nav-sub-toggle{position:absolute;right:0;top:2px;width:34px;height:34px;font-size:14px}
  .nav-sub{
    position:static;width:100%;left:0;top:0;margin-top:10px;
    box-shadow:none;opacity:1;transform:none;pointer-events:auto;
    background:color-mix(in srgb,var(--surface) 70%,transparent);
  }
  .nav-sub::before{display:none}
  .nav-has-sub:not(.sub-open) .nav-sub{display:none}
  .nav-sub-scroll{max-height:min(48vh,360px)}
}

/* ── innovatie #7: "glimp" bij hover over een globe-zegel ───────────────────── */
.atl-glimp{
  position:absolute;z-index:5;pointer-events:none;max-width:min(58vw,260px);
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  -webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);
  border:1px solid var(--line);border-radius:10px;padding:7px 11px;
  box-shadow:0 8px 22px rgba(34,30,24,.18);
  opacity:0;transform:translateY(3px);transition:opacity .14s var(--ease),transform .14s var(--ease);
}
.atl-glimp.on{opacity:1;transform:none}
.atl-glimp[hidden]{display:none}
.atl-glimp-t{display:block;font-family:var(--f-d);font-weight:600;font-size:13.5px;line-height:1.22;color:var(--fg)}
.atl-glimp-m{display:block;font-family:var(--f-i);font-style:italic;font-size:11.5px;color:var(--fg-soft);margin-top:1px}

/* ══════════════════════════════════════════════════════════════════════════
   v19 — CLUSTER-PANEEL: tik op een cluster → net DOM-paneel met de leden als
   ruime, klikbare knoppen (géén canvas-precisie meer). Licht perkament met
   roest-accenten, in de stijl van de reader/kaartjes. Desktop = zwevend,
   gecentreerd paneel; mobiel (≤620px) = bottom-sheet die omhoog schuift.
   De scrim is een vaste viewport-laag; klik erop (buiten de sheet) sluit.
   ══════════════════════════════════════════════════════════════════════════ */
.atl-cpanel{
  position:fixed;inset:0;z-index:110;display:flex;
  align-items:center;justify-content:center;padding:clamp(16px,4vw,40px);
  background:rgba(21,23,28,.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  opacity:0;transition:opacity .2s var(--ease);
}
.atl-cpanel.on{opacity:1}
.atl-cpanel[hidden]{display:none}
.atl-cpanel-sheet{
  display:flex;flex-direction:column;width:min(420px,100%);max-height:min(72vh,560px);
  background:var(--paper-50,var(--surface));color:var(--reader,var(--fg));
  border:1px solid var(--line);border-radius:16px;overflow:hidden;
  box-shadow:0 28px 70px rgba(34,30,24,.34);
  transform:translateY(14px) scale(.985);opacity:.6;
  transition:transform .24s var(--ease),opacity .24s var(--ease);
}
.atl-cpanel.on .atl-cpanel-sheet{transform:none;opacity:1}
.atl-cpanel-grip{display:none}
.atl-cpanel-head{
  display:flex;align-items:flex-start;gap:12px;padding:18px 16px 6px 20px;flex:0 0 auto;
}
.atl-cpanel-title{
  flex:1;min-width:0;margin:0;font-family:var(--f-d);font-weight:700;
  font-size:clamp(18px,2.4vw,21px);line-height:1.16;letter-spacing:-.01em;color:var(--ink-deep,var(--fg));
}
.atl-cpanel-x{
  flex:0 0 auto;width:40px;height:40px;border-radius:50%;cursor:pointer;
  border:1px solid var(--taupe,var(--line));background:var(--paper,var(--surface));color:var(--umber,var(--fg-soft));
  font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;
  transition:border-color .16s var(--ease),color .16s var(--ease);
}
.atl-cpanel-x:hover,.atl-cpanel-x:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}
.atl-cpanel-hint{
  padding:0 20px 12px;flex:0 0 auto;
  font-family:var(--f-m);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--mono-c);
}
/* optionele "inzoomen op de kaart"-knop bij grote bundels (GATE-frictie-fix):
   ruimtelijk verkennen blijft mogelijk, maar is niet langer een verplichte stap */
.atl-cpanel-zoom{
  display:inline-block;margin-left:.5em;padding:3px 9px;
  font:inherit;letter-spacing:.1em;text-transform:uppercase;
  color:var(--rust,#B4462B);background:transparent;
  border:1px solid rgba(180,70,43,.45);
  border-radius:999px;cursor:pointer;white-space:nowrap;
  transition:background .15s ease,border-color .15s ease;
}
.atl-cpanel-zoom:hover,.atl-cpanel-zoom:focus-visible{
  background:rgba(180,70,43,.10);
  border-color:var(--rust,#B4462B);outline:none;
}
.atl-cpanel-list{
  flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  padding:0 10px 12px;display:flex;flex-direction:column;gap:1px;
}
.atl-cpanel-row{
  display:flex;align-items:center;gap:13px;width:100%;text-align:left;cursor:pointer;
  min-height:56px;background:none;border:none;border-bottom:1px dashed var(--line);
  padding:11px 10px;color:inherit;font-family:inherit;border-radius:9px;
  transition:background .16s var(--ease);
}
.atl-cpanel-row:last-child{border-bottom:none}
.atl-cpanel-row:hover,.atl-cpanel-row:focus-visible{background:var(--surface);outline:none}
.atl-cpanel-row:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}
.atl-cpanel-seal{
  width:26px;height:26px;border-radius:50%;flex:0 0 auto;background:var(--accent);
  display:flex;align-items:center;justify-content:center;
}
.atl-cpanel-seal::after{content:'';width:0;height:0;
  border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:9px solid var(--on-accent)}
.atl-cpanel-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.atl-cpanel-rtitle{font-family:var(--f-d);font-weight:600;font-size:16.5px;line-height:1.2;
  color:var(--ink-deep,var(--fg));white-space:normal}
.atl-cpanel-rmeta{font-family:var(--f-i);font-style:italic;font-size:13px;color:var(--fg-soft);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.atl-cpanel-go{flex:0 0 auto;color:var(--accent);font-size:18px;opacity:.5;
  transition:transform .2s var(--ease),opacity .2s var(--ease)}
.atl-cpanel-row:hover .atl-cpanel-go,.atl-cpanel-row:focus-visible .atl-cpanel-go{transform:translateX(4px);opacity:1}

/* mobiel: bottom-sheet die omhoog schuift, met grip-handvat + swipe-down sluit */
@media (max-width:620px){
  .atl-cpanel{align-items:flex-end;justify-content:stretch;padding:0}
  .atl-cpanel-sheet{
    width:100%;max-width:none;max-height:82vh;
    border-radius:20px 20px 0 0;border-bottom:none;
    padding-bottom:env(safe-area-inset-bottom,0px);
    transform:translateY(100%);opacity:1;
  }
  .atl-cpanel.on .atl-cpanel-sheet{transform:none}
  .atl-cpanel-grip{display:block;width:40px;height:4px;border-radius:100px;margin:9px auto 2px;
    background:var(--taupe,var(--line));flex:0 0 auto}
  .atl-cpanel-head{padding-top:8px}
  .atl-cpanel-row{min-height:60px}
  .atl-cpanel-rtitle{font-size:17px}
}

@media (prefers-reduced-motion:reduce){
  .atl-cpanel,.atl-cpanel-sheet,.atl-cpanel-go{transition:none}
  .atl-cpanel-sheet{transform:none;opacity:1}
  .atl-cpanel.on .atl-cpanel-sheet{transform:none}
  @media (max-width:620px){ .atl-cpanel-sheet{transform:none} }
}

/* ══════════════════════════════════════════════════════════════════════════
   WAVE 1 — COVER-CONTACTVEL: het cluster-paneel én de zoekresultaten openen als
   een raster van cover-thumbs (3 koloms op mobiel), elk met titel + plek. Ontbreekt
   de cover → een perkament/roest-tekstkaart (géén wit gat). Sticky reis-koppen,
   filterveld + "toon meer". Mobiel-first; hergebruikt de .atl-cpanel-sheet-schil.
   ══════════════════════════════════════════════════════════════════════════ */
.atl-cpanel-sheet--cv{width:min(560px,100%);max-height:min(80vh,680px)}
@media (max-width:620px){ .atl-cpanel-sheet--cv{width:100%;max-width:none;max-height:86vh} }

/* filterveld in de kop (verschijnt zodra de lijst lang is) */
.atl-cpanel-filter{flex:1 1 100%;order:3;padding:6px 4px 2px}
.atl-cpanel-finput{
  width:100%;box-sizing:border-box;padding:9px 13px;
  font-family:var(--f-i);font-size:15px;color:var(--reader,var(--fg));
  background:var(--paper,var(--surface));border:1px solid var(--taupe,var(--line));
  border-radius:999px;outline:none;
  transition:border-color .15s var(--ease),box-shadow .15s var(--ease);
}
.atl-cpanel-finput:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(180,70,43,.16)}
.atl-cpanel-finput::placeholder{color:var(--fg-soft);opacity:.8}

/* het scrollende contactvel-lichaam */
.atl-cpanel-cv{
  flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  padding:6px 14px 16px;
}
/* sticky reis-kop boven elke groep */
.atl-cpanel-group{
  position:sticky;top:0;z-index:2;
  margin:10px -14px 8px;padding:7px 14px 6px;
  background:linear-gradient(180deg,var(--paper-50,var(--surface)) 72%,transparent);
  font-family:var(--f-m);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--rust,#B4462B);
}
.atl-cpanel-group:first-child{margin-top:0}

/* het raster: 3 koloms op mobiel, ruimer op desktop */
.atl-cgrid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 4px;
}
@media (min-width:560px){ .atl-cgrid{grid-template-columns:repeat(4,1fr)} }

/* één cover-tegel (knop) */
.atl-ctile{
  display:flex;flex-direction:column;gap:6px;padding:0;margin:0;
  background:none;border:none;cursor:pointer;text-align:left;color:inherit;font:inherit;
  border-radius:9px;-webkit-tap-highlight-color:transparent;
}
.atl-ctile:focus-visible{outline:none}
.atl-ctile:focus-visible .atl-ctile-fig{box-shadow:0 0 0 2px var(--accent)}
.atl-ctile-fig{
  position:relative;display:block;aspect-ratio:4/5;width:100%;overflow:hidden;
  border-radius:9px;background:var(--sand,var(--surface));
  box-shadow:0 4px 14px rgba(34,30,24,.16);
  transition:transform .14s var(--ease),box-shadow .14s var(--ease);
}
.atl-ctile:hover .atl-ctile-fig,.atl-ctile:active .atl-ctile-fig{transform:translateY(-2px);box-shadow:0 8px 22px rgba(34,30,24,.22)}
.atl-ctile-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* de tekstkaart-fallback: perkament met roest-handschrift (géén wit gat) */
.atl-ctile-tk{
  display:grid;place-items:center;text-align:center;padding:10px 9px;
  background:
    radial-gradient(120% 100% at 18% 0%, rgba(255,255,255,.5), transparent 60%),
    linear-gradient(155deg,var(--paper,#f6f2e7),var(--sand,#ece6d5));
  border:1px solid var(--taupe,var(--line));
}
.atl-ctile-quote{
  font-family:var(--f-i);font-style:italic;font-size:12.5px;line-height:1.3;
  color:var(--clay,var(--accent));
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;
}

/* "begin hier"-vaantje op de aanrader */
.atl-ctile-flag{
  position:absolute;top:7px;left:7px;z-index:2;
  font-family:var(--f-m);font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:#fff8f1;background:var(--rust,#B4462B);padding:3px 7px;border-radius:999px;
  box-shadow:0 2px 8px rgba(125,51,24,.3);
}
.atl-ctile-start .atl-ctile-fig{box-shadow:0 6px 18px rgba(180,70,43,.28)}

/* het bijschrift onder de tegel */
.atl-ctile-cap{display:flex;flex-direction:column;gap:1px;padding:0 1px}
.atl-ctile-t{
  font-family:var(--f-d);font-weight:600;font-size:12.5px;line-height:1.2;
  color:var(--ink-deep,var(--fg));
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.atl-ctile-m{
  font-family:var(--f-i);font-style:italic;font-size:11px;color:var(--fg-soft);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* "toon meer" + lege-staat */
.atl-cpanel-more{
  display:block;width:100%;margin:12px 0 2px;padding:11px;
  font-family:var(--f-m);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--rust,#B4462B);background:transparent;
  border:1px solid rgba(180,70,43,.4);border-radius:999px;cursor:pointer;
  transition:background .15s ease,border-color .15s ease;
}
.atl-cpanel-more:hover,.atl-cpanel-more:focus-visible{background:rgba(180,70,43,.08);border-color:var(--rust,#B4462B);outline:none}
.atl-cpanel-empty{padding:28px 14px;text-align:center;font-family:var(--f-i);font-style:italic;color:var(--fg-soft)}

@media (prefers-reduced-motion:reduce){
  .atl-ctile-fig,.atl-ctile:hover .atl-ctile-fig,.atl-ctile:active .atl-ctile-fig{transition:none;transform:none}
}

/* ══════════════════════════════════════════════════════════════════════════
   RONDE C — ONTDEKBAARHEID + TOEGANKELIJKHEID (additief, merk-getrouw)
   • atl-status   — rustige laad-/lege-staat linksonder op de bol (role=status)
   • atl-onboard  — eenmalige "tik een plek aan"-coachmark (eerste bezoek)
   • atl-listcue  — visueel-ingetogen, focusbare "alle plekken (lijst)"-opener
   • atl-places   — toetsbaar dialoog met zoekveld + alle verhalen (keyboard-pad)
   ══════════════════════════════════════════════════════════════════════════ */

/* ── laad-/lege-staat: fluisterend kaartje linksonder, dooft vanzelf ── */
.atl-status{
  position:absolute;left:clamp(12px,2.4vw,28px);bottom:clamp(14px,2.4vh,24px);z-index:5;
  max-width:min(72vw,320px);pointer-events:none;
  font-family:var(--f-i);font-style:italic;font-size:13px;color:var(--fg-soft);
  background:color-mix(in srgb,var(--surface) 90%,transparent);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border:1px solid var(--line);border-radius:100px;padding:7px 15px;
  box-shadow:0 6px 18px rgba(34,30,24,.12);
  opacity:0;transform:translateY(4px);transition:opacity .3s var(--ease),transform .3s var(--ease);
}
.atl-status.on{opacity:1;transform:none}
.atl-status--empty{pointer-events:auto;font-style:normal;color:var(--fg)}

/* ── eenmalige onboarding-coachmark: gecentreerd, rustig, papier-DNA ── */
.atl-onboard{
  position:absolute;left:50%;top:clamp(120px,22vh,210px);transform:translate(-50%,6px);z-index:5;
  max-width:min(84vw,360px);text-align:center;pointer-events:none;
  background:color-mix(in srgb,var(--surface) 93%,transparent);
  -webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);
  border:1px solid var(--line);border-radius:16px;padding:16px 20px 18px;
  box-shadow:0 14px 36px rgba(34,30,24,.18);
  opacity:0;transition:opacity .5s var(--ease),transform .5s var(--ease);
}
.atl-onboard.on{opacity:1;transform:translate(-50%,0)}
.atl-onboard-seal{display:block;width:16px;height:16px;margin:0 auto 9px;border-radius:50%;
  background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}
.atl-onboard-t{display:block;font-family:var(--f-d);font-weight:600;font-size:15.5px;line-height:1.28;color:var(--fg)}
.atl-onboard-s{display:block;margin-top:5px;font-family:var(--f-i);font-style:italic;font-size:12.5px;line-height:1.35;color:var(--fg-soft)}

/* ── focusbare "alle plekken (lijst)"-opener: ingetogen tot focus ──
   Niet display:none (dan onbereikbaar voor toetsenbord); wel klein/transparant
   tot hij focus krijgt — dan een nette, zichtbare pill links-boven op de bol. */
.atl-listcue{
  position:absolute;left:clamp(12px,2.4vw,28px);top:clamp(86px,13vh,128px);z-index:6;
  font-family:var(--f-m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--mono-c);cursor:pointer;
  background:color-mix(in srgb,var(--surface) 70%,transparent);
  border:1px solid transparent;border-radius:100px;padding:8px 14px;min-height:36px;
  opacity:.55;transition:opacity .16s var(--ease),border-color .16s var(--ease),color .16s var(--ease),background .16s var(--ease);
}
.atl-listcue:hover{opacity:1;color:var(--fg);background:color-mix(in srgb,var(--surface) 90%,transparent);border-color:var(--line)}
.atl-listcue:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:2px;
  color:var(--accent);background:var(--surface);border-color:var(--accent)}

/* ── toetsbaar "alle plekken"-dialoog: hergebruikt de cpanel-taal ── */
.atl-places{
  position:fixed;inset:0;z-index:140;display:flex;align-items:center;justify-content:center;
  padding:clamp(16px,4vw,40px);
  background:rgba(21,23,28,.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  opacity:0;transition:opacity .2s var(--ease);
}
.atl-places.on{opacity:1}
.atl-places[hidden]{display:none}
.atl-places-sheet{
  display:flex;flex-direction:column;width:min(460px,100%);max-height:min(78vh,620px);
  background:var(--paper-50,var(--surface));color:var(--reader,var(--fg));
  border:1px solid var(--line);border-radius:16px;overflow:hidden;
  box-shadow:0 28px 70px rgba(34,30,24,.34);
  transform:translateY(14px) scale(.985);opacity:.6;
  transition:transform .24s var(--ease),opacity .24s var(--ease);
}
.atl-places.on .atl-places-sheet{transform:none;opacity:1}
.atl-places-head{display:flex;align-items:flex-start;gap:12px;padding:16px 16px 4px 20px;flex:0 0 auto}
.atl-places-title{flex:1;min-width:0;margin:0;font-family:var(--f-d);font-weight:700;
  font-size:clamp(18px,2.4vw,21px);line-height:1.16;color:var(--ink-deep,var(--fg))}
.atl-places-x{flex:0 0 auto;width:40px;height:40px;border-radius:50%;cursor:pointer;
  border:1px solid var(--taupe,var(--line));background:var(--paper,var(--surface));color:var(--umber,var(--fg-soft));
  font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;
  transition:border-color .16s var(--ease),color .16s var(--ease)}
.atl-places-x:hover,.atl-places-x:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}
.atl-places-search{margin:8px 16px 10px;flex:0 0 auto;
  font-family:var(--f-i);font-style:italic;font-size:14.5px;color:var(--fg);
  background:var(--paper,var(--surface));border:1px solid var(--taupe,var(--line));
  border-radius:100px;padding:10px 16px}
.atl-places-search:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.atl-places-list{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  padding:0 10px 12px;display:flex;flex-direction:column;gap:1px}
.atl-places-empty{font-family:var(--f-i);font-style:italic;color:var(--fg-soft);font-size:14px;padding:18px 10px}
.atl-places-row{
  display:flex;align-items:center;gap:13px;width:100%;text-align:left;cursor:pointer;
  min-height:54px;background:none;border:none;border-bottom:1px dashed var(--line);
  padding:10px 10px;color:inherit;font-family:inherit;border-radius:9px;
  transition:background .16s var(--ease)}
.atl-places-row:last-child{border-bottom:none}
.atl-places-row:hover,.atl-places-row:focus-visible{background:var(--surface);outline:none}
.atl-places-row:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}
.atl-places-seal{width:22px;height:22px;border-radius:50%;flex:0 0 auto;background:var(--accent);
  display:flex;align-items:center;justify-content:center}
.atl-places-seal::after{content:'';width:0;height:0;
  border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:7px solid var(--on-accent)}
.atl-places-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.atl-places-rtitle{font-family:var(--f-d);font-weight:600;font-size:15.5px;line-height:1.2;
  color:var(--ink-deep,var(--fg))}
.atl-places-rmeta{font-family:var(--f-i);font-style:italic;font-size:12.5px;color:var(--fg-soft);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.atl-places-go{flex:0 0 auto;color:var(--accent);font-size:17px;opacity:.5;
  transition:transform .2s var(--ease),opacity .2s var(--ease)}
.atl-places-row:hover .atl-places-go,.atl-places-row:focus-visible .atl-places-go{transform:translateX(4px);opacity:1}

/* mobiel: het plekken-dialoog als bottom-sheet (zelfde taal als cpanel) */
@media (max-width:620px){
  .atl-places{align-items:flex-end;justify-content:stretch;padding:0}
  .atl-places-sheet{width:100%;max-width:none;max-height:84vh;border-radius:20px 20px 0 0;border-bottom:none;
    padding-bottom:env(safe-area-inset-bottom,0px);transform:translateY(100%);opacity:1}
  .atl-places.on .atl-places-sheet{transform:none}
  .atl-onboard{top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 150px);max-width:88vw}
}
@media (prefers-reduced-motion:reduce){
  .atl-status,.atl-onboard,.atl-listcue,.atl-places,.atl-places-sheet,.atl-places-go{transition:none}
  .atl-status,.atl-onboard.on{transform:none}
  .atl-places-sheet{transform:none;opacity:1}
  .atl-places.on .atl-places-sheet{transform:none}
  @media (max-width:620px){ .atl-places-sheet{transform:none} }
}

/* ── titelkaartje óp de atlas (reist mee met de draaiende bol) ─────────────── */
.stop-card-wrap{position:absolute;left:0;top:0;z-index:4;will-change:transform;pointer-events:none}
.stop-card-wrap.atl-hidden{display:none}
.stop-card{
  pointer-events:auto;transform:translate(14px,-50%);
  min-width:170px;max-width:min(74vw,260px);
  background:var(--paper-50,var(--surface));color:var(--reader,var(--fg));
  border:1px solid var(--line);border-radius:12px;padding:12px 14px;
  box-shadow:0 12px 30px rgba(34,30,24,.22);
}
.stop-card em{display:block;font-family:var(--f-m);font-style:normal;font-size:10px;
  letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}
.stop-card b{display:block;font-family:var(--f-d);font-weight:700;font-size:17px;line-height:1.15;color:var(--fg)}
.stop-card .sc-read{margin-top:10px;cursor:pointer;
  font-family:var(--f-m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  background:var(--accent);color:var(--on-accent);border:none;border-radius:100px;padding:7px 14px}
.stop-card .sc-read:hover,.stop-card .sc-read:focus-visible{filter:brightness(1.06);outline:none}

/* ── AANBEVOLEN-LEESSECTIE — ÓNDER de atlas (ronde 4: globe = ster) ─────────
   Verplaatst uit de hero-overlay naar een eigen rustige band onder de kaart,
   zodat de aanbevelingen + unplaced-lijst de globe niet langer afdekken. Een
   smalle leeskolom op het warme vel, een haarscheiding boven, ademende marges. */
.jr-readsec{
  padding-top:clamp(34px,5vh,58px);padding-bottom:clamp(34px,5vh,58px);
  border-top:1px solid var(--line);
}
.jr-readsec .wrap{max-width:42rem}
.jr-rec-sub{
  font-family:var(--f-i);font-style:italic;font-size:clamp(15px,2vw,17px);
  line-height:1.5;color:var(--fg-soft);margin:0 0 clamp(14px,2.4vh,22px);max-width:34rem;
}

/* ── AANBEVOLEN VERHALEN — max 3, openen in-place via BB.Reader ──────────── */
.jr-rec{margin-top:0}
.jr-rec-head{
  font-family:var(--f-m);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);
  margin-bottom:12px;display:flex;align-items:center;gap:12px;
}
.jr-rec-head::before{content:'';width:28px;height:1px;background:currentColor}
.jr-rec-list{display:flex;flex-direction:column;gap:2px}
.rec-row{
  display:flex;align-items:center;gap:14px;width:100%;text-align:left;cursor:pointer;
  background:none;border:none;border-bottom:1px dashed var(--line);
  padding:13px 8px;color:inherit;font-family:inherit;border-radius:7px;
  transition:background .18s var(--ease);
}
.rec-row:last-child{border-bottom:none}
.rec-row:hover,.rec-row:focus-visible{background:var(--surface)}
.rec-seal{width:26px;height:26px;border-radius:50%;background:var(--accent);flex:0 0 auto;
  display:flex;align-items:center;justify-content:center}
.rec-seal::after{content:'';width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;
  border-bottom:9px solid var(--on-accent)}
.rec-main{flex:1;min-width:0;display:flex;flex-direction:column}
/* eigen regel + nawoordspatie: de titel plakt nooit meer tegen de plaats/meta */
.rec-title{display:block;font-family:var(--f-d);font-weight:600;font-size:clamp(16px,2.1vw,19px);
  line-height:1.18;color:var(--fg);white-space:normal}
.rec-where{display:block;font-family:var(--f-i);font-style:italic;font-size:13.5px;color:var(--fg-soft);margin-top:1px}
.rec-meta{font-family:var(--f-m);font-size:11px;color:var(--mono-c);flex:0 0 auto}
.rec-go{color:var(--accent);font-size:18px;opacity:.5;transition:transform .2s,opacity .2s;flex:0 0 auto}
.rec-row:hover .rec-go,.rec-row:focus-visible .rec-go{transform:translateX(4px);opacity:1}

/* ── "OOK OP DEZE ATLAS" — verhalen zonder coördinaat (defensieve randlijst) ── */
.jr-unplaced{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}
.jr-unplaced>summary{
  list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;
  font-family:var(--f-m);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mono-c);
}
.jr-unplaced>summary::-webkit-details-marker{display:none}
.jr-unplaced>summary::before{content:'+';color:var(--accent);font-size:14px;line-height:1}
.jr-unplaced[open]>summary::before{content:'–'}
.jr-unplaced>summary:hover,.jr-unplaced>summary:focus-visible{color:var(--fg);outline:none}
.jr-unplaced-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:1px;
  max-height:min(34vh,260px);overflow-y:auto;-webkit-overflow-scrolling:touch}
.unp-row{
  display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;cursor:pointer;
  background:none;border:none;border-bottom:1px dashed var(--line);
  padding:9px 6px;color:inherit;font-family:inherit;border-radius:6px;
  transition:background .16s var(--ease);
}
.unp-row:last-child{border-bottom:none}
.unp-row:hover,.unp-row:focus-visible{background:var(--surface);outline:none}
.unp-title{flex:1;min-width:0;font-family:var(--f-d);font-weight:500;font-size:15px;line-height:1.2;color:var(--fg)}
.unp-meta{font-family:var(--f-i);font-style:italic;font-size:12.5px;color:var(--fg-soft);flex:0 0 auto}
.unp-go{color:var(--accent);font-size:15px;opacity:.5;flex:0 0 auto;transition:transform .2s,opacity .2s}
.unp-row:hover .unp-go,.unp-row:focus-visible .unp-go{transform:translateX(3px);opacity:1}

/* ── "DE GROTE REIS" featured nacht-kaart ingebed in het warme lint ─────── */
.jr-featured{padding-top:clamp(20px,3vh,34px);padding-bottom:clamp(20px,3vh,34px)}
.feat-card{
  position:relative;display:block;border-radius:16px;overflow:hidden;text-decoration:none;
  color:var(--on-night);background:var(--char);
  box-shadow:0 12px 32px rgba(34,30,24,.18);
}
.feat-card .feat-inner{position:relative;padding:clamp(28px,4.4vw,42px);z-index:1}
.feat-card .crux{position:absolute;right:clamp(22px,4vw,40px);top:clamp(22px,4vh,34px);width:74px;height:96px}
.feat-eyebrow{font-family:var(--f-m);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ember)}
.feat-card h2{font-family:var(--f-d);font-weight:700;font-size:clamp(26px,4.4vw,40px);line-height:1.04;
  letter-spacing:-.015em;color:var(--on-night-hi);margin:.3em 0 .2em;max-width:18ch}
.feat-card .feat-sub{font-family:var(--f-i);font-style:italic;font-size:clamp(15px,2.2vw,19px);color:var(--on-night-mute)}
.feat-meta{margin-top:16px;display:flex;flex-wrap:wrap;gap:6px 14px;font-family:var(--f-m);font-size:11.5px;color:var(--slate-soft)}
.feat-meta .dot{color:var(--slate-edge)}

/* ── REIZEN-INDEX: elke reis als rij + eigen kaartstijl-thumb ────────────── */
.jr-trips{padding-bottom:clamp(64px,9vh,110px)}
.jr-trips h2{font-family:var(--f-d);font-weight:600;font-size:clamp(24px,4vw,34px);letter-spacing:-.01em;
  color:var(--fg);margin-bottom:6px}
.jr-trips .sub{font-family:var(--f-i);font-style:italic;color:var(--fg-soft);font-size:16px;margin-bottom:clamp(22px,3vh,32px)}

/* grid van thema-kaarten (designer: 330px-thumbs, eigen kaartstijl) */
.trips-grid{display:grid;grid-template-columns:1fr;gap:clamp(20px,3vw,30px)}
@media (min-width:680px){.trips-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.trips-grid{grid-template-columns:repeat(3,1fr)}}

.tmap{display:flex;flex-direction:column;text-decoration:none;color:inherit;overflow:hidden}
.tmap-fig{position:relative;height:300px;background:var(--t-bg, var(--surface));overflow:hidden}
.tmap-host{position:absolute;inset:0}
.tmap-num{position:absolute;left:16px;top:14px;z-index:2;
  font-family:var(--f-m);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--t-accent, var(--accent))}
/* sterren voor de nacht-thema's (nachtlucht / bending / plaat) */
.tmap-fig.sky-night{background-color:#16140F;background-image:
  radial-gradient(1.5px 1.5px at 14% 20%,rgba(251,249,241,.5),transparent),
  radial-gradient(1px 1px at 30% 66%,rgba(251,249,241,.32),transparent),
  radial-gradient(1px 1px at 60% 26%,rgba(251,249,241,.3),transparent),
  radial-gradient(1.5px 1.5px at 82% 60%,rgba(251,249,241,.4),transparent),
  radial-gradient(1px 1px at 70% 84%,rgba(251,249,241,.3),transparent),
  radial-gradient(1px 1px at 90% 36%,rgba(251,249,241,.34),transparent)}
.tmap-fig.sky-essay{background-color:#15171C;background-image:
  radial-gradient(1.5px 1.5px at 16% 22%,rgba(214,222,231,.5),transparent),
  radial-gradient(1px 1px at 32% 64%,rgba(214,222,231,.32),transparent),
  radial-gradient(1px 1px at 62% 28%,rgba(214,222,231,.3),transparent),
  radial-gradient(1.5px 1.5px at 82% 58%,rgba(214,222,231,.4),transparent),
  radial-gradient(1px 1px at 72% 82%,rgba(214,222,231,.3),transparent),
  radial-gradient(1px 1px at 90% 38%,rgba(214,222,231,.34),transparent)}
.tmap-fig.paper-old{background:#EFEAD9;background-image:repeating-linear-gradient(135deg,rgba(34,30,24,.03) 0 1px,transparent 1px 10px)}

/* Tekstkleuren via de THEMA-tokens (--t-fg/--t-fg-soft/--t-fg-mute) zodat de
   donkere kaarten (nachtlucht/plaat/bending) leesbare LICHTE letters krijgen —
   de oude hardgecodeerde --ink-deep/--reader/--drab waren zwart op zwart. */
.tmap-body{padding:20px 22px 22px;border-top:1px solid var(--t-line, var(--sand))}
.tmap-card-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.tmap-title{margin:0;font-family:var(--f-d);font-weight:700;font-size:clamp(20px,2.4vw,24px);
  color:var(--t-fg, var(--ink-deep));letter-spacing:-.01em;line-height:1.1}
.tmap-when{font-family:var(--f-m);font-size:12px;color:var(--t-accent, var(--accent))}
.tmap-sub{font-family:var(--f-i);font-style:italic;font-size:15px;color:var(--t-fg-soft, var(--drab));margin-top:3px}
.tmap-stops{margin-top:14px;display:flex;flex-direction:column;gap:5px}
.tmap-stop{display:flex;align-items:center;gap:8px}
.tmap-stop .pt{width:6px;height:6px;border-radius:50%;flex:0 0 auto}
.tmap-stop .nm{font-family:var(--f-i);font-style:italic;font-size:15px;color:var(--t-fg, var(--reader))}
.tmap-stop .rule{flex:1;border-bottom:1px dashed var(--t-line, var(--stone))}
.tmap-stop .ct{font-family:var(--f-m);font-size:11px;color:var(--t-fg-mute, var(--drab))}

/* DONKERE kaarten (nachtlucht / plaat / bending): expliciet lichte letters.
   rebuild.css remapt --fg→licht binnen .trip[data-theme=night|record]; we
   spiegelen dat naar onze thema-tokens zodat de body óók leesbaar is. */
.trip[data-theme="night"],
.trip[data-theme="record"]{
  --t-fg:#FBF9F1; --t-fg-soft:#D6CFC0; --t-fg-mute:#9a9482;
}
.trip[data-theme="atlas"],.trip[data-theme="ink"],.trip[data-theme="wire"],.trip[data-theme="oldmap"]{
  --t-fg:var(--ink-deep); --t-fg-soft:var(--umber); --t-fg-mute:var(--drab);
}
.tmap:hover .tmap-card-row .tmap-title{color:var(--t-accent, var(--accent))}
.tmap .tmap-go{display:inline-flex;align-items:center;gap:7px;margin-top:14px;
  font-family:var(--f-m);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--t-accent, var(--accent));
  opacity:.7;transition:transform .2s,opacity .2s}
.tmap:hover .tmap-go{transform:translateX(4px);opacity:1}

/* ── LADER/LEGE STAAT voor de datalijst ─────────────────────────────────── */
.jr-empty{font-family:var(--f-i);font-style:italic;color:var(--fg-soft);font-size:16px;padding:20px 0}
.tmap-skel{height:300px;border-radius:12px;background:linear-gradient(100deg,var(--surface) 30%,var(--surface-2) 50%,var(--surface) 70%);
  background-size:200% 100%;animation:skel 1.4s linear infinite}
@keyframes skel{to{background-position:-200% 0}}

/* ── scroll-cue onder de hero ─────────────────────────────────────────────
   Een ECHTE knop (geen decoratie): brengt je naar de reizen (#verhalen),
   zelfde doel als de "Alle reizen"-CTA. On-brand: stil, fotografisch, met een
   zacht ademend pijltje. Past op 390px zonder de tekst af te kappen. */
.scroll-cue{display:flex;justify-content:center;margin:clamp(22px,3vh,30px) auto 0;
  width:auto;max-width:100%;padding:8px 6px;border:none;background:none;cursor:pointer;
  -webkit-tap-highlight-color:transparent;border-radius:12px;
  transition:transform .2s var(--ease)}
.scroll-cue span{font-family:var(--f-m);font-size:clamp(9px,2.4vw,10px);
  letter-spacing:.18em;text-transform:uppercase;color:var(--mono-c);
  display:inline-flex;flex-direction:column;align-items:center;gap:6px;
  white-space:nowrap;transition:color .18s var(--ease)}
.scroll-cue span::after{content:'↓';font-size:14px;animation:cueBob 1.8s ease-in-out infinite}
.scroll-cue:hover span,.scroll-cue:focus-visible span{color:var(--accent)}
.scroll-cue:hover{transform:translateY(2px)}
.scroll-cue:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@keyframes cueBob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

/* ══════════════════════════════════════════════════════════════════════════
   IN-PLACE READER OVERLAY (rebuild.css definieert de tokens; hier de laag)
   Het #reader-contract uit core.js: .reader-overlay > .r-scroll > .r-article …
   ══════════════════════════════════════════════════════════════════════════ */
.reader-overlay{
  position:fixed;inset:0;z-index:120;display:none;
  background:rgba(21,23,28,.62);backdrop-filter:blur(3px);
}
.reader-overlay.open{display:block;animation:rFade .28s var(--ease)}
@keyframes rFade{from{opacity:0}to{opacity:1}}
.r-scroll{
  position:absolute;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding:clamp(56px,9vh,90px) clamp(16px,4vw,40px) 60px;
}
.r-article{
  max-width:660px;margin:0 auto;background:var(--paper-50);color:var(--reader);
  border-radius:14px;padding:clamp(28px,5vw,56px);box-shadow:0 30px 80px rgba(0,0,0,.4);
  position:relative;animation:rRise .34s var(--ease);
}
@keyframes rRise{from{transform:translateY(20px);opacity:0}to{transform:none;opacity:1}}
.r-close{
  position:absolute;right:14px;top:12px;width:40px;height:40px;border-radius:50%;
  border:1px solid var(--taupe);background:var(--paper);color:var(--umber);
  font-size:22px;line-height:1;cursor:pointer;z-index:2}
.r-close:hover{border-color:var(--outback);color:var(--outback)}
.r-eyebrow{display:inline-flex;align-items:center;gap:9px;
  font-family:var(--f-m);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--rust-deep)}
.r-eyebrow-seal{width:13px;height:13px;border-radius:50%;background:var(--outback)}
.r-titel{font-family:var(--f-d);font-weight:700;font-size:clamp(28px,5vw,44px);line-height:1.06;
  letter-spacing:-.02em;color:var(--ink-deep);margin:.34em 0 .2em}
.r-lead{font-family:var(--f-i);font-style:italic;font-size:clamp(18px,2.6vw,22px);line-height:1.5;color:var(--umber);margin:.2em 0 .4em}
.r-byline{font-family:var(--f-m);font-size:12px;color:var(--drab);margin:.5em 0 1.2em;display:flex;flex-wrap:wrap;gap:0 4px;align-items:center}
.r-byline .r-dot{margin:0 6px;color:var(--stone)}
.r-cover-fig{margin:1em 0 1.4em}
.r-cover-fig img{width:100%;border-radius:10px}
.r-cover-fig figcaption{font-family:var(--f-m);font-size:11px;color:var(--drab);margin-top:7px;letter-spacing:.06em}
.r-body{font-family:var(--f-d);font-size:clamp(17px,2.3vw,19px);line-height:1.78;color:var(--reader)}
.r-body p{margin:0 0 1.05em}
.r-body p:first-of-type::first-letter{
  font-family:var(--f-d);font-weight:700;float:left;font-size:3.4em;line-height:.78;
  padding:.04em .1em 0 0;color:var(--outback)}
.r-coord{font-family:var(--f-m);font-size:12px;letter-spacing:.04em;color:var(--drab);
  border-left:2px solid var(--outback);padding:6px 0 6px 14px;margin:1.2em 0}
.r-coord b{color:var(--reader)}
.r-note{font-family:var(--f-i);font-style:italic;color:var(--umber);background:var(--paper);
  border:1px solid var(--stone);border-radius:8px;padding:12px 16px;margin-bottom:1em}
.r-endmark{display:flex;justify-content:center;margin:1.6em 0 .4em}
.r-endmark span{width:34px;height:34px;border-radius:50%;background:var(--outback);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-i);font-style:italic;color:#fff;font-size:19px}
.r-audio-mount{margin:1.2em 0}

/* ── reader-gereedschap rechtsboven: NL/EN-taaltoggle + sluitknop ─────────────
   FIX 2 — op the-journey laadt alleen v3-globe.css; de toggle stond hier nog
   ongestyled (twee kale blokjes links-boven). We geven 'm dezelfde strakke
   segmented-pill als de nav-toggle (.lang): afgeronde pill, actief segment in
   accent, nette hover/focus, ≥40px touch-target. Functionaliteit blijft in core. */
.r-tools{position:absolute;right:14px;top:12px;z-index:3;
  display:inline-flex;align-items:center;gap:9px}
.r-lang{display:inline-flex;align-items:stretch;padding:2px;border-radius:100px;
  border:1px solid var(--taupe);background:var(--paper-50);overflow:hidden;
  -webkit-tap-highlight-color:transparent;min-height:40px;
  transition:border-color .18s var(--ease)}
.r-lang-btn{appearance:none;-webkit-appearance:none;border:none;background:none;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:0 13px;
  border-radius:100px;font-family:var(--f-m);font-weight:600;font-size:11px;letter-spacing:.1em;
  line-height:1;color:var(--drab);
  transition:background .18s var(--ease),color .18s var(--ease)}
.r-lang:hover{border-color:var(--accent)}
.r-lang-btn:hover{color:var(--reader)}
.r-lang-btn[aria-pressed="true"]{background:var(--accent);color:var(--paper-50,#FBF9F1)}
.r-lang-btn[aria-pressed="true"]:hover{color:var(--paper-50,#FBF9F1)}
.r-lang-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* de sluitknop zit nu IN .r-tools (flow), niet meer los absoluut gepositioneerd */
.r-tools .r-close{position:static;right:auto;top:auto;width:40px;height:40px;flex:0 0 auto}

/* ── "volgende halte" — merk-KNOP/kaart (boven én onder het artikel) ───────────
   FIX 1 — was hier ongestyled (plak-tekst + ruwe slug). Nu een echte kaart: label
   klein/uppercase/gedempt bovenaan, titel groot/leesbaar, "where" klein eronder,
   met een pijl-affordance (→). ≥44px tap-target, hover, :focus-visible. De boven-
   variant (.r-next--compact) is iets ingetogener. */
.r-foot{margin:2em 0 .4em}
.r-foot--top{margin:1.2em 0 1.6em}
.r-foot:empty,.r-foot--top:empty{margin:0}
.r-next{display:flex;align-items:center;gap:16px;text-decoration:none;
  border:1px solid var(--taupe);border-radius:14px;padding:16px 18px;min-height:44px;
  background:var(--paper-50);
  transition:border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}
.r-next:hover{border-color:var(--accent);transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(34,30,24,.12)}
.r-next:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.r-next-text{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 auto}
.r-next-lab{font-family:var(--f-m);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent)}
.r-next-title{font-family:var(--f-d);font-weight:600;font-size:18px;line-height:1.2;
  color:var(--ink-deep)}
.r-next-where{font-family:var(--f-m);font-size:11px;letter-spacing:.05em;color:var(--drab)}
.r-next-arrow{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;border:1px solid var(--taupe);
  color:var(--accent);font-size:17px;line-height:1;
  transition:background .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}
.r-next:hover .r-next-arrow{background:var(--accent);border-color:var(--accent);
  color:var(--paper-50,#FBF9F1);transform:translateX(2px)}
.r-next--compact{padding:12px 14px;border-radius:12px}
.r-next--compact .r-next-title{font-size:15px}
.r-next--compact .r-next-arrow{width:30px;height:30px;font-size:15px}
@media (prefers-reduced-motion:reduce){
  .r-next,.r-next-arrow{transition:none}
  .r-next:hover{transform:none}
  .r-next:hover .r-next-arrow{transform:none}
}
/* brugzin onder de "volgende halte"-titel: één warme regel die het ene verhaal
   aan het volgende rijgt (Bas' stem). Cursief, gedempt — nooit luider dan de titel. */
.r-next-bridge{font-family:var(--f-i);font-style:italic;font-size:13.5px;line-height:1.4;
  color:var(--umber);margin-top:2px}

/* ══════════════════════════════════════════════════════════════════════════
   WAVE 1 — WEGWIJZER OP DE LEESPAGINA ("waar ben ik + lees door")
   De leespagina wordt een PLEK i.p.v. een tunnel: een reis-strip onder de titel
   (waar ben ik), een veegbare cover-strip onderaan (verder onderweg), en een
   warme einde-van-reis-staat. Volledig scoped op het reader-contract; additief.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── "WAAR BEN IK": rustige reis-strip onder de titel ── */
.r-wayhere{display:block;margin:.2em 0 1em}
.r-wayhere-link{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap;
  text-decoration:none;border-radius:100px;padding:6px 12px 6px 9px;min-height:34px;
  border:1px solid var(--taupe);background:var(--paper-50);
  font-family:var(--f-m);font-size:11px;letter-spacing:.06em;color:var(--umber);
  transition:border-color .18s var(--ease),color .18s var(--ease)}
.r-wayhere-link:hover{border-color:var(--accent);color:var(--reader)}
.r-wayhere-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.r-wayhere-mark{width:9px;height:9px;border-radius:50%;flex:0 0 auto;
  background:var(--outback);box-shadow:0 0 0 3px rgba(180,70,43,.16)}
.r-wayhere-text{font-weight:600}
.r-wayhere-route{display:inline-flex;align-items:center;gap:4px;margin-left:4px}
.r-wayhere-dot{width:5px;height:5px;border-radius:50%;background:var(--stone)}
.r-wayhere-dot.is-here{width:8px;height:8px;background:var(--outback);
  box-shadow:0 0 0 2px rgba(180,70,43,.22)}

/* ── "VERDER ONDERWEG": veegbare cover-strip onderaan ── */
.r-follow{margin:1.8em 0 .6em}
.r-follow-head{font-family:var(--f-m);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--rust-deep);margin:0 0 12px;font-weight:600}
.r-follow-track{display:flex;gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity;padding:2px 2px 10px;margin:0 -2px}
.r-follow-card{flex:0 0 auto;width:166px;scroll-snap-align:start;
  display:flex;flex-direction:column;text-decoration:none;
  border:1px solid var(--taupe);border-radius:12px;overflow:hidden;background:var(--paper-50);
  transition:border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}
a.r-follow-card:hover{border-color:var(--accent);transform:translateY(-2px);
  box-shadow:0 12px 24px rgba(34,30,24,.12)}
a.r-follow-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.r-follow-card.is-here{border-color:var(--outback);box-shadow:0 0 0 1px var(--outback) inset}
.r-follow-cover{display:block;width:100%;height:98px;background-size:cover;background-position:center;
  background-color:var(--sand)}
.r-follow-cover--text{display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg,var(--deep-sky,#3F5E76),var(--ink,#221E18))}
.r-follow-fallback{font-family:var(--f-i);font-style:italic;font-size:30px;color:rgba(255,247,235,.92)}
.r-follow-body{display:flex;flex-direction:column;gap:3px;padding:9px 11px 12px}
.r-follow-tag{font-family:var(--f-m);font-size:9px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--drab)}
.r-follow-card.is-here .r-follow-tag{color:var(--outback)}
.r-follow-title{font-family:var(--f-d);font-weight:600;font-size:14px;line-height:1.2;color:var(--ink-deep);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.r-follow-where{font-family:var(--f-m);font-size:10px;letter-spacing:.04em;color:var(--drab)}

/* ── EINDE-VAN-REIS-STAAT: een warme afsluiter i.p.v. een stille terugval ── */
.r-end{text-align:center;border:1px solid var(--taupe);border-radius:16px;
  padding:26px 22px 22px;background:linear-gradient(180deg,var(--paper),var(--paper-50) 70%)}
.r-end-seal{display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:50%;background:var(--outback);margin-bottom:10px}
.r-end-seal span{font-family:var(--f-i);font-style:italic;color:#fff;font-size:21px;line-height:1}
.r-end-title{font-family:var(--f-d);font-weight:700;font-size:20px;color:var(--ink-deep);margin:0 0 .3em}
.r-end-body{font-family:var(--f-i);font-style:italic;font-size:16px;line-height:1.5;color:var(--umber);
  margin:0 auto;max-width:34ch}
.r-end-cta{display:inline-flex;align-items:center;gap:14px;text-align:left;margin-top:16px;
  text-decoration:none;border:1px solid var(--taupe);border-radius:14px;padding:13px 16px;
  background:var(--paper-50);min-height:44px;
  transition:border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}
.r-end-cta:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 12px 28px rgba(34,30,24,.12)}
.r-end-cta:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.r-end-cta-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.r-end-cta-lab{font-family:var(--f-m);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.r-end-cta-title{font-family:var(--f-d);font-weight:600;font-size:16px;line-height:1.2;color:var(--ink-deep)}
.r-end-cta-where{font-family:var(--f-m);font-size:10.5px;letter-spacing:.05em;color:var(--drab)}
.r-end--compact{padding:14px 14px 12px}

@media (prefers-reduced-motion:reduce){
  .r-follow-card,.r-end-cta,.r-wayhere-link{transition:none}
  a.r-follow-card:hover,.r-end-cta:hover{transform:none}
}

@media (prefers-reduced-motion: reduce){
  .reader-overlay.open,.r-article{animation:none}
  .scroll-cue span::after,.live-dot::after{animation:none}
  /* glimp + submenu verschijnen zonder beweging (direct, geen fade/slide) */
  .atl-glimp{transition:none;transform:none}
  .atl-glimp.on{transform:none}
  .nav-sub{transition:none}
  .nav-sub-toggle,.nav-has-sub.sub-open .nav-sub-toggle{transition:none}
}

/* ══════════════════════════════════════════════════════════════════════════
   MOBIEL (≤680px): DE ATLAS ALS FULL-SCREEN KAART-ERVARING.
   ──────────────────────────────────────────────────────────────────────────
   Bas op zijn telefoon: de bol IS de pagina. De held vult het hele scherm
   (svh/dvh tegen de adresbalk-spring), de canvas-atlas ligt eronder als kaart,
   en zoek/zoom zweven als glas-perkament-pillen óp de bol. De hero-tekst is een
   ingetogen scrim-laag onderaan die de bol NIET afdekt (Bas' eerdere klacht:
   "tekstkaart over de bol"). Onderaan een duidelijke scroll-affordance naar de
   reizen. Eén vinger draait de bol (globe.js setOneFinger, gewired vanuit
   page-the-journey), pinch zoomt; touch-action:none zodat de veeg niet alsnog
   als pagina-scroll wordt ingepikt. Desktop blijft volledig ongemoeid (alles
   binnen deze media query). ── */
@media (max-width:680px){
  /* de held = het hele scherm. svh als basis (geen adresbalk-spring), met 100vh
     als oudere-browser-fallback en 100dvh als modernere, dynamische maat. */
  .jr-hero{
    position:relative;display:block;overflow:hidden;
    min-height:100vh; min-height:100svh;
    padding:0 !important;
  }
  @supports (height:100dvh){ .jr-hero{ min-height:100dvh } }

  /* de bol vult de hele held als kaart (absoluut, achter de overlays) */
  .jr-atlas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
  .jr-atlas .atl-frame{position:absolute;inset:0}
  /* full-screen: één vinger draait de bol → de browser mag de veeg niet
     als scroll inpikken (globe.js zet dit ook in JS; dit is de CSS-vangnet) */
  .jr-canvas{touch-action:none}

  /* ── de hero-tekst als ingetogen scrim ONDERAAN — de bol blijft de ster ──
     Een verticaal verlopende donker-naar-niets laag onderlangs; de tekst staat
     er bovenop, leesbaar, maar dekt de bol niet af. pointer-events alleen op de
     copy zelf zodat de bol erboven gewoon te draaien blijft. */
  .jr-hero-overlay.wrap{
    position:absolute;left:0;right:0;bottom:0;top:auto;z-index:2;
    display:block;min-height:0;pointer-events:none;
    padding:0 0 calc(env(safe-area-inset-bottom,0px) + 64px);
    background:linear-gradient(to top,
      color-mix(in srgb,var(--bg) 96%,transparent) 0%,
      color-mix(in srgb,var(--bg) 88%,transparent) 38%,
      color-mix(in srgb,var(--bg) 55%,transparent) 70%,
      transparent 100%);
  }
  .jr-hero-copy{
    max-width:none;pointer-events:auto;
    background:none;-webkit-backdrop-filter:none;backdrop-filter:none;
    border-radius:0;margin:0;padding:16px clamp(16px,5vw,22px) 6px;
  }
  .jr-hero h1{font-size:clamp(26px,7.6vw,38px);margin:.2em 0 .2em;line-height:1.06}
  .jr-hero .lead{font-size:clamp(14px,3.8vw,16px);line-height:1.42;max-width:36ch;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .jr-hero-actions{margin-top:14px;gap:10px}
  .live-badge{font-size:10px;padding:5px 11px}

  /* ── zoek + zoom: zwevende glas-perkament-pillen BOVENaan op de bol ──
     veilige insets (notch/adresbalk), ≥44px doelen, los van elkaar zodat ze
     niet over de bol-rand vallen. De zoek vult de breedte, zoom rechtsonder. */
  .atl-controls{
    left:clamp(10px,3.2vw,16px);
    right:clamp(10px,3.2vw,16px);
    top:calc(env(safe-area-inset-top,0px) + 76px);
    bottom:auto;max-width:none;
    flex-direction:row;align-items:flex-start;justify-content:space-between;gap:10px;
  }
  .atl-search{flex:1;min-width:0}
  .atl-search input{
    width:100%;font-size:15px;padding:11px 16px 11px 34px;
    background:color-mix(in srgb,var(--surface) 92%,transparent);
    box-shadow:0 6px 20px rgba(34,30,24,.18);
  }
  /* zoom als verticale glas-stapel rechts (groot, duim-vriendelijk) */
  .atl-zoom{flex-direction:column;padding:4px;
    background:color-mix(in srgb,var(--surface) 92%,transparent);
    box-shadow:0 6px 20px rgba(34,30,24,.18)}

  /* de routes-legenda NIET over de bol (zou de kaart afdekken): verborgen op
     mobiel. De gekleurde routes blijven op de bol getekend; de sleutel +
     spring-naar-reis zit in het hamburger-menu ("Spring naar een reis"). */
  .atl-legend{display:none !important}

  /* uitleg-hint: op de full-screen kaart verbergen — hij zou de scrim-tekst of
     de zoekbalk raken, en "sleep om te draaien" wijst zichzelf nu (één vinger
     draait de bol). Houdt de kaart schoon; de bol blijft de ster. */
  .atl-hint{display:none}

  /* scroll-affordance: gecentreerd op de onderrand, óp de scrim — nodigt uit
     naar de reizen zonder de bol af te dekken */
  .scroll-cue{
    position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);
    transform:translateX(-50%);z-index:3;margin:0;min-height:44px;align-items:center}

  .feat-card .crux{display:none}              /* ruimte sparen, kop voorop */
  .feat-card h2{max-width:none}

  /* status NIET onder het dock (dat is op mobiel een onderbalk): til 'm boven de
     dock-rij zodat de laad-/lege-melding leesbaar blijft. */
  .atl-status{bottom:auto;top:calc(env(safe-area-inset-top,0px) + 132px);left:50%;transform:translateX(-50%);
    max-width:86vw;text-align:center}
  .atl-status.on{transform:translateX(-50%)}
  /* de lijst-opener komt onder de hero-kop te zitten op mobiel, niet eroverheen */
  .atl-listcue{top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 96px);left:50%;transform:translateX(-50%)}
}
@media (max-width:390px){
  .atl-zoom #atlWorld{display:none}           /* twee knoppen volstaan op 390px */
  .tmap-fig{height:260px}
  .jr-hero .lead{-webkit-line-clamp:2}
}

/* ── MOBIEL: ruimere touch-doelen voor de globe-bediening (≥44px, comfortabel
   met de duim). De ± zoomknoppen, de reis-regels in de legenda en de nav-sub-
   pijl waren met 26–36px te klein voor touch. ── */
@media (pointer:coarse), (max-width:680px){
  .atl-zoom button{width:44px;height:44px;font-size:22px}
  .lg-row{min-height:44px;padding:9px 9px}      /* was ~26px hoog */
  .nav-sub-toggle{width:44px;height:44px}
  /* de uitleg-hint iets groter */
  .atl-hint{font-size:11px}
}

/* ── MOBIEL: "Spring naar een reis"-menu leesbaar. Titel, regio en jaartal
   plakten aan elkaar; nu staat het jaartal op een eigen regel en hebben de
   rijen lucht + een scheiding. ── */
@media (max-width:720px){
  .jm-row{flex-wrap:wrap;align-items:flex-start;gap:4px 11px;padding:12px 9px;
    border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
  .jm-row:last-child{border-bottom:0}
  .jm-dot{margin-top:6px}
  .jm-text{flex:1 1 auto;gap:2px}
  .jm-name{line-height:1.3}
  .jm-sub{margin-top:0;line-height:1.35}
  .jm-when{flex:1 1 100%;align-self:flex-start;margin:3px 0 0 20px;line-height:1.2}
}

/* ══════════════════════════════════════════════════════════════════════════
   v20 — FULL-SCREEN ATLAS-IA + ZELFVERBERGEND DOCK (Lev.2-3)
   ──────────────────────────────────────────────────────────────────────────
   De bol vult het scherm (100dvh) en is de ENIGE navigatie. Een ingetogen
   hero-kop zweeft links-boven (fade weg bij interactie) en een zelfverbergend
   dock (papier-perkament-glas) doemt op bij activiteit en fade na rust weg.
   ══════════════════════════════════════════════════════════════════════════ */
.jr-hero--full{
  position:relative;display:block;overflow:hidden;
  min-height:100vh; min-height:100svh;
  padding:0 !important;
}
@supports (height:100dvh){ .jr-hero--full{ min-height:100dvh } }

/* ── ingetogen hero-kop, zweeft links-boven; fade weg bij interactie ── */
.jr-hero-title{
  position:absolute;left:clamp(16px,3.4vw,40px);top:clamp(86px,13vh,128px);z-index:2;
  max-width:min(34rem,72vw);pointer-events:none;
  transition:opacity .6s var(--ease),transform .6s var(--ease);
}
.jr-hero-title .live-badge{margin-bottom:12px}
.jr-hero-title h1{
  font-family:var(--f-d);font-weight:700;line-height:1.05;letter-spacing:-.02em;
  font-size:clamp(28px,4.6vw,50px);color:var(--fg);margin:0;
  text-shadow:0 1px 16px color-mix(in srgb,var(--bg) 70%,transparent);
}
.jr-hero-title h1 .wm-dot{color:var(--accent)}
/* zacht wegfaden zodra de gebruiker met de bol speelt — de bol wordt de ster */
.jr-hero-title.is-faded{opacity:0;transform:translateY(-6px);pointer-events:none}

/* ══ ZELFVERBERGEND DOCK ════════════════════════════════════════════════════ */
.jr-dock{
  position:absolute;left:50%;bottom:clamp(18px,3.2vh,32px);transform:translateX(-50%);
  z-index:6;width:min(940px,calc(100vw - 28px));
  display:flex;flex-direction:column;gap:10px;align-items:center;
  transition:opacity .45s var(--ease),transform .45s var(--ease);
}
.jr-dock[data-state="hide"]{opacity:0;transform:translate(-50%,14px);pointer-events:none}
.jr-dock[data-state="show"]{opacity:1}
.jr-dock-row{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;
  background:color-mix(in srgb,var(--surface) 90%,transparent);
  -webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  border:1px solid var(--line);border-radius:100px;
  padding:8px 10px;box-shadow:0 10px 30px rgba(34,30,24,.16);
  max-width:100%;
}
/* "Begin de reis" — primair (roest) */
.jr-dock-cta{
  font-family:var(--f-d);font-weight:600;font-size:15px;line-height:1;cursor:pointer;
  color:var(--paper,#FBF9F1);background:var(--accent);border:1px solid var(--accent);
  border-radius:100px;padding:12px 20px;white-space:nowrap;
  transition:filter .18s var(--ease),transform .18s var(--ease);
}
.jr-dock-cta:hover{filter:brightness(1.06)}
.jr-dock-cta:active{transform:translateY(1px)}
.jr-dock-cta:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
/* "Verder lezen" — secundaire pill (alleen met laatst-gelezen) */
.jr-dock-resume{
  display:inline-flex;flex-direction:column;gap:1px;text-decoration:none;cursor:pointer;
  border:1px solid var(--line);border-radius:100px;padding:7px 16px;max-width:230px;
  background:var(--surface);transition:border-color .18s var(--ease),background .18s var(--ease);
}
.jr-dock-resume:hover,.jr-dock-resume:focus-visible{border-color:var(--accent);outline:none}
.jr-dock-resume-lab{font-family:var(--f-m);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--mono-c)}
.jr-dock-resume-title{font-family:var(--f-i);font-style:italic;font-size:13px;color:var(--fg);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.jr-dock-resume[hidden]{display:none}
/* toolgroep: kies-een-reis, zoeken, dobbelsteen, zoom */
.jr-dock-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}
.jr-dock-ic{
  display:inline-flex;align-items:center;gap:7px;cursor:pointer;
  font-family:var(--f-d);font-weight:500;font-size:14px;color:var(--fg);
  background:transparent;border:1px solid transparent;border-radius:100px;
  padding:9px 13px;transition:background .16s var(--ease),border-color .16s var(--ease)}
.jr-dock-ic:hover,.jr-dock-ic:focus-visible{background:var(--surface-2,rgba(34,30,24,.07));outline:none}
.jr-dock-ic:focus-visible{border-color:var(--accent)}
.jr-dock-ic-glyph{font-size:16px;line-height:1;color:var(--accent)}
.jr-dock-dice{padding:9px;width:42px;height:42px;justify-content:center;border-radius:50%}
.jr-dock-dice .dice-face{position:relative;width:18px;height:18px;display:block}
.jr-dock-dice .dice-face i{position:absolute;width:3.2px;height:3.2px;border-radius:50%;background:var(--accent)}
.jr-dock-dice .dice-face i:nth-child(1){top:1px;left:1px}
.jr-dock-dice .dice-face i:nth-child(2){top:1px;right:1px}
.jr-dock-dice .dice-face i:nth-child(3){top:50%;left:50%;transform:translate(-50%,-50%)}
.jr-dock-dice .dice-face i:nth-child(4){bottom:1px;left:1px}
.jr-dock-dice .dice-face i:nth-child(5){bottom:1px;right:1px}
.jr-dock-dice.rolling .dice-face{animation:diceRoll .6s var(--ease)}
@keyframes diceRoll{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
/* zoom-trio in het dock */
.jr-dock-zoom{display:inline-flex;gap:4px;border-left:1px solid var(--line);padding-left:8px;margin-left:2px}
.jr-dock-zoom button{
  width:38px;height:38px;border-radius:50%;border:none;cursor:pointer;background:transparent;
  color:var(--fg);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;
  transition:background .16s var(--ease)}
.jr-dock-zoom button:hover,.jr-dock-zoom button:focus-visible{background:var(--surface-2,rgba(34,30,24,.07));outline:none}
.jr-dock-world{font-size:15px !important;color:var(--accent)}
/* uitklapbaar zoekveld onder de dock-rij */
.dock-search-wrap{
  width:min(440px,86vw);
  background:color-mix(in srgb,var(--surface) 92%,transparent);
  -webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  border:1px solid var(--line);border-radius:100px;padding:5px;
  box-shadow:0 10px 30px rgba(34,30,24,.16);
}
.dock-search-wrap[hidden]{display:none}
.dock-search-wrap input{
  width:100%;font-family:var(--f-i);font-style:italic;font-size:14.5px;color:var(--fg);
  background:transparent;border:none;border-radius:100px;padding:10px 18px;
}
.dock-search-wrap input:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}

/* ══ "KIES EEN REIS"-SHEET ══════════════════════════════════════════════════ */
.jr-trip-sheet{
  position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(21,23,28,.42);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);
  opacity:0;transition:opacity .22s var(--ease);
}
.jr-trip-sheet.on{opacity:1}
.jr-trip-sheet[hidden]{display:none}
.jr-trip-sheet-panel{
  width:min(520px,100%);max-height:min(78vh,640px);display:flex;flex-direction:column;
  background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;
  box-shadow:0 30px 80px rgba(0,0,0,.34);transform:translateY(16px);opacity:0;
  transition:transform .26s var(--ease),opacity .26s var(--ease);
}
.jr-trip-sheet.on .jr-trip-sheet-panel{transform:none;opacity:1}
.jr-trip-sheet-grip{display:none}
.jr-trip-sheet-head{display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px 10px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.jr-trip-sheet-title{font-family:var(--f-d);font-weight:600;font-size:19px;color:var(--fg);margin:0}
.jr-trip-sheet-x{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);cursor:pointer;
  background:transparent;color:var(--fg);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;
  transition:border-color .16s var(--ease),color .16s var(--ease)}
.jr-trip-sheet-x:hover,.jr-trip-sheet-x:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}
.jr-trip-sheet-list{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:6px}
.jr-trip-sheet-row{
  display:flex;align-items:center;gap:13px;width:100%;text-align:left;cursor:pointer;
  background:transparent;border:none;border-radius:12px;padding:13px 12px;color:inherit;font-family:inherit;
  transition:background .15s var(--ease)}
.jr-trip-sheet-row:hover,.jr-trip-sheet-row:focus-visible{background:var(--surface-2,rgba(34,30,24,.06));outline:none}
.jr-trip-sheet-row:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}
.jr-trip-sheet-dot{flex:0 0 auto;width:11px;height:11px;border-radius:50%;background:var(--accent);
  color:var(--accent);font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center}
.jr-trip-sheet-world .jr-trip-sheet-dot{background:transparent}
.jr-trip-sheet-rmain{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.jr-trip-sheet-rtitle{font-family:var(--f-d);font-weight:600;font-size:16px;line-height:1.2;color:var(--fg)}
.jr-trip-sheet-rmeta{font-family:var(--f-i);font-style:italic;font-size:13px;color:var(--fg-soft)}
.jr-trip-sheet-go{flex:0 0 auto;color:var(--accent);font-size:18px;opacity:.5;transition:transform .16s var(--ease),opacity .16s var(--ease)}
.jr-trip-sheet-row:hover .jr-trip-sheet-go,.jr-trip-sheet-row:focus-visible .jr-trip-sheet-go{transform:translateX(4px);opacity:1}

/* ══ STORY.HTML — de reader ALS pagina-body (page-mode), niet als overlay ════ */
body[data-page="story"]{background:var(--bg)}
.story-back{padding-top:clamp(74px,11vh,104px);padding-bottom:6px}
.story-back-link{font-family:var(--f-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--mono-c);text-decoration:none}
.story-back-link:hover,.story-back-link:focus-visible{color:var(--accent)}
.r-loading{font-family:var(--f-i);font-style:italic;color:var(--fg-soft);padding:40px 0 80px;text-align:center}
.r-loading[hidden]{display:none}
/* page-mode: het overlay-frame wordt een gewone, meescrollende pagina */
.reader-overlay.r-page{
  position:static;inset:auto;z-index:auto;display:block;background:transparent;
  -webkit-backdrop-filter:none;backdrop-filter:none;animation:none;
}
.reader-overlay.r-page .r-scroll{
  position:static;inset:auto;overflow:visible;padding:0 clamp(16px,4vw,40px) 72px;
}
.reader-overlay.r-page .r-article{
  box-shadow:0 14px 44px rgba(34,30,24,.12);animation:none;
}
/* in page-mode is er niets te sluiten → de × verdwijnt (de taal-toggle blijft) */
.reader-overlay.r-page .r-close{display:none}
.story-404{text-align:center}
.story-404 .cta{margin-top:18px;display:inline-block}

/* ══ MUZIEK-POPUP tijdens lezen (story.html) — rustig kaartje, NIET autoplay ══ */
.story-music{
  position:fixed;right:clamp(14px,3vw,28px);bottom:clamp(14px,3vh,28px);z-index:115;
  display:flex;align-items:center;gap:12px;max-width:min(330px,calc(100vw - 28px));
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border:1px solid var(--line);border-radius:14px;padding:12px 14px 12px 12px;
  box-shadow:0 14px 36px rgba(34,30,24,.2);
  opacity:0;transform:translateY(10px);transition:opacity .3s var(--ease),transform .3s var(--ease);
}
.story-music.on{opacity:1;transform:none}
.story-music-x{position:absolute;top:5px;right:7px;width:22px;height:22px;border:none;background:transparent;
  cursor:pointer;color:var(--mono-c);font-size:16px;line-height:1;border-radius:50%}
.story-music-x:hover,.story-music-x:focus-visible{color:var(--accent);outline:none}
.story-music-play{flex:0 0 auto;width:40px;height:40px;border-radius:50%;cursor:pointer;
  border:1px solid var(--accent);background:transparent;color:var(--accent);
  display:flex;align-items:center;justify-content:center;
  transition:background .16s var(--ease),color .16s var(--ease)}
.story-music-play:hover,.story-music-play:focus-visible{background:var(--accent);color:var(--paper,#FBF9F1);outline:none}
.story-music-play .tri--play{border-left-color:currentColor}
.story-music-text{display:flex;flex-direction:column;gap:1px;min-width:0;padding-right:14px}
.story-music-eyebrow{font-family:var(--f-m);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--mono-c)}
.story-music-title{font-family:var(--f-d);font-weight:600;font-size:14.5px;color:var(--fg);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.story-music-artist{font-family:var(--f-i);font-style:italic;font-size:12px;color:var(--fg-soft);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ══ MOBIEL: dock als onderbalk, sheet als bottom-sheet ═════════════════════ */
@media (max-width:680px){
  .jr-hero-title{left:clamp(14px,4.5vw,18px);top:calc(env(safe-area-inset-top,0px) + 78px);max-width:84vw}
  .jr-hero-title h1{font-size:clamp(24px,7vw,34px)}

  .jr-dock{
    left:0;right:0;bottom:0;transform:none;width:100%;
    padding:0 0 env(safe-area-inset-bottom,0px);gap:8px;
  }
  .jr-dock[data-state="hide"]{transform:translateY(100%)}
  .jr-dock-row{
    width:100%;border-radius:18px 18px 0 0;border-left:none;border-right:none;border-bottom:none;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));gap:8px;justify-content:space-between;
  }
  .jr-dock-cta{flex:1 1 auto;text-align:center;min-height:46px;font-size:15px;padding:13px 16px}
  /* "Verder lezen" als compacte pill onder de CTA-rij; geen ellipsis-druk */
  .jr-dock-resume{order:5;flex:1 1 100%;max-width:none;flex-direction:row;gap:8px;align-items:center;justify-content:center;min-height:44px}
  .jr-dock-resume-title{max-width:60vw}
  .jr-dock-tools{gap:4px}
  .jr-dock-ic{min-width:46px;min-height:46px;padding:10px;justify-content:center}
  .jr-dock-ic-lab{display:none}                /* alleen iconen op mobiel (≥44px) */
  .jr-dock-zoom{border-left:none;padding-left:0;margin-left:0}
  .jr-dock-zoom button{width:46px;height:46px;font-size:22px}
  .dock-search-wrap{width:calc(100% - 20px);margin:0 auto}

  /* "kies een reis" als bottom-sheet */
  .jr-trip-sheet{align-items:flex-end;justify-content:stretch;padding:0}
  .jr-trip-sheet-panel{width:100%;max-width:none;max-height:82vh;border-radius:18px 18px 0 0;
    transform:translateY(100%)}
  .jr-trip-sheet.on .jr-trip-sheet-panel{transform:none}
  .jr-trip-sheet-grip{display:block;width:40px;height:4px;border-radius:100px;margin:9px auto 2px;
    background:color-mix(in srgb,var(--fg) 22%,transparent)}
  .jr-trip-sheet-row{min-height:58px}

  /* muziek-popup: smaller, boven het dock zodat ze elkaar niet raken */
  .story-music{right:10px;left:10px;bottom:84px;max-width:none}
}

/* ══ reduced-motion: dock ALTIJD zichtbaar, geen fades/slides ═══════════════ */
@media (prefers-reduced-motion: reduce){
  .jr-dock,.jr-hero-title,.jr-trip-sheet,.jr-trip-sheet-panel,.story-music{transition:none}
  .jr-dock[data-state="hide"]{opacity:1;transform:translateX(-50%);pointer-events:auto}
  .jr-hero-title.is-faded{opacity:1;transform:none}
  .jr-trip-sheet-panel{transform:none}
  .story-music{transform:none}
  .jr-dock-dice.rolling .dice-face{animation:none}
  @media (max-width:680px){
    .jr-dock[data-state="hide"]{transform:none}
    .jr-trip-sheet-panel{transform:translateY(100%)}
    .jr-trip-sheet.on .jr-trip-sheet-panel{transform:none}
  }
}
