:root {
  --v3-night: #071524;
  --v3-paper: #f8f6f0;
  --v3-ink: #1a1a2e;
  --v3-route: #e8cbb0;
  --v3-route-hot: #d9534f;
  --v3-blue: #0f2c59;
  --v3-arrival-radius: 0vmax;
  --v3-arrival-x: 50vw;
  --v3-arrival-y: 72vh;
  --v3-dock: 0;
}

body[data-home-cinema="journey-v3"] {
  overflow-x: clip;
  background: var(--v3-night);
}

html[data-v3-cinema-skip="1"] #v3-cinema,
html[data-v3-cinema-skip="1"] .v3-skip { display: none !important; }

html.v3-instant-scroll,
html.v3-instant-scroll body { scroll-behavior: auto !important; }

.v3-skip {
  position: fixed;
  z-index: 1000;
  inset: 12px auto auto 12px;
  transform: translateY(-180%);
  padding: 10px 14px;
  border-radius: 4px;
  background: var(--v3-paper);
  color: var(--v3-ink);
  font: 600 13px/1.2 Inter, sans-serif;
  transition: transform 160ms cubic-bezier(.23,1,.32,1);
}

.v3-skip:focus-visible { transform: translateY(0); outline: 3px solid var(--v3-route-hot); outline-offset: 3px; }

#v3-cinema {
  position: relative;
  z-index: 5;
  color: #fff;
  background: var(--v3-night);
  isolation: isolate;
}

.v3-track { position: relative; background: var(--v3-night); }

.v3-stage {
  position: sticky;
  inset-block-start: 0;
  width: 100%;
  min-height: 100svh;
  height: 100svh;
  overflow: hidden;
  isolation: isolate;
  background: var(--v3-night);
  color: #fff;
}

.v3-scenes,
.v3-scene,
.v3-scene .v3-scene-media,
.v3-ink-wash,
.v3-film-grain {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.v3-scenes { z-index: 1; }
.v3-scene { margin: 0; overflow: hidden; will-change: opacity, transform, clip-path; }
.v3-scene .v3-scene-media { object-fit: cover; will-change: transform; }
.v3-scene-video { z-index: 1; border: 0; opacity: 0; pointer-events: none; transition: opacity 420ms ease; }
.v3-scene.v3-video-ready .v3-scene-video { opacity: 1; }

.v3-scene--istanbul { opacity: 1; clip-path: inset(0); }
.v3-scene--istanbul .v3-scene-media { object-position: center 52%; }
.v3-scene--tokyo { opacity: 0; clip-path: polygon(50% 0,100% 0,100% 100%,26% 100%); }
.v3-scene--tokyo .v3-scene-media { object-position: center 48%; }
.v3-scene--rome { opacity: 0; clip-path: circle(0 at 58% 58%); }
.v3-scene--rome .v3-scene-media { object-position: center 52%; }
.v3-scene--barcelona { opacity: 0; clip-path: inset(62% 0 0); }
.v3-scene--barcelona .v3-scene-media { object-position: center; }

.v3-ink-wash {
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(4,13,23,.78) 0%, rgba(4,13,23,.18) 46%, transparent 70%),
    linear-gradient(0deg, rgba(4,13,23,.55), transparent 42%);
  opacity: .68;
}

.v3-film-grain {
  z-index: 3;
  pointer-events: none;
  opacity: .055;
  mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.62'/%3E%3C/svg%3E");
}

.v3-cover {
  position: absolute;
  z-index: 8;
  inset: clamp(82px, 11vh, 120px) auto auto clamp(24px, 6vw, 92px);
  max-width: 880px;
  will-change: transform, opacity;
}

.v3-wordmark {
  display: block;
  margin-bottom: clamp(42px, 9vh, 92px);
  font: 600 12px/1 IBM Plex Mono, monospace;
  letter-spacing: .24em;
}

.v3-cover :is(h1,.v3-cover-title) {
  margin: 0;
  max-width: 10ch;
  color: #fff;
  font: 800 clamp(50px, 7.2vw, 108px)/.88 "Playfair Display", Georgia, serif;
  letter-spacing: -.055em;
  text-wrap: balance;
  text-shadow: 0 3px 24px rgba(3,9,15,.38);
  text-transform: uppercase;
}
.v3-cover :is(h1,.v3-cover-title) .via { color: inherit; font-style: normal; }

