.show-campaign__content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr); align-items: start; gap: var(--space-6); }
.show-campaign__facts { display: grid; gap: 1px; margin: 0; overflow: hidden; background: var(--ink); border: var(--line); border-radius: var(--radius-md); }
.show-campaign__facts div { padding: 1rem; background: var(--white); }
.show-campaign__facts dt { color: var(--muted-ink); font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.show-campaign__facts dd { margin: .35rem 0 0; font-family: var(--font-display); font-size: var(--step-2); font-weight: 740; }

.route-gallery { padding-top: var(--space-5); }
.route-gallery__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-rows: 120px; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.route-gallery__item { grid-column: span 4; grid-row: span 3; min-width: 0; overflow: hidden; background: var(--carbon); border-radius: var(--radius-md); }
.route-gallery__item:nth-child(1), .route-gallery__item:nth-child(5) { grid-column: span 6; grid-row: span 4; }
.route-gallery__item:nth-child(2), .route-gallery__item:nth-child(3), .route-gallery__item:nth-child(4) { grid-column: span 2; grid-row: span 4; }
.route-gallery__item figure, .route-gallery__image { width: 100%; height: 100%; }
.route-gallery__image { object-fit: cover; transition: transform .5s var(--ease-stage); }
.route-gallery__item:is(:hover, :focus-within) .route-gallery__image { transform: scale(1.025); }
.route-gallery figcaption { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }

.about-gallery { padding-top: var(--space-7); }
.about-gallery .section-heading h2 { color: var(--paper); }
.about-gallery .route-gallery__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: auto; gap: clamp(.65rem, 1.2vw, 1rem); }
.about-gallery .route-gallery__item,
.about-gallery .route-gallery__item:nth-child(n) { grid-column: span 1; grid-row: span 1; aspect-ratio: 3 / 4; border: 1px solid rgb(245 239 230 / 18%); border-radius: var(--radius-md); }
.about-gallery .route-gallery__image { object-position: center 18%; }

