:root {
  --ink: #0b0e10;
  --ink-soft: #111518;
  --paper: #d8d2c6;
  --paper-light: #e5dfd3;
  --white: #e8e5dc;
  --muted: #b9b7b1;
  --peach: #c99c89;
  --tape-yellow: rgba(220, 194, 119, .78);
  --line: rgba(232, 229, 220, 0.42);
  --serif: "Cormorant Garamond", Georgia, serif;
  --script: "Bad Script", "Segoe Print", cursive;
  --mono: "IBM Plex Mono", "Courier New", monospace;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  background: var(--ink);
}

body {
  margin: 0;
  color: var(--white);
  background: var(--ink);
  font-family: var(--mono);
  font-weight: 300;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

img {
  display: block;
  max-width: 100%;
}

.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;
}

.site-shell {
  width: 100%;
  min-width: 320px;
  background: var(--ink);
}

.section-dark,
.side-panel {
  position: relative;
  isolation: isolate;
}

.section-dark {
  background: transparent;
}

.side-panel {
  background-color: var(--ink);
  background-image:
    radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.025), transparent 28%),
    radial-gradient(circle at 87% 61%, rgba(255, 255, 255, 0.018), transparent 20%);
}

/* Hero */
.hero {
  position: relative;
  display: grid;
  grid-template-columns: 218px minmax(0, 1fr);
  min-height: 650px;
  background: #071015;
}

.hero::after {
  content: "";
  position: absolute;
  z-index: 4;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 46px;
  pointer-events: none;
  background: linear-gradient(180deg, transparent, var(--ink));
}

.side-panel {
  z-index: 5;
  min-height: 650px;
  padding: 47px 34px 28px 39px;
  box-shadow: 20px 0 48px rgba(0, 0, 0, 0.26);
}

.side-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0.35;
  background:
    linear-gradient(155deg, transparent 0 43%, rgba(120, 129, 128, 0.11) 43.2% 44%, transparent 44.2%),
    radial-gradient(ellipse at 3% 44%, rgba(255,255,255,.05), transparent 24%),
    linear-gradient(180deg, rgba(6, 11, 14, 0.1), rgba(6, 9, 11, 0.7));
}

.brand {
  position: relative;
  display: block;
  width: 145px;
  height: 114px;
}

.brand-script {
  position: absolute;
  z-index: 2;
  left: 0;
  top: -7px;
  font: 400 30px/1.2 var(--script);
  letter-spacing: -1.4px;
  transform: rotate(-4deg);
}

.brand-mountain {
  position: absolute;
  width: 94px;
  height: 47px;
  right: -3px;
  top: 25px;
  object-fit: contain;
  filter:
    grayscale(1)
    brightness(2.35)
    contrast(1.12)
    drop-shadow(0 0 0 #e8e5dc)
    drop-shadow(0 0 0 #e8e5dc);
  opacity: 1;
}

.brand-caption {
  position: absolute;
  left: 8px;
  bottom: 0;
  text-transform: uppercase;
  letter-spacing: 1.45px;
  font: 400 10px/1 var(--mono);
}

.main-nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin-top: 27px;
}

.main-nav a {
  position: relative;
  font: 400 20px/1.55 var(--script);
  color: #dcdad3;
  opacity: 0.86;
  transform: rotate(-2deg);
  transition: color 180ms ease, transform 180ms ease;
}

.main-nav a::after {
  content: "";
  position: absolute;
  left: 3px;
  right: -7px;
  bottom: 4px;
  height: 1px;
  background: var(--peach);
  opacity: 0;
  transform: scaleX(0) rotate(-2deg);
  transform-origin: left center;
  transition: opacity 160ms ease, transform 180ms ease;
}

.main-nav a:nth-child(even) { transform: translateX(2px) rotate(1deg); }
.main-nav a:hover,
.main-nav a:focus-visible {
  color: #fff;
  transform: translateX(6px) rotate(-1deg);
}

.main-nav a:hover::after,
.main-nav a:focus-visible::after {
  opacity: 1;
  transform: scaleX(1) rotate(-2deg);
}

.paper-note {
  position: absolute;
  left: 13px;
  top: 467px;
  width: 182px;
  min-height: 99px;
  padding: 20px 16px 14px 45px;
  color: #2b2b29;
  background: url("assets/textures/torn-planner-wide-v1.png") center / 100% 100% no-repeat;
  font: 400 11px/1.55 var(--mono);
  transform: rotate(-5deg);
  filter: drop-shadow(0 9px 9px rgba(0,0,0,.34));
}

.paper-note::after {
  content: none;
}

.paperclip {
  position: absolute;
  width: 17px;
  height: 39px;
  right: 15px;
  top: -16px;
  border: 1.5px solid #9a816d;
  border-radius: 12px;
  transform: rotate(-19deg);
  z-index: 2;
}

.paperclip::after {
  content: "";
  position: absolute;
  inset: 4px 4px 3px;
  border: 1px solid #9a816d;
  border-radius: 9px;
}

.socials {
  position: absolute;
  display: flex;
  gap: 10px;
  left: 39px;
  bottom: 25px;
}

.socials a {
  width: 30px;
  height: 30px;
  transition: transform 180ms ease;
}

.socials a:hover { transform: translateY(-3px); }
.socials img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: grayscale(1) brightness(1.15);
  opacity: 0.92;
}

.menu-toggle { display: none; }

.hero-stage {
  position: relative;
  min-width: 0;
  min-height: 650px;
  overflow: hidden;
  background-image:
    linear-gradient(90deg, rgba(3,10,14,.54) 0, rgba(3,10,14,.12) 40%, rgba(3,8,12,.06) 68%, rgba(3,8,12,.28) 100%),
    linear-gradient(0deg, rgba(7,10,12,.93) 0, rgba(7,10,12,.09) 28%, transparent 56%),
    url("assets/images/hero-aurora.jpg");
  background-size: cover;
  background-position: 56% center;
}

.hero-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 73% 18%, transparent 0 22%, rgba(3,8,11,.07) 50%, rgba(3,8,11,.28) 100%),
    url("assets/textures/dark-paper-v1.png") center / 640px 640px;
  mix-blend-mode: soft-light;
}

.hero-copy {
  position: absolute;
  z-index: 2;
  left: clamp(43px, 6vw, 78px);
  top: 131px;
}

.eyebrow {
  margin: 0 0 27px;
  text-transform: uppercase;
  letter-spacing: .7px;
  font: 300 10px/1.4 var(--mono);
}

.eyebrow::after {
  content: "";
  display: block;
  width: 48px;
  margin-top: 13px;
  border-top: 1.3px solid var(--white);
  transform: rotate(-3deg);
}

.hero-title {
  position: relative;
  width: 410px;
  margin: 0;
  font-weight: 400;
}

.hero-title > span {
  display: block;
  text-transform: uppercase;
  font: 400 39px/.98 var(--serif);
  letter-spacing: -.7px;
}

.hero-title em {
  position: relative;
  display: block;
  width: max-content;
  margin: 18px 0 0 -9px;
  font: 400 63px/.9 var(--script);
  letter-spacing: -2px;
  white-space: nowrap;
  transform: rotate(-2deg) scaleX(1.55);
  transform-origin: left center;
}

.hero-title em::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: -11px;
  top: 2px;
  width: 236px;
  height: 59px;
  border: 1.6px solid var(--peach);
  border-left-color: transparent;
  border-radius: 50%;
  transform: rotate(-3deg);
}

.hero-title i {
  position: absolute;
  left: 330px;
  bottom: 15px;
  font: 400 34px/1 var(--script);
  transform: rotate(-8deg);
}

.hero-lead {
  margin: 36px 0 17px;
  font: 300 10.5px/1.55 var(--mono);
  color: #efeee9;
}

.sketch-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 23px;
  min-width: 192px;
  min-height: 48px;
  padding: 8px 22px 9px 36px;
  text-transform: uppercase;
  letter-spacing: .5px;
  font: 300 10px/1 var(--mono);
}

.sketch-button::before,
.sketch-button::after {
  content: "";
  position: absolute;
  inset: 2px -6px 0 0;
  border: 1px solid var(--peach);
  border-left-color: transparent;
  border-radius: 50%;
  transform: rotate(-1deg);
  transition: background 200ms ease, transform 200ms ease;
}

.sketch-button::after {
  inset: 6px -1px 3px -8px;
  opacity: .55;
  transform: rotate(3deg);
}

.sketch-button:hover::before,
.sketch-button:focus-visible::before {
  background: rgba(201,156,137,.1);
  transform: rotate(1deg) scale(1.025);
}

.sketch-button span,
.sketch-button img,
.sketch-button b { position: relative; z-index: 1; }
.sketch-button .button-arrow { width: 42px; height: 18px; object-fit: contain; filter: brightness(1.08); }
.sketch-button b { font: 400 25px/1 var(--script); }

.hero-whisper {
  position: absolute;
  z-index: 2;
  right: 63px;
  top: 401px;
  width: 135px;
  height: 135px;
  font: 400 17px/1.45 var(--script);
  text-align: center;
  transform: rotate(-4deg);
}

.hero-whisper img {
  position: absolute;
  left: -32px;
  top: -28px;
  width: 155px;
  height: 130px;
  object-fit: contain;
  transform: rotate(89deg) scaleX(-1);
  opacity: .88;
}

.scroll-dots {
  position: absolute;
  z-index: 3;
  right: 62px;
  bottom: 73px;
  display: flex;
  gap: 9px;
  transform: rotate(-8deg);
}

.scroll-dots span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(235,231,222,.25);
}
.scroll-dots span:first-child { background: rgba(235,231,222,.9); }

/* Tours */
.tours {
  min-height: 415px;
  padding: 19px 7vw 3px;
}

.tours-heading {
  position: relative;
  display: flex;
  align-items: flex-start;
  width: min(770px, 100%);
  height: 93px;
  margin: 0 auto;
  left: 17px;
}

.tours-heading h2 {
  margin: 0;
  font: 400 54px/1 var(--script);
  text-transform: uppercase;
  transform: rotate(-3deg);
}

.tours-heading p {
  margin: -8px 0 0 2px;
  font: 400 25px/1 var(--script);
  transform: rotate(-2deg);
}

.heading-arrow {
  width: 93px;
  height: 44px;
  margin: 17px 0 0 58px;
  object-fit: contain;
  filter: brightness(1.08);
  transform: rotate(-4deg);
}

.all-tours {
  position: absolute;
  top: 14px;
  right: 0;
  font: 300 10px/1.5 var(--mono);
}

.all-tours::after {
  content: "";
  display: block;
  width: 122px;
  margin-top: 8px;
  border-top: 1px solid rgba(232,229,220,.72);
  transform: rotate(2deg);
}

