:root {
  color-scheme: dark;
  --deep: #03100c;
  --deep-2: #061813;
  --ocean: #071d20;
  --ink: #eff8ef;
  --muted: #a9b9af;
  --dim: #71867a;
  --green: #55cf78;
  --green-light: #b8f3c7;
  --line: rgba(184,243,199,.18);
  --road-progress: 0;
  --technical: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --display: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-family: var(--display);
  background: var(--deep);
  color: var(--ink);
  scroll-behavior: auto;
  -webkit-font-smoothing: antialiased;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-width: 320px; overflow-x: hidden; }
body { background: var(--deep); color: var(--ink); }
a { color: inherit; }
img { display: block; max-width: 100%; }
button, a { -webkit-tap-highlight-color: transparent; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 12px;
  padding: 12px 16px;
  border-radius: 3px;
  background: var(--ink);
  color: var(--deep);
  font: 700 .78rem var(--technical);
  transform: translateY(-160%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }

:focus-visible { outline: 2px solid var(--green-light); outline-offset: 5px; }

.journey-header {
  position: fixed;
  z-index: 50;
  top: 0;
  right: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 68px;
  padding: 0 clamp(20px,3.2vw,52px);
  border-bottom: 1px solid rgba(184,243,199,.08);
  background: linear-gradient(rgba(3,16,12,.82),rgba(3,16,12,0));
  pointer-events: none;
}
.journey-header a { pointer-events: auto; }
.header-brand { display: flex; align-items: center; gap: 10px; font-size: .66rem; font-weight: 700; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }
.header-brand img { width: 31px; height: 31px; }
.language-switch { display: flex; gap: 8px; align-items: center; color: var(--dim); font: 650 .66rem var(--technical); letter-spacing: .12em; }
.language-switch a { min-width: 32px; min-height: 44px; line-height: 44px; text-align: center; text-decoration: none; }
.language-switch [aria-current="page"] { color: var(--green-light); }

.journey { position: relative; isolation: isolate; }
.journey-spine {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}
.journey-spine path { fill: none; vector-effect: non-scaling-stroke; }
.spine-mobile-path { display: none; }
.spine-shadow { stroke: rgba(212,239,220,.09); stroke-width: 13; }
.spine-progress { stroke: var(--green); stroke-width: 2.3; stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--road-progress)); filter: drop-shadow(0 0 8px rgba(85,207,120,.38)); }

.moment { position: relative; z-index: 1; min-height: 100svh; overflow: hidden; }
.moment > *:not(.topography) { position: relative; z-index: 3; }
.technical-label,
.mode-index,
.hero-geo,
.municipality-note,
.development-status,
.moment-final footer {
  font-family: var(--technical);
  font-size: .64rem;
  letter-spacing: .14em;
  line-height: 1.5;
  text-transform: uppercase;
}
.technical-label { margin: 0 0 18px; color: var(--green); }

.hero-lockup h1,
.mode-stream h3,
.map-copy h2,
.experience-copy h2,
.final-copy h2 { text-transform: uppercase; }

.topography {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  opacity: .52;
  background:
    repeating-radial-gradient(ellipse at 50% 45%, transparent 0 34px, rgba(184,243,199,.055) 35px 36px, transparent 37px 69px),
    repeating-radial-gradient(ellipse at 36% 58%, transparent 0 52px, rgba(184,243,199,.035) 53px 54px, transparent 55px 98px);
  transform: rotate(-6deg);
}

