.archive-story {
  --archive-forest: #12392c;
  --archive-cream: #f3f0e5;
  --archive-gold: #dfb877;
  position: relative;
  margin: 42px 0 46px;
  padding: 26px 26px 20px;
  border: 1px solid #ffffff13;
  border-radius: 18px;
  background:
    radial-gradient(ellipse at 12% 0%, #275b4538 0, transparent 42%),
    linear-gradient(135deg, #102f24, var(--archive-forest) 55%, #183f30);
  color: var(--archive-cream);
}

.archive-story-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin: 0 2px 18px;
}

.archive-story-kicker,
.archive-story-prompt,
.archive-story-current,
.archive-story-total,
.archive-story-slide-meta {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  letter-spacing: 1.25px;
  text-transform: uppercase;
}

.archive-story-kicker {
  color: var(--archive-gold);
  font-size: 9px;
}

.archive-story-lede {
  margin: 8px 0 0;
  color: #f3f0e5;
  font: 400 clamp(18px, 2vw, 25px)/1.18 Manrope, sans-serif;
  letter-spacing: -.045em;
}

.archive-story-guide {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #d6ddcf;
  font: 500 9px/1 'DM Sans', sans-serif;
  letter-spacing: .9px;
  white-space: nowrap;
}

.archive-story-guide-icon {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid #d6ddcf45;
  border-radius: 50%;
  color: var(--archive-gold);
  font-size: 16px;
}

.archive-story-current {
  margin-left: 9px;
  color: var(--archive-gold);
  font-size: 12px;
}

.archive-story-total { color: #9eafa2; font-size: 9px; }

.archive-story-motion-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border: 1px solid #d6ddcf59;
  border-radius: 999px;
  background: #f3f0e509;
  color: var(--archive-cream);
  font: 600 9px/1 'DM Sans', sans-serif;
  letter-spacing: .55px;
  cursor: pointer;
}

.archive-story-motion-toggle[hidden] { display: none; }
.archive-story-motion-toggle:hover,
.archive-story-motion-toggle:focus-visible { border-color: var(--archive-gold); color: var(--archive-gold); }
.archive-story-motion-toggle:focus-visible,
.archive-story-control:focus-visible,
.archive-story-step:focus-visible,
.archive-story-viewport:focus-visible { outline: 2px solid var(--archive-gold); outline-offset: 4px; }

.archive-story-viewport {
  position: relative;
  height: clamp(380px, calc(100svh - 180px), 720px);
  min-height: 360px;
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid #e8e2d21c;
  border-radius: 10px;
  background: #0a251b;
  scrollbar-width: none;
  scroll-snap-type: x mandatory;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

.archive-story-viewport::-webkit-scrollbar { display: none; }

.archive-story-track {
  display: flex;
  width: 300%;
  height: 100%;
  transform: translate3d(0, 0, 0);
  will-change: transform;
}

.archive-story-slide {
  position: relative;
  isolation: isolate;
  display: flex;
  flex: 0 0 33.333333%;
  height: 100%;
  align-items: flex-end;
  overflow: hidden;
  scroll-snap-align: start;
  background: #102c21;
}

.archive-story-slide img {
  position: absolute;
  z-index: -2;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(.82) contrast(1.04);
}

.archive-story-slide::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(90deg, #09271ee3 0%, #09271e9c 25%, #09271e21 68%, #09271e40 100%),
    linear-gradient(0deg, #09271ee8 0%, #09271e78 23%, transparent 62%);
  content: '';
}

.archive-story-slide::after {
  position: absolute;
  z-index: 0;
  inset: 0;
  border: 1px solid #f2eee50d;
  background: linear-gradient(90deg, #12392c2e 0%, transparent 13%, transparent 87%, #12392c2e 100%);
  content: '';
  pointer-events: none;
}

.archive-story-caption {
  position: relative;
  z-index: 1;
  width: min(680px, 77%);
  padding: 0 0 clamp(30px, 5vw, 60px) clamp(28px, 6vw, 76px);
}

.archive-story-slide-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 17px;
  color: var(--archive-gold);
  font-size: 9px;
}

.archive-story-slide-meta span + span {
  padding-left: 12px;
  border-left: 1px solid #f3f0e54d;
  color: #d8dfd1;
}

.archive-story-caption h3 {
  max-width: 650px;
  margin: 0;
  color: #f5f1e7;
  font: 400 clamp(32px, 5.2vw, 68px)/.98 Manrope, sans-serif;
  letter-spacing: -.065em;
  text-wrap: balance;
}

.archive-story-caption p {
  max-width: 450px;
  margin: 16px 0 0;
  color: #e4e8dc;
  font: 400 clamp(12px, 1.25vw, 15px)/1.55 Manrope, sans-serif;
}

.archive-story-controls {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 16px 2px 0;
}

.archive-story-control {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid #e5e9dd45;
  border-radius: 50%;
  background: transparent;
  color: var(--archive-cream);
  font-size: 15px;
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.archive-story-control:hover { border-color: var(--archive-gold); background: #dfb87718; color: var(--archive-gold); }

.archive-story-steps {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 2vw, 28px);
}

.archive-story-step {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 4px 0;
  border: 0;
  background: transparent;
  color: #aab9ac;
  font: 500 9px/1 'DM Sans', sans-serif;
  cursor: pointer;
  transition: color .2s ease;
}

.archive-story-step b {
  color: #81978a;
  font-weight: 500;
  letter-spacing: .7px;
}

.archive-story-step[aria-current='step'],
.archive-story-step:hover { color: var(--archive-cream); }

.archive-story-step[aria-current='step'] b { color: var(--archive-gold); }

.archive-story-rail {
  position: relative;
  width: min(126px, 16vw);
  height: 1px;
  overflow: hidden;
  background: #e5e9dd40;
}

.archive-story-rail span {
  position: absolute;
  inset: 0;
  background: var(--archive-gold);
  transform: scaleX(0);
  transform-origin: left center;
}

.archive-story-controls-count {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  color: #9eafa2;
  font: 600 8px/1 'DM Sans', sans-serif;
  letter-spacing: .8px;
  white-space: nowrap;
}

.archive-story-controls-count b { color: var(--archive-gold); font-size: 10px; }

.archive-story.is-scroll-driven .archive-story-viewport { overflow: hidden; scroll-snap-type: none; }
.archive-story.is-scroll-driven .archive-story-track { overflow: visible; }
.archive-story + .gallery-grid { margin-top: 56px; }

@media (max-width: 800px) {
  .archive-story { margin: 34px 0 36px; padding: 21px 18px 17px; }
  .archive-story-viewport { height: clamp(300px, 66vw, 430px); min-height: 300px; }
  .archive-story-caption { width: 88%; padding: 0 0 35px 28px; }
  .archive-story-caption h3 { font-size: clamp(30px, 6vw, 48px); }
  .archive-story-caption p { max-width: 380px; font-size: 13px; }
}

@media (max-width: 600px) {
  .archive-story { margin: 30px -3px 32px; padding: 17px 13px 13px; border-radius: 14px; }
  .archive-story-head { align-items: flex-start; gap: 10px; margin: 0 3px 14px; }
  .archive-story-kicker { font-size: 8px; letter-spacing: .9px; }
  .archive-story-lede { max-width: 210px; margin-top: 7px; font-size: 19px; }
  .archive-story-guide { gap: 6px; padding-top: 2px; font-size: 7px; letter-spacing: .35px; }
  .archive-story-guide-icon { width: 24px; height: 24px; font-size: 14px; }
  .archive-story-current { margin-left: 3px; font-size: 10px; }
  .archive-story-total { font-size: 8px; }
  .archive-story-motion-toggle { max-width: 142px; padding: 8px 9px; font-size: 8px; line-height: 1.25; white-space: normal; }
  .archive-story-viewport { height: clamp(280px, 108vw, 390px); min-height: 280px; border-radius: 8px; }
  .archive-story-slide img { object-position: center; }
  .archive-story-slide::before {
    background:
      linear-gradient(90deg, #09271ea8 0%, #09271e23 55%, #09271e12 100%),
      linear-gradient(0deg, #09271ef2 0%, #09271e8c 34%, transparent 72%);
  }
  .archive-story-caption { width: 94%; padding: 0 0 28px 20px; }
  .archive-story-slide-meta { gap: 9px; margin-bottom: 12px; font-size: 8px; }
  .archive-story-slide-meta span + span { padding-left: 9px; }
  .archive-story-caption h3 { max-width: 340px; font-size: clamp(28px, 9vw, 40px); }
  .archive-story-caption p { max-width: 300px; margin-top: 11px; font-size: 12px; line-height: 1.45; }
  .archive-story-controls { gap: 9px; padding-top: 12px; }
  .archive-story-control { width: 32px; height: 32px; }
  .archive-story-steps { gap: 10px; }
  .archive-story-step { gap: 6px; font-size: 8px; }
  .archive-story-step span { display: none; }
  .archive-story-rail { width: 22px; }
  .archive-story-controls-count { font-size: 7px; }
}

@media (prefers-reduced-motion: reduce) {
  .archive-story-control { transition: none; }
  .archive-story-slide img { filter: none; }
  .archive-story-viewport { scroll-behavior: auto; }
  .archive-story.is-scroll-driven .archive-story-track {
    transform: translate3d(var(--archive-scroll-x, 0px), 0, 0) !important;
  }
}