.v3-city-titles { position: absolute; inset: 0; z-index: 9; pointer-events: none; }
.v3-city-titles a {
  position: absolute;
  color: #fff;
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 800;
  line-height: .85;
  letter-spacing: -.055em;
  text-decoration: none;
  text-shadow: 0 3px 28px rgba(2,8,14,.34);
  opacity: 0;
  pointer-events: none;
  will-change: opacity, transform;
}
.v3-city-titles [data-v3-city="istanbul"] { inset: auto auto 10vh 5vw; font-size: clamp(70px, 14vw, 220px); }
.v3-city-titles [data-v3-city="tokyo"] { inset: 10vh 4vw auto auto; max-height: 78svh; font-size: clamp(58px, min(10vw, 14.5vh), 148px); writing-mode: vertical-rl; }
.v3-city-titles [data-v3-city="rome"] { inset: auto auto 11vh 18vw; font-size: clamp(100px, 20vw, 300px); }
.v3-city-titles [data-v3-city="barcelona"] { inset: 10vh auto auto 4vw; font-size: clamp(62px, 13vw, 190px); }

.v3-route {
  position: absolute;
  z-index: 12;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: visible;
}

/* Önceki rota çizgisi sahneleri anlamlı biçimde birbirine bağlamıyordu ve
   özellikle ana sayfaya teslim sırasında görsel kirlilik oluşturuyordu.
   Dünya Nabzı'nın veri ağı kendi SVG katmanında yaşamaya devam eder. */
.v3-route { display: none !important; }

.v3-route-line,
.v3-route-shadow {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}
.v3-route-shadow { stroke: rgba(4,12,21,.38); stroke-width: 7; }
.v3-route-line { stroke: var(--v3-route); stroke-width: 3; }
.v3-route-head { fill: var(--v3-route-hot); stroke: var(--v3-paper); stroke-width: 2; vector-effect: non-scaling-stroke; }

.v3-geo {
  position: absolute;
  z-index: 5;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  color: #fff;
  background:
    radial-gradient(circle at 58% 52%, rgba(37,124,176,.26), transparent 34%),
    radial-gradient(circle at 50% 50%, #0b2b43 0, #061523 58%, #020812 100%);
  will-change: opacity, transform, clip-path;
}

#line-map { position: absolute; inset: 0; width: 100%; height: 100%; background: transparent; }
#line-map::after {
  content: "";
  position: absolute;
  z-index: 450;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at center, transparent 28%, rgba(2,8,18,.18) 58%, rgba(2,8,18,.88) 100%),
    linear-gradient(90deg,rgba(2,8,18,.72),transparent 28%,transparent 72%,rgba(2,8,18,.62));
}
#line-map .leaflet-tile-pane { filter: invert(.92) hue-rotate(168deg) saturate(1.15) brightness(.48) contrast(1.2); opacity: .78; }
#line-map .leaflet-control-attribution { color: #a9c5d5; font-size: 9px; background: rgba(2,8,18,.72); }
#line-map .leaflet-control-attribution a { color: #d3e9f5; }
#line-map .v3-map-pin {
  width: 8px;
  height: 8px;
  border: 1px solid rgba(255,255,255,.92);
  border-radius: 50%;
  background: #7cd8ff;
  box-shadow: 0 0 0 3px rgba(124,216,255,.12), 0 0 16px rgba(124,216,255,.88);
}
#line-map .v3-map-pin.is-featured { width: 14px; height: 14px; border-width: 2px; background: var(--v3-route-hot); box-shadow: 0 0 0 5px rgba(217,83,79,.16), 0 0 22px rgba(255,109,98,.9); }
#line-map .v3-map-network { stroke-linecap: round; stroke-dasharray: 3 9; animation: v3-network-pulse 4.8s linear infinite; }
#line-map .v3-map-network--1 { animation-delay: -.8s; }
#line-map .v3-map-network--2 { animation-delay: -1.6s; }
#line-map .v3-map-network--3 { animation-delay: -2.4s; }
#line-map .v3-map-network--4 { animation-delay: -3.2s; }
#line-map .v3-map-network--5 { animation-delay: -4s; }
@keyframes v3-network-pulse { to { stroke-dashoffset: -48; } }