.moment-hero {
  display: grid;
  place-items: center;
  min-height: 100svh;
  padding: 78px clamp(22px,5vw,80px) 38px;
  background:
    radial-gradient(circle at 50% 46%,rgba(44,113,70,.16),transparent 27%),
    linear-gradient(145deg,#020b08 0%,#03130e 55%,#051914 100%);
}
.moment-hero::before,
.moment-hero::after {
  content: "";
  position: absolute;
  z-index: 0;
  aspect-ratio: 1;
  background: url("brand-mark.svg") center / contain no-repeat;
  pointer-events: none;
  transform: translateY(-50%);
}
.moment-hero::before { top: 50%; left: clamp(-340px,-19vw,-220px); width: clamp(590px,57vw,850px); opacity: .052; filter: saturate(1.12) drop-shadow(0 0 34px rgba(85,207,120,.28)); }
.moment-hero::after { top: 54%; right: clamp(34px,4vw,64px); width: clamp(410px,41vw,620px); opacity: .035; }
.topography-hero { inset: 5% -15% -5% 28%; }
.hero-lockup { display: grid; width: min(960px,100%); grid-template-columns: clamp(72px,6.4vw,96px) minmax(0,1fr); align-items: center; column-gap: clamp(14px,2.2vw,28px); }
.hero-lockup::before { content: ""; grid-column: 1; grid-row: 1; }
.hero-mark { position: static; flex: 0 0 auto; width: 1.15cap; height: auto; opacity: .9; }
.hero-brand { grid-column: 2; display: flex; flex-direction: column; align-items: flex-start; margin: 0; font-size: clamp(3.55rem,6.5vw,6.8rem); font-weight: 720; letter-spacing: -.055em; line-height: .84; text-transform: uppercase; }
.hero-brand-first { display: flex; height: .84em; align-items: baseline; gap: clamp(14px,1.4vw,22px); }
.hero-lockup h1 { grid-column: 2; width: max-content; max-width: 100%; margin: 20px 0 0; color: var(--green-light); font-size: clamp(1.12rem,1.85vw,1.68rem); font-weight: 360; letter-spacing: .075em; line-height: 1.2; white-space: nowrap; }
html[lang="en"] .hero-lockup h1 { font-size: clamp(1.05rem,1.72vw,1.56rem); }
.hero-modes { grid-column: 2; display: grid; width: min(640px,100%); grid-template-columns: minmax(0,1fr) 1px minmax(0,1fr); gap: clamp(18px,2.5vw,32px); align-items: stretch; margin-top: 26px; }
.hero-modes p { display: grid; gap: 7px; margin: 0; }
.hero-modes p:first-child { justify-items: start; text-align: left; }
.hero-modes p:last-child { justify-items: end; text-align: right; }
.hero-modes strong { font-size: clamp(1.14rem,1.6vw,1.48rem); font-weight: 650; letter-spacing: -.025em; text-transform: uppercase; }
.hero-modes span:not(.mode-divider) { color: var(--muted); font: .7rem var(--technical); letter-spacing: .07em; }
.mode-divider { width: 1px; background: var(--line); }
.start-link { grid-column: 1 / -1; justify-self: center; display: inline-flex; align-items: center; gap: 22px; min-height: 54px; margin-top: 38px; padding: 0 7px; border-bottom: 1px solid rgba(85,207,120,.55); color: var(--green-light); font: 700 .84rem var(--technical); letter-spacing: .17em; text-decoration: none; text-transform: uppercase; transform: translateY(40px); }
.start-link span { color: var(--green); font-size: 1.2rem; }
.moment-hero > .hero-geo { position: absolute; right: auto; bottom: 25px; left: 50%; width: max-content; max-width: calc(100% - 36px); margin: 0; color: #597064; text-align: center; transform: translateX(-50%); }

.moment-modes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  height: 100svh;
  min-height: 700px;
  background: linear-gradient(116deg,#071914 0 49.85%,#082124 50.15% 100%);
}
.moment-modes::before,
.moment-modes::after { content: ""; position: absolute; z-index: 0; border-radius: 50%; border: 1px solid rgba(184,243,199,.07); }
.moment-modes::before { width: 68vw; height: 32vw; top: -13vw; left: -18vw; transform: rotate(18deg); }
.moment-modes::after { width: 58vw; height: 28vw; right: -14vw; bottom: -9vw; transform: rotate(-13deg); }
.mode-stream { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: 8vh clamp(32px,4.4vw,64px); }
.mode-stream-drive { grid-column: 1; grid-row: 1; top: -7vh; align-items: flex-end; padding-right: clamp(108px,calc(10vw + 30px),176px); text-align: right; }
.mode-stream-walk { grid-column: 2; grid-row: 1; top: 7vh; align-items: flex-start; padding-left: clamp(78px,10vw,146px); text-align: left; }
.mode-index { margin: 0; color: var(--green); }
.mode-stream h3 { margin: 13px 0 17px; font-size: clamp(3.45rem,6.35vw,6.2rem); font-weight: 700; letter-spacing: -.052em; line-height: .84; text-transform: uppercase; }
.mode-stream > p:not(.mode-index) { max-width: 400px; margin: 0; color: var(--muted); font-size: clamp(.9rem,1.12vw,1rem); line-height: 1.5; }
.mode-stream > p br { display: block; margin-bottom: 5px; content: ""; }
.mode-mantra { margin-top: 19px; color: var(--green-light); font: 650 .63rem var(--technical); letter-spacing: .1em; text-transform: uppercase; }
.mode-route { position: absolute !important; z-index: 2 !important; inset: 50% 2.5% auto; height: min(38vh,360px); pointer-events: none; transform: translateY(-50%); }
.mode-route-graphic { display: block; width: 100%; height: 100%; overflow: visible; }
.mode-route-mobile { display: none; }
.mode-route-road,
.mode-route-walk { fill: none; stroke: var(--green); stroke-linecap: round; stroke-width: 2; vector-effect: non-scaling-stroke; }
.mode-route-road { filter: drop-shadow(0 0 4px rgba(85,207,120,.25)); }
.mode-route-walk { stroke-dasharray: 7 11; stroke-width: 1.7; opacity: .72; }
.mode-route-marker { fill: var(--green-light); stroke: var(--deep); stroke-width: 3; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 5px rgba(85,207,120,.55)); }

.js .moment-modes[data-motion-ready]:not(.is-animated) .mode-stream { opacity: 0; }
.js .moment-modes[data-motion-ready]:not(.is-animated) .mode-stream-drive { transform: translateX(-12px); }
.js .moment-modes[data-motion-ready]:not(.is-animated) .mode-stream-walk { transform: translateX(12px); }
.js .moment-modes[data-motion-ready] .mode-mantra { opacity: 0; }
.js .moment-modes[data-motion-ready]:not(.is-animated) .mode-route-road { stroke-dasharray: 1; stroke-dashoffset: 1; }
.js .moment-modes[data-motion-ready]:not(.is-animated) .mode-route-walk { clip-path: inset(0 100% 0 0); opacity: 0; }
.js .moment-modes[data-motion-ready]:not(.is-animated) .mode-route-marker { opacity: 0; }
.js .moment-modes.is-animated .mode-stream-drive { animation: mode-copy-in .38s cubic-bezier(.22,.75,.24,1) both; }
.js .moment-modes.is-animated .mode-stream-drive .mode-mantra { animation: mode-copy-in .34s ease .62s both; }
.js .moment-modes.is-animated .mode-route-road { animation: mode-road-draw 1.08s cubic-bezier(.22,.72,.3,1) .22s both; }
.js .moment-modes.is-animated .mode-route-walk { animation: mode-walk-advance .78s steps(4,end) 1.43s both; }
.js .moment-modes.is-animated .mode-stream-walk { animation: mode-copy-in .4s cubic-bezier(.22,.75,.24,1) 1.48s both; }
.js .moment-modes.is-animated .mode-stream-walk .mode-mantra { animation: mode-copy-in .34s ease 2.08s both; }
.js .moment-modes.is-animated .mode-route-marker { opacity: 0; }
.js .moment-modes.is-animated[data-motion-phase="drive"] .mode-route-marker { opacity: .82; }
.js .moment-modes.is-animated[data-motion-phase="walk"] .mode-route-marker { animation: mode-marker-step .22s ease-in-out 4; }

@keyframes mode-copy-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes mode-road-draw { from { stroke-dasharray: 1; stroke-dashoffset: 1; } to { stroke-dasharray: 1; stroke-dashoffset: 0; } }
@keyframes mode-walk-advance { from { clip-path: inset(0 100% 0 0); opacity: 0; } to { clip-path: inset(0 0 0 0); opacity: .72; } }
@keyframes mode-marker-step { 0%,100% { opacity: .72; } 50% { opacity: 1; } }

.moment-map {
  display: grid;
  min-height: 100svh;
  grid-template-columns: minmax(280px,.62fr) minmax(500px,1.38fr);
  grid-template-rows: 1fr auto;
  align-items: center;
  gap: 12px 3vw;
  padding: 78px clamp(24px,4vw,62px) 32px;
  background:
    radial-gradient(circle at 72% 46%,rgba(85,207,120,.12),transparent 23%),
    linear-gradient(145deg,#061719,#071f22 64%,#061614);
}
.map-copy { align-self: center; }
.map-copy h2 { margin: 0; font-size: clamp(2.15rem,3.55vw,3.9rem); font-weight: 670; letter-spacing: -.04em; line-height: 1; }
.map-copy > p:last-child { max-width: 470px; margin: 24px 0 0; color: var(--muted); font-size: clamp(.92rem,1.2vw,1.06rem); line-height: 1.56; }
.map-stage { position: relative; width: 110%; margin-left: -3%; align-self: center; }
.map-stage img { width: 100%; height: auto; filter: drop-shadow(0 28px 50px rgba(0,0,0,.36)); }
.location-signal { position: absolute; top: 56%; left: 57%; display: grid; grid-template-columns: 20px auto; column-gap: 10px; align-items: center; padding: 9px 12px 9px 9px; border: 1px solid rgba(184,243,199,.28); border-radius: 2px; background: rgba(3,16,12,.88); backdrop-filter: blur(8px); font-family: var(--technical); transform: translate(-50%,-50%); }
.location-signal > span { grid-row: 1; width: 11px; height: 11px; margin: 4px; border: 3px solid var(--deep); border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(85,207,120,.12),0 0 9px rgba(85,207,120,.5); }
.location-signal strong { align-self: center; justify-self: start; font-size: .62rem; letter-spacing: .075em; line-height: 1; text-align: left; text-transform: uppercase; transform: translateY(1px); }
.location-signal small { color: var(--dim); font-size: .56rem; }
.municipality-note { grid-column: 1 / -1; justify-self: end; margin: 0; color: var(--dim); font: .56rem var(--technical); letter-spacing: .12em; text-transform: uppercase; }

.moment-experience {
  display: grid;
  align-content: center;
  min-height: 100svh;
  padding: 86px clamp(22px,5vw,80px) 42px;
  background:
    radial-gradient(circle at 18% 23%,rgba(85,207,120,.09),transparent 22%),
    linear-gradient(155deg,#061713,#04120f 56%,#071b18);
}
.experience-copy { display: grid; grid-template-columns: minmax(0,.9fr) minmax(310px,.72fr); gap: 5vw; align-items: end; }
.experience-copy .technical-label { grid-column: 1 / -1; margin-bottom: 0; }
.experience-copy h2 { margin: 0; font-size: clamp(2.15rem,3.15vw,3.4rem); font-weight: 660; letter-spacing: -.038em; line-height: 1; }
.experience-copy h2 span { color: var(--green-light); }
.experience-core { margin: 0 0 4px; color: var(--muted); font-size: clamp(.9rem,1.15vw,1.02rem); line-height: 1.52; }
.experience-core span { display: block; margin-top: 12px; color: var(--green-light); font-size: .88em; }
.experience-track { position: relative; margin: 3.5vh calc(clamp(22px,5vw,80px) * -1) 0; }
.route-graphic { display: block; width: 100%; height: auto; overflow: visible; }
.route-graphic-mobile { display: none; }
.route-road,
.route-walk { fill: none; stroke: var(--green); stroke-width: 1.55; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 2px rgba(85,207,120,.14)); }
.route-walk { stroke-dasharray: 2 8; stroke-linecap: round; }
.route-node circle { fill: #43b967; stroke: var(--deep); stroke-width: 5; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 2px rgba(85,207,120,.24)); }
.route-node-stop circle { fill: var(--deep); stroke: var(--green-light); stroke-width: 3; }
.route-node text { font-family: var(--technical); text-anchor: middle; }
.node-index { fill: var(--dim); font-size: 11px; letter-spacing: .08em; }
.node-title { fill: var(--ink); font-family: var(--display) !important; font-size: 20px; font-weight: 650; letter-spacing: -.01em; }
.node-detail { fill: var(--muted); font-size: 11px; }
.route-graphic-desktop .route-node:last-child .node-detail { font-size: 9px; text-anchor: end; transform: translate(50px,14px); }
.experience-rules { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 34px; margin-top: -2px; color: var(--dim); font: .61rem var(--technical); letter-spacing: .04em; }
.experience-rules span { position: relative; }
.experience-rules span + span::before { content: "·"; position: absolute; left: -19px; color: var(--green); }

.moment-final {
  display: grid;
  min-height: 100svh;
  grid-template-columns: minmax(0,.92fr) minmax(300px,.52fr);
  grid-template-rows: 1fr auto auto;
  align-items: center;
  gap: 18px 6vw;
  padding: 88px clamp(24px,6vw,92px) 30px;
  background:
    radial-gradient(circle at 82% 52%,rgba(85,207,120,.13),transparent 22%),
    linear-gradient(140deg,#03100c,#061914 65%,#061c18);
}
.topography-final { inset: -20% -18% 0 46%; transform: rotate(13deg); }
.final-copy h2 { margin: 0; font-size: clamp(2.4rem,3.85vw,4.25rem); font-weight: 670; letter-spacing: -.042em; line-height: .98; }
.final-copy > p:last-child { margin: 22px 0 0; color: var(--muted); font-size: clamp(.9rem,1.2vw,1.06rem); }
.final-actions { position: relative; top: -44px; grid-column: 1; align-self: end; display: grid; grid-template-columns: minmax(210px,.72fr) minmax(290px,1.28fr); gap: clamp(22px,3vw,42px); align-items: end; }
.final-actions .technical-label { margin-bottom: 10px; }
.contact-action,
.partnership-action { min-width: 0; }
.contact-link { grid-column: 1; align-self: end; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 14px; min-height: 72px; padding: 10px 16px; border-top: 1px solid var(--line); border-right: 1px solid rgba(184,243,199,.08); border-bottom: 1px solid var(--line); border-left: 2px solid var(--green); background: rgba(85,207,120,.035); color: var(--ink); font-size: clamp(1.02rem,1.6vw,1.28rem); font-weight: 680; text-decoration: none; }
.contact-link span { grid-column: 1; color: var(--green-light); font: .72rem var(--technical); text-decoration: underline; text-decoration-color: rgba(184,243,199,.35); text-underline-offset: 4px; }
.contact-link i { grid-column: 2; grid-row: 1 / 3; color: var(--green); font-style: normal; transition: transform .2s ease; }
.contact-link:hover i { transform: translateX(5px); }
.partnership-action { padding-left: clamp(18px,2.4vw,32px); border-left: 1px solid var(--line); }
.partnership-action h3 { max-width: 410px; margin: 0; font-size: clamp(1.05rem,1.45vw,1.28rem); font-weight: 620; letter-spacing: -.018em; line-height: 1.18; }
.partnership-action > p:not(.technical-label) { max-width: 530px; margin: 10px 0 0; color: var(--muted); font-size: clamp(.76rem,.86vw,.86rem); line-height: 1.43; }
.partnership-trigger,
.partnership-email,
.about-trigger { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; padding: 0; border: 0; border-bottom: 1px solid rgba(85,207,120,.55); background: transparent; color: var(--green-light); font: 700 .68rem var(--technical); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.partnership-trigger { margin-top: 9px; }
.partnership-trigger span,
.partnership-email span,
.about-trigger span { color: var(--green); transition: transform .2s ease; }
.partnership-trigger:hover span,
.partnership-email:hover span,
.about-trigger:hover span { transform: translateX(4px); }
.final-lockup { position: relative; top: -70px; grid-column: 2; grid-row: 2; align-self: start; justify-self: end; display: grid; width: min(410px,100%); grid-template-columns: auto 1fr; align-items: center; gap: 10px 18px; text-align: left; }
.brand-resolution { grid-row: 1 / 3; display: flex; align-items: center; }
.brand-resolution > span { width: clamp(36px,4vw,64px); height: 2px; background: linear-gradient(90deg,transparent,var(--green)); }
.brand-resolution img { width: 60px; height: 60px; }
.final-lockup > p { margin: 0; font-size: clamp(1rem,1.5vw,1.25rem); font-weight: 700; letter-spacing: .12em; line-height: 1.05; text-transform: uppercase; }
.final-taglines { grid-column: 2; display: grid; gap: 6px; margin-top: 0; color: var(--muted); font: .62rem var(--technical); letter-spacing: .08em; }
.about-trigger { grid-column: 2; justify-self: start; min-height: 38px; margin-top: 4px; font-size: .62rem; }
.partnership-dialog { width: min(720px,calc(100% - 32px)); max-height: min(90svh,820px); padding: 0; overflow: auto; border: 1px solid rgba(184,243,199,.22); border-radius: 3px; background: #061713; color: var(--ink); box-shadow: 0 30px 90px rgba(0,0,0,.55); }
.partnership-dialog::backdrop { background: rgba(1,8,6,.78); backdrop-filter: blur(5px); }
.partnership-form { position: relative; padding: clamp(24px,4vw,42px); }
.partnership-form > h2 { margin: 0; font-size: clamp(1.8rem,3vw,2.45rem); font-weight: 650; letter-spacing: -.035em; }
.partnership-form > p:not(.technical-label):not(.partnership-fallback) { max-width: 610px; margin: 12px 0 0; color: var(--muted); font-size: .9rem; line-height: 1.5; }
.partnership-close { position: absolute; top: 16px; right: 16px; display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--line); background: transparent; color: var(--ink); font: 300 1.5rem/1 var(--display); cursor: pointer; }
.partnership-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 20px; margin-top: 26px; }
.partnership-fields label { display: grid; gap: 7px; color: var(--green-light); font: 650 .66rem var(--technical); letter-spacing: .05em; }
.partnership-fields label > span { color: var(--dim); font-weight: 500; }
.partnership-fields input,
.partnership-fields select,
.partnership-fields textarea { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid rgba(184,243,199,.2); border-radius: 0; background: #03100c; color: var(--ink); font: 400 .92rem var(--display); }
.partnership-fields textarea { min-height: 86px; resize: vertical; }
.partnership-message { grid-column: 1 / -1; }
.partnership-email { margin-top: 22px; }
.partnership-fallback { margin: 16px 0 0; color: var(--dim); font: .65rem/1.45 var(--technical); }
.partnership-fallback a { color: var(--green-light); }
.institutional-dialog { width: min(820px,calc(100% - 32px)); max-height: min(90svh,860px); padding: 0; overflow: hidden; border: 1px solid rgba(184,243,199,.22); border-radius: 3px; background: #061713; color: var(--ink); box-shadow: 0 30px 90px rgba(0,0,0,.58); }
.institutional-dialog::backdrop { background: rgba(1,8,6,.8); backdrop-filter: blur(5px); }
.institutional-panel { max-height: min(90svh,860px); padding: clamp(30px,5vw,58px); overflow: auto; scrollbar-color: rgba(85,207,120,.45) transparent; }
.institutional-close { position: absolute; z-index: 2; top: 16px; right: 16px; display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid var(--line); background: #061713; color: var(--ink); font: 300 1.5rem/1 var(--display); cursor: pointer; }
.institutional-header { max-width: 690px; padding-right: 54px; }
.institutional-header h2 { max-width: 640px; margin: 0; font-size: clamp(2rem,4vw,3.3rem); font-weight: 660; letter-spacing: -.042em; line-height: .96; text-transform: uppercase; }
.institutional-header > p:last-child { max-width: 650px; margin: 20px 0 0; color: var(--green-light); font-size: clamp(.96rem,1.3vw,1.08rem); line-height: 1.55; }
.institutional-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(28px,5vw,52px); margin-top: 34px; }
.institutional-sections section { padding: 22px 0 24px; border-top: 1px solid rgba(184,243,199,.13); }
.institutional-sections h3 { margin: 0; color: var(--green-light); font: 700 .7rem/1.35 var(--technical); letter-spacing: .1em; text-transform: uppercase; }
.institutional-sections p { margin: 11px 0 0; color: var(--muted); font-size: .9rem; line-height: 1.58; }
.institutional-panel > footer { margin-top: 6px; padding-top: 18px; border-top: 1px solid rgba(184,243,199,.13); color: var(--dim); font: .62rem/1.45 var(--technical); letter-spacing: .08em; }
html.dialog-open,
html.dialog-open body { overflow: hidden; }
.development-status { grid-column: 1 / -1; display: flex; justify-content: center; gap: 8px 26px; color: var(--dim); text-align: center; }
.moment-final footer { grid-column: 1 / -1; display: flex; justify-content: space-between; padding-top: 13px; border-top: 1px solid rgba(184,243,199,.08); color: #52665b; }

.js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .6s ease,transform .75s cubic-bezier(.22,.75,.24,1); }
.js .reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 900px) {
  .journey-spine { opacity: .78; }
  .spine-desktop-path { display: none; }
  .spine-mobile-path { display: inline; }
  .hero-brand { font-size: clamp(3.6rem,8.8vw,5.8rem); }
  .hero-lockup h1 { font-size: clamp(1.2rem,2.52vw,1.42rem); }
  html[lang="en"] .hero-lockup h1 { font-size: clamp(1.12rem,2.35vw,1.32rem); }
  .moment-hero::before { left: -230px; width: clamp(430px,65vw,590px); opacity: .046; }
  .moment-hero::after { right: 44px; width: clamp(320px,49vw,420px); opacity: .03; }
  .start-link { transform: translateY(34px); }
  .moment-modes { grid-template-columns: 1fr 1fr; }
  .mode-stream { padding-inline: clamp(24px,5vw,48px); }
  .mode-stream-drive { top: -6vh; padding-right: clamp(76px,calc(9vw + 20px),96px); }
  .mode-stream-walk { top: 6vh; padding-left: clamp(58px,9vw,76px); }
  .mode-stream h3 { font-size: clamp(3.5rem,8.2vw,5.6rem); }
  .moment-map { grid-template-columns: 1fr; grid-template-rows: auto auto auto; align-content: center; gap: 12px; }
  .map-copy { display: grid; grid-template-columns: 1fr .65fr; gap: 12px 30px; align-items: end; }
  .map-copy .technical-label { grid-column: 1 / -1; }
  .map-copy h2 { font-size: clamp(2.25rem,5.4vw,3.8rem); }
  .map-copy > p:last-child { margin: 0; }
  .map-stage { width: min(940px,106%); margin: 0 auto; }
  .experience-copy { grid-template-columns: 1fr .85fr; }
  .moment-final { grid-template-columns: 1fr .42fr; gap: 16px 3vw; }
  .final-actions { top: -28px; }
  .final-lockup { top: -54px; }
  .final-actions { grid-template-columns: .8fr 1.2fr; gap: 20px; }
  .partnership-action { padding-left: 18px; }
}

@media (max-width: 640px) {
  .journey-header { height: 60px; padding-inline: 14px; }
  .header-brand span { display: none; }
  .header-brand img { width: 29px; height: 29px; }
  .technical-label { margin-bottom: 11px; }

  .moment-hero { padding: 66px 18px 30px; }
  .topography-hero { inset: 5% -75% -8% 5%; }
  .hero-lockup { grid-template-columns: 52px 1fr; column-gap: 9px; }
  .hero-brand-first { gap: 8px; }
  .hero-brand { font-size: clamp(2.75rem,12.8vw,3.5rem); line-height: .82; }
  .hero-lockup h1 { margin-top: 17px; font-size: clamp(.89rem,3.64vw,1.1rem); letter-spacing: .075em; }
  html[lang="en"] .hero-lockup h1 { font-size: clamp(.83rem,3.39vw,1.04rem); }
  .hero-modes { margin-top: 20px; gap: 12px; }
  .hero-modes strong { font-size: 1rem; }
  .hero-modes span:not(.mode-divider) { font-size: .57rem; letter-spacing: .025em; }
  .moment-hero::before { top: 42%; left: -205px; width: 340px; opacity: .04; }
  .moment-hero::after { top: 60%; right: 54px; width: 220px; opacity: .024; }
  .start-link { min-height: 50px; margin-top: 28px; gap: 18px; font-size: .75rem; transform: translateY(30px); }
  .moment-hero > .hero-geo { bottom: 15px; font-size: .54rem; }

  .moment-modes { display: grid; height: 100svh; min-height: 700px; grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; background: linear-gradient(166deg,#071914 0 49.8%,#082124 50.2% 100%); }
  .mode-stream { min-height: 0; padding: 62px 20px 20px; }
  .mode-stream-drive { grid-column: 1; grid-row: 1; top: 0; align-items: flex-start; padding: 46px 50px 30px 16px; text-align: left; }
  .mode-stream-walk { grid-column: 1; grid-row: 2; top: 0; align-items: flex-end; padding: 40px 42px 20px 50px; text-align: right; }
  .mode-stream h3 { margin: 8px 0 10px; font-size: clamp(3rem,14.8vw,3.85rem); }
  .mode-stream > p:not(.mode-index) { max-width: 340px; font-size: .82rem; line-height: 1.4; }
  .mode-mantra { margin-top: 10px; font-size: .56rem; }
  .mode-route { inset: 5% 0; height: 90%; transform: none; }
  .mode-route-desktop { display: none; }
  .mode-route-mobile { display: block; }
  .mode-route-road,
  .mode-route-walk { stroke-width: 1.6; }
  .js .moment-modes[data-motion-ready]:not(.is-animated) .mode-stream-drive { transform: translateY(10px); }
  .js .moment-modes[data-motion-ready]:not(.is-animated) .mode-stream-walk { transform: translateY(10px); }
  .js .moment-modes[data-motion-ready]:not(.is-animated) .mode-route-walk { clip-path: inset(0 0 100% 0); }
  @keyframes mode-walk-advance { from { clip-path: inset(0 0 100% 0); opacity: 0; } to { clip-path: inset(0 0 0 0); opacity: .72; } }

  .moment-map { min-height: 100svh; padding: 72px 18px 25px; align-content: center; }
  .map-copy { display: block; }
  .map-copy h2 { font-size: clamp(1.9rem,8.4vw,2.4rem); line-height: .97; }
  .map-copy > p:last-child { margin-top: 13px; font-size: .82rem; line-height: 1.44; }
  .map-stage { width: 116%; margin: 4px 0 0 -8%; }
  .location-signal { left: 58%; padding: 7px 9px 7px 6px; transform: translate(-50%,-50%) scale(.82); }
  .municipality-note { justify-self: start; font-size: .52rem; }

  .moment-experience { min-height: 100svh; padding: 70px 18px 26px; align-content: center; }
  .experience-copy { display: block; }
  .experience-copy h2 { font-size: clamp(1.8rem,7.6vw,2.18rem); }
  .experience-core { margin-top: 13px; font-size: .84rem; }
  .experience-track { height: auto; margin: 5px 0 0; }
  .route-graphic-desktop { display: none; }
  .route-graphic-mobile { display: block; }
  .node-title { font-size: 18px; }
  .node-detail { font-size: 9.5px; }
  .route-graphic-mobile .node-detail { text-anchor: start; transform: translateX(-35px); }
  .experience-rules { justify-content: flex-start; gap: 5px 18px; font-size: .54rem; }
  .experience-rules span + span::before { left: -11px; }

  .moment-final { display: grid; min-height: 100svh; grid-template-columns: 1fr; grid-template-rows: auto; align-content: center; gap: 12px; padding: 70px 18px 20px; }
  .topography-final { inset: -10% -90% 10% 15%; }
  .final-copy h2 { font-size: clamp(1.9rem,7.8vw,2.25rem); line-height: 1; }
  .final-copy > p:last-child { margin-top: 14px; font-size: .85rem; }
  .final-actions { top: 0; grid-column: 1; grid-template-columns: 1fr; gap: 12px; }
  .final-actions .technical-label { margin-bottom: 5px; }
  .contact-link { grid-column: 1; min-height: 58px; gap: 9px; font-size: .98rem; }
  .contact-link span { font-size: .58rem; }
  .partnership-action { padding: 10px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .partnership-action h3 { font-size: .98rem; }
  .partnership-action > p:not(.technical-label) { margin-top: 6px; font-size: .72rem; line-height: 1.38; }
  .partnership-trigger { min-height: 44px; margin-top: 2px; font-size: .6rem; }
  .final-lockup { top: 0; grid-column: 1; grid-row: auto; justify-self: stretch; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 13px; text-align: left; }
  .brand-resolution { grid-row: 1 / 3; display: flex; align-items: center; }
  .brand-resolution > span { width: 46px; height: 2px; background: linear-gradient(90deg,transparent,var(--green)); }
  .brand-resolution img { width: 48px; height: 48px; }
  .final-lockup > p { margin: 0; font-size: .88rem; }
  .final-taglines { grid-column: 2; margin-top: 0; font-size: .54rem; }
  .about-trigger { grid-column: 2; min-height: 34px; margin-top: 0; font-size: .56rem; }
  .development-status { grid-column: 1; flex-direction: column; gap: 2px; font-size: .54rem; }
  .moment-final footer { grid-column: 1; font-size: .5rem; }
  .partnership-form { padding: 24px 18px; }
  .partnership-fields { grid-template-columns: 1fr; gap: 12px; margin-top: 20px; }
  .partnership-message { grid-column: 1; }
  .institutional-dialog { width: calc(100% - 24px); max-height: 92svh; }
  .institutional-panel { max-height: 92svh; padding: 58px 20px 26px; }
  .institutional-close { top: 10px; right: 10px; }
  .institutional-header { padding-right: 0; }
  .institutional-header h2 { font-size: clamp(1.85rem,8.8vw,2.4rem); }
  .institutional-header > p:last-child { margin-top: 16px; font-size: .9rem; }
  .institutional-sections { grid-template-columns: 1fr; margin-top: 26px; }
  .institutional-sections section { padding: 18px 0 20px; }
  .institutional-sections p { font-size: .84rem; line-height: 1.55; }
}

@media (max-width: 370px) {
  .hero-brand { font-size: 2.7rem; }
  .hero-lockup h1 { font-size: .86rem; }
  html[lang="en"] .hero-lockup h1 { font-size: .81rem; }
  .hero-modes span:not(.mode-divider) { font-size: .51rem; }
  .moment-map { padding-top: 70px; }
  .map-copy h2 { font-size: 2rem; }
  .moment-final { padding-top: 70px; }
  .final-copy h2 { font-size: 1.98rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
  .js .reveal { opacity: 1; transform: none; }
  .spine-progress { stroke-dashoffset: 0; }
  .js .moment-modes[data-motion-ready] .mode-stream,
  .js .moment-modes[data-motion-ready] .mode-mantra,
  .js .moment-modes[data-motion-ready] .mode-route-marker { opacity: 1; transform: none; }
  .js .moment-modes[data-motion-ready] .mode-route-road { stroke-dasharray: 1; stroke-dashoffset: 0; }
  .js .moment-modes[data-motion-ready] .mode-route-walk { clip-path: none; opacity: .72; }
}