.tour-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 18px;
  width: min(742px, 100%);
  margin: 0 auto;
  padding-top: 4px;
  position: relative;
  left: 27px;
}

.tour-card {
  position: relative;
  min-height: 287px;
  color: #1e2222;
  background:
    linear-gradient(100deg, rgba(255,255,255,.25), transparent 35%),
    var(--paper);
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 4px;
  box-shadow: 0 12px 18px rgba(0,0,0,.34);
  transition: transform 220ms ease, box-shadow 220ms ease;
}

.tour-card::after,
.polaroid::after,
.map-note::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .14;
  mix-blend-mode: multiply;
  background: url("assets/textures/warm-paper-v1.png") center / 320px 320px;
}

.tour-card-one { transform: rotate(.1deg); }
.tour-card-two { transform: translateY(-24px) rotate(2.2deg); }
.tour-card-three { transform: translateY(-15px) rotate(1.4deg); }
.tour-card:hover { z-index: 3; box-shadow: 0 19px 32px rgba(0,0,0,.55); }
.tour-card-one:hover { transform: translateY(-7px) rotate(-1.2deg); }
.tour-card-two:hover { transform: translateY(-32px) rotate(.8deg); }
.tour-card-three:hover { transform: translateY(-23px) rotate(.2deg); }

.tape,
.photo-tape {
  position: absolute;
  z-index: 3;
  top: -15px;
  left: 50%;
  width: 67px;
  height: 27px;
  padding-top: 7px;
  color: #42413c;
  text-align: center;
  background: var(--tape-yellow);
  clip-path: polygon(2% 12%, 10% 5%, 17% 12%, 27% 4%, 35% 11%, 46% 1%, 58% 9%, 68% 2%, 78% 9%, 89% 1%, 99% 12%, 96% 91%, 84% 95%, 72% 88%, 61% 98%, 49% 89%, 38% 96%, 27% 88%, 17% 97%, 3% 90%);
  font: 400 10px/1 var(--script);
  transform: translateX(-50%) rotate(-2deg);
  box-shadow: 0 3px 5px rgba(0,0,0,.2);
}

.tour-image-wrap {
  height: 168px;
  margin: 5px 5px 0;
  overflow: hidden;
  background: #88959a;
}

.tour-card-two .tour-image-wrap { height: 164px; }
.tour-image-wrap img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78) contrast(.97) brightness(.89); }

.tour-card-body {
  position: relative;
  min-height: 112px;
  padding: 8px 18px 11px;
}

.tour-card-body h3 {
  min-height: 45px;
  margin: 0;
  font: 400 20px/1.02 var(--script);
  letter-spacing: -.5px;
}

.tour-card-body > p {
  margin: 3px 0 11px;
  font: 400 9px/1.4 var(--mono);
}

.tour-price {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 8px;
  border-top: 1px solid rgba(31,34,34,.11);
  font: 400 9px/1 var(--mono);
}

.tour-price b { font: 400 21px/1 var(--serif); }

/* About collage */
.about {
  display: grid;
  grid-template-columns: 315px minmax(0, 1fr);
  min-height: 380px;
  padding: 15px 5.8vw 10px 6.2vw;
  overflow: hidden;
}

.about-copy {
  position: relative;
  z-index: 4;
  padding-top: 20px;
}

.about-copy h2 {
  margin: 0 0 15px;
  font: 400 42px/.98 var(--script);
  transform: rotate(-3deg);
}

.about-copy h2 span { margin-left: 42px; white-space: nowrap; }
.about-kicker {
  margin: 0 0 15px !important;
  text-transform: uppercase;
  letter-spacing: .8px;
  font-size: 11px !important;
}

.about-copy > p {
  margin: 0 0 12px;
  color: #d4d3ce;
  font: 300 9.5px/1.52 var(--mono);
}

.about-button {
  min-width: 204px;
  min-height: 43px;
  margin-top: 4px;
  padding-left: 34px;
}

.story-collage {
  position: relative;
  width: min(100%, 590px);
  min-height: 354px;
}

.polaroid {
  position: absolute;
  margin: 0;
  padding: 6px 6px 19px;
  background: var(--paper);
  border: 1px solid rgba(255,255,255,.45);
  box-shadow: 0 12px 19px rgba(0,0,0,.4);
}

.polaroid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.72) contrast(.96) brightness(.9);
}

.portrait-photo {
  z-index: 2;
  left: 43px;
  top: 0;
  width: 281px;
  height: 217px;
  transform: rotate(-2deg);
}

.whale-photo {
  z-index: 4;
  left: 34px;
  top: 198px;
  width: 240px;
  height: 153px;
  transform: rotate(-1deg);
}

.photo-tape {
  width: 80px;
  height: 25px;
  padding: 0;
  opacity: .82;
}

.map-note {
  position: absolute;
  z-index: 3;
  top: -4px;
  right: 38px;
  width: 236px;
  height: 185px;
  padding: 17px 19px;
  color: #54534f;
  background: url("assets/textures/torn-planner-wide-v1.png") center / 100% 100% no-repeat;
  filter: drop-shadow(0 10px 10px rgba(0,0,0,.34));
  transform: rotate(4deg);
}

.map-note p {
  position: relative;
  z-index: 2;
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 1px;
  font: 400 10px/1.5 var(--mono);
}

.map-note .map-raster {
  position: absolute;
  left: 8px;
  bottom: -4px;
  width: 224px;
  height: 142px;
  object-fit: contain;
  opacity: .72;
  mix-blend-mode: multiply;
}

.aurora-note {
  position: absolute;
  z-index: 5;
  right: 63px;
  top: 178px;
  width: 245px;
  height: 154px;
  padding: 34px 25px;
  background-image:
    linear-gradient(90deg, rgba(4,11,14,.38), rgba(4,11,14,.08)),
    url("assets/images/hero-aurora.jpg");
  background-size: 290% auto;
  background-position: 38% 2%;
  border: 6px solid var(--paper);
  box-shadow: 0 12px 17px rgba(0,0,0,.43);
  font: 400 18px/1.28 var(--script);
  transform: rotate(3deg);
}

.aurora-note::before {
  content: "";
  position: absolute;
  width: 77px;
  height: 23px;
  right: -18px;
  top: -16px;
  background: var(--tape-yellow);
  clip-path: polygon(2% 11%, 15% 3%, 28% 9%, 42% 1%, 55% 8%, 68% 2%, 83% 9%, 98% 3%, 96% 92%, 82% 98%, 69% 89%, 53% 97%, 41% 89%, 27% 96%, 13% 88%, 2% 95%);
  transform: rotate(-11deg);
}

.dried-flower-wrap {
  position: absolute;
  z-index: 4;
  right: 25px;
  top: 86px;
  width: 145px;
  height: 300px;
  transform: rotate(15deg);
  transform-origin: 55% 100%;
}

.dried-flower {
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: saturate(.76) brightness(.82) contrast(1.08);
  opacity: .88;
}

/* Benefits */
.benefits {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  align-items: center;
  min-height: 101px;
  padding: 18px 4.8vw 28px;
}

.benefits article {
  display: grid;
  grid-template-columns: 47px minmax(0, 1fr);
  gap: 10px;
  min-height: 56px;
  padding: 0 18px;
  border-right: 1px solid rgba(232,229,220,.28);
}