.v3-orbit {
  position: absolute;
  z-index: 480;
  left: 50%;
  top: 54%;
  width: 88vw;
  height: 38vw;
  border: 1px solid rgba(130,216,255,.22);
  border-radius: 50%;
  transform: translate(-50%,-50%) rotate(-8deg);
  box-shadow: 0 0 32px rgba(78,174,225,.08);
  pointer-events: none;
}
.v3-orbit--two { width: 62vw; height: 54vw; transform: translate(-50%,-50%) rotate(68deg); border-color: rgba(255,109,98,.18); }

.v3-map-title {
  position: absolute;
  z-index: 500;
  inset: clamp(84px, 12vh, 120px) auto auto clamp(24px, 6vw, 92px);
  color: #fff;
  pointer-events: none;
}
.v3-map-title > span { display: block; margin-bottom: 12px; font: 600 10px/1 IBM Plex Mono, monospace; letter-spacing: .22em; color: #8dd9ff; text-transform: uppercase; }
.v3-map-title strong { display: flex; align-items: flex-end; gap: 18px; }
.v3-map-title b { font: 800 clamp(74px, 11vw, 168px)/.72 "Playfair Display", Georgia, serif; letter-spacing: -.065em; }
.v3-map-title small { max-width: 19ch; padding-bottom: 5px; font: 600 11px/1.45 IBM Plex Mono, monospace; letter-spacing: .12em; color: #d8e9f2; text-transform: uppercase; }

.v3-city-rail,
.v3-budget-rail {
  position: absolute;
  z-index: 560;
  left: 0;
  bottom: 34px;
  display: flex;
  width: max-content;
  gap: 28px;
  padding-inline: 32px;
  color: rgba(224,241,249,.72);
  font: 600 10px/1 IBM Plex Mono, monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
  pointer-events: none;
}
.v3-city-rail span::before,
.v3-budget-rail span::before { content: "•"; margin-inline-end: 10px; color: #67caf4; }
.v3-city-rail .is-featured::before,
.v3-budget-rail .is-featured::before { color: var(--v3-route-hot); }

.v3-travellers { position: absolute; z-index: 550; inset: 0; pointer-events: none; }
.v3-travellers > div { position: absolute; width: 0; height: 0; color: #fff; font: 600 11px/1 IBM Plex Mono, monospace; letter-spacing: .08em; text-shadow: 0 2px 9px #020812; will-change: transform, opacity; }
.v3-travellers > div span { position: absolute; right: 12px; bottom: 9px; white-space: nowrap; }
.v3-travellers > div i { position: absolute; left: -5px; top: -5px; width: 10px; height: 10px; border: 2px solid var(--v3-paper); border-radius: 50%; background: var(--v3-route-hot); box-shadow: 0 3px 10px rgba(7,21,36,.22); }
.v3-travellers [data-v3-traveller="istanbul"] span { right: 13px; bottom: -20px; }
.v3-travellers [data-v3-traveller="rome"] span { right: auto; left: 13px; bottom: 8px; }
.v3-travellers [data-v3-traveller="tokyo"] span { right: auto; left: 13px; bottom: 8px; }

.v3-budget {
  position: absolute;
  z-index: 16;
  inset: 0;
  display: grid;
  grid-template-columns: minmax(220px,.8fr) minmax(340px,1.2fr);
  align-content: center;
  gap: clamp(24px,6vw,96px);
  padding: clamp(72px,10vh,116px) clamp(24px,8vw,128px);
  color: #fff;
  background:
    linear-gradient(90deg,rgba(3,10,18,.94) 0%,rgba(3,10,18,.72) 48%,rgba(3,10,18,.45) 100%),
    linear-gradient(0deg,rgba(3,10,18,.72),transparent 52%);
  opacity: 0;
  pointer-events: none;
  clip-path: inset(48% 0 48% 0);
  will-change: opacity, clip-path;
}

.v3-budget-heading { grid-column: 1 / -1; display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.v3-budget-heading span { font: 600 10px/1 IBM Plex Mono, monospace; letter-spacing: .22em; color: #8dd9ff; text-transform: uppercase; }
.v3-budget-heading strong { max-width: 10ch; font: 800 clamp(32px,4.4vw,68px)/.88 "Playfair Display",Georgia,serif; letter-spacing: -.04em; text-align: right; }
.v3-budget-place {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 16px;
  color: #fff;
  font: 800 clamp(42px,5.1vw,78px)/.86 "Playfair Display",Georgia,serif;
  letter-spacing: -.045em;
  text-shadow: 0 4px 24px rgba(2,8,14,.64);
  will-change: opacity, transform;
}
.v3-budget-place i {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255,255,255,.92);
  border-radius: 50%;
  background: var(--v3-route-hot);
  box-shadow: 0 0 0 5px rgba(217,83,79,.16),0 4px 18px rgba(0,0,0,.35);
}
.v3-budget-total { will-change: opacity, transform; }
.v3-budget-total strong { display: block; font: 800 clamp(78px,13vw,204px)/.72 "Playfair Display", Georgia, serif; letter-spacing: -.075em; text-shadow: 0 5px 34px rgba(0,0,0,.34); }
.v3-budget-total span { display: block; margin-top: 24px; font: 600 12px/1 IBM Plex Mono, monospace; letter-spacing: .18em; }
.v3-budget dl { margin: 0; align-self: end; }
.v3-budget dl div { display: grid; grid-template-columns: 1fr auto; gap: 30px; padding: 16px 0; border-bottom: 1px solid rgba(220,238,247,.25); }
.v3-budget dt { font: 600 11px/1.4 IBM Plex Mono, monospace; letter-spacing: .12em; color: #b9dce9; }
.v3-budget dd { margin: 0; font: 700 clamp(18px,2.2vw,32px)/1 "Playfair Display", Georgia, serif; }
.v3-budget-rail { z-index: 17; color: rgba(255,255,255,.66); will-change: transform; }

.v3-arrival-copy {
  position: absolute;
  z-index: 18;
  inset: clamp(100px,15vh,160px) auto auto clamp(24px,5.2vw,84px);
  color: #fff;
  opacity: 0;
  transform: translateY(22px);
  text-shadow: 0 4px 28px rgba(2,8,14,.72);
  pointer-events: none;
}
.v3-arrival-copy span { display: block; margin-bottom: 14px; font: 600 10px/1 IBM Plex Mono, monospace; letter-spacing: .2em; color: #8dd9ff; }
.v3-arrival-copy strong { display: block; max-width: 11ch; color: #fff; font: 800 clamp(38px,4.8vw,72px)/.9 "Playfair Display", Georgia, serif; letter-spacing: -.045em; }

#original-roadvia-slot { position: relative; z-index: 2; background: var(--paper); }
#original-roadvia { position: relative; background: var(--paper); }

body.v3-active:not(.v3-arriving):not(.v3-home-live) #original-roadvia { visibility: hidden; }

body.v3-arriving #original-roadvia {
  position: fixed;
  z-index: 30;
  inset: 0;
  height: 100svh;
  overflow: hidden;
  visibility: visible;
  pointer-events: none;
  opacity: 1;
  clip-path: circle(var(--v3-arrival-radius) at var(--v3-arrival-x) var(--v3-arrival-y));
  background: var(--paper);
}

body.v3-arriving #v3-cinema { z-index: auto; background: transparent; }
body.v3-arriving .v3-track { background: transparent; }
body.v3-arriving .v3-stage { z-index: 40; background: transparent; }
body.v3-arriving .v3-route { position: fixed; z-index: 60; }
body.v3-arriving .v3-scenes,
body.v3-arriving .v3-ink-wash,
body.v3-arriving .v3-film-grain,
body.v3-arriving .v3-cover,
body.v3-arriving .v3-city-titles,
body.v3-arriving .v3-geo,
body.v3-arriving .v3-budget { pointer-events: none; }

body.v3-home-live #original-roadvia-slot { z-index: 20; }
body.v3-home-live #original-roadvia { visibility: visible; pointer-events: auto; }
body.v3-home-live #v3-cinema { overflow: clip; pointer-events: none; }
body.v3-home-live .v3-route { opacity: 0; }
body.v3-active:not(.v3-home-live) .side-toc,
body.v3-active:not(.v3-home-live) #rv-consent { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }

@media (max-width: 900px) {
  body[data-home-cinema="journey-v3"] #original-roadvia header.site { overflow-x: clip; }
}

body[data-home-cinema="journey-v3"] #original-roadvia .hero .search-input { position: relative; }
body[data-home-cinema="journey-v3"] #original-roadvia .hero .search-input::after {
  content: "";
  position: absolute;
  z-index: 3;
  left: 16px;
  bottom: -2px;
  width: min(120px,30%);
  height: 3px;
  border-radius: 999px;
  background: var(--v3-route-hot);
  transform: scaleX(0);
  transform-origin: left center;
  opacity: 0;
}

body.v3-arriving #original-roadvia .hero .search-input::after {
  transform: scaleX(var(--v3-dock));
  opacity: calc(.32 + var(--v3-dock) * .68);
}

@media (max-width: 780px) {
  #line-map[data-v3-touch-scroll="page"] { touch-action: pan-y !important; }
  .v3-cover { inset: 84px 18px auto; }
  .v3-wordmark { margin-bottom: 18vh; }
  .v3-cover :is(h1,.v3-cover-title) { max-width: 9.4ch; font-size: clamp(44px,13.4vw,76px); line-height: .9; }
  .v3-ink-wash { background: linear-gradient(0deg,rgba(4,13,23,.78),transparent 72%); }
  .v3-city-titles [data-v3-city] { writing-mode: initial; inset: auto 18px 10vh; font-size: clamp(54px,17vw,92px); }
  .v3-city-titles [data-v3-city="tokyo"] { inset: 12vh 16px auto auto; max-width: calc(100vw - 32px); max-height: none; font-size: clamp(48px,18vw,70px); white-space: nowrap; }
  .v3-city-titles [data-v3-city="rome"] { inset: auto auto 12vh 18px; }
  .v3-city-titles [data-v3-city="barcelona"] { font-size: clamp(44px,14vw,72px); }
  .v3-map-title { inset: 82px 18px auto; }
  .v3-map-title strong { gap: 12px; }
  .v3-map-title b { font-size: clamp(72px,26vw,122px); }
  .v3-map-title small { max-width: 15ch; font-size: 9px; }
  .v3-orbit { width: 138vw; height: 70vw; }
  .v3-orbit--two { width: 92vw; height: 118vw; }
  .v3-travellers > div span { display: none; }
  .v3-city-rail,.v3-budget-rail { bottom: 20px; gap: 20px; padding-inline: 20px; font-size: 9px; }
  .v3-budget { grid-template-columns: 1fr; gap: 18px; padding: 68px 20px 56px; align-content: end; }
  .v3-budget-heading { display: block; }
  .v3-budget-heading strong { display: block; margin-top: 12px; max-width: 12ch; font-size: clamp(30px,9vw,48px); text-align: left; }
  .v3-budget-place { grid-column: auto; }
  .v3-budget-total strong { font-size: clamp(70px,25vw,120px); }
  .v3-budget-total span { margin-top: 14px; }
  .v3-budget dl div { padding: 10px 0; }
  .v3-arrival-copy { inset: 90px 20px auto; }
  .v3-arrival-copy strong { max-width: 10ch; font-size: clamp(36px,9.5vw,54px); }
  #line-map .leaflet-control-attribution { max-width: 70vw; white-space: normal; }
}

@media (prefers-reduced-motion: reduce) {
  body[data-home-cinema="journey-v3"] { background: var(--v3-paper); }
  #v3-cinema { color: var(--v3-ink); background: var(--v3-paper); }
  .v3-track { height: auto !important; background: var(--v3-paper); }
  .v3-stage { position: relative !important; height: auto; min-height: 0; overflow: visible; color: var(--v3-ink); background: var(--v3-paper); }
  .v3-scenes { position: relative; display: grid; }
  .v3-scene { position: relative; inset: auto; width: 100%; height: min(64svh,640px); opacity: 1 !important; clip-path: none !important; transform: none !important; }
  .v3-scene img { transform: none !important; }
  .v3-scene-video { display: none !important; }
  .v3-ink-wash,.v3-film-grain,.v3-route { display: none; }
  #line-map .v3-map-network { animation: none; }
  .v3-cover { position: absolute; inset: 60px 20px auto; color: #fff; opacity: 1 !important; transform: none !important; }
  .v3-cover :is(h1,.v3-cover-title) { color: #fff; font-size: clamp(42px,10vw,72px); }
  .v3-wordmark { margin-bottom: 24px; }
  .v3-city-titles { position: relative; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 34px 20px 50px; gap: 18px; background: var(--v3-night); }
  .v3-city-titles a { position: static; inset: auto; display: block; color: #fff; font-size: clamp(32px,7vw,64px) !important; writing-mode: initial !important; opacity: 1 !important; transform: none !important; pointer-events: auto; }
  .v3-geo { position: relative; inset: auto; width: 100%; height: min(72svh,680px); opacity: 1 !important; clip-path: none !important; pointer-events: auto; }
  .v3-budget { position: relative; inset: auto; min-height: 72svh; opacity: 1 !important; clip-path: none !important; pointer-events: auto; }
  .v3-arrival-copy { display: none; }
  body.v3-active #original-roadvia { visibility: visible !important; position: relative !important; inset: auto !important; height: auto !important; overflow: visible !important; clip-path: none !important; pointer-events: auto !important; }
}

/* Art-directed concept frames selected for the production journey. The bitmap
   supplies the cinematic atmosphere; all numbers, labels and moving signals
   remain live HTML/SVG so they follow publishing state and language. */
.v3-concept-bg {
  position: absolute;
  z-index: 1;
  inset: 0;
  margin: 0;
  overflow: hidden;
  pointer-events: none;
  transform-origin: 58% 50%;
  will-change: transform;
}
.v3-concept-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(1.03) contrast(1.03);
}

.v3-scroll-cue {
  position: absolute;
  z-index: 40;
  left: 50%;
  bottom: clamp(24px,4.5vh,48px);
  display: grid;
  justify-items: center;
  gap: 9px;
  color: rgba(255,255,255,.94);
  font: 600 9px/1.2 "IBM Plex Mono",monospace;
  letter-spacing: .17em;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 0 2px 12px rgba(1,8,14,.75);
  opacity: .76;
  transform: translate3d(-50%,0,0);
  pointer-events: none;
  will-change: opacity,transform;
}
.v3-scroll-cue__mouse {
  position: relative;
  width: 22px;
  height: 34px;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 999px;
  box-shadow: 0 3px 18px rgba(0,0,0,.28);
}
.v3-scroll-cue__mouse i {
  position: absolute;
  left: 50%;
  top: 7px;
  width: 3px;
  height: 7px;
  border-radius: 99px;
  background: #fff;
  transform: translateX(-50%);
  animation: v3-scroll-cue 1.65s cubic-bezier(.22,.8,.36,1) infinite;
}
@keyframes v3-scroll-cue {
  0% { opacity: 0; transform: translate(-50%,0); }
  25% { opacity: 1; }
  78%,100% { opacity: 0; transform: translate(-50%,12px); }
}

.v3-geo {
  overflow: hidden;
  background: #020711;
}
.v3-geo::after {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg,rgba(1,7,13,.46),transparent 38%),
    linear-gradient(0deg,rgba(1,7,13,.68),transparent 24%,transparent 78%,rgba(1,7,13,.16));
}
.v3-geo .v3-concept-img { object-position: center center; }
.v3-geo #line-map { z-index: 0; opacity: 0; pointer-events: none; }
.v3-geo .v3-orbit,
.v3-geo .v3-travellers { display: none; }
.v3-world-pulse-overlay {
  position: absolute;
  z-index: 4;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
  mix-blend-mode: screen;
  filter: drop-shadow(0 0 9px rgba(86,201,255,.5));
}
.v3-pulse-route {
  fill: none;
  stroke: rgba(109,213,255,.78);
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-dasharray: 2 15;
  vector-effect: non-scaling-stroke;
  animation: v3-concept-network 4.8s linear infinite;
}
.v3-pulse-route--2 { stroke: rgba(255,112,100,.75); animation-duration: 5.8s; animation-delay: -2.1s; }
.v3-pulse-route--3 { animation-duration: 7.2s; animation-delay: -3.7s; }
.v3-pulse-route--4 { stroke: rgba(255,112,100,.68); animation-duration: 6.4s; animation-delay: -1.3s; }
.v3-pulse-node {
  fill: #ff6d62;
  stroke: rgba(255,255,255,.9);
  stroke-width: 1.5;
  transform-box: fill-box;
  transform-origin: center;
  animation: v3-concept-node 2.6s ease-in-out infinite;
}
.v3-pulse-node--2 { animation-delay: -.9s; }
.v3-pulse-node--3 { animation-delay: -1.7s; }
@keyframes v3-concept-network { to { stroke-dashoffset: -68; } }
@keyframes v3-concept-node {
  0%,100% { opacity: .62; transform: scale(.82); }
  50% { opacity: 1; transform: scale(1.55); }
}
.v3-geo .v3-map-title { z-index: 6; }
.v3-geo .v3-city-rail { z-index: 7; text-shadow: 0 2px 10px rgba(0,0,0,.82); }

.v3-budget {
  overflow: hidden;
  grid-template-columns: minmax(260px,.82fr) minmax(390px,1.18fr);
  align-content: end;
  padding-top: clamp(210px,31vh,320px);
  padding-bottom: clamp(76px,10vh,112px);
  background: #030a12;
}
.v3-budget::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg,rgba(2,8,15,.55),rgba(2,8,15,.05) 66%),
    linear-gradient(0deg,rgba(2,8,15,.9),rgba(2,8,15,.5) 46%,rgba(2,8,15,.08) 76%);
}
.v3-budget .v3-concept-bg { z-index: 0; transform-origin: 50% 52%; }
.v3-budget .v3-budget-heading,
.v3-budget .v3-budget-place,
.v3-budget .v3-budget-total,
.v3-budget dl { position: relative; z-index: 2; }
.v3-budget .v3-budget-rail { z-index: 3; }
.v3-budget-heading {
  position: absolute !important;
  inset: clamp(62px,8vh,90px) clamp(24px,6vw,92px) auto;
  align-items: start;
}
.v3-budget-heading > span { padding-top: 12px; color: rgba(207,238,249,.86); }
.v3-budget-heading strong {
  display: flex;
  align-items: flex-start;
  gap: clamp(18px,2.5vw,38px);
  max-width: none;
  color: #fff;
  text-align: left;
}
.v3-budget-heading strong b {
  font: 800 clamp(72px,10vw,150px)/.72 "Playfair Display",Georgia,serif;
  letter-spacing: -.065em;
}
.v3-budget-heading strong em {
  max-width: 11ch;
  font: 800 clamp(26px,3.2vw,50px)/.9 "Playfair Display",Georgia,serif;
  letter-spacing: -.04em;
  font-style: normal;
}

@media (max-width: 780px) {
  .v3-scroll-cue { bottom: 22px; width: min(82vw,330px); font-size: 8px; }
  .v3-geo .v3-concept-img { object-position: 61% center; }
  .v3-world-pulse-overlay { transform: scale(1.45); transform-origin: 62% 56%; }
  .v3-budget { grid-template-columns: 1fr; gap: 14px; padding: 238px 20px 72px; }
  .v3-budget .v3-concept-img { object-position: 52% center; }
  .v3-budget-heading { inset: 54px 20px auto; display: flex; align-items: flex-start; }
  .v3-budget-heading strong { margin: 0; gap: 12px; }
  .v3-budget-heading strong b { font-size: clamp(58px,20vw,96px); }
  .v3-budget-heading strong em { margin: 0; max-width: 9ch; font-size: clamp(23px,7.4vw,36px); }
  .v3-budget-place { margin-top: 0; gap: 11px; font-size: clamp(38px,12vw,54px); }
  .v3-budget-place i { width: 12px; height: 12px; }
  .v3-budget-total strong { font-size: clamp(64px,22vw,108px); }
  .v3-budget dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 14px; }
  .v3-budget dl div { grid-template-columns: 1fr; gap: 5px; }
}

@media (prefers-reduced-motion: reduce) {
  .v3-scroll-cue__mouse i,
  .v3-pulse-route,
  .v3-pulse-node { animation: none !important; }
  .v3-scroll-cue { opacity: .72; }
  .v3-concept-bg { transform: none !important; }
}
