:root {
  --paper: #f4f6f1;
  --ink: #263336;
  --muted: #687772;
  --moss: #718070;
  --line: rgba(38, 51, 54, 0.16);
  --display: "Bodoni Moda", Georgia, serif;
  --body: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --shell: min(1180px, calc(100vw - 64px));
}

*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { background: var(--paper); }
body { position: relative; isolation: isolate; min-width: 320px; color: var(--ink); background: var(--paper); font-family: var(--body); line-height: 1.65; -webkit-font-smoothing: antialiased; }
body::before { position: fixed; inset: 0; z-index: -1; content: ""; background-image: url("data:image/svg+xml,%3Csvg width='900' height='780' viewBox='0 0 900 780' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%238da68e' stroke-width='1'%3E%3Cpath d='M-100 157C70 25 269 39 343 162c72 119 224 99 336 21 117-82 220-37 302 65'/%3E%3Cpath d='M-117 207C65 68 261 85 331 203c67 113 213 94 324 17 126-88 240-37 326 77'/%3E%3Cpath d='M-132 257C62 111 252 132 319 244c62 105 201 91 314 15 136-91 253-34 348 88'/%3E%3Cpath d='M-149 307C58 155 244 179 307 286c57 96 190 87 303 14 148-96 271-30 371 102'/%3E%3Cpath d='M-166 357C53 202 235 226 296 328c52 88 177 83 291 15 159-100 287-26 394 114'/%3E%3C/g%3E%3C/svg%3E"), radial-gradient(circle at 74% -5%, rgba(255, 253, 247, 0.92), transparent 34%); background-position: center 68px, center; background-repeat: no-repeat; background-size: 960px auto, auto; opacity: 0.2; pointer-events: none; }
html { scroll-behavior: smooth; }
a { color: inherit; }
:focus-visible { outline: 3px solid #d9a9aa; outline-offset: 4px; }

.skip-link { position: fixed; top: 14px; left: 14px; z-index: 10; padding: 10px 14px; color: var(--paper); background: var(--ink); font-weight: 700; text-decoration: none; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.site-nav { display: flex; align-items: center; justify-content: space-between; width: var(--shell); min-height: 88px; margin: 0 auto; border-bottom: 1px solid var(--line); }
.site-nav a { text-decoration: none; }
.site-nav__brand { font-family: var(--display); font-size: 0.82rem; font-weight: 600; letter-spacing: 0.24em; }
.site-nav__back, .eyebrow { color: var(--moss); font-size: 0.67rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.site-language { display: inline-flex; gap: 2px; align-items: center; padding: 3px; border: 1px solid var(--line); border-radius: 999px; background: rgba(244, 246, 241, 0.76); }
.site-language a { display: grid; min-width: 34px; min-height: 28px; padding: 0 7px; border-radius: 999px; place-items: center; color: var(--moss); font-size: 0.61rem; font-weight: 700; letter-spacing: 0.08em; }
.site-language a[aria-current="page"] { color: var(--paper); background: var(--ink); }

.adventure-hero { position: relative; width: var(--shell); height: clamp(290px, 38vw, 470px); margin: 34px auto 0; overflow: hidden; background: #b7cbd2; }
.adventure-hero img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 70%; }
.adventure-hero::after { position: absolute; right: 0; bottom: 0; left: 0; height: 38%; content: ""; background: linear-gradient(to bottom, transparent, rgba(15, 28, 27, 0.66)); pointer-events: none; }
.adventure-hero__title { position: absolute; right: clamp(22px, 4vw, 56px); bottom: clamp(20px, 3.5vw, 42px); left: clamp(22px, 4vw, 56px); z-index: 1; color: #fffef9; font-family: var(--display); font-size: clamp(1.35rem, 2.65vw, 3rem); font-weight: 500; letter-spacing: -0.045em; line-height: 1.02; text-shadow: 0 1px 14px rgba(0, 0, 0, 0.18); }
.adventure-hero__title span { display: block; white-space: nowrap; }
.adventure-story { width: var(--shell); margin: 0 auto; padding: clamp(56px, 8vw, 104px) 0; }
.story-lead { max-width: 1100px; }
.story-lead__intro { position: relative; margin-top: 22px; padding-bottom: 28px; font-family: var(--display); font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 500; letter-spacing: -0.06em; line-height: 1.03; }
.story-lead__intro::after { position: absolute; bottom: 0; left: 0; width: min(78%, 860px); height: 1px; content: ""; background: var(--line); }
.story-lead__intro span { display: block; }
.intro-mobile { display: none !important; }
.trip-facts { display: grid; gap: 13px; max-width: 640px; margin-top: clamp(44px, 6vw, 72px); padding: 0; list-style: none; }
.trip-facts li { position: relative; padding-left: 22px; color: var(--muted); font-size: 0.92rem; }
.trip-facts li::before { position: absolute; top: 0.72em; left: 0; width: 7px; height: 7px; border-radius: 50%; content: ""; background: var(--moss); }
.trip-facts strong { color: var(--ink); font-weight: 700; }
.story-index { color: var(--moss); font-size: 0.64rem; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; }
.story-section { display: grid; grid-template-columns: minmax(0, 0.88fr) minmax(300px, 0.62fr); align-items: start; gap: clamp(38px, 7vw, 104px); margin-top: clamp(72px, 9vw, 118px); }
.story-section--split .story-photo { grid-column: 2; }
.story-section--split .story-section__copy { grid-column: 1; grid-row: 1; }
.story-section--reverse .story-section__copy { grid-column: 2; }
.story-section--reverse .story-photo { grid-column: 1; }
.story-section__copy { max-width: 540px; }
.story-section__copy h2, .story-gallery h2 { margin-top: 18px; font-family: var(--display); font-size: clamp(2rem, 3.65vw, 3.95rem); font-weight: 500; letter-spacing: -0.06em; line-height: 1.02; }
.story-section__copy p:not(.story-index) { margin-top: 23px; color: var(--muted); font-size: 0.95rem; }
.story-section__copy p + p { margin-top: 16px; }
.story-section__copy a { color: var(--ink); font-weight: 700; text-decoration-color: rgba(113, 128, 112, 0.7); text-underline-offset: 3px; }
.story-inline-photo { width: min(52%, 245px); margin-top: 24px; overflow: hidden; }
.story-inline-photo img { display: block; width: 100%; height: auto; }
.story-photo { overflow: hidden; background: #d5ddd7; }
.story-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.story-photo--tall { height: clamp(380px, 44vw, 645px); }
.story-photo--captioned { overflow: visible; background: transparent; }
.story-photo--captioned img { height: calc(100% - 43px); object-fit: contain; }
.story-photo--captioned figcaption { padding-top: 9px; color: var(--muted); font-size: 0.64rem; font-weight: 600; letter-spacing: 0.035em; line-height: 1.45; text-align: center; }
.story-photo--contain { background: transparent; }
.story-photo--contain img { object-fit: contain; }
.story-photo--wide { height: clamp(330px, 42vw, 545px); }
.story-photo--wide { background: transparent; }
.story-photo--wide img { object-fit: contain; }
.story-photo--video { max-width: 430px; justify-self: end; background: #182420; }
.story-photo--video video { display: block; width: 100%; height: auto; }
.story-media-pair { display: grid; grid-column: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 1.8vw, 24px); align-items: start; }
.story-photo--natural img { height: auto; object-fit: contain; }
.story-photo--natural video { display: block; width: 100%; height: auto; background: #182420; }
.story-section--feature { grid-template-columns: minmax(0, 1.12fr) minmax(280px, 0.52fr); gap: clamp(38px, 8vw, 120px); }
.story-section--feature .story-photo { grid-column: 1; }
.story-section--feature .story-section__copy { grid-column: 2; grid-row: 1; }
.story-section--panorama { display: block; }
.story-photo--panorama { width: 100%; height: clamp(350px, 56vw, 680px); }
.story-section--panorama .story-section__copy { margin: 38px 0 0 auto; }
.story-gallery { margin-top: clamp(80px, 11vw, 140px); padding-top: clamp(64px, 8vw, 98px); border-top: 1px solid var(--line); }
.story-gallery__heading { display: grid; grid-template-columns: minmax(0, 0.75fr) minmax(300px, 1fr); gap: 40px; align-items: start; }
.story-gallery h2 { max-width: 14ch; margin-top: 0; }
.story-gallery__grid { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-flow: dense; gap: clamp(12px, 1.8vw, 24px); margin-top: clamp(44px, 7vw, 80px); }
.story-gallery figure { min-height: 260px; overflow: hidden; background: #d5ddd7; }
.story-gallery figure:nth-child(1) { grid-column: span 4; grid-row: span 2; }
.story-gallery figure:nth-child(2) { grid-column: span 5; }
.story-gallery figure:nth-child(3) { grid-column: span 3; }
.story-gallery figure:nth-child(4) { grid-column: span 3; }
.story-gallery figure:nth-child(5) { grid-column: span 5; grid-row: span 2; }
.story-gallery figure:nth-child(6) { grid-column: span 4; }
.story-gallery figure:nth-child(7) { grid-column: span 3; }
.story-gallery figure:nth-child(8) { grid-column: span 4; grid-row: span 2; }
.story-gallery figure:nth-child(9) { grid-column: span 5; }
.story-gallery figure:nth-child(10) { grid-column: span 3; }
.story-gallery figure:nth-child(11) { grid-column: span 3; }
.story-gallery figure:nth-child(12) { grid-column: span 5; grid-row: span 2; }
.story-gallery figure:nth-child(13) { grid-column: span 4; }
.story-gallery figure:nth-child(14) { grid-column: span 3; }
.story-gallery figure:nth-child(15) { grid-column: span 4; }
.story-gallery img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 260ms ease; }
.story-gallery video { display: block; width: 100%; height: 100%; background: #182420; object-fit: cover; }
.story-gallery figure:hover img { transform: scale(1.025); }

.scroll-ready .scroll-reveal { opacity: 0; transform: translateY(44px); transition: opacity 780ms cubic-bezier(.22, .61, .36, 1), transform 780ms cubic-bezier(.22, .61, .36, 1); }
.scroll-ready .scroll-reveal.is-visible { opacity: 1; transform: translateY(0); }
.scroll-ready .story-section .story-photo { clip-path: inset(0 0 13% 0); opacity: 0; transform: scale(0.965); transition: clip-path 950ms cubic-bezier(.22, .61, .36, 1) 90ms, opacity 700ms ease 90ms, transform 950ms cubic-bezier(.22, .61, .36, 1) 90ms; }
.scroll-ready .story-section.is-visible .story-photo { clip-path: inset(0); opacity: 1; transform: scale(1); }
.scroll-ready .story-gallery figure { opacity: 0; transform: translateY(26px); transition: opacity 520ms ease, transform 520ms cubic-bezier(.22, .61, .36, 1); }
.scroll-ready .story-gallery.is-visible figure { opacity: 1; transform: translateY(0); }
.scroll-ready .story-gallery.is-visible figure:nth-child(2) { transition-delay: 70ms; }
.scroll-ready .story-gallery.is-visible figure:nth-child(3) { transition-delay: 120ms; }
.scroll-ready .story-gallery.is-visible figure:nth-child(4) { transition-delay: 160ms; }
.scroll-ready .story-gallery.is-visible figure:nth-child(5) { transition-delay: 200ms; }
.scroll-ready .story-gallery.is-visible figure:nth-child(6) { transition-delay: 240ms; }
.scroll-ready .story-gallery.is-visible figure:nth-child(7) { transition-delay: 280ms; }
.scroll-ready .story-gallery.is-visible figure:nth-child(8) { transition-delay: 320ms; }
.scroll-ready .story-gallery.is-visible figure:nth-child(9) { transition-delay: 360ms; }
.scroll-ready .story-gallery.is-visible figure:nth-child(10) { transition-delay: 400ms; }
.scroll-ready .story-gallery.is-visible figure:nth-child(11) { transition-delay: 440ms; }
.scroll-ready .story-gallery.is-visible figure:nth-child(12) { transition-delay: 480ms; }
.scroll-ready .story-gallery.is-visible figure:nth-child(13) { transition-delay: 520ms; }
.scroll-ready .story-gallery.is-visible figure:nth-child(14) { transition-delay: 560ms; }
.scroll-ready .story-gallery.is-visible figure:nth-child(15) { transition-delay: 600ms; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
}

@media (max-width: 720px) {
  :root { --shell: min(100% - 40px, 600px); }
  .site-nav { min-height: 70px; }
  .site-nav__brand { font-size: 0.7rem; letter-spacing: 0.17em; }
  .adventure-hero { height: 280px; margin-top: 22px; }
  .adventure-hero__title { font-size: clamp(0.9rem, 4.1vw, 1.35rem); }
  .story-lead__intro { font-size: clamp(0.95rem, 4.5vw, 1.15rem); letter-spacing: -0.04em; line-height: 1.14; }
  .story-lead__intro::after { width: 100%; }
  .intro-desktop { display: none !important; }
  .intro-mobile { display: block !important; white-space: nowrap; }
  .story-section, .story-section--feature { grid-template-columns: 1fr; gap: 32px; margin-top: 70px; }
  .story-section--split .story-photo, .story-section--split .story-section__copy, .story-section--reverse .story-section__copy, .story-section--reverse .story-photo, .story-section--feature .story-photo, .story-section--feature .story-section__copy { grid-column: auto; grid-row: auto; }
  .story-section--split .story-section__copy, .story-section--reverse .story-section__copy, .story-section--feature .story-section__copy { order: -1; }
  .story-media-pair { grid-column: auto; }
  .story-inline-photo { width: min(68%, 245px); }
  .story-photo--tall, .story-photo--wide { height: min(128vw, 580px); }
  .story-photo--video { max-width: 100%; justify-self: auto; }
  .story-photo--panorama { height: 370px; }
  .story-section--panorama .story-section__copy { margin: 32px 0 0; }
  .story-gallery__heading { grid-template-columns: 1fr; gap: 18px; }
  .story-gallery__grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .story-gallery figure, .story-gallery figure:nth-child(n) { grid-column: auto; grid-row: auto; min-height: 210px; }
  .story-gallery figure:nth-child(1), .story-gallery figure:nth-child(5) { grid-row: span 2; }
}