.benefits article:first-child { padding-left: 0; }
.benefits article:last-child { padding-right: 0; border-right: 0; }
.benefits .benefit-icon { width: 42px; height: 42px; object-fit: contain; filter: grayscale(1) brightness(1.18); opacity: .88; }
.benefits .benefit-icon-mountain {
  width: 47px;
  filter:
    grayscale(1)
    brightness(2.25)
    contrast(1.1)
    drop-shadow(0 0 0 #e8e5dc)
    drop-shadow(0 0 0 #e8e5dc);
  opacity: .94;
}
.benefits h3 { margin: 0 0 4px; font: 400 16px/1.15 var(--script); white-space: nowrap; }
.benefits p { margin: 0; color: #c7c5bf; font: 300 8.5px/1.45 var(--mono); }

/* Second frame */
.journey {
  position: relative;
  min-height: 430px;
  overflow: hidden;
  border-top: 1px solid rgba(232,229,220,.06);
}

.journey::after {
  content: "";
  position: absolute;
  right: -45px;
  top: 34px;
  width: 220px;
  height: 360px;
  opacity: .13;
  background: repeating-linear-gradient(78deg, transparent 0 13px, rgba(219,217,208,.45) 14px 16px, transparent 17px 25px);
  transform: rotate(-8deg);
  pointer-events: none;
}

.journey-heading {
  position: absolute;
  z-index: 4;
  left: 6.2vw;
  top: 58px;
  width: 240px;
}

.journey-heading p {
  margin: 0 0 14px;
  text-transform: uppercase;
  letter-spacing: .8px;
  font: 300 8.5px/1.5 var(--mono);
}

.journey-heading h2 {
  margin: 0;
  font: 400 43px/.88 var(--serif);
  text-transform: uppercase;
}

.journey-heading h2 span {
  display: block;
  margin: 6px 0 0 10px;
  color: #e5d4c9;
  font: 400 48px/.95 var(--script);
  text-transform: none;
  transform: rotate(-3deg);
}

.journey-heading .journey-arrow {
  width: 102px;
  height: 61px;
  margin: 15px 0 0 85px;
  object-fit: contain;
  transform: rotate(6deg) scaleX(-1);
  opacity: .86;
}

.journey-photo {
  z-index: 2;
  left: 255px;
  top: 45px;
  width: 444px;
  height: 324px;
  padding-bottom: 42px;
  transform: rotate(-2deg);
}

.journey-photo img { height: 100%; }
.journey-photo figcaption {
  position: absolute;
  left: 20px;
  bottom: 8px;
  color: #333735;
  font: 400 16px/1 var(--script);
  transform: rotate(-1deg);
}

.checklist-paper {
  position: absolute;
  z-index: 5;
  right: 5.7vw;
  top: 27px;
  width: 287px;
  min-height: 362px;
  padding: 27px 29px 24px;
  color: #2d312f;
  background:
    repeating-linear-gradient(0deg, transparent 0 25px, rgba(92,110,114,.13) 25px 26px),
    linear-gradient(105deg, rgba(255,255,255,.22), transparent 37%),
    var(--paper-light);
  clip-path: polygon(1% 6%, 9% 2%, 18% 5%, 27% 1%, 37% 4%, 46% 0, 56% 4%, 66% 1%, 76% 5%, 86% 1%, 98% 7%, 96% 17%, 100% 29%, 96% 40%, 100% 53%, 97% 65%, 100% 78%, 96% 91%, 88% 98%, 77% 94%, 66% 99%, 55% 95%, 44% 99%, 34% 95%, 23% 99%, 12% 94%, 2% 98%, 5% 84%, 1% 72%, 5% 58%, 1% 45%, 5% 31%, 1% 19%);
  box-shadow: 0 14px 25px rgba(0,0,0,.43);
  transform: rotate(2deg);
}

.checklist-paper::after,
.review-note::after,
.journal-paper::after,
.contact-paper::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .12;
  pointer-events: none;
  background: url("assets/textures/warm-paper-v1.png") center / 360px 360px;
  mix-blend-mode: multiply;
}

.paper-pin {
  position: absolute;
  top: -15px;
  left: 52%;
  width: 83px;
  height: 29px;
  background: var(--tape-yellow);
  clip-path: polygon(1% 10%, 14% 3%, 27% 9%, 39% 1%, 52% 8%, 64% 2%, 77% 9%, 91% 2%, 99% 12%, 96% 91%, 83% 98%, 70% 89%, 57% 97%, 44% 89%, 31% 96%, 18% 88%, 2% 95%);
  transform: translateX(-50%) rotate(-5deg);
}

.checklist-caption {
  margin: 0 0 15px;
  text-transform: uppercase;
  letter-spacing: 1px;
  font: 400 9px/1.4 var(--mono);
}

.checklist-paper ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.checklist-paper li {
  display: grid;
  grid-template-columns: 31px 1fr;
  align-items: center;
  gap: 8px;
  min-height: 35px;
  border-bottom: 1px solid rgba(45,49,47,.13);
  font: 400 9px/1.4 var(--mono);
}

.checklist-paper li b {
  font: 400 22px/1 var(--serif);
  color: #7d665a;
}

.checklist-paper em {
  display: block;
  margin: 13px 0 0 31px;
  font: 400 17px/1.15 var(--script);
  transform: rotate(-2deg);
}

.reviews {
  position: relative;
  min-height: 420px;
  overflow: hidden;
}

.reviews-heading {
  position: absolute;
  z-index: 4;
  left: 6.2vw;
  top: 44px;
  width: 245px;
}

.reviews-heading h2 {
  margin: 0;
  font: 400 45px/.8 var(--script);
  text-transform: uppercase;
  transform: rotate(-3deg);
}

.reviews-heading h2 span {
  display: block;
  margin: 10px 0 0 26px;
  font-size: 29px;
  text-transform: none;
  white-space: nowrap;
}

.reviews-heading p {
  width: 165px;
  margin: 30px 0 0 5px;
  color: #b9b7b1;
  font: 300 8.5px/1.6 var(--mono);
}

.review-photo {
  z-index: 2;
  left: 235px;
  top: 70px;
  width: 382px;
  height: 286px;
  transform: rotate(2deg);
}

.review-photo img { height: 100%; }

.review-note {
  position: absolute;
  z-index: 5;
  color: #303331;
  background: var(--paper-light);
  box-shadow: 0 13px 21px rgba(0,0,0,.4);
}

.review-note p { margin: 0; }
.review-note footer { margin-top: 15px; font: 400 15px/1 var(--script); }
.review-note footer i { margin-left: 8px; font-size: 22px; }

.review-note-main {
  right: 5.9vw;
  top: 35px;
  width: 303px;
  min-height: 218px;
  padding: 44px 30px 23px;
  clip-path: polygon(2% 8%, 11% 4%, 21% 7%, 32% 2%, 43% 6%, 54% 1%, 66% 6%, 77% 2%, 89% 7%, 98% 4%, 96% 21%, 100% 36%, 97% 52%, 100% 68%, 96% 84%, 99% 96%, 85% 94%, 71% 99%, 58% 95%, 43% 99%, 29% 95%, 14% 99%, 2% 94%, 5% 78%, 1% 62%, 5% 46%, 1% 29%);
  font: 400 10px/1.6 var(--mono);
  transform: rotate(-3deg);
}

.quote-mark {
  position: absolute;
  left: 20px;
  top: 5px;
  color: #a77b67;
  font: 400 55px/1 var(--serif);
}

.review-note-small {
  z-index: 6;
  right: 13.5vw;
  bottom: 36px;
  width: 235px;
  min-height: 119px;
  padding: 24px 24px 18px;
  font: 400 18px/1.18 var(--script);
  transform: rotate(4deg);
}

.review-note-small footer {
  margin-top: 10px;
  text-align: right;
  font-size: 11px;
}

.review-scribble {
  position: absolute;
  z-index: 6;
  left: 66px;
  bottom: 41px;
  width: 185px;
  font: 400 15px/1.3 var(--script);
  text-align: center;
  transform: rotate(-5deg);
}

.review-scribble img {
  position: absolute;
  left: 108px;
  top: -34px;
  width: 115px;
  height: 80px;
  object-fit: contain;
  transform: rotate(13deg) scaleY(-1);
  opacity: .82;
}

.journal {
  min-height: 360px;
  padding: 38px 6.2vw 35px;
  overflow: hidden;
}

.journal-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  height: 78px;
}

.journal-heading h2 {
  margin: 0;
  font: 400 43px/.75 var(--script);
  transform: rotate(-3deg);
}

.journal-heading h2 span { margin-left: 40px; font-size: 29px; }
.journal-heading a {
  margin-top: 10px;
  text-transform: uppercase;
  letter-spacing: .6px;
  font: 300 8.5px/1.5 var(--mono);
}

.journal-heading a::after {
  content: "";
  display: block;
  width: 123px;
  margin-top: 7px;
  border-top: 1px solid rgba(232,229,220,.65);
  transform: rotate(2deg);
}

.journal-grid {
  display: grid;
  grid-template-columns: 1fr 1fr .8fr;
  align-items: start;
  gap: 22px;
  width: min(900px, 100%);
  margin: 0 auto;
}

.journal-card {
  position: relative;
  display: grid;
  grid-template-columns: 46% 1fr;
  min-height: 202px;
  padding: 5px;
  color: #252826;
  background: var(--paper);
  border: 1px solid rgba(255,255,255,.32);
  box-shadow: 0 12px 19px rgba(0,0,0,.37);
}

.journal-card-photo { transform: rotate(-1deg); }
.journal-card-dark { transform: rotate(2deg); }
.journal-card > img { width: 100%; height: 190px; object-fit: cover; filter: saturate(.72) contrast(.95) brightness(.88); }
.journal-card > div { position: relative; padding: 22px 10px 10px 14px; }
.journal-card time { text-transform: uppercase; font: 400 7px/1 var(--mono); }
.journal-card h3 { margin: 18px 0 0; font: 400 19px/1.07 var(--script); }
.journal-card > div > span { position: absolute; right: 9px; bottom: 5px; font: 400 21px/1 var(--serif); }
.journal-card .tape { top: -17px; }

.journal-paper {
  position: relative;
  min-height: 205px;
  padding: 27px 22px;
  color: #343735;
  background:
    repeating-linear-gradient(0deg, transparent 0 22px, rgba(89,107,112,.14) 22px 23px),
    var(--paper-light);
  clip-path: polygon(2% 6%, 13% 2%, 26% 7%, 39% 1%, 52% 6%, 66% 2%, 79% 7%, 97% 2%, 94% 18%, 99% 35%, 95% 51%, 99% 68%, 95% 84%, 99% 97%, 84% 94%, 68% 99%, 51% 95%, 35% 99%, 18% 94%, 2% 98%, 5% 80%, 1% 63%, 5% 46%, 1% 27%);
  box-shadow: 0 12px 19px rgba(0,0,0,.35);
  transform: rotate(-2deg);
}

.journal-paper p { margin: 0 0 18px; text-transform: uppercase; letter-spacing: .6px; font: 400 7.5px/1.4 var(--mono); }
.journal-paper strong { font: 400 20px/1.12 var(--script); }
.journal-paper i { display: block; margin: 15px 0 0 50px; color: #8e6858; font: 400 13px/1 var(--script); }

.footer {
  position: relative;
  min-height: 320px;
  padding: 55px 7vw 32px;
  overflow: hidden;
  background-image:
    linear-gradient(90deg, rgba(3,8,11,.69), rgba(3,8,11,.16) 55%, rgba(3,8,11,.32)),
    linear-gradient(0deg, rgba(5,8,10,.8), transparent 55%),
    url("assets/images/contact-aurora.jpg");
  background-size: cover;
  background-position: center 48%;
}

.contact-copy {
  position: relative;
  z-index: 3;
  width: 480px;
}

.contact-copy > p { margin: 0 0 12px; text-transform: uppercase; letter-spacing: 1.5px; font: 300 8.5px/1 var(--mono); }
.contact-copy h2 { margin: 0 0 23px; font: 400 40px/.82 var(--serif); text-transform: uppercase; }
.contact-copy h2 span { display: block; margin: 7px 0 0 38px; text-transform: none; font: 400 44px/1 var(--script); color: #e4d5cb; transform: rotate(-2deg); }

.contact-paper {
  position: absolute;
  z-index: 4;
  right: 8vw;
  top: 43px;
  width: 295px;
  min-height: 211px;
  padding: 35px 27px 24px;
  color: #303331;
  background: var(--paper-light);
  box-shadow: 0 15px 27px rgba(0,0,0,.45);
  transform: rotate(3deg);
}

.contact-paper > p { margin: 0 0 22px; font: 400 10px/1.6 var(--mono); }
.contact-paper > a { display: inline-block; border-bottom: 1px solid #303331; font: 400 13px/1.4 var(--mono); }
.contact-paper > div { display: flex; gap: 18px; margin-top: 20px; font: 400 13px/1 var(--script); }
.contact-paper .photo-tape { top: -14px; }
.footer > small { position: absolute; left: 7vw; bottom: 20px; color: #a6a8a3; font: 300 7.5px/1 var(--mono); }

/* Reference continuation: route scrapbook */
.routes-map,
.trip-flow,
.traveler-reviews,
.practical,
.contact-zone {
  background-color: #07090a;
  background-image:
    radial-gradient(circle at 18% 11%, rgba(255,255,255,.018), transparent 25%),
    radial-gradient(circle at 82% 53%, rgba(255,255,255,.014), transparent 22%),
    url("assets/textures/dark-paper-v1.png");
  background-size: auto, auto, 640px 640px;
  background-blend-mode: normal, normal, multiply;
}

.routes-map {
  min-height: 520px;
  padding: 35px 4.9vw 18px;
  overflow: hidden;
}

.routes-map-composite {
  position: absolute;
  z-index: 2;
  left: 215px;
  top: 8px;
  width: calc(100% - 225px);
  height: calc(100% - 16px);
  object-fit: contain;
  object-position: center;
  filter: drop-shadow(0 18px 18px rgba(55,45,34,.2));
}

.routes-intro {
  position: absolute;
  z-index: 7;
  left: 5.7vw;
  top: 48px;
  width: 176px;
}

.routes-intro h2,
.trip-flow-intro h2,
.traveler-reviews-intro h2,
.faq-block h2,
.packing-list h2,
.contact-zone-copy h2 {
  margin: 0;
  color: #e9e5dc;
  font: 400 34px/.98 var(--script);
  letter-spacing: -.5px;
}

.routes-intro h2 {
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(232,229,220,.64);
  transform: rotate(-2deg);
}

.routes-intro h2 span { font: 300 29px/1 var(--serif); }
.routes-intro > p {
  margin: 20px 0 17px;
  color: #c8c6bf;
  font: 300 9.2px/1.72 var(--mono);
}

.routes-intro ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.routes-intro li { position: relative; padding-left: 17px; color: #bdbbb5; font: 300 8.6px/1.2 var(--mono); }
.routes-intro li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 7px;
  height: 7px;
  border: 1px solid #92b4ca;
  border-radius: 50%;
}
.routes-intro li:nth-child(2)::before { border-color: #879f5f; }
.routes-intro li:nth-child(3)::before { border-color: #a26d4e; }

.map-board {
  position: absolute;
  z-index: 2;
  left: 224px;
  right: 23px;
  top: 38px;
  height: 450px;
  overflow: visible;
  background:
    linear-gradient(145deg, rgba(255,255,255,.025), transparent 31%),
    radial-gradient(ellipse at 40% 68%, rgba(73,57,38,.2), transparent 40%),
    #121618;
  clip-path: polygon(1% 4%, 10% 1%, 20% 3%, 31% 1%, 43% 3%, 55% 1%, 67% 3%, 79% 1%, 90% 3%, 99% 1%, 98% 14%, 100% 28%, 98% 43%, 100% 57%, 98% 72%, 100% 87%, 97% 98%, 84% 96%, 72% 99%, 60% 97%, 48% 100%, 35% 97%, 22% 99%, 10% 96%, 1% 98%, 3% 82%, 1% 67%, 3% 51%, 1% 35%, 3% 19%);
  box-shadow: 0 18px 35px rgba(0,0,0,.72);
  transform: rotate(.25deg);
}

.map-board::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: url("assets/textures/dark-paper-v1.png") center / 520px 520px;
  opacity: .32;
  mix-blend-mode: soft-light;
}

.board-tape,
.routes-map .photo-tape,
.practical .photo-tape,
.contact-zone .photo-tape {
  position: absolute;
  z-index: 10;
  width: 74px;
  height: 26px;
  background: var(--tape-yellow);
  clip-path: polygon(1% 10%, 14% 2%, 27% 9%, 41% 1%, 54% 8%, 68% 2%, 82% 9%, 99% 3%, 97% 90%, 84% 98%, 69% 90%, 54% 97%, 40% 89%, 26% 96%, 13% 89%, 2% 96%);
  filter: saturate(.65);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.board-tape { right: 125px; top: -12px; transform: rotate(7deg); }

.map-board-shape {
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 40px;
  width: min(82%, 680px);
  height: auto;
  object-fit: contain;
  opacity: .55;
  filter: grayscale(.65) sepia(.2) brightness(.64) contrast(1.25);
  transform: translateX(-50%);
}

.map-board > strong {
  position: absolute;
  z-index: 3;
  left: 25%;
  top: 214px;
  color: rgba(225,221,211,.78);
  text-align: center;
  text-transform: uppercase;
  font: 300 20px/1.15 var(--serif);
  letter-spacing: .8px;
}

.route-line {
  position: absolute;
  z-index: 4;
  height: 58px;
  border-top: 2px dashed #82a9c5;
  border-radius: 50%;
  opacity: .9;
  transform-origin: left center;
}
.route-line::before,
.route-line::after { content: ""; position: absolute; width: 6px; height: 6px; border: 1px solid currentColor; border-radius: 50%; top: -5px; }
.route-line::before { left: 0; }
.route-line::after { right: 0; }
.route-line-one { left: 24%; top: 128px; width: 39%; color: #82a9c5; transform: rotate(12deg); }
.route-line-two { right: 14%; top: 224px; width: 25%; color: #879f5f; border-color: currentColor; transform: rotate(38deg); }
.route-line-three { left: 41%; top: 346px; width: 23%; color: #b47755; border-color: currentColor; transform: rotate(-25deg); }

.map-point {
  position: absolute;
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  color: #ede7dc;
}
.map-point img { width: 51px; height: 51px; border: 2px solid #e6e2d7; border-radius: 50%; object-fit: cover; filter: saturate(.7) contrast(.95) brightness(.88); }
.map-point figcaption { white-space: nowrap; font: 400 15px/1.15 var(--script); text-shadow: 0 2px 2px #060708; }
.map-point small { font-size: 8px; }
.point-one { left: 10%; top: 24px; }
.point-two { left: 42%; top: 24px; }
.point-three { right: 6%; top: 116px; }
.point-four { right: 2%; top: 282px; }
.point-five { left: 35%; top: 354px; }

.map-note-small,
.packing-note {
  color: #3b3c39;
  background: url("assets/textures/torn-planner-wide-v1.png") center / 100% 100% no-repeat;
  filter: drop-shadow(0 12px 12px rgba(0,0,0,.46));
}
.map-note-small {
  position: absolute;
  z-index: 8;
  left: 34px;
  top: 486px;
  width: 167px;
  min-height: 112px;
  padding: 29px 22px 18px;
  font: 400 15px/1.28 var(--script);
  transform: rotate(-5deg);
}
.map-note-small .photo-tape { left: 57px; top: -13px; transform: rotate(-2deg); }
.map-note-small b { position: absolute; right: 16px; bottom: 16px; font: 300 29px/1 var(--serif); }

.map-compass {
  position: absolute;
  z-index: 9;
  left: 221px;
  top: 448px;
  width: 147px;
  height: 147px;
  object-fit: contain;
  filter: brightness(.76) contrast(1.14) sepia(.18) drop-shadow(0 10px 7px rgba(0,0,0,.72));
  transform: rotate(-7deg);
}

.map-whale {
  z-index: 8;
  right: 45px;
  top: 463px;
  width: 252px;
  height: 158px;
  padding: 7px 7px 14px;
  background: #dad8d0;
  transform: rotate(-5deg);
}
.map-whale img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.58) contrast(1.08) brightness(.74); }
.map-whale .photo-tape { left: 88px; top: -13px; transform: rotate(5deg); }
.routes-flower { position: absolute; z-index: 5; right: -9px; top: 13px; width: 118px; height: 250px; object-fit: contain; filter: sepia(.4) saturate(.65) brightness(.7); opacity: .9; }

.trip-flow { min-height: 255px; padding: 24px 4.9vw 14px; overflow: hidden; }
.trip-flow-intro { position: absolute; left: 5.7vw; top: 23px; width: 172px; }
.trip-flow-intro h2 { font-size: 33px; transform: rotate(-3deg); }
.trip-flow-intro h2::after { content: ""; display: block; width: 123px; margin: 11px 0 0 4px; border-top: 1px solid rgba(232,229,220,.67); transform: rotate(1deg); }
.trip-flow-intro p { margin: 21px 0 0; color: #bdbbb5; font: 300 8.2px/1.6 var(--mono); }
.trip-flow-intro img { width: 112px; height: 74px; margin: 6px 0 0 28px; object-fit: contain; opacity: .88; transform: rotate(8deg); }

.film-strip {
  position: absolute;
  z-index: 3;
  left: 220px;
  right: 68px;
  top: 49px;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  height: 187px;
  transform: rotate(.6deg);
}
.film-strip article {
  position: relative;
  min-width: 0;
  padding: 7px 7px 14px;
  color: #333633;
  background:
    radial-gradient(circle, #282b29 0 2px, transparent 2.4px) 0 2px / 7px 9px repeat-y,
    radial-gradient(circle, #282b29 0 2px, transparent 2.4px) 100% 2px / 7px 9px repeat-y,
    url("assets/textures/warm-paper-v1.png") center / 250px 250px,
    #d7d0c3;
  border-right: 1px solid rgba(70,70,65,.34);
  box-shadow: 0 12px 16px rgba(0,0,0,.32);
}
.film-strip article:first-child { transform: rotate(-.4deg); }
.film-strip article:last-child { transform: rotate(.4deg); }
.film-strip article:nth-child(2) { transform: rotate(-.6deg); }
.film-strip article:nth-child(4) { transform: rotate(.5deg); }
.film-strip article > b { position: absolute; left: 50%; top: -28px; color: #e7e2d8; font: 300 18px/1 var(--serif); transform: translateX(-50%); }
.film-strip article > img { width: 100%; height: 108px; object-fit: cover; filter: saturate(.66) contrast(.96) brightness(.82); }
.film-strip article:nth-child(5) > img { object-position: 70% center; }
.film-strip article > p { margin: 10px 5px 0; font: 400 7.6px/1.42 var(--mono); }

.traveler-reviews { min-height: 430px; padding: 30px 4.9vw 32px; overflow: hidden; }
.traveler-reviews-intro { position: absolute; z-index: 5; left: 5.7vw; top: 33px; width: 185px; }
.traveler-reviews-intro h2 { font-size: 33px; transform: rotate(-3deg); }
.traveler-reviews-intro h2::after { content: ""; display: block; width: 118px; margin-top: 9px; border-top: 1px solid rgba(232,229,220,.7); transform: rotate(1deg); }
.traveler-reviews-intro h2 span { position: absolute; right: -4px; bottom: -2px; font: 300 31px/1 var(--serif); }
.traveler-reviews-intro p { margin: 24px 0 20px; color: #c0beb8; font: 300 8.2px/1.55 var(--mono); }
.traveler-reviews-intro > a { display: inline-block; padding: 11px 18px; border: 1px solid rgba(232,229,220,.68); border-radius: 6px; font: 300 8px/1 var(--mono); transition: background 180ms ease, color 180ms ease; }
.traveler-reviews-intro > a:hover { color: #101314; background: #e4dfd4; }

.traveler-review-grid {
  position: absolute;
  z-index: 3;
  left: 255px;
  right: 70px;
  top: 27px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
}
.traveler-review {
  position: relative;
  min-width: 0;
  height: 335px;
  padding: 39px 28px 153px;
  color: #363836;
  background: transparent;
  isolation: isolate;
}
.traveler-review::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -15px -12px -13px;
  background: url("assets/textures/torn-planner-portrait-v1.png") center / 100% 100% no-repeat;
  filter: drop-shadow(0 15px 12px rgba(0,0,0,.42));
}
.traveler-review:nth-child(1) { transform: rotate(1.5deg); }
.traveler-review:nth-child(2) { transform: rotate(-.6deg); }
.traveler-review:nth-child(3) { transform: rotate(1.2deg); }
.traveler-review > i { position: absolute; left: 50%; top: -6px; width: 13px; height: 13px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #bd7261 0 22%, #7e322b 58%, #421b18 100%); box-shadow: 0 3px 4px rgba(0,0,0,.48); transform: translateX(-50%); }
.traveler-review h3 { margin: 0 0 13px; padding-bottom: 8px; border-bottom: 1px solid rgba(68,71,68,.2); font: 400 9px/1.2 var(--mono); }
.traveler-review > p { margin: 0; font: 400 7.5px/1.47 var(--mono); }
.traveler-review figure { position: absolute; z-index: 3; left: 21px; right: 21px; bottom: 22px; height: 138px; margin: 0; padding: 7px 7px 14px; background: #d8d7d1; border: 1px solid rgba(255,255,255,.45); box-shadow: 0 8px 12px rgba(0,0,0,.35); }
.traveler-review:nth-child(1) figure { transform: rotate(4deg); }
.traveler-review:nth-child(2) figure { transform: rotate(-1deg); }
.traveler-review:nth-child(3) figure { transform: rotate(3deg); }
.traveler-review figure::before { content: ""; position: absolute; left: 51%; top: -17px; width: 13px; height: 45px; border: 1px solid #8d8880; border-radius: 10px; transform: rotate(-7deg); }
.traveler-review figure img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.68) contrast(.95) brightness(.81); }
.traveler-review figure b { position: absolute; right: 8px; bottom: 5px; color: #35474d; font: 300 25px/1 var(--serif); }
.reviews-flower-wrap { position: absolute; z-index: 2; right: -9px; bottom: 8px; width: 122px; height: 255px; transform: rotate(9deg); transform-origin: 50% 100%; }
.reviews-flower { width: 100%; height: 100%; object-fit: contain; filter: sepia(.4) saturate(.62) brightness(.68); opacity: .88; }
.botanical-tape { position: absolute; z-index: 4; left: 26px; top: 113px; width: 72px; height: 25px; background: var(--tape-yellow); clip-path: polygon(1% 10%, 14% 2%, 27% 9%, 41% 1%, 54% 8%, 68% 2%, 82% 9%, 99% 3%, 97% 90%, 84% 98%, 69% 90%, 54% 97%, 40% 89%, 26% 96%, 13% 89%, 2% 96%); box-shadow: inset 0 0 0 1px rgba(255,255,255,.13); transform: rotate(-18deg); }

.practical {
  min-height: 240px;
  display: grid;
  grid-template-columns: 220px 180px 260px 154px;
  justify-content: space-between;
  align-items: start;
  gap: 22px;
  padding: 28px 5.2vw 18px;
  overflow: hidden;
}
.faq-block h2 { font-size: 32px; margin-bottom: 13px; transform: rotate(-3deg); }
.faq-block h2 span { display: inline-grid; place-items: center; width: 25px; height: 25px; margin-left: 8px; border: 1px solid rgba(232,229,220,.75); border-radius: 50%; font: 300 16px/1 var(--serif); }
.faq-block details { border-bottom: 1px solid rgba(232,229,220,.25); }
.faq-block summary { position: relative; padding: 8px 17px 8px 0; list-style: none; cursor: pointer; color: #d1cec6; font: 300 7.6px/1.25 var(--mono); }
.faq-block summary::-webkit-details-marker { display: none; }
.faq-block summary::after { content: "+"; position: absolute; right: 0; top: 7px; font-size: 10px; }
.faq-block details[open] summary::after { content: "−"; }
.faq-block details p { margin: 0; padding: 0 12px 8px 0; color: #aaa9a3; font: 300 7px/1.45 var(--mono); }

.faq-polaroid { position: relative; width: 178px; height: 171px; margin: 11px 0 0; padding: 6px 6px 39px; background: #d9d5cb; transform: rotate(-5deg); }
.faq-polaroid img { width: 100%; height: 100%; object-fit: cover; object-position: 88% center; filter: saturate(.62) contrast(.95) brightness(.83); }
.faq-polaroid figcaption { position: absolute; left: 14px; bottom: 7px; color: #484a46; font: 400 11px/1.15 var(--script); transform: rotate(-2deg); }
.faq-polaroid .photo-tape { left: 2px; top: -10px; width: 58px; transform: rotate(-14deg); }

.packing-list { padding-top: 8px; }
.packing-list h2 { font-size: 31px; margin-bottom: 18px; transform: rotate(-2deg); }
.packing-list h2::after { content: ""; display: inline-block; width: 48px; margin-left: 9px; border-top: 1px solid rgba(232,229,220,.55); transform: rotate(-58deg); transform-origin: left center; }
.packing-list ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.packing-list li { position: relative; padding-left: 20px; color: #bbb9b3; font: 300 7.5px/1.25 var(--mono); }
.packing-list li::before { content: ""; position: absolute; left: 0; top: 0; width: 9px; height: 9px; border: 1px solid rgba(232,229,220,.7); border-radius: 50%; }

.packing-note { min-height: 143px; margin-top: 17px; padding: 31px 20px 17px; font: 400 14px/1.28 var(--script); transform: rotate(-5deg); }
.packing-note { background-image: url("assets/textures/torn-planner-portrait-v1.png"); }
.packing-note::before { content: ""; position: absolute; top: -12px; left: 44px; width: 68px; height: 24px; background: var(--tape-yellow); clip-path: polygon(1% 10%, 14% 2%, 27% 9%, 41% 1%, 54% 8%, 68% 2%, 82% 9%, 99% 3%, 97% 90%, 84% 98%, 69% 90%, 54% 97%, 40% 89%, 26% 96%, 13% 89%, 2% 96%); transform: rotate(6deg); }
.packing-note div { margin: 12px 0 0 24px; color: #65665f; font: 300 55px/.8 var(--serif); transform: rotate(-11deg); }

.contact-zone { overflow: hidden; }
.contact-collage {
  position: relative;
  min-height: 332px;
  margin: 0 2.1vw;
  overflow: hidden;
  background-image:
    linear-gradient(90deg, rgba(4,9,12,.62), rgba(4,9,12,.08) 53%, rgba(4,9,12,.3)),
    linear-gradient(0deg, rgba(4,8,10,.58), transparent 48%),
    url("assets/images/contact-aurora.jpg");
  background-size: cover;
  background-position: center 54%;
  clip-path: polygon(1% 3%, 12% 1%, 24% 3%, 36% 1%, 48% 3%, 61% 1%, 74% 3%, 87% 1%, 99% 3%, 98% 18%, 100% 36%, 98% 55%, 100% 75%, 98% 98%, 86% 96%, 73% 99%, 61% 97%, 48% 100%, 35% 97%, 23% 99%, 11% 96%, 1% 98%, 3% 79%, 1% 58%, 3% 38%, 1% 18%);
  box-shadow: inset 0 0 65px rgba(0,0,0,.45);
}
.contact-collage::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: url("assets/textures/dark-paper-v1.png") center / 640px 640px; opacity: .22; mix-blend-mode: soft-light; }
.contact-zone-copy { position: absolute; z-index: 5; left: 5.5%; top: 47px; width: 330px; }
.contact-zone-copy h2 { font-size: 39px; line-height: 1.08; transform: rotate(-2deg); }
.contact-zone-copy h2::after { content: ""; display: block; width: 164px; margin: 13px 0 0 11px; border-top: 1px solid rgba(232,229,220,.7); transform: rotate(1deg); }
.contact-zone-copy p { margin: 31px 0 22px; color: #d1cec6; font: 300 8.5px/1.58 var(--mono); }
.sketch-button { display: inline-flex; align-items: center; gap: 11px; padding: 9px 16px; border: 1px solid rgba(232,229,220,.73); border-radius: 50%; font: 300 8.5px/1 var(--mono); transition: background 180ms ease, color 180ms ease; }
.sketch-button:hover { color: #101314; background: #e5dfd4; }
.sketch-button b { font: 300 29px/.7 var(--serif); }

.contact-main-photo { position: absolute; z-index: 4; right: 26%; top: 38px; width: 259px; height: 239px; padding: 7px 7px 13px; background: #d9d8d1; transform: rotate(1.6deg); }
.contact-main-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 70% center; filter: saturate(.72) contrast(.98) brightness(.82); }
.contact-main-photo .photo-tape { left: 82px; top: -13px; width: 98px; transform: rotate(-1deg); }
.contact-small-photo { position: absolute; z-index: 7; right: 17%; bottom: 23px; width: 120px; height: 150px; padding: 6px 6px 11px; background: #dedbd3; transform: rotate(7deg); }
.contact-small-photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.66) contrast(1.03) brightness(.76); }
.contact-kraft { position: absolute; z-index: 6; right: 3.2%; top: 108px; width: 215px; min-height: 133px; padding: 30px 26px 20px; color: #45423b; background: url("assets/textures/torn-planner-wide-v1.png") center / 100% 100% no-repeat; font: 400 17px/1.3 var(--script); transform: rotate(4deg); filter: drop-shadow(0 13px 12px rgba(0,0,0,.46)); }
.contact-kraft .photo-tape { left: 61px; top: -14px; transform: rotate(-3deg); }
.contact-kraft b { position: absolute; right: 18px; bottom: 13px; font: 300 31px/1 var(--serif); }

.footer-bar { display: grid; grid-template-columns: 205px minmax(0,1fr) auto; align-items: center; gap: 25px; min-height: 99px; padding: 12px 4.8vw; background: rgba(5,7,8,.92); }
.footer-brand { display: flex; align-items: center; gap: 8px; }
.footer-brand > img { width: 44px; height: 44px; object-fit: contain; filter: grayscale(1) brightness(1.55); opacity: .86; }
.footer-brand > span { font: 400 17px/1 var(--script); }
.footer-brand small { display: block; margin-top: 6px; text-transform: uppercase; letter-spacing: 1px; font: 300 6.5px/1 var(--mono); }
.footer-bar nav { display: flex; align-items: center; justify-content: center; gap: clamp(18px, 3.3vw, 39px); }
.footer-bar nav a { position: relative; white-space: nowrap; color: #c9c7c0; font: 300 7.8px/1 var(--mono); }
.footer-bar nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -5px; border-top: 1px solid #e4dfd4; transition: right 180ms ease; }
.footer-bar nav a:hover::after { right: 0; }
.footer-socials { display: flex; gap: 10px; }
.footer-socials a { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid rgba(232,229,220,.45); border-radius: 50%; }
.footer-socials img { width: 17px; height: 17px; object-fit: contain; filter: grayscale(1) brightness(1.7); opacity: .88; }

@media (min-width: 1200px) {
  .hero { grid-template-columns: 255px minmax(0, 1fr); min-height: 760px; }
  .side-panel, .hero-stage { min-height: 760px; }
  .side-panel { padding-left: 52px; }
  .paper-note { top: 535px; left: 27px; }
  .hero-copy { top: 158px; }
  .hero-title > span { font-size: 52px; }
  .hero-title em { font-size: 69px; transform: rotate(-2deg) scaleX(1.42); }
  .hero-title em::after { width: 280px; height: 65px; }
  .hero-title i { left: 382px; }
  .tours { padding-top: 32px; }
  .tours-heading, .tour-grid { width: min(900px, 100%); }
  .tour-grid { gap: 25px; }
  .tour-card { min-height: 340px; }
  .tour-image-wrap { height: 205px; }
  .tour-card-two .tour-image-wrap { height: 201px; }
  .about { grid-template-columns: 360px minmax(0, 1fr); padding-left: 9vw; padding-right: 9vw; }
  .routes-map { min-height: 760px; }
  .routes-map-composite { left: 245px; width: calc(100% - 260px); }
  .map-board { height: 570px; }
  .map-board-shape { top: 24px; width: min(75%, 850px); }
  .map-board > strong { left: 28%; top: 270px; }
  .route-line-one { left: 25%; top: 155px; width: 38%; }
  .route-line-two { right: 16%; top: 290px; width: 24%; }
  .route-line-three { left: 43%; top: 445px; width: 22%; }
  .point-one { left: 12%; top: 35px; }
  .point-two { left: 42%; top: 35px; }
  .point-three { right: 8%; top: 145px; }
  .point-four { right: 4%; top: 370px; }
  .point-five { left: 37%; top: 470px; }
  .map-note-small { top: 575px; }
  .map-compass { top: 530px; width: 170px; height: 170px; }
  .map-whale { top: 545px; width: 285px; height: 180px; }
  .routes-flower { width: 140px; height: 300px; }
}

@media (max-width: 860px) {
  .hero { display: block; min-height: 760px; }
  .hero-stage { min-height: 760px; background-position: 62% center; }
  .side-panel {
    position: absolute;
    z-index: 20;
    top: 0;
    left: 0;
    width: 100%;
    min-height: 90px;
    height: 90px;
    padding: 15px 22px;
    background: linear-gradient(180deg, rgba(7,11,14,.95), rgba(7,11,14,.46), transparent);
    box-shadow: none;
  }
  .brand { width: 125px; height: 65px; }
  .brand-script { font-size: 21px; line-height: 1.05; }
  .brand-mountain { width: 70px; right: 2px; top: 10px; }
  .brand-caption { left: 0; font-size: 7px; bottom: 0; }
  .menu-toggle {
    position: absolute;
    top: 24px;
    right: 22px;
    display: grid;
    gap: 8px;
    width: 46px;
    height: 38px;
    padding: 10px;
    border: 0;
    background: transparent;
  }
  .menu-toggle span:not(.sr-only) { display: block; width: 25px; border-top: 1px solid var(--white); transition: transform 180ms ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { transform: translateY(-5px) rotate(-45deg); }
  .main-nav {
    position: absolute;
    top: 78px;
    left: 0;
    width: 100%;
    max-height: 0;
    margin: 0;
    padding: 0 29px;
    overflow: hidden;
    background: rgba(9,13,15,.97);
    transition: max-height 250ms ease, padding 250ms ease;
  }
  .main-nav.open { max-height: 430px; padding-top: 20px; padding-bottom: 24px; }
  .main-nav a { font-size: 24px; }
  .paper-note, .socials { display: none; }
  .hero-copy { left: 7vw; top: 176px; }
  .hero-whisper { right: 5vw; top: auto; bottom: 106px; }
  .scroll-dots { bottom: 52px; right: 8vw; }
  .about { grid-template-columns: 270px minmax(0,1fr); padding-left: 4vw; padding-right: 3vw; }
  .story-collage { transform: scale(.82); transform-origin: left top; width: 590px; }
  .benefits { grid-template-columns: repeat(2, 1fr); gap: 25px 0; }
  .benefits article:nth-child(2) { border-right: 0; }
  .journey-heading { left: 4vw; }
  .journey-photo { left: 205px; width: 405px; }
  .checklist-paper { right: 3vw; width: 270px; }
  .reviews-heading { left: 4vw; }
  .review-photo { left: 190px; width: 355px; }
  .review-note-main { right: 3vw; width: 282px; }
  .review-note-small { right: 8vw; }
  .journal { padding-left: 4vw; padding-right: 4vw; }
  .journal-grid { gap: 14px; }
  .contact-paper { right: 4vw; }
}

@media (max-width: 680px) {
  .hero, .hero-stage { min-height: 720px; }
  .hero-stage {
    background-position: 69% center;
    background-image:
      linear-gradient(90deg, rgba(3,10,14,.68) 0, rgba(3,10,14,.12) 72%),
      linear-gradient(0deg, rgba(7,10,12,.93) 0, rgba(7,10,12,.08) 45%),
      url("assets/images/hero-aurora.jpg");
  }
  .hero-copy { top: 152px; }
  .eyebrow { font-size: 8px; margin-bottom: 31px; }
  .hero-title { width: 300px; }
  .hero-title > span { font-size: 35px; }
  .hero-title em { font-size: 47px; margin-top: 11px; transform: rotate(-2deg) scaleX(1.18); }
  .hero-title em::after { width: 268px; height: 47px; }
  .hero-title i { left: 271px; bottom: 9px; font-size: 31px; }
  .hero-lead { margin-top: 33px; }
  .hero-whisper { display: none; }
  .tours { padding: 29px 7vw 50px; }
  .tours-heading { height: 122px; }
  .tours-heading h2 { font-size: 47px; }
  .heading-arrow { width: 65px; margin-left: 28px; }
  .all-tours { top: 80px; right: 0; }
  .tours-heading,
  .tour-grid { left: 0; }
  .tour-grid { display: flex; flex-direction: column; align-items: center; gap: 42px; }
  .tour-card { width: min(290px, 86vw); min-height: 340px; }
  .tour-card-two, .tour-card-three { transform: none; }
  .tour-card-two:hover, .tour-card-three:hover { transform: translateY(-7px) rotate(-.8deg); }
  .tour-image-wrap, .tour-card-two .tour-image-wrap { height: 205px; }
  .tour-card-body { min-height: 126px; padding: 12px 20px; }
  .tour-card-body h3 { font-size: 23px; }
  .about { display: block; padding: 32px 7vw 0; }
  .about-copy { padding: 0; }
  .about-copy h2 { font-size: 47px; }
  .story-collage {
    left: 50%;
    width: 590px;
    min-height: 365px;
    margin-top: 46px;
    transform: translateX(-50%) scale(.61);
    transform-origin: top center;
  }
  .about { min-height: 750px; }
  .benefits { grid-template-columns: 1fr; gap: 25px; padding: 35px 7vw; }
  .benefits article { border-right: 0; border-bottom: 1px solid rgba(232,229,220,.18); padding: 0 0 20px; }
  .benefits article:last-child { border-bottom: 0; }
  .benefits h3 { font-size: 19px; }
  .benefits p { font-size: 9px; }
  .journey { min-height: 920px; padding: 42px 7vw; }
  .journey-heading { position: relative; left: auto; top: auto; width: 100%; }
  .journey-heading h2 { font-size: 40px; }
  .journey-heading h2 span { font-size: 43px; }
  .journey-heading .journey-arrow { position: absolute; right: 4vw; bottom: -17px; }
  .journey-photo { position: relative; left: 50%; top: auto; width: min(345px, 91vw); height: 275px; margin: 45px 0 0; transform: translateX(-50%) rotate(-2deg); }
  .journey-photo figcaption { font-size: 14px; }
  .checklist-paper { position: relative; right: auto; top: auto; width: min(320px, 87vw); min-height: 355px; margin: 42px auto 0; }
  .reviews { min-height: 900px; padding: 45px 7vw; }
  .reviews-heading { position: relative; left: auto; top: auto; width: 100%; }
  .review-photo { position: relative; left: 50%; top: auto; width: min(345px, 91vw); height: 270px; margin: 55px 0 0; transform: translateX(-50%) rotate(2deg); }
  .review-note-main { position: relative; right: auto; top: auto; width: min(315px, 86vw); margin: 37px auto 0; }
  .review-note-small { position: relative; right: auto; bottom: auto; width: min(245px, 72vw); margin: -6px 5vw 0 auto; }
  .review-scribble { left: 3vw; bottom: 34px; }
  .journal { min-height: 850px; padding: 45px 7vw; }
  .journal-heading { height: 105px; }
  .journal-heading h2 { font-size: 40px; }
  .journal-heading a { margin-top: 63px; }
  .journal-grid { grid-template-columns: 1fr; gap: 34px; width: min(345px, 91vw); }
  .journal-card { min-height: 190px; }
  .journal-card > img { height: 178px; }
  .journal-paper { min-height: 205px; }
  .footer { min-height: 650px; padding: 58px 7vw 32px; background-position: 66% center; }
  .contact-copy { width: 100%; }
  .contact-copy h2 { font-size: 35px; }
  .contact-copy h2 span { margin-left: 5px; font-size: 37px; }
  .contact-paper { top: auto; right: 50%; bottom: 77px; width: min(310px, 86vw); transform: translateX(50%) rotate(2deg); }
  .footer > small { left: 7vw; bottom: 20px; }
}

@media (max-width: 900px) and (min-width: 681px) {
  .map-board { left: 210px; right: 14px; }
  .map-whale { right: 28px; }
  .routes-flower { right: -29px; }
  .film-strip { left: 205px; right: 48px; }
  .traveler-review-grid { left: 235px; right: 52px; }
  .practical { grid-template-columns: 205px 165px 235px 142px; gap: 15px; padding-left: 4vw; padding-right: 4vw; }
  .contact-main-photo { right: 24%; }
  .contact-small-photo { right: 14%; }
  .contact-kraft { right: 2%; width: 202px; }
}

@media (max-width: 680px) {
  .routes-map,
  .trip-flow,
  .traveler-reviews,
  .practical { padding-left: 7vw; padding-right: 7vw; }

  .routes-map { min-height: 580px; padding-top: 42px; }
  .routes-intro { position: relative; left: auto; top: auto; width: 185px; }
  .routes-intro h2 { font-size: 34px; }
  .routes-map-composite { left: -10vw; top: 274px; width: 120vw; max-width: none; height: 300px; object-position: top center; }
  .map-board { left: 4vw; right: 4vw; top: 295px; height: 385px; }
  .map-board-shape { left: 50%; top: 62px; width: 92%; transform: translateX(-50%); }
  .map-board > strong { left: 18%; top: 177px; font-size: 17px; }
  .map-point img { width: 42px; height: 42px; }
  .map-point figcaption { font-size: 12px; }
  .point-one { left: 37px; top: 34px; }
  .point-two { left: 46%; top: 34px; }
  .point-three { right: 18px; top: 111px; }
  .point-four { right: 6px; top: 245px; }
  .point-five { left: 36%; top: 294px; }
  .route-line-one { left: 98px; width: 43%; }
  .route-line-two { right: 54px; width: 31%; }
  .route-line-three { left: 40%; width: 32%; }
  .map-note-small { left: 6vw; top: 690px; width: 151px; min-height: 100px; padding: 25px 18px 14px; font-size: 13px; }
  .map-compass { left: 42%; top: 668px; width: 128px; height: 128px; }
  .map-whale { right: -15px; top: 716px; width: 185px; height: 118px; }
  .routes-flower { display: none; }

  .trip-flow { min-height: 750px; padding-top: 42px; overflow: hidden; }
  .trip-flow-intro { position: relative; left: auto; top: auto; width: 100%; }
  .film-strip { position: relative; left: auto; right: auto; top: auto; grid-template-columns: repeat(2, minmax(0,1fr)); width: 100%; height: auto; margin-top: 52px; transform: none; }
  .film-strip article { min-height: 205px; margin-bottom: 31px; }
  .film-strip article:last-child { grid-column: 1 / -1; justify-self: center; width: 50%; }

  .traveler-reviews { min-height: 1080px; padding-top: 44px; overflow: hidden; }
  .traveler-reviews-intro { position: relative; left: auto; top: auto; width: 210px; }
  .traveler-review-grid { position: relative; left: auto; right: auto; top: auto; grid-template-columns: 1fr; gap: 66px; width: min(295px, 86vw); margin: 55px auto 0; }
  .traveler-review { height: 245px; }
  .traveler-review figure { height: 112px; }
  .reviews-flower { right: -35px; bottom: 0; }

  .practical { display: grid; grid-template-columns: 1fr; gap: 38px; min-height: 980px; padding-top: 45px; }
  .faq-block { width: 100%; }
  .faq-block summary { font-size: 8.5px; }
  .faq-polaroid { justify-self: center; width: 250px; height: 235px; }
  .packing-list { width: 100%; }
  .packing-note { justify-self: end; width: 180px; min-height: 155px; }

  .contact-collage { min-height: 690px; margin: 0; clip-path: polygon(0 2%, 15% 0, 31% 2%, 48% 0, 65% 2%, 82% 0, 100% 2%, 100% 100%, 0 100%); background-position: 61% center; }
  .contact-zone-copy { left: 7vw; top: 50px; width: 86vw; }
  .contact-zone-copy h2 { font-size: 36px; }
  .contact-main-photo { right: 6vw; top: 285px; width: 230px; height: 220px; }
  .contact-small-photo { left: 8vw; right: auto; bottom: 40px; width: 115px; height: 145px; }
  .contact-kraft { right: 5vw; top: 505px; width: 205px; }
  .footer-bar { grid-template-columns: 1fr auto; gap: 18px; min-height: 155px; padding: 22px 7vw; }
  .footer-bar nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; flex-wrap: wrap; gap: 14px 21px; }
  .footer-bar nav a { font-size: 8px; }
  .footer-socials { justify-self: end; }
}

/* Light paper theme */
html,
body,
.site-shell {
  color: #292b29;
  background-color: #e9e1d3;
}

.site-shell {
  background-image:
    radial-gradient(circle at 16% 12%, rgba(255,255,255,.38), transparent 28%),
    radial-gradient(circle at 84% 58%, rgba(119,92,58,.055), transparent 22%),
    url("assets/textures/warm-paper-v1.png");
  background-size: auto, auto, 640px 640px;
  background-blend-mode: normal, normal, multiply;
}

.side-panel {
  color: #292b29;
  background-color: #e8dfd0;
  background-image:
    linear-gradient(105deg, rgba(255,255,255,.32), transparent 46%),
    url("assets/textures/warm-paper-v1.png");
  background-size: auto, 640px 640px;
  box-shadow: 8px 0 20px rgba(42,35,27,.12);
}

.brand-mountain,
.benefits .benefit-icon,
.footer-brand > img,
.footer-socials img,
.socials img {
  filter: grayscale(1) brightness(.38) contrast(1.15);
}

.benefits .benefit-icon-mountain {
  filter: grayscale(1) brightness(.42) contrast(1.22);
}

.main-nav a {
  color: #333531;
  opacity: .92;
}

.main-nav a:hover,
.main-nav a:focus-visible {
  color: #080908;
}

.socials a,
.footer-socials a {
  border-color: rgba(43,45,42,.5);
}

.hero-stage {
  color: #e8e5dc;
}

.tours,
.about,
.benefits {
  color: #292b29;
}

.about-copy > p,
.benefits p {
  color: #555752;
}

.all-tours::after,
.routes-intro h2,
.trip-flow-intro h2::after,
.traveler-reviews-intro h2::after,
.contact-zone-copy h2::after {
  border-color: rgba(46,48,45,.58);
}

.about-button {
  color: #292b29;
  border-color: rgba(41,43,41,.72);
}

.heading-arrow {
  filter: grayscale(1) brightness(.42) contrast(1.15);
}

.aurora-note {
  color: #eeeae1;
  text-shadow: 0 2px 4px rgba(0,0,0,.58);
}

.benefits article {
  border-color: rgba(49,51,48,.22);
}

.routes-map,
.trip-flow,
.traveler-reviews,
.practical,
.contact-zone {
  color: #292b29;
  background-color: #e9e1d3;
  background-image:
    radial-gradient(circle at 18% 11%, rgba(255,255,255,.28), transparent 25%),
    radial-gradient(circle at 82% 53%, rgba(103,78,48,.045), transparent 22%),
    url("assets/textures/warm-paper-v1.png");
  background-size: auto, auto, 640px 640px;
  background-blend-mode: normal, normal, multiply;
}

.routes-intro h2,
.trip-flow-intro h2,
.traveler-reviews-intro h2,
.faq-block h2,
.packing-list h2 {
  color: #2d2f2c;
}

.routes-intro > p,
.routes-intro li,
.trip-flow-intro p,
.traveler-reviews-intro p,
.packing-list li {
  color: #575954;
}

.film-strip article > b {
  color: #4b4d48;
  text-shadow: 0 1px 0 rgba(255,255,255,.45);
}

.traveler-reviews-intro > a {
  color: #30322f;
  border-color: rgba(45,47,44,.68);
}

.traveler-reviews-intro > a:hover {
  color: #f0eadf;
  background: #30322f;
}

.faq-block h2 span,
.packing-list li::before {
  border-color: rgba(43,45,42,.72);
}

.faq-block details {
  border-color: rgba(43,45,42,.24);
}

.faq-block summary {
  color: #3e403d;
}

.faq-block details p {
  color: #696b65;
}

.contact-collage {
  color: #e8e5dc;
}

.contact-zone-copy h2 {
  color: #ece8df;
}

.footer-bar {
  color: #292b29;
  background: rgba(232,223,208,.95);
  border-top: 1px solid rgba(45,47,44,.16);
}

.footer-bar nav a {
  color: #4a4c48;
}

.footer-bar nav a::after {
  border-color: #2f312e;
}

@media (max-width: 860px) {
  .side-panel {
    background: linear-gradient(180deg, rgba(238,230,216,.98), rgba(238,230,216,.88), rgba(238,230,216,.12));
  }

  .menu-toggle span:not(.sr-only) {
    border-color: #292b29;
  }

  .main-nav {
    background: rgba(238,230,216,.98);
    box-shadow: 0 14px 18px rgba(42,35,27,.14);
  }
}

/* Continuous paper and top-first section composition */
.site-shell {
  background-color: #e9e1d3;
  background-image: url("assets/textures/warm-paper-v1.png");
  background-size: 640px 640px;
  background-repeat: repeat;
  background-blend-mode: multiply;
}

.routes-map,
.trip-flow,
.traveler-reviews,
.practical,
.contact-zone {
  background: transparent;
}

.hero,
.hero-stage,
.side-panel {
  min-height: max(650px, 100svh);
}

.eyebrow {
  font-size: 12px;
}

.hero-lead {
  font-size: 13px;
}

.hero-copy .sketch-button {
  font-size: 12px;
}

.all-tours {
  font-size: 13px;
  font-weight: 400;
}

.routes-map {
  min-height: clamp(700px, 65vw, 920px);
  padding: 44px 5.7vw 24px;
}

.routes-intro {
  position: relative;
  z-index: 7;
  left: auto;
  top: auto;
  display: grid;
  grid-template-columns: minmax(210px, 1.1fr) minmax(210px, 1fr) minmax(180px, .9fr);
  align-items: start;
  gap: 24px;
  width: min(920px, 100%);
}

.routes-intro h2 {
  font-size: 42px;
}

.routes-intro > p {
  margin: 8px 0 0;
  font-size: 11px;
  line-height: 1.65;
}

.routes-intro ul {
  margin-top: 10px;
}

.routes-intro li {
  font-size: 10px;
}

.routes-map-composite {
  left: 50%;
  top: 185px;
  width: min(1250px, 95vw);
  height: calc(100% - 195px);
  object-position: top center;
  transform: translateX(-50%);
  filter: none;
}

.trip-flow {
  min-height: 430px;
  padding: 42px 5.7vw 34px;
}

.trip-flow-intro {
  position: relative;
  left: auto;
  top: auto;
  display: grid;
  grid-template-columns: minmax(230px, 1fr) minmax(260px, 1.25fr) 125px;
  align-items: start;
  gap: 30px;
  width: min(1040px, 100%);
  margin: 0 auto;
}

.trip-flow-intro h2 {
  font-size: 40px;
}

.trip-flow-intro p {
  margin: 10px 0 0;
  font-size: 11px;
  line-height: 1.6;
}

.trip-flow-intro img {
  margin: 0;
}

.film-strip {
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  width: min(1100px, 100%);
  height: 205px;
  margin: 62px auto 0;
}

.film-strip article > p {
  font-size: 8.5px;
}

.traveler-reviews {
  min-height: 610px;
  padding: 44px 5.7vw 44px;
}

.traveler-reviews-intro {
  position: relative;
  left: auto;
  top: auto;
  display: grid;
  grid-template-columns: minmax(300px, 1.2fr) minmax(240px, 1fr) auto;
  align-items: start;
  gap: 32px;
  width: min(1050px, 100%);
  margin: 0 auto;
}

.traveler-reviews-intro h2 {
  font-size: 40px;
}

.traveler-reviews-intro p {
  margin: 13px 0 0;
  font-size: 11px;
}

.traveler-reviews-intro > a {
  margin-top: 9px;
  padding: 13px 20px;
  font-size: 10px;
}

.traveler-review-grid {
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  width: min(1050px, 100%);
  margin: 58px auto 0;
}

.traveler-review h3 {
  font-size: 10px;
}

.traveler-review > p {
  font-size: 8.5px;
}

.faq-block h2,
.packing-list h2 {
  font-size: 42px;
}

.faq-block summary {
  font-size: 12px;
}

.faq-block details p {
  font-size: 10.5px;
}

.packing-list li {
  font-size: 12px;
}

@media (max-width: 860px) {
  .hero,
  .hero-stage {
    min-height: max(650px, 100svh);
  }

  .side-panel {
    min-height: 90px;
  }

  .routes-intro {
    grid-template-columns: minmax(200px, 1fr) minmax(190px, 1fr) minmax(170px, .85fr);
  }

  .routes-map-composite {
    top: 205px;
  }

  .trip-flow-intro {
    grid-template-columns: minmax(210px, 1fr) minmax(230px, 1.1fr) 105px;
  }
}

@media (max-width: 680px) {
  .hero,
  .hero-stage {
    min-height: max(650px, 100svh);
  }

  .eyebrow {
    font-size: 11px;
  }

  .hero-lead {
    font-size: 12px;
  }

  .hero-copy .sketch-button {
    font-size: 11px;
  }

  .all-tours {
    top: 76px;
    font-size: 12px;
  }

  .routes-map {
    min-height: 640px;
    padding-top: 38px;
  }

  .routes-intro {
    display: block;
    width: 100%;
  }

  .routes-intro h2 {
    width: 210px;
    font-size: 38px;
  }

  .routes-intro > p {
    margin-top: 16px;
    font-size: 10.5px;
  }

  .routes-intro ul {
    margin-top: 13px;
  }

  .routes-intro li {
    font-size: 9.5px;
  }

  .routes-map-composite {
    left: 50%;
    top: 345px;
    width: 120vw;
    height: 275px;
    transform: translateX(-50%);
  }

  .trip-flow {
    min-height: auto;
    padding-top: 42px;
    padding-bottom: 54px;
  }

  .trip-flow-intro {
    display: block;
    width: 100%;
    margin: 0;
  }

  .trip-flow-intro h2 {
    font-size: 40px;
  }

  .trip-flow-intro p {
    margin-top: 20px;
    font-size: 10.5px;
  }

  .trip-flow-intro img {
    margin: 8px 0 0 28px;
  }

  .film-strip {
    height: auto;
    margin-top: 46px;
  }

  .traveler-reviews {
    min-height: auto;
    padding-top: 44px;
    padding-bottom: 72px;
  }

  .traveler-reviews-intro {
    display: block;
    width: 100%;
    margin: 0;
  }

  .traveler-reviews-intro h2 {
    width: 285px;
    font-size: 38px;
  }

  .traveler-reviews-intro h2 span {
    right: 3px;
  }

  .traveler-reviews-intro p {
    margin-top: 22px;
    font-size: 10.5px;
  }

  .traveler-reviews-intro > a {
    font-size: 10px;
  }

  .traveler-review-grid {
    margin-top: 52px;
  }

  .practical {
    min-height: auto;
    padding-bottom: 65px;
  }

  .faq-block h2,
  .packing-list h2 {
    font-size: 40px;
  }

  .faq-block summary {
    font-size: 12px;
  }

  .packing-list li {
    font-size: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

/* Mobile readability and composition refinements */
.faq-block details {
  overflow: hidden;
}

.faq-block details p {
  overflow: hidden;
  will-change: height, opacity;
}

@media (max-width: 860px) {
  .side-panel {
    background-color: #e8dfd0;
    background-image: url("assets/textures/warm-paper-v1.png");
    background-repeat: repeat;
    background-size: 640px 640px;
  }

  .side-panel::after {
    display: none;
  }

  .main-nav {
    background-color: #e8dfd0;
    background-image: url("assets/textures/warm-paper-v1.png");
    background-size: 640px 640px;
  }
}

@media (max-width: 680px) {
  .about {
    min-height: 825px;
  }

  .about-copy h2 {
    font-size: 51px;
  }

  .about-kicker {
    margin-bottom: 18px !important;
    font-size: 12.5px !important;
  }

  .about-copy > p {
    margin-bottom: 16px;
    font-size: 12px;
    line-height: 1.66;
  }

  .about-button {
    min-height: 47px;
    margin-top: 7px;
    font-size: 11.5px;
  }

  .story-collage {
    min-height: 385px;
    margin-top: 54px;
    transform: translateX(-50%) scale(.68);
  }

  .routes-map {
    min-height: 705px;
    padding-top: 44px;
  }

  .routes-intro h2 {
    width: 232px;
    font-size: 42px;
  }

  .routes-intro > p {
    margin-top: 18px;
    font-size: 12px;
    line-height: 1.7;
  }

  .routes-intro li {
    font-size: 11px;
  }

  .routes-map-composite {
    top: 375px;
    width: 128vw;
    height: 310px;
  }

  .faq-block summary {
    padding-top: 12px;
    padding-bottom: 12px;
    font-size: 13px;
  }

  .faq-block summary::after {
    top: 11px;
    font-size: 14px;
    transition: transform 280ms cubic-bezier(.22, .61, .36, 1);
  }

  .faq-block details[open] summary::after {
    content: "+";
    transform: rotate(45deg);
  }

  .faq-block details p {
    padding-bottom: 14px;
    font-size: 11.5px;
    line-height: 1.62;
  }

  .contact-zone-copy p {
    margin-top: 28px;
    margin-bottom: 25px;
    font-size: 12px;
    line-height: 1.68;
  }

  .contact-zone-copy .sketch-button {
    font-size: 11.5px;
  }

  .footer-bar {
    min-height: 178px;
    padding-top: 24px;
    padding-bottom: 25px;
  }

  .footer-brand > img {
    width: 50px;
    height: 50px;
  }

  .footer-brand > span {
    font-size: 22px;
  }

  .footer-brand small {
    margin-top: 7px;
    font-size: 8px;
  }

  .footer-bar nav {
    gap: 16px 24px;
  }

  .footer-bar nav a {
    font-size: 10px;
  }

  .footer-socials {
    gap: 12px;
  }

  .footer-socials a {
    width: 38px;
    height: 38px;
  }
}

/* Office and regional support */
.office-location {
  display: grid;
  grid-template-columns: minmax(280px, .78fr) minmax(420px, 1.22fr);
  gap: clamp(38px, 6vw, 88px);
  align-items: center;
  padding: 72px max(7vw, 28px);
  color: #2d302c;
  background:
    radial-gradient(circle at 10% 22%, rgba(255,255,255,.42), transparent 30%),
    url("assets/textures/warm-paper-v1.png") center / 640px 640px repeat;
}

.office-kicker {
  margin: 0 0 10px;
  color: #6d7068;
  text-transform: uppercase;
  letter-spacing: .12em;
  font: 400 10px/1.2 var(--mono);
}

.office-details h2 {
  margin: 0;
  font: 400 46px/.98 var(--script);
  transform: rotate(-2deg);
}

.office-details h2 span {
  display: inline-block;
  margin-left: 27px;
}

.office-details address {
  margin: 26px 0 22px;
  color: #555850;
  font: 300 12px/1.7 var(--mono);
  font-style: normal;
}

.office-details dl {
  display: grid;
  gap: 10px;
  margin: 0;
}

.office-details dl div {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 14px;
  align-items: baseline;
  padding-bottom: 9px;
  border-bottom: 1px solid rgba(45,48,44,.2);
}

.office-details dt {
  color: #777a72;
  text-transform: uppercase;
  letter-spacing: .08em;
  font: 400 8px/1.3 var(--mono);
}

.office-details dd,
.office-details dd a {
  margin: 0;
  color: #363934;
  font: 400 10px/1.4 var(--mono);
}

.office-map-link {
  display: inline-flex;
  gap: 8px;
  margin-top: 23px;
  padding-bottom: 4px;
  color: #353833;
  border-bottom: 1px solid rgba(45,48,44,.55);
  font: 400 10px/1.2 var(--mono);
  transition: color 180ms ease, border-color 180ms ease;
}

.office-map-link:hover,
.office-map-link:focus-visible {
  color: #a66b50;
  border-color: #a66b50;
}

.office-map-link span { font-size: 15px; line-height: .7; }

.office-map-wrap {
  position: relative;
  min-height: 350px;
  overflow: hidden;
  border: 7px solid #ded7ca;
  box-shadow: 0 20px 30px rgba(51,43,33,.18), inset 0 0 0 1px rgba(45,48,44,.2);
  transform: rotate(1.2deg);
}

.office-map-wrap::before {
  content: "Офис · Карла Маркса, 9";
  position: absolute;
  z-index: 2;
  top: 15px;
  left: 16px;
  padding: 8px 10px;
  color: #383a35;
  background: rgba(235,228,216,.94);
  box-shadow: 0 4px 12px rgba(25,28,26,.16);
  font: 400 9px/1 var(--mono);
  pointer-events: none;
}

.office-map-wrap iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 350px;
  border: 0;
  filter: saturate(.72) contrast(.94) sepia(.12);
}

.footer-support {
  display: grid;
  grid-template-columns: auto minmax(320px, 1fr);
  gap: clamp(26px, 5vw, 72px);
  align-items: center;
  padding: 27px max(4.8vw, 28px);
  color: #eee7d9;
  background:
    linear-gradient(100deg, rgba(80,115,98,.18), transparent 45%),
    url("assets/textures/dark-paper-v1.png") center / 640px 640px,
    #151b1a;
}

.footer-support-logos {
  display: flex;
  align-items: center;
  gap: 18px;
}

.footer-support-coat {
  width: 36px;
  height: 50px;
  object-fit: contain;
}

.footer-support-logo {
  width: 132px;
  max-height: 44px;
  object-fit: contain;
}

.footer-support p {
  margin: 0;
  color: rgba(238,231,217,.84);
  font: 300 9px/1.55 var(--mono);
}

@media (max-width: 680px) {
  .office-location {
    grid-template-columns: 1fr;
    gap: 38px;
    padding-top: 57px;
    padding-bottom: 60px;
  }

  .office-details h2 {
    font-size: 43px;
  }

  .office-details address {
    font-size: 12px;
  }

  .office-details dd,
  .office-details dd a {
    font-size: 10px;
  }

  .office-map-wrap,
  .office-map-wrap iframe {
    min-height: 315px;
  }

  .footer-support {
    grid-template-columns: 1fr;
    gap: 18px;
    padding-top: 25px;
    padding-bottom: 27px;
  }

  .footer-support p {
    max-width: 330px;
    font-size: 9px;
  }
}
