.dress-story-page {
  --story-accent: #857a72;
  --story-glow: rgba(133, 122, 114, .14);
  --story-deep: #070706;
  --story-content: 1240px;
  --story-gutter: clamp(24px, 6vw, 92px);
  --section-gap: clamp(68px, 9vh, 118px);
  --media-gap: clamp(14px, 2vw, 30px);
  --story-space: var(--section-gap);
  --story-gap: var(--media-gap);
  --hero-text-x: max(6vw, calc((100vw - var(--story-content)) / 2));
  --hero-text-y: 7.5vh;
  --story-text-x: max(6vw, calc((100vw - var(--story-content)) / 2));
  --story-text-y: var(--section-gap);
  --hero-section-size: 84svh;
  --section-size: 72svh;
  --media-height: 66vh;
  --wide-media-height: 72vh;
  --portrait-media-height: 70vh;
  --cinematic-section-size: 74svh;
  --gallery-lead-height: 82vh;
  --image-scale: 1;
  --image-hover-scale: 1.018;
  --image-position-x: 50%;
  --image-position-y: 50%;
  --video-position-x: 50%;
  --video-position-y: 50%;
  --story-transition: .9s;
  background: var(--story-deep);
  overflow-x: clip;
}

.dress-story-page--bloom { --story-accent: #9d282c; --story-glow: rgba(157, 40, 44, .14); --story-deep: #080505; }
.dress-story-page--carnation {
  --story-accent: #ad8bb9;
  --story-glow: rgba(173, 139, 185, .14);
  --story-deep: #080609;
  --carnation-timeline-height: min(76svh, 840px);
  --carnation-neckline-height: min(72vh, 780px);
  --carnation-underneck-height: min(72svh, 800px);
}
.dress-story-page--summer { --story-accent: #879447; --story-glow: rgba(135, 148, 71, .14); --story-deep: #060705; }
.dress-story-page--emerald { --story-accent: #2f8a65; --story-glow: rgba(47, 138, 101, .14); --story-deep: #040806; }
.dress-story-page--magnetic {
  --story-accent: #c52a85;
  --story-glow: rgba(197, 42, 133, .14);
  --story-deep: #080507;
  --magnetic-split-height: min(68vh, 760px);
  --magnetic-final-video-height: min(68vh, 760px);
  --magnetic-closing-height: min(76vh, 840px);
}
.dress-story-page--tropical {
  --story-accent: #db6b2b;
  --story-glow: rgba(219, 107, 43, .14);
  --story-deep: #090604;
  --tropical-split-height: min(70vh, 780px);
  --tropical-dance-height: min(76vh, 840px);
  --tropical-final-pair-height: min(70vh, 780px);
}
.dress-story-page--arctic {
  --story-accent: #4a9fca;
  --story-glow: rgba(74, 159, 202, .15);
  --story-deep: #04080b;
  --arctic-split-height: min(70vh, 780px);
  --arctic-final-video-height: min(76vh, 840px);
}
.dress-story-page--burgundy {
  --story-accent: #7d2436;
  --story-glow: rgba(125, 36, 54, .17);
  --story-deep: #080405;
  --burgundy-split-height: min(70vh, 780px);
  --burgundy-gallery-lead-height: min(82vh, 900px);
  --burgundy-gallery-closing-height: min(64vh, 700px);
}

.dress-story-page .masthead--inner {
  background: linear-gradient(180deg, rgba(4, 4, 4, .86), rgba(4, 4, 4, .18) 72%, transparent);
}

.dress-story-page figure { margin: 0; }
.dress-story-page img,
.dress-story-page video { display: block; max-width: 100%; }
.dress-story-page [data-reveal] { transform: translateY(18px); transition-duration: var(--story-transition); }
.dress-story-page [data-reveal].is-visible { transform: none; }

.ds-story-text {
  color: rgba(241, 238, 231, .84);
  font: 400 clamp(16px, 1.25vw, 20px)/1.66 "Playfair Display", Georgia, serif;
  margin: 0;
  max-width: 760px;
  white-space: pre-line;
}

.ds-story-text--large { font-size: clamp(21px, 1.9vw, 32px); line-height: 1.48; }
.ds-label {
  color: rgba(241, 238, 231, .5);
  font: 400 9px/1.4 "DM Mono", monospace;
  letter-spacing: .17em;
  margin: 0 0 24px;
  text-transform: uppercase;
}

/* Dress story hero */
.ds-hero {
  background: var(--story-deep);
  isolation: isolate;
  min-height: var(--hero-section-size);
  overflow: hidden;
  position: relative;
}

.ds-hero__image {
  height: 100%;
  inset: 0;
  object-fit: var(--media-fit, cover);
  object-position: var(--media-position-x, var(--image-position-x)) var(--media-position-y, var(--image-position-y));
  position: absolute;
  transform: scale(var(--media-scale, var(--image-scale)));
  transition: transform 9s ease;
  width: 100%;
  z-index: -3;
}

.ds-hero:hover .ds-hero__image { --media-scale: var(--image-hover-scale); }
.ds-hero__veil {
  background:
    linear-gradient(90deg, rgba(4, 4, 4, .94), rgba(4, 4, 4, .58) 49%, rgba(4, 4, 4, .18) 78%),
    linear-gradient(0deg, rgba(3, 3, 3, .88), transparent 62%);
  inset: 0;
  position: absolute;
  z-index: -2;
}

.ds-hero__copy {
  bottom: var(--hero-text-y);
  left: var(--hero-text-x);
  max-width: 900px;
  position: absolute;
  right: 6vw;
  z-index: 1;
}

.ds-hero h1 {
  color: var(--ivory);
  font: 500 clamp(66px, 8.2vw, 132px)/.84 "Playfair Display", Georgia, serif;
  letter-spacing: -.067em;
  margin: 0;
  max-width: 11ch;
}

.ds-hero__subtitle {
  color: rgba(241, 238, 231, .78);
  font: 400 clamp(17px, 1.55vw, 25px)/1.45 "Playfair Display", Georgia, serif;
  margin: clamp(24px, 3.5vh, 38px) 0 0;
  max-width: 720px;
}

.ds-hero__body { margin-top: 22px; max-width: 780px; }
.ds-scroll {
  align-items: center;
  bottom: 28px;
  color: var(--muted);
  display: flex;
  font: 400 9px/1 "DM Mono", monospace;
  gap: 16px;
  letter-spacing: .15em;
  position: absolute;
  right: 4vw;
  text-transform: uppercase;
}
.ds-scroll span { font-size: 17px; transition: transform .35s ease; }
.ds-scroll:hover span { transform: translateY(4px); }

/* Editorial story sections */
.ds-section {
  background:
    radial-gradient(circle at 80% 0%, var(--story-glow), transparent 35%),
    var(--story-deep);
  padding: var(--section-gap) var(--story-gutter);
}

.ds-section--alternate { background: #090909; }
.ds-section__inner { margin: 0 auto; max-width: var(--story-content); }
.ds-copy { margin-bottom: clamp(36px, 5vh, 62px); }
.ds-copy .ds-story-text { max-width: 940px; }
.ds-copy--after { margin: clamp(34px, 5vh, 58px) 0 0; }
.ds-copy--after .ds-story-text { margin-left: auto; margin-right: auto; max-width: 940px; }

.ds-media {
  background: #020303;
  overflow: hidden;
}

.ds-media img,
.ds-media video {
  height: 100%;
  object-fit: var(--media-fit, cover);
  object-position: var(--media-position-x, 50%) var(--media-position-y, 50%);
  transform: scale(var(--media-scale, var(--image-scale)));
  transition: transform 7s ease;
  width: 100%;
}
.ds-media:hover img { --media-scale: var(--image-hover-scale); }
.ds-media--wide { height: min(var(--wide-media-height), 820px); min-height: 540px; }
.ds-media--wide img { --media-position-y: 46%; }
.ds-media--portrait { height: min(var(--portrait-media-height), 780px); min-height: 520px; }
.ds-media--portrait img { --media-position-y: 42%; }
.ds-media--video-landscape { height: min(68vh, 760px); min-height: 520px; }
.ds-media--video-landscape video { --media-fit: contain; --media-position-x: 50%; --media-position-y: 50%; }

.ds-pair {
  display: grid;
  gap: var(--story-gap);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.ds-pair > * { min-width: 0; }
.ds-pair .ds-media { height: min(var(--media-height), 740px); min-height: 500px; }
.ds-pair .ds-media video { --media-fit: contain; --media-position-x: 50%; --media-position-y: 50%; }
.ds-pair--image-cover .ds-media video { --media-fit: cover; }

.ds-cinematic {
  background: #030303;
  isolation: isolate;
  min-height: var(--cinematic-section-size);
  overflow: hidden;
  position: relative;
}
.ds-cinematic > img,
.ds-cinematic > video {
  height: 100%;
  inset: 0;
  object-fit: var(--media-fit, cover);
  object-position: var(--media-position-x, 50%) var(--media-position-y, 50%);
  transform: scale(var(--media-scale, var(--image-scale)));
  position: absolute;
  width: 100%;
  z-index: -3;
}
.ds-cinematic--portrait-video > video { --media-fit: contain; }
.ds-cinematic__veil {
  background:
    linear-gradient(90deg, rgba(3, 3, 3, .9), rgba(3, 3, 3, .3) 68%),
    linear-gradient(0deg, rgba(3, 3, 3, .84), transparent 62%);
  inset: 0;
  position: absolute;
  z-index: -2;
}
.ds-cinematic__copy {
  bottom: var(--story-text-y);
  left: var(--story-text-x);
  max-width: 850px;
  position: absolute;
  right: 6vw;
}
.ds-cinematic__copy .ds-story-text { text-shadow: 0 5px 28px rgba(0, 0, 0, .82); }

/* Final gallery */
.ds-final {
  background:
    radial-gradient(circle at 18% 8%, var(--story-glow), transparent 34%),
    #070707;
  padding: var(--story-space) var(--story-gutter) calc(var(--story-space) * 1.25);
}
.ds-final__inner { margin: 0 auto; max-width: var(--story-content); }
.ds-final__header { margin-bottom: clamp(42px, 6vh, 72px); }
.ds-final h2 {
  color: var(--ivory);
  font: 500 clamp(58px, 7vw, 112px)/.9 "Playfair Display", Georgia, serif;
  letter-spacing: -.06em;
  margin: 0;
}
.ds-gallery {
  display: grid;
  gap: var(--story-gap);
  grid-template-columns: 1.25fr .75fr;
}
.ds-gallery__lead { background: #020303; height: min(var(--gallery-lead-height), 900px); min-height: 650px; overflow: hidden; }
.ds-gallery__rail { display: grid; gap: var(--story-gap); grid-template-rows: 1fr 1fr; }
.ds-gallery__rail figure { background: #020303; min-height: 0; overflow: hidden; }
.ds-gallery img,
.ds-gallery video { height: 100%; width: 100%; }
.ds-gallery img,
.ds-gallery video { object-fit: var(--media-fit, cover); object-position: var(--media-position-x, 50%) var(--media-position-y, 50%); transform: scale(var(--media-scale, var(--image-scale))); }
.ds-gallery video { --media-fit: contain; }
.ds-gallery__row {
  display: grid;
  gap: var(--story-gap);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: var(--story-gap);
}
.ds-gallery__row figure { background: #020303; height: min(54vh, 620px); min-height: 420px; overflow: hidden; }
.ds-gallery__row img,
.ds-gallery__row video { height: 100%; object-fit: var(--media-fit, cover); object-position: var(--media-position-x, 50%) var(--media-position-y, 50%); transform: scale(var(--media-scale, var(--image-scale))); width: 100%; }
.ds-gallery__row video { --media-fit: contain; }
.ds-gallery--two { grid-template-columns: 1fr 1fr; }
.ds-gallery--two .ds-gallery__lead { height: min(76vh, 820px); }

/* Story navigation */
.ds-next { border-top: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr; }
.ds-next a {
  display: flex;
  flex-direction: column;
  min-height: 220px;
  padding: 46px 7vw;
  transition: background .5s ease;
}
.ds-next a + a { border-left: 1px solid var(--line); }
.ds-next a:hover { background: color-mix(in srgb, var(--story-accent) 10%, #080808); }
.ds-next span {
  color: var(--muted);
  font: 400 9px/1 "DM Mono", monospace;
  letter-spacing: .15em;
  margin-bottom: auto;
  text-transform: uppercase;
}
.ds-next strong { font: 500 clamp(40px, 4.5vw, 70px)/1 "Playfair Display", Georgia, serif; letter-spacing: -.05em; }

/* Page-specific framing: Bloom Beneath Ice */
.image-bloom-hero { --media-position-x: 50%; --media-position-y: 45%; }
.image-bloom-opening { --media-position-x: 50%; --media-position-y: 36%; }
.image-bloom-material,
.image-bloom-before,
.image-bloom-no-crystal,
.image-bloom-drink,
.image-bloom-drink-detail,
.image-bloom-final-01,
.image-bloom-final-02,
.image-bloom-final-04 { --media-position-x: 50%; --media-position-y: 50%; }
.video-bloom-material,
.video-bloom-sewing,
.video-bloom-handwork,
.video-bloom-final-03 { --media-fit: contain; --media-position-x: 50%; --media-position-y: 50%; }
.video-bloom-crystals { --media-fit: contain; --media-position-x: 50%; --media-position-y: 42%; }
.story-text-bloom-hero { --text-max-width: 900px; --text-margin-left: 0px; --text-margin-top: 0px; }
.story-text-bloom-material,
.story-text-bloom-crystals,
.story-text-bloom-handwork,
.story-text-bloom-final { --text-max-width: none; --text-margin-left: 0px; --text-margin-top: 0px; }

/* Page-specific framing: Carnation Veil */
.image-carnation-hero { --media-position-x: 50%; --media-position-y: 44%; }
.image-carnation-opening { --media-position-x: 50%; --media-position-y: 38%; }
.image-carnation-neckline { --media-fit: contain; --media-position-x: 50%; --media-position-y: 50%; }
.image-carnation-construction { --media-fit: cover; --media-position-x: 50%; --media-position-y: 52%; }
.image-carnation-debut-01,
.image-carnation-debut-02,
.image-carnation-final-01,
.image-carnation-final-02 { --media-position-x: 50%; --media-position-y: 50%; }
.video-carnation-timeline { --media-fit: cover; --media-position-x: 50%; --media-position-y: 50%; }
.story-text-carnation-hero { --text-max-width: 900px; --text-margin-left: 0px; --text-margin-top: 0px; }
.story-text-carnation-opening,
.story-text-carnation-embellishment,
.story-text-carnation-neckline,
.story-text-carnation-construction,
.story-text-carnation-debut,
.story-text-carnation-final { --text-max-width: none; --text-margin-left: 0px; --text-margin-top: 0px; }

.carnation-timeline-cinematic { min-height: var(--carnation-timeline-height); }
.carnation-timeline-cinematic .ds-cinematic__veil {
  background:
    linear-gradient(90deg, rgba(3, 3, 3, .76), rgba(3, 3, 3, .34) 43%, rgba(3, 3, 3, .06) 72%),
    linear-gradient(0deg, rgba(3, 3, 3, .68), transparent 62%);
}
.carnation-timeline-cinematic .ds-cinematic__copy {
  bottom: clamp(46px, 7vh, 78px);
  max-width: min(620px, 42vw);
}
.carnation-neckline-split {
  align-items: center;
  display: grid;
  gap: clamp(42px, 6vw, 92px);
  grid-template-columns: minmax(320px, .72fr) minmax(0, 1fr);
}
.carnation-neckline-media {
  height: var(--carnation-neckline-height);
  min-height: 540px;
}
.carnation-neckline-copy { margin: 0; }
.carnation-neckline-copy .ds-story-text { max-width: 610px; }
.carnation-underneck-cinematic { min-height: var(--carnation-underneck-height); }
.carnation-underneck-cinematic .ds-cinematic__veil {
  background:
    linear-gradient(90deg, rgba(3, 3, 3, .86), rgba(3, 3, 3, .28) 62%, rgba(3, 3, 3, .08)),
    linear-gradient(0deg, rgba(3, 3, 3, .72), transparent 64%);
}
.carnation-underneck-cinematic .ds-cinematic__copy { max-width: 720px; }

/* Page-specific framing: Summer's Farewell */
.image-summer-hero { --media-position-x: 50%; --media-position-y: 42%; }
.image-summer-grown { --media-position-x: 50%; --media-position-y: 38%; }
.image-summer-album,
.image-summer-fabric,
.image-summer-stillwork,
.image-summer-final-01,
.image-summer-final-02,
.image-summer-final-03,
.image-summer-final-04 { --media-position-x: 50%; --media-position-y: 50%; }
.video-summer-drops,
.video-summer-raindrops,
.video-summer-work,
.video-summer-show { --media-fit: contain; --media-position-x: 50%; --media-position-y: 50%; }
.story-text-summer-hero { --text-max-width: 900px; --text-margin-left: 0px; --text-margin-top: 0px; }
.story-text-summer-material,
.story-text-summer-grown,
.story-text-summer-raindrops,
.story-text-summer-balance,
.story-text-summer-show,
.story-text-summer-final { --text-max-width: none; --text-margin-left: 0px; --text-margin-top: 0px; }

/* Page-specific framing: Emerald */
.image-emerald-hero { --media-position-x: 50%; --media-position-y: 43%; }
.image-emerald-fabric { --media-fit: contain; --media-position-x: 50%; --media-position-y: 50%; }
.image-emerald-dance-01,
.image-emerald-dance-02,
.image-emerald-final-01,
.image-emerald-final-02,
.image-emerald-final-03,
.image-emerald-final-04,
.image-emerald-final-05,
.image-emerald-final-06,
.image-emerald-final-07,
.image-emerald-final-08,
.image-emerald-final-09 { --media-position-x: 50%; --media-position-y: 50%; }
.video-emerald-work { --media-fit: contain; --media-position-x: 50%; --media-position-y: 50%; }
.story-text-emerald-hero { --text-max-width: 900px; --text-margin-left: 0px; --text-margin-top: 0px; }
.story-text-emerald-composition,
.story-text-emerald-work,
.story-text-emerald-symbolism,
.story-text-emerald-final { --text-max-width: none; --text-margin-left: 0px; --text-margin-top: 0px; }
.dress-story-page--emerald .ds-symbolism { margin-top: clamp(42px, 6vh, 72px); }

/* Page-specific framing and layout: Magnetic Confidence */
.dress-story-page--magnetic .ds-hero h1 {
  font-size: clamp(62px, 7.4vw, 116px);
  max-width: 9.5ch;
}
.dress-story-page--magnetic .ds-hero__body { max-width: 830px; }
.image-magnetic-hero { --media-position-x: 48%; --media-position-y: 48%; }
.image-magnetic-first { --media-position-x: 50%; --media-position-y: 46%; }
.image-magnetic-fabric { --media-position-x: 50%; --media-position-y: 48%; }
.image-magnetic-maniken { --media-position-x: 50%; --media-position-y: 44%; }
.image-magnetic-velvet { --media-position-x: 50%; --media-position-y: 50%; }
.image-magnetic-notblack { --media-position-x: 50%; --media-position-y: 42%; }
.image-magnetic-black { --media-position-x: 50%; --media-position-y: 46%; }
.image-magnetic-final-01 { --media-position-x: 50%; --media-position-y: 50%; }
.image-magnetic-final-02 { --media-position-x: 50%; --media-position-y: 46%; }
.image-magnetic-final-03 { --media-position-x: 50%; --media-position-y: 48%; }
.video-magnetic-sewing { --media-fit: cover; --media-position-x: 50%; --media-position-y: 44%; }
.video-magnetic-accessories { --media-fit: cover; --media-position-x: 50%; --media-position-y: 46%; }
.video-magnetic-step-01,
.video-magnetic-step-02,
.video-magnetic-final-01,
.video-magnetic-final-02,
.video-magnetic-closing { --media-fit: cover; --media-position-x: 50%; --media-position-y: 50%; }
.story-text-magnetic-hero { --text-max-width: 900px; --text-margin-left: 0px; --text-margin-top: 0px; }
.story-text-magnetic-concept,
.story-text-magnetic-fuchsia,
.story-text-magnetic-velvet,
.story-text-magnetic-transform,
.story-text-magnetic-floats,
.story-text-magnetic-accessories,
.story-text-magnetic-expression,
.story-text-magnetic-final { --text-max-width: none; --text-margin-left: 0px; --text-margin-top: 0px; }

.magnetic-split {
  align-items: center;
  display: grid;
  gap: clamp(42px, 6vw, 92px);
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, .72fr);
}
.magnetic-split--reverse { grid-template-columns: minmax(300px, .72fr) minmax(0, 1.08fr); }
.magnetic-split .ds-media {
  height: var(--magnetic-split-height);
  min-height: 520px;
}
.magnetic-split__copy { margin: 0; }
.magnetic-split__copy .ds-story-text { max-width: 570px; }
.magnetic-final-video-pair { margin-bottom: var(--story-gap); }
.magnetic-final-video-pair .ds-media { height: var(--magnetic-final-video-height); }
.magnetic-final-photo-gallery { margin-top: var(--story-gap); }
.magnetic-closing-video {
  height: var(--magnetic-closing-height);
  margin-top: var(--story-gap);
}

/* Page-specific framing and layout: Tropical Bloom */
.dress-story-page--tropical .ds-hero h1 {
  font-size: clamp(64px, 7.6vw, 120px);
  max-width: 8.5ch;
}
.dress-story-page--tropical .ds-hero__body { max-width: 820px; }
.image-tropical-hero { --media-position-x: 54%; --media-position-y: 50%; }
.image-tropical-gele { --media-position-x: 50%; --media-position-y: 42%; }
.image-tropical-stones { --media-position-x: 50%; --media-position-y: 58%; }
.image-tropical-right { --media-position-x: 50%; --media-position-y: 46%; }
.image-tropical-final-01 { --media-fit: cover; --media-position-x: 64%; --media-position-y: 60%; }
.image-tropical-final-02 { --media-fit: cover; --media-position-x: 50%; --media-position-y: 58%; }
.image-tropical-final-03 { --media-fit: cover; --media-position-x: 50%; --media-position-y: 62%; }
.image-tropical-final-05 { --media-fit: cover; --media-position-x: 50%; --media-position-y: 56%; }
.video-tropical-fringe { --media-fit: cover; --media-position-x: 50%; --media-position-y: 48%; }
.video-tropical-left { --media-fit: cover; --media-position-x: 50%; --media-position-y: 50%; }
.video-tropical-dance { --media-fit: cover; --media-position-x: 50%; --media-position-y: 48%; }
.tropical-final .ds-media .video-tropical-final-04 { --media-fit: cover; --media-position-x: 50%; --media-position-y: 56%; }
.story-text-tropical-hero { --text-max-width: 900px; --text-margin-left: 0px; --text-margin-top: 0px; }
.story-text-tropical-fringe,
.story-text-tropical-floral,
.story-text-tropical-stones,
.story-text-tropical-ribbons,
.story-text-tropical-dance,
.story-text-tropical-final { --text-max-width: none; --text-margin-left: 0px; --text-margin-top: 0px; }

.tropical-split {
  align-items: center;
  display: grid;
  gap: clamp(42px, 6vw, 92px);
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, .72fr);
}
.tropical-split--reverse { grid-template-columns: minmax(300px, .72fr) minmax(0, 1.08fr); }
.tropical-split .ds-media {
  height: var(--tropical-split-height);
  min-height: 520px;
}
.tropical-split__copy { margin: 0; }
.tropical-split__copy .ds-story-text { max-width: 570px; }
.tropical-stones-cinematic { min-height: min(74svh, 820px); }
.tropical-ribbon-pair .ds-media { height: min(70vh, 780px); }
.tropical-dance-video {
  height: var(--tropical-dance-height);
  min-height: 560px;
}
.tropical-final .ds-final__header { margin-bottom: clamp(42px, 6vh, 72px); }
.tropical-final-gallery { margin-bottom: var(--story-gap); }
.tropical-final-gallery .ds-gallery__lead,
.tropical-final-gallery .ds-gallery__rail {
  height: min(76vh, 820px);
  min-height: 620px;
}
.tropical-final-pair { margin-top: var(--story-gap); }
.tropical-final-pair .ds-media {
  height: min(64vh, 700px);
  min-height: 500px;
}

/* Page-specific framing and layout: Arctic Dahlia */
.dress-story-page--arctic .ds-hero h1 {
  font-size: clamp(64px, 7.6vw, 120px);
  max-width: 8.5ch;
}
.dress-story-page--arctic .ds-hero__body { max-width: 780px; }
.image-arctic-hero { --media-position-x: 56%; --media-position-y: 50%; }
.image-arctic-fabricks { --media-position-x: 50%; --media-position-y: 48%; }
.image-arctic-fabricks-01 { --media-position-x: 50%; --media-position-y: 46%; }
.image-arctic-edges { --media-position-x: 50%; --media-position-y: 100%; }
.image-arctic-accessories { --media-position-x: 50%; --media-position-y: 44%; }
.image-arctic-sewing-01 { --media-position-x: 50%; --media-position-y: 44%; }
.image-arctic-sewing-02 { --media-position-x: 50%; --media-position-y: 44%; }
.image-arctic-dance-01 { --media-position-x: 50%; --media-position-y: 42%; }
.image-arctic-final-01 { --media-position-x: 50%; --media-position-y: 46%; }
.image-arctic-final-02 { --media-position-x: 50%; --media-position-y: 46%; }
.image-arctic-final-03 { --media-position-x: 50%; --media-position-y: 44%; }
.video-arctic-dance-02 { --media-fit: cover; --media-position-x: 50%; --media-position-y: 50%; }
.video-arctic-final { --media-fit: contain; --media-position-x: 50%; --media-position-y: 50%; }
.story-text-arctic-hero { --text-max-width: 900px; --text-margin-left: 0px; --text-margin-top: 0px; }
.story-text-arctic-fabricks,
.story-text-arctic-bodice,
.story-text-arctic-edges,
.story-text-arctic-accessories,
.story-text-arctic-dance,
.story-text-arctic-final { --text-max-width: none; --text-margin-left: 0px; --text-margin-top: 0px; }

.arctic-fabricks-cinematic,
.arctic-edges-cinematic { min-height: min(76svh, 840px); }
.arctic-split {
  align-items: center;
  display: grid;
  gap: clamp(42px, 6vw, 92px);
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, .72fr);
}
.arctic-split--reverse { grid-template-columns: minmax(300px, .72fr) minmax(0, 1.08fr); }
.arctic-split .ds-media {
  height: var(--arctic-split-height);
  min-height: 520px;
}
.arctic-split__copy { margin: 0; }
.arctic-split__copy .ds-story-text { max-width: 570px; }
.arctic-sewing-pair .ds-media,
.arctic-dance-pair .ds-media { height: min(70vh, 780px); }
.arctic-final-video {
  height: var(--arctic-final-video-height);
  margin-bottom: var(--story-gap);
  min-height: 560px;
}

/* Page-specific framing and Aurora-matched final layout: Burgundy Blossom */
.dress-story-page--burgundy .ds-hero h1 {
  font-size: clamp(62px, 7.3vw, 116px);
  max-width: 9ch;
}
.dress-story-page--burgundy .ds-hero__body { max-width: 780px; }
.image-burgundy-hero { --media-position-x: 50%; --media-position-y: 48%; }
.image-burgundy-stones { --media-position-x: 50%; --media-position-y: 46%; }
.image-burgundy-fabric { --media-position-x: 50%; --media-position-y: 48%; }
.image-burgundy-on-dress { --media-position-x: 50%; --media-position-y: 46%; }
.image-burgundy-transition { --media-position-x: 50%; --media-position-y: 44%; }
.image-burgundy-under-01 { --media-position-x: 50%; --media-position-y: 46%; }
.image-burgundy-under-02 { --media-position-x: 50%; --media-position-y: 46%; }
.image-burgundy-under-04 { --media-position-x: 50%; --media-position-y: 48%; }
.image-burgundy-final-01 { --media-position-x: 50%; --media-position-y: 48%; }
.image-burgundy-final-02 { --media-position-x: 50%; --media-position-y: 42%; }
.image-burgundy-final-03 { --media-position-x: 50%; --media-position-y: 46%; }
.image-burgundy-final-04 { --media-position-x: 50%; --media-position-y: 48%; }
.video-burgundy-sewing { --media-fit: cover; --media-position-x: 50%; --media-position-y: 50%; }
.video-burgundy-transition { --media-fit: cover; --media-position-x: 50%; --media-position-y: 50%; }
.video-burgundy-under-03 { --media-fit: cover; --media-position-x: 50%; --media-position-y: 50%; }
.video-burgundy-final { --media-fit: cover; --media-position-x: 50%; --media-position-y: 50%; }
.story-text-burgundy-hero { --text-max-width: 900px; --text-margin-left: 0px; --text-margin-top: 0px; }
.story-text-burgundy-palette,
.story-text-burgundy-fabric,
.story-text-burgundy-floral,
.story-text-burgundy-harmony,
.story-text-burgundy-final { --text-max-width: none; --text-margin-left: 0px; --text-margin-top: 0px; }

.burgundy-stones-cinematic { min-height: min(76svh, 840px); }
.burgundy-split {
  align-items: center;
  display: grid;
  gap: clamp(42px, 6vw, 92px);
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, .72fr);
}
.burgundy-split .ds-media {
  height: var(--burgundy-split-height);
  min-height: 520px;
}
.burgundy-split__copy { margin: 0; }
.burgundy-split__copy .ds-story-text { max-width: 600px; }
.burgundy-floral-pair .ds-media,
.burgundy-transition-pair .ds-media,
.burgundy-under-pair .ds-media { height: min(70vh, 780px); }
.burgundy-under-pair--second { margin-top: var(--story-gap); }

.burgundy-final {
  background: #0a0607;
  padding: var(--section-gap) var(--story-gutter) calc(var(--section-gap) * 1.25);
}
.burgundy-final__header,
.burgundy-final__video,
.burgundy-final__showcase,
.burgundy-final__closing {
  margin-left: auto;
  margin-right: auto;
  max-width: var(--story-content);
}
.burgundy-final__header { margin-bottom: clamp(42px, 6vh, 72px); }
.burgundy-final__eyebrow {
  color: rgba(241, 238, 231, .52);
  font: 400 9px/1.5 "DM Mono", monospace;
  letter-spacing: .17em;
  margin: 0 0 28px;
  text-transform: uppercase;
}
.burgundy-final h2 {
  color: var(--ivory);
  font: 500 clamp(58px, 7vw, 112px)/.9 "Playfair Display", Georgia, serif;
  letter-spacing: -.06em;
  margin: 0;
}
.burgundy-final__video {
  height: min(76vh, 840px);
  min-height: 560px;
  overflow: hidden;
  width: min(100%, 620px);
}
.burgundy-final .burgundy-final__video { margin: 0 auto var(--media-gap); }
.burgundy-final__showcase {
  display: grid;
  gap: var(--media-gap);
  grid-template-columns: 1.35fr .65fr;
}
.burgundy-final__lead {
  height: var(--burgundy-gallery-lead-height);
  min-height: 650px;
  overflow: hidden;
}
.burgundy-final__details {
  display: grid;
  gap: var(--media-gap);
  grid-template-rows: 1fr 1fr;
}
.burgundy-final__details figure { min-height: 0; overflow: hidden; }
.burgundy-final__showcase img {
  height: 100%;
  object-fit: var(--media-fit, cover);
  object-position: var(--media-position-x, 50%) var(--media-position-y, 50%);
  width: 100%;
}
.burgundy-final__closing {
  margin-top: var(--media-gap);
}
.burgundy-final__closing figure {
  height: var(--burgundy-gallery-closing-height);
  min-height: 430px;
  overflow: hidden;
}
.burgundy-final__closing img {
  height: 100%;
  object-fit: var(--media-fit, cover);
  object-position: var(--media-position-x, 50%) var(--media-position-y, 50%);
  width: 100%;
}

@media (max-width: 1100px) {
  .dress-story-page { --story-gutter: 5vw; }
  .ds-hero__copy,
  .ds-cinematic__copy { left: 5vw; right: 5vw; }
  .ds-hero h1 { font-size: clamp(60px, 8.6vw, 96px); }
  .ds-pair .ds-media { min-height: 440px; }
  .dress-story-page--magnetic .ds-hero h1 { font-size: clamp(56px, 7.7vw, 88px); }
  .magnetic-split { gap: clamp(28px, 4vw, 54px); grid-template-columns: minmax(0, 1fr) minmax(280px, .84fr); }
  .magnetic-split--reverse { grid-template-columns: minmax(280px, .84fr) minmax(0, 1fr); }
  .dress-story-page--tropical .ds-hero h1 { font-size: clamp(56px, 7.8vw, 90px); }
  .tropical-split { gap: clamp(28px, 4vw, 54px); grid-template-columns: minmax(0, 1fr) minmax(280px, .84fr); }
  .tropical-split--reverse { grid-template-columns: minmax(280px, .84fr) minmax(0, 1fr); }
  .dress-story-page--arctic .ds-hero h1 { font-size: clamp(56px, 7.8vw, 90px); }
  .arctic-split { gap: clamp(28px, 4vw, 54px); grid-template-columns: minmax(0, 1fr) minmax(280px, .84fr); }
  .arctic-split--reverse { grid-template-columns: minmax(280px, .84fr) minmax(0, 1fr); }
  .dress-story-page--burgundy .ds-hero h1 { font-size: clamp(56px, 7.6vw, 88px); }
  .burgundy-split { gap: clamp(28px, 4vw, 54px); grid-template-columns: minmax(0, 1fr) minmax(280px, .84fr); }
}

@media (max-width: 780px) {
  .dress-story-page { --story-gutter: 24px; --section-gap: 72px; --media-gap: 14px; }
  .ds-story-text { font-size: 16px; line-height: 1.6; white-space: normal; }
  .ds-story-text--large { font-size: 22px; line-height: 1.44; }
  .ds-hero { min-height: 92svh; }
  .ds-hero__veil {
    background:
      linear-gradient(0deg, rgba(3, 3, 3, .98), rgba(3, 3, 3, .68) 64%, rgba(3, 3, 3, .26)),
      linear-gradient(90deg, rgba(3, 3, 3, .46), transparent);
  }
  .ds-hero__copy { bottom: 46px; left: 24px; right: 24px; }
  .ds-hero h1 { font-size: clamp(54px, 17vw, 80px); line-height: .88; }
  .ds-hero__subtitle { font-size: 18px; line-height: 1.4; }
  .ds-hero__body { font-size: 15px; line-height: 1.55; }
  .ds-scroll { display: none; }
  .ds-pair { grid-template-columns: 1fr; }
  .ds-pair .ds-media,
  .ds-media--wide,
  .ds-media--portrait,
  .ds-media--video-landscape { height: 60svh; min-height: 420px; }
  .ds-pair .ds-media + .ds-media { margin-top: 0; }
  .carnation-timeline-cinematic,
  .carnation-underneck-cinematic {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  .carnation-timeline-cinematic > video,
  .carnation-underneck-cinematic > img {
    height: auto;
    object-fit: contain;
    position: relative;
    width: 100%;
    z-index: 0;
  }
  .carnation-timeline-cinematic .ds-cinematic__veil,
  .carnation-underneck-cinematic .ds-cinematic__veil { display: none; }
  .carnation-timeline-cinematic .ds-cinematic__copy,
  .carnation-underneck-cinematic .ds-cinematic__copy {
    background: var(--story-deep);
    bottom: auto;
    left: auto;
    max-width: none;
    padding: 30px 24px 48px;
    position: static;
    right: auto;
  }
  .carnation-neckline-split { grid-template-columns: 1fr; }
  .carnation-neckline-media {
    aspect-ratio: 3 / 4;
    height: auto;
    min-height: 0;
  }
  .carnation-neckline-media img { height: 100%; }
  .magnetic-split,
  .magnetic-split--reverse { grid-template-columns: 1fr; }
  .magnetic-split .ds-media {
    height: 60svh;
    min-height: 420px;
  }
  .magnetic-split--reverse .magnetic-split__copy { order: 2; }
  .magnetic-split--reverse .ds-media { order: 1; }
  .dress-story-page--magnetic .ds-hero h1 { font-size: clamp(48px, 14.5vw, 72px); max-width: 10ch; }
  .dress-story-page--magnetic .ds-hero__body { font-size: 14px; line-height: 1.48; }
  .magnetic-final-video-pair .ds-media,
  .magnetic-closing-video { height: 60svh; min-height: 420px; }
  .tropical-split,
  .tropical-split--reverse { grid-template-columns: 1fr; }
  .tropical-split .ds-media {
    height: 60svh;
    min-height: 420px;
  }
  .tropical-split--reverse .tropical-split__copy { order: 2; }
  .tropical-split--reverse .ds-media { order: 1; }
  .dress-story-page--tropical .ds-hero h1 { font-size: clamp(50px, 15vw, 74px); max-width: 9ch; }
  .dress-story-page--tropical .ds-hero__body { font-size: 14px; line-height: 1.48; }
  .tropical-ribbon-pair .ds-media,
  .tropical-dance-video,
  .tropical-final-pair .ds-media {
    height: 60svh;
    min-height: 420px;
  }
  .tropical-final-gallery .ds-gallery__lead,
  .tropical-final-gallery .ds-gallery__rail {
    height: auto;
    min-height: 0;
  }
  .arctic-split,
  .arctic-split--reverse { grid-template-columns: 1fr; }
  .arctic-split .ds-media {
    height: 60svh;
    min-height: 420px;
  }
  .arctic-split--reverse .arctic-split__copy { order: 2; }
  .arctic-split--reverse .ds-media { order: 1; }
  .dress-story-page--arctic .ds-hero h1 { font-size: clamp(50px, 15vw, 74px); max-width: 9ch; }
  .dress-story-page--arctic .ds-hero__body { font-size: 14px; line-height: 1.48; }
  .arctic-sewing-pair .ds-media,
  .arctic-dance-pair .ds-media,
  .arctic-final-video {
    height: 60svh;
    min-height: 420px;
  }
  .burgundy-split { grid-template-columns: 1fr; }
  .burgundy-split .ds-media {
    height: 60svh;
    min-height: 420px;
  }
  .dress-story-page--burgundy .ds-hero h1 { font-size: clamp(48px, 14.5vw, 72px); max-width: 9ch; }
  .dress-story-page--burgundy .ds-hero__body { font-size: 14px; line-height: 1.48; }
  .burgundy-floral-pair .ds-media,
  .burgundy-transition-pair .ds-media,
  .burgundy-under-pair .ds-media,
  .burgundy-final__video {
    height: 60svh;
    min-height: 420px;
  }
  .burgundy-final__header { margin-bottom: 42px; }
  .burgundy-final__showcase { grid-template-columns: 1fr; }
  .burgundy-final__lead { height: auto; min-height: 0; }
  .burgundy-final__lead img { height: auto; }
  .burgundy-final__details {
    gap: 14px;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: none;
  }
  .burgundy-final__details figure,
  .burgundy-final__closing figure {
    height: 46svh;
    min-height: 340px;
  }
  .burgundy-final__closing { margin-top: 14px; }
  .ds-cinematic { min-height: 70svh; }
  .ds-cinematic__copy { bottom: 48px; left: 24px; right: 24px; }
  .ds-gallery,
  .ds-gallery--two { grid-template-columns: 1fr; }
  .ds-gallery__lead,
  .ds-gallery--two .ds-gallery__lead { height: auto; min-height: 0; }
  .ds-gallery__lead img { --media-fit: contain; height: auto; max-height: 82svh; }
  .ds-gallery__rail { grid-template-columns: 1fr 1fr; grid-template-rows: none; }
  .ds-gallery__rail figure { height: 50svh; min-height: 350px; }
  .ds-gallery__row { grid-template-columns: 1fr; }
  .ds-gallery__row figure { height: 60svh; min-height: 410px; }
  .ds-next { grid-template-columns: 1fr; }
  .ds-next a { min-height: 190px; padding: 38px 24px; }
  .ds-next a + a { border-left: 0; border-top: 1px solid var(--line); }
}

@media (max-width: 480px) {
  .ds-gallery__rail { grid-template-columns: 1fr; }
  .ds-gallery__rail figure { height: 58svh; min-height: 390px; }
}

@media (prefers-reduced-motion: reduce) {
  .dress-story-page [data-reveal],
  .dress-story-page img {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