.character-story__heading { margin-bottom: 1.15rem; }
.character-story__heading h2 { max-width: 13ch; margin: 0; font-size: var(--step-3); }
.character-gallery { overflow: clip; padding-top: var(--space-5); }
.character-gallery .section-heading { margin-bottom: var(--space-4); }
.character-accordion { width: 100%; }
.character-accordion__viewport { width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scroll-padding-inline: .15rem; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.character-accordion__viewport:focus-visible { outline: 3px solid var(--teal); outline-offset: 4px; }
.character-accordion__track { display: flex; height: clamp(430px, 46vw, 650px); gap: clamp(.45rem, 1vw, .85rem); }
.character-accordion__slide { position: relative; flex: 0 0 min(82vw, 720px); min-width: 0; margin: 0; overflow: hidden; background: var(--carbon); border: 1px solid rgb(23 19 16 / 18%); border-radius: var(--radius-md); box-shadow: var(--shadow-soft); scroll-snap-align: center; transition: flex-grow .58s var(--ease-stage), filter .4s ease, opacity .4s ease; }
.character-accordion__image { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: filter .45s ease, opacity .45s ease, transform .58s var(--ease-stage); }
.character-accordion--single .character-accordion__slide { flex-basis: 100%; }
.character-accordion.is-enhanced .character-accordion__viewport { overflow: hidden; scroll-snap-type: none; }
.character-accordion.is-enhanced .character-accordion__track { width: 100%; }
.character-accordion.is-enhanced .character-accordion__slide { flex: 1 1 0; }
.character-accordion.is-enhanced .character-accordion__slide.is-active { flex-grow: 4; }
.character-accordion.is-enhanced .character-accordion__slide:not(.is-active) .character-accordion__image { filter: saturate(.7) brightness(.72); opacity: .84; transform: scale(1.045); }
.character-accordion__controls { display: grid; width: fit-content; grid-template-columns: 52px minmax(72px, auto) 52px; align-items: center; gap: .35rem; margin: 1rem 0 0 auto; padding: .35rem; background: var(--white); border: var(--line); border-radius: var(--radius-pill); box-shadow: var(--shadow-soft); }
.character-accordion__controls[hidden] { display: none; }
.character-accordion__controls button { display: inline-grid; width: 52px; height: 52px; place-items: center; padding: 0; color: var(--paper); background: var(--ink); border: 0; border-radius: 50%; cursor: pointer; transition: color .2s ease, background .2s ease, transform .2s ease; }
.character-accordion__controls button:is(:hover, :focus-visible) { color: var(--ink); background: var(--sun); }
.character-accordion__controls button:focus-visible { outline: 3px solid var(--teal); outline-offset: 2px; }
.character-accordion__controls button:active { transform: translateY(2px); }
.character-accordion__controls svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.character-accordion__status { margin: 0; color: var(--muted-ink); font-size: .8rem; font-weight: 800; text-align: center; white-space: nowrap; }

.characters-priority { color: var(--paper); background: var(--night); }
.characters-priority.shell { width: 100%; max-width: none; padding-inline: max(var(--edge), calc((100vw - var(--shell)) / 2)); }
.characters-priority .section-heading h2 { color: var(--white); }
.characters-priority__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.characters-priority .character-card { min-width: 0; overflow: hidden; background: #bf8812; border: 1px solid rgb(245 239 230 / 22%); border-radius: var(--radius-lg); }
.characters-priority .character-card:nth-child(2) { background: #c8472e; }
.characters-priority .character-card:nth-child(3) { background: #176f68; }
.characters-priority .character-card__header { display: flex; min-height: 78px; align-items: flex-start; justify-content: space-between; gap: .7rem; padding: 1rem; }
.characters-priority .character-card__header strong { max-width: 11ch; color: var(--white); font-family: var(--font-display); font-size: var(--step-2); line-height: 1; }
.characters-priority .character-card__header small { flex: 0 0 auto; padding: .42rem .65rem; color: var(--ink); background: var(--paper); border-radius: var(--radius-pill); font-size: .63rem; font-weight: 800; white-space: nowrap; }
.characters-priority .character-card__media { position: relative; min-height: 430px; overflow: hidden; }
.characters-priority .character-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 12%; transition: opacity .55s var(--ease-stage), transform .65s var(--ease-stage); }
.characters-priority .character-photo--primary { opacity: 1; }
.characters-priority .character-photo--gesture { opacity: 0; transform: scale(1.025); }
.characters-priority .character-card:is(:hover, :focus-within, :focus-visible, .is-alternate) .character-photo--primary { opacity: 0; transform: scale(1.025); }
.characters-priority .character-card:is(:hover, :focus-within, :focus-visible, .is-alternate) .character-photo--gesture { opacity: 1; transform: none; }
.character-card--pending > p { margin: 0; padding: 1rem; color: var(--paper); font-size: .82rem; }
.character-archive-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.character-profile { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(0, 1fr); min-height: 370px; overflow: hidden; background: var(--sun); border-radius: var(--radius-md); }
.character-profile:nth-child(3n + 2) { background: var(--orange); }
.character-profile:nth-child(3n) { color: var(--paper); background: var(--teal); }
.character-profile__visual { min-height: 340px; background: #29272a; }
.character-profile__visual picture, .character-profile__visual img { width: 100%; height: 100%; }
.character-profile__image { object-fit: contain; object-position: center; }
.character-profile__copy { align-self: center; padding: 1.4rem; }
.character-profile__copy h2 { font-size: var(--step-2); }
.character-profile__copy h2 a { text-decoration: none; }
.character-profile__copy p { font-size: .88rem; }
.character-booking { overflow: hidden; }
.character-booking__layout { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--space-6); }
.character-booking__copy h2 { max-width: 12ch; margin-bottom: 1rem; font-size: clamp(2.5rem, 4.8vw, 4.8rem); }
.character-booking__copy > p:last-child { max-width: 56ch; margin-bottom: 0; }
.character-booking .button { min-width: 220px; }

.document-page__body { padding-top: var(--space-6); }
.document-page__nav { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.5rem; padding-top: 0; }
.document-page__nav button { padding: 0; border: 0; }
.prose--statement { font-size: var(--step-1); }
.prose-list { display: grid; gap: 1rem; }
.story-row { display: grid; grid-template-columns: 200px 1fr; gap: var(--space-4); padding-block: 1rem; border-bottom: var(--line-light); }
.story-row__visual { min-height: 170px; }
.story-row__image { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-md); }
.story-row__copy h2 { font-size: var(--step-2); }
.error-page { min-height: 68vh; display: grid; align-items: center; background: var(--sun); }
.error-page .route-hero__layout { min-height: 390px; }
.error-recovery__links { display: flex; flex-wrap: wrap; gap: .75rem 1.2rem; margin-top: 1.2rem; }
.error-recovery__note { max-width: 48ch; color: var(--muted-ink); }
.button--ghost { background: transparent; box-shadow: none; }

@media (max-width: 760px) {
  .character-accordion__track { height: clamp(360px, 118vw, 510px); gap: .45rem; }
  .character-accordion.is-enhanced .character-accordion__slide { flex-grow: .65; }
  .character-accordion.is-enhanced .character-accordion__slide.is-active { flex-grow: 6; }
  .character-accordion__controls { width: 100%; grid-template-columns: 52px 1fr 52px; }
  .character-booking__layout { grid-template-columns: 1fr; align-items: start; gap: var(--space-4); }
  .character-booking__copy h2 { font-size: clamp(2.3rem, 11vw, 3.5rem); }
  .character-booking .button { width: 100%; min-width: 0; }
}

@media (max-width: 390px) {
  .character-accordion__track { height: clamp(350px, 122vw, 470px); gap: .35rem; }
  .character-accordion.is-enhanced .character-accordion__slide { flex-grow: .5; }
  .character-accordion.is-enhanced .character-accordion__slide.is-active { flex-grow: 7.5; }
}

@media (prefers-reduced-motion: reduce) {
  .character-accordion__slide, .character-accordion__image, .character-accordion__controls button { transition: none; }
}
