.editorial-page {
  --cpj-cream: #fffaef;
  --cpj-paper: #f3ede1;
  --cpj-burgundy: #5c1f24;
  --cpj-burgundy-dark: #3e171a;
  --cpj-butter: #eadc9e;
  --cpj-green: #d9e2c5;
  --cpj-camel: #8d6044;
  --cpj-taupe: #6f625a;
  background: var(--cpj-cream);
}

.editorial-page .maison-nav-trigger::after { right: 0; }
html.cpj-chapter-jump { scroll-behavior: auto !important; }
.editorial-main { padding-top: var(--header-height); overflow: clip; background: var(--cpj-cream); }
.editorial-main img { width: 100%; height: 100%; object-fit: cover; }

.cpj-progress {
  position: fixed;
  z-index: 131;
  top: calc(var(--header-height) - 1px);
  left: 0;
  right: 0;
  height: 2px;
  pointer-events: none;
}
.cpj-progress i { display: block; width: 0; height: 100%; background: var(--cpj-burgundy); }

/* Opening */
.cpj-hero {
  position: relative;
  height: calc(100svh - var(--header-height));
  min-height: 560px;
  display: grid;
  grid-template-columns: 43% 57%;
  background: var(--cpj-cream);
}
.cpj-hero-letter { position: relative; min-height: 0; display: grid; place-items: center; overflow: hidden; }
.cpj-hero-letter > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 50% 45%;
  opacity: .7;
  mix-blend-mode: multiply;
  transform: scale(1.1);
  transform-origin: center;
}
.cpj-hero-letter::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,rgba(255,250,239,.12),rgba(255,250,239,.86) 82%); }
.cpj-hero-letter > div { position: relative; z-index: 2; width: min(660px,92%); text-align: center; }
.cpj-hero-letter span,
.cpj-look-copy > span,
.cpj-look-feature-copy span,
.cpj-piece-copy > span,
.cpj-julietas-copy > span,
.cpj-closing-cta > span {
  font-size: 8px;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.cpj-hero-letter h1 { margin: 34px 0 28px; padding: 0; font: 400 clamp(52px,4.5vw,76px)/1.2 var(--script); letter-spacing: 0; word-spacing: .12em; white-space: nowrap; font-feature-settings: "liga" 1, "calt" 1; }
.cpj-hero-letter h1 em { display: inline; margin: 0; font-family: inherit; font-size: 1em; font-style: normal; font-weight: 400; line-height: inherit; word-spacing: inherit; white-space: inherit; }
.cpj-hero-letter p { margin: 0; font: italic 14px var(--serif); color: var(--cpj-taupe); }
.cpj-hero-image { position: relative; min-height: 0; margin: 0; overflow: hidden; background: #40251e; }
.cpj-hero-image img { object-position: center 58%; }
.cpj-hero-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 60%,rgba(26,12,9,.34)); }
.cpj-hero-image figcaption { position: absolute; z-index: 2; right: 32px; bottom: 28px; color: white; font: italic 13px var(--serif); text-shadow: 0 1px 12px rgba(28,12,8,.62); }
.cpj-scroll { position: absolute; z-index: 3; left: 43%; bottom: 22px; display: flex; align-items: center; gap: 14px; transform: translateX(-50%); padding: 9px 13px 8px; color: var(--cpj-burgundy-dark); background: rgba(255,250,239,.86); backdrop-filter: blur(8px); font-size: 8px; letter-spacing: .18em; text-transform: uppercase; }
.cpj-scroll b { font-size: 16px; font-weight: 300; }

/* Manifesto */
.cpj-section-kicker { display: grid; grid-template-columns: auto minmax(30px,1fr) auto; align-items: center; gap: 18px; color: var(--cpj-burgundy); font-size: 11px; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; }
.cpj-section-kicker i { height: 1px; background: currentColor; opacity: .35; }
.cpj-section-kicker b { font-weight: 400; }
.cpj-manifesto { display: grid; grid-template-columns: 42% 58%; align-items: start; border-bottom: 1px solid rgba(92,31,36,.16); background: var(--cpj-cream); }
.cpj-manifesto-visual { position: sticky; top: var(--header-height); height: calc(100svh - var(--header-height)); min-height: 520px; margin: 0; overflow: hidden; background: #4c2924; }
.cpj-manifesto-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 60%,rgba(25,10,9,.42)); pointer-events: none; }
.cpj-manifesto-visual img { object-position: center 47%; }
.cpj-manifesto-visual figcaption { position: absolute; z-index: 2; left: 34px; right: 34px; bottom: 30px; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; color: #fffaf1; text-shadow: 0 1px 14px rgba(23,8,8,.55); }
.cpj-manifesto-visual figcaption span { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.cpj-manifesto-visual figcaption em { font: italic 14px var(--serif); }
.cpj-manifesto-content { min-width: 0; padding: clamp(96px,9vw,150px) clamp(48px,6vw,100px) clamp(110px,10vw,170px); }
.cpj-manifesto-title h2 { max-width: 720px; margin: clamp(58px,6vw,92px) 0 0; color: var(--ink); font: 400 clamp(50px,4.7vw,76px)/.98 var(--serif); letter-spacing: -.04em; text-wrap: balance; }
.cpj-manifesto-title h2 span,
.cpj-manifesto-title h2 em { display: block; }
.cpj-manifesto-title h2 em { max-width: 18ch; margin: 30px 0 0 12%; color: var(--cpj-burgundy); font-size: .62em; font-style: italic; line-height: 1.18; letter-spacing: -.02em; }
.cpj-manifesto-copy { max-width: 680px; margin-top: clamp(78px,8vw,126px); }
.cpj-manifesto-lead { margin: 0; color: var(--ink); font: italic 400 clamp(25px,2.25vw,34px)/1.46 var(--serif); }
.cpj-manifesto-body { margin-top: 64px; padding-top: 44px; border-top: 1px solid rgba(92,31,36,.25); }
.cpj-manifesto-body p { margin: 0 0 34px; color: #4d443d; font: 400 15px/1.86 var(--sans); }
.cpj-manifesto-invitation { max-width: 550px; margin: 62px 0 0; color: var(--cpj-burgundy); font: italic 400 clamp(23px,2vw,30px)/1.48 var(--serif); }
.cpj-manifesto-quote { margin-top: 82px; padding: clamp(44px,5vw,72px); color: #fffaf1; background: var(--cpj-burgundy); }
.cpj-manifesto-quote blockquote { margin: 0; font: italic 400 clamp(25px,2.45vw,38px)/1.37 var(--serif); text-wrap: balance; }
.cpj-manifesto-quote > p { margin: 46px 0 0; padding-top: 24px; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; border-top: 1px solid rgba(255,250,241,.3); }
.cpj-manifesto-quote strong { font: italic 400 17px var(--serif); }
.cpj-manifesto-quote span { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }

.cpj-film-quote { min-height: 82svh; display: grid; grid-template-columns: 39% 61%; color: #fffaf1; background: var(--cpj-burgundy); border-bottom: 1px solid rgba(92,31,36,.22); }
.cpj-film-quote > figure { min-height: 660px; margin: 0; overflow: hidden; background: #e6dcc9; }
.cpj-film-quote > figure img { object-position: 47% center; }
.cpj-film-quote-copy { min-width: 0; padding: clamp(86px,9vw,148px) clamp(56px,7vw,116px); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.cpj-film-quote-copy > img { width: 54px; height: auto; margin-bottom: clamp(58px,6vw,88px); object-fit: contain; filter: brightness(0) invert(1); opacity: .86; }
.cpj-film-quote blockquote { max-width: 820px; margin: 0; color: #fffaf1; font: italic 400 clamp(32px,3.15vw,52px)/1.24 var(--serif); text-wrap: balance; }
.cpj-film-quote cite { width: 100%; margin-top: clamp(56px,6vw,86px); padding-top: 24px; display: flex; align-items: baseline; justify-content: space-between; gap: 24px; border-top: 1px solid rgba(255,250,241,.28); color: #fffaf1; font-style: normal; }
.cpj-film-quote cite span { font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.cpj-film-quote cite strong { font: italic 400 17px var(--serif); }

.cpj-chapter-nav { position: sticky; z-index: 45; top: var(--header-height); min-height: 68px; padding: 0 4vw; display: grid; grid-template-columns: 1fr auto; align-items: center; border-top: 1px solid rgba(92,31,36,.22); border-bottom: 1px solid rgba(92,31,36,.22); background: rgba(255,250,239,.98); backdrop-filter: blur(12px); }
.cpj-chapter-nav > span { color: var(--cpj-burgundy-dark); font: 400 31px/.9 var(--script); letter-spacing: 0; word-spacing: .12em; }
.cpj-chapter-nav > div { display: flex; align-items: center; gap: 42px; }
.cpj-chapter-nav a { position: relative; padding: 25px 0 22px; color: #665d55; font: 400 12px/1.1 var(--sans); letter-spacing: .13em; text-transform: uppercase; }
.cpj-chapter-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -1px; height: 1px; background: var(--cpj-burgundy); transition: right .35s ease; }
.cpj-chapter-nav a.is-active { color: var(--cpj-burgundy); }
.cpj-chapter-nav a.is-active::after { right: 0; }

/* Chapter openings */
.cpj-chapter-intro { scroll-margin-top: 68px; }
.cpj-chapter-opening { min-height: 92svh; display: grid; grid-template-columns: 56% 44%; }
.cpj-chapter-opening figure { min-height: 760px; margin: 0; overflow: hidden; }
.cpj-chapter-opening figure img { transition: transform 1.4s cubic-bezier(.2,.72,.2,1); }
.cpj-chapter-opening:hover figure img { transform: scale(1.015); }
.cpj-chapter-opening > div { min-width: 0; padding: 9vw 6vw; display: flex; flex-direction: column; justify-content: center; }
.cpj-chapter-opening span { font-size: 8px; letter-spacing: .23em; text-transform: uppercase; }
.cpj-chapter-opening h2 { margin: 36px 0 42px; font: 400 clamp(72px,8vw,128px)/.82 var(--serif); letter-spacing: -.055em; }
.cpj-chapter-opening p { max-width: 460px; margin: 0; font: italic 20px/1.62 var(--serif); }
.cpj-chapter-opening--devaneio { color: #fff8ed; background: var(--cpj-burgundy); }
.cpj-chapter-opening--confissao { color: #3e3227; background: var(--cpj-butter); }
.cpj-chapter-opening--destino { color: #fff8ed; background: #6d4834; }

/* Shared look typography */
.cpj-look { position: relative; }
.cpj-look figure { margin: 0; overflow: hidden; }
.cpj-look-copy { padding: 7vw 6vw; display: flex; flex-direction: column; justify-content: center; background: var(--cpj-cream); }
.cpj-look-copy h3 { margin: 32px 0 14px; font: 400 clamp(52px,6vw,96px)/.87 var(--serif); letter-spacing: -.045em; }
.cpj-look-copy > h3:first-child { margin-top: 0; }
.cpj-look-copy > em { margin-bottom: 38px; color: var(--cpj-taupe); font: italic 16px var(--serif); }
.cpj-look-copy > p,
.cpj-piece-copy > p { margin: 0; color: #4e4842; font-size: 12px; line-height: 1.9; }
.cpj-look-copy > a,
.cpj-piece-copy > a,
.cpj-closing-cta > a { align-self: flex-start; margin-top: 46px; padding-bottom: 6px; border-bottom: 1px solid; font-size: 8px; letter-spacing: .15em; text-transform: uppercase; }
.cpj-sketch { width: min(180px,42%) !important; height: auto !important; margin: 50px auto 0; object-fit: contain !important; mix-blend-mode: multiply; }
.cpj-look-media--duo { display: grid; grid-template-columns: 1fr 1fr; }
.cpj-look-media--duo img { min-width: 0; height: 100%; min-height: 760px; }
.cpj-look-media--triptych { display: grid; grid-template-columns: repeat(3,1fr); }
.cpj-look-media--triptych img { min-width: 0; min-height: 760px; }

/* Devaneio */
.cpj-look--sophie { display: grid; grid-template-columns: 64% 36%; }
.cpj-look--sophie .cpj-look-copy { background: #f7d9db; }

.cpj-look-feature { min-height: 90svh; display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; background: #493329; }
.cpj-look-feature > img { object-fit: contain; object-position: center; background: #493329; }
.cpj-look-feature-copy { padding: 8vw; display: flex; flex-direction: column; justify-content: center; color: #263024; background: var(--cpj-green); }
.cpj-look-feature-copy h3 { margin: 0; font: 400 clamp(80px,11vw,170px)/.8 var(--serif); letter-spacing: -.055em; }
.cpj-violet-grid { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: min(69vw,950px); }
.cpj-violet-grid > figure { min-width: 0; min-height: 0; }
.cpj-piece-copy { min-height: 0; padding: 8vw; display: flex; flex-direction: column; justify-content: center; background: #f7f3e9; }
.cpj-piece-copy h4 { margin: 30px 0 38px; font: 400 clamp(50px,6.8vw,104px)/.88 var(--serif); letter-spacing: -.045em; }
.cpj-piece-copy--green { background: var(--cpj-green); }
.cpj-violet-sketch { display: grid; place-items: center; background: #f1ecdf; }
.cpj-violet-sketch img { width: 52%; height: auto; object-fit: contain; mix-blend-mode: multiply; }

/* Confissão */
.cpj-francesca-stage { min-height: 92svh; display: grid; grid-template-columns: 47% 25% 28%; background: #efe0a1; }
.cpj-francesca-stage > figure { min-height: 760px; }
.cpj-francesca-detail { overflow: hidden; }
.cpj-francesca-detail img { object-position: 58% center; }
.cpj-francesca-stage .cpj-look-copy { padding-inline: 4vw; background: #efe0a1; }
.cpj-francesca-stage .cpj-look-copy h3 { font-size: clamp(50px,5.7vw,86px); }
.cpj-pieces-pair { display: grid; grid-template-columns: 1fr 1fr 1fr; }
.cpj-pieces-pair > figure { min-height: 660px; }
.cpj-pieces-pair .cpj-piece-copy { min-height: 500px; }
.cpj-pieces-pair .cpj-piece-copy:first-child { background: #fffdf6; }
.cpj-pieces-pair .cpj-piece-copy:last-child { background: #e9db9e; }
.cpj-pieces-pair .cpj-piece-copy > span { font: 400 clamp(42px,4.5vw,68px)/1 var(--serif); letter-spacing: -.03em; text-transform: none; }

.cpj-look--juliet { padding: 11vw 7vw 12vw; background: #ebe6df; }
.cpj-juliet-collage { height: min(92vw,1320px); display: grid; grid-template-columns: 1.38fr .72fr; grid-template-rows: 1fr 1fr; gap: 12px; }
.cpj-juliet-collage figure { min-height: 0; }
.cpj-juliet-main { grid-row: 1 / span 2; }
.cpj-look-copy--center { max-width: 850px; margin: 0 auto; padding: 110px 0 0; align-items: center; text-align: center; background: transparent; }
.cpj-look-copy--center > a { align-self: center; }

.cpj-look--angelina { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: min(72vw,980px); }
.cpj-look--angelina > * { min-width: 0; min-height: 0; }
.cpj-look--angelina .cpj-look-copy { background: #efe0a1; }

/* Destino */
.cpj-look--isabella { min-height: 98svh; display: grid; grid-template-columns: 39% 30% 31%; background: #b3835f; }
.cpj-look--isabella > figure { min-height: 820px; }
.cpj-look--isabella .cpj-look-copy { padding-inline: 4.4vw; color: #fffaf1; background: #8d6044; }
.cpj-look--isabella .cpj-look-copy > p,
.cpj-look-copy--camel > p { color: #fffaf1; }
.cpj-look-media--stack { display: grid; grid-template-rows: 1fr 1fr; min-height: 820px; }
.cpj-look-media--stack img { min-height: 0; }

.cpj-look--donatella { display: grid; grid-template-columns: 70% 30%; }
.cpj-look-copy--camel { color: #fffaf1; background: var(--cpj-camel); }

.cpj-lady-blazer { min-height: 94svh; display: grid; grid-template-columns: 36% 28% 36%; background: #22211e; }
.cpj-lady-blazer > figure { min-height: 780px; }
.cpj-lady-blazer-detail { min-height: 780px; display: grid; grid-template-rows: 1fr 1fr; }
.cpj-lady-blazer-detail > figure { min-height: 0; }
.cpj-lady-blazer .cpj-look-copy { padding-inline: 4vw; color: #f7f2e8; background: #22211e; }
.cpj-lady-blazer .cpj-look-copy > p { color: #c8c3b9; }
.cpj-lady-dress { display: grid; grid-template-columns: 30% 23% 23% 24%; min-height: 94svh; background: #e6e1d7; }
.cpj-lady-dress > figure { min-height: 780px; }
.cpj-lady-dress .cpj-look-copy { padding-inline: 5vw; background: #e6e1d7; }

/* Final letter */
.cpj-julietas { display: grid; grid-template-columns: 54% 46%; align-items: start; background: #fffdf7; }
.cpj-julietas-visual { position: sticky; top: calc(var(--header-height) + 68px); height: calc(100svh - var(--header-height) - 68px); min-height: 480px; margin: 0; overflow: hidden; background: #4b2822; }
.cpj-julietas-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg,transparent 65%,rgba(30,12,10,.26)); pointer-events: none; }
.cpj-julietas-visual img { object-position: 53% center; }
.cpj-julietas-copy { min-width: 0; margin: 0; padding: clamp(96px,9vw,150px) clamp(48px,6vw,96px) clamp(110px,10vw,170px); text-align: left; }
.cpj-julietas-copy h2 { margin: clamp(52px,5vw,78px) 0 clamp(64px,7vw,108px); color: var(--ink); font: 400 clamp(66px,7vw,108px)/.88 var(--serif); letter-spacing: -.055em; }
.cpj-julietas-copy h2 em { display: block; margin-left: 10%; color: var(--cpj-burgundy); font-style: italic; }
.cpj-julietas-lead { max-width: 520px; margin: 0; color: var(--cpj-burgundy); font: italic 400 clamp(25px,2.2vw,34px)/1.45 var(--serif); }
.cpj-julietas-lead::first-letter { float: left; margin: .04em .11em 0 0; color: var(--cpj-burgundy); font: 400 2.75em/.76 var(--serif); }
.cpj-julietas-body { margin-top: 56px; padding-top: 42px; border-top: 1px solid rgba(92,31,36,.25); }
.cpj-julietas-body p { max-width: 56ch; margin: 0 0 28px; color: #49433d; font-size: 15px; line-height: 1.85; }
.cpj-julietas-letter blockquote { margin: 72px 0 0; padding: clamp(40px,4vw,58px); color: #fffaf1; background: var(--cpj-burgundy); font: italic 400 clamp(28px,2.8vw,42px)/1.3 var(--serif); text-wrap: balance; }

.cpj-closing { min-height: 88svh; display: grid; grid-template-columns: 1fr 1fr 1fr; background: var(--cpj-cream); }
.cpj-closing > figure { min-height: 760px; margin: 0; overflow: hidden; }
.cpj-closing-cta { padding: 6vw 5vw; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.cpj-closing-cta > img { width: 64px; height: auto; margin-bottom: 54px; object-fit: contain; mix-blend-mode: multiply; }
.cpj-closing-cta h2 { margin: 42px 0 0; font: 400 clamp(46px,5vw,76px)/.96 var(--serif); letter-spacing: -.04em; }
.cpj-closing-cta > a { align-self: center; }

/* Subtle reveal: the document remains fully readable without JavaScript. */
.editorial-page.is-editorial-ready .cpj-reveal { opacity: 0; transform: translateY(34px); transition: opacity .9s ease, transform 1s cubic-bezier(.2,.72,.2,1); }
.editorial-page.is-editorial-ready .cpj-reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1080px) {
  .cpj-manifesto { grid-template-columns: 1fr; }
  .cpj-manifesto-visual { position: relative; top: auto; height: min(86vw,820px); min-height: 620px; }
  .cpj-manifesto-visual img { object-position: center 43%; }
  .cpj-manifesto-content { padding-inline: clamp(48px,9vw,96px); }

  .cpj-julietas { grid-template-columns: 1fr; }
  .cpj-julietas-visual { position: relative; top: auto; height: min(70vw,780px); min-height: 580px; }
  .cpj-julietas-visual img { object-position: center 48%; }
  .cpj-julietas-copy { padding-inline: clamp(48px,9vw,96px); }
}

@media (max-width: 900px) {
  .cpj-hero { height: auto; min-height: auto; grid-template-columns: 1fr; }
  .cpj-hero-letter { min-height: max(58svh,380px); }
  .cpj-hero-letter h1 { font-size: clamp(40px,11vw,58px); }
  .cpj-hero-image { min-height: 72svh; }
  .cpj-hero-image img { object-position: center 54%; }
  .cpj-scroll { display: none; }

  .cpj-manifesto-visual { height: 72svh; min-height: 520px; }
  .cpj-manifesto-visual figcaption { left: 24px; right: 24px; bottom: 22px; }
  .cpj-manifesto-content { padding: 96px 8vw 112px; }
  .cpj-manifesto-title h2 { margin-top: 54px; font-size: clamp(48px,10vw,68px); }
  .cpj-manifesto-title h2 em { margin-top: 24px; margin-left: 8%; }
  .cpj-manifesto-copy { margin-top: 68px; }
  .cpj-manifesto-lead { font-size: clamp(24px,5.4vw,31px); }
  .cpj-manifesto-body { margin-top: 50px; padding-top: 38px; }
  .cpj-manifesto-body p { font-size: 15px; line-height: 1.82; }
  .cpj-manifesto-invitation { margin-top: 52px; font-size: clamp(23px,5vw,29px); }
  .cpj-manifesto-quote { margin-top: 64px; padding: 42px 7vw; }
  .cpj-manifesto-quote blockquote { font-size: clamp(25px,5.8vw,34px); }

  .cpj-film-quote { min-height: 0; grid-template-columns: 1fr; }
  .cpj-film-quote > figure { height: 54svh; min-height: 440px; }
  .cpj-film-quote-copy { min-height: 72svh; padding: 88px 8vw 96px; }
  .cpj-film-quote-copy > img { margin-bottom: 58px; }
  .cpj-film-quote blockquote { font-size: clamp(31px,7.4vw,44px); }

  .cpj-chapter-nav { display: block; min-height: 54px; padding: 0; overflow-x: auto; scrollbar-width: none; }
  .cpj-chapter-nav > span { display: none; }
  .cpj-chapter-nav > div { width: max-content; min-width: 100%; padding: 0 6vw; justify-content: space-between; gap: 28px; }
  .cpj-chapter-nav a { padding: 21px 0 18px; font-size: 12px; }
  .cpj-chapter-intro { scroll-margin-top: 54px; }

  .cpj-chapter-opening { min-height: auto; grid-template-columns: 1fr; }
  .cpj-chapter-opening figure { min-height: 74svh; }
  .cpj-chapter-opening > div { min-height: 64svh; padding: 90px 8vw; }
  .cpj-chapter-opening h2 { font-size: clamp(78px,23vw,118px); }
  .cpj-chapter-opening p { font-size: 18px; }

  .cpj-look--sophie,
  .cpj-look--donatella { grid-template-columns: 1fr; }
  .cpj-look-media--duo img { min-height: 66vw; }
  .cpj-look-media--triptych img { min-height: 62vw; }
  .cpj-look-copy { min-height: 72svh; padding: 90px 9vw; }
  .cpj-look-copy h3 { font-size: clamp(54px,16vw,86px); }
  .cpj-sketch { width: 150px !important; }

  .cpj-look-feature { min-height: auto; grid-template-columns: 1fr; }
  .cpj-look-feature > img { height: 76svh; }
  .cpj-look-feature-copy { min-height: 56svh; padding: 86px 9vw; }
  .cpj-violet-grid { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .cpj-violet-grid > figure { height: 78svh; }
  .cpj-violet-sketch img { width: 45%; height: auto; }
  .cpj-piece-copy { min-height: 66svh; padding: 86px 9vw; }
  .cpj-piece-copy h4 { font-size: clamp(54px,16vw,86px); }

  .cpj-francesca-stage { min-height: auto; grid-template-columns: 1fr 1fr; }
  .cpj-francesca-stage > figure,
  .cpj-francesca-detail { min-height: 64vw; }
  .cpj-francesca-stage .cpj-look-copy { grid-column: 1 / -1; min-height: 58svh; padding-inline: 9vw; }
  .cpj-pieces-pair { grid-template-columns: 1fr; }
  .cpj-pieces-pair .cpj-piece-copy { min-height: 52svh; }

  .cpj-look--juliet { padding: 90px 4vw 110px; }
  .cpj-juliet-collage { height: 132vw; gap: 5px; }
  .cpj-look-copy--center { min-height: auto; padding: 78px 5vw 0; }

  .cpj-look--angelina { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .cpj-look--angelina > figure { height: 78svh; }
  .cpj-look--angelina .cpj-look-copy { min-height: 66svh; }

  .cpj-look--isabella { min-height: auto; grid-template-columns: 1fr; }
  .cpj-look--isabella > figure { min-height: 76svh; }
  .cpj-look--isabella .cpj-look-copy { min-height: 74svh; padding-inline: 9vw; }
  .cpj-look-media--stack { min-height: auto; grid-template-columns: 1fr 1fr; grid-template-rows: none; }
  .cpj-look-media--stack img { min-height: 66vw; }

  .cpj-lady-blazer,
  .cpj-lady-dress { min-height: auto; grid-template-columns: 1fr; }
  .cpj-lady-blazer > figure,
  .cpj-lady-dress > figure { min-height: 76svh; }
  .cpj-lady-blazer-detail { min-height: auto; grid-template-columns: 1fr 1fr; grid-template-rows: none; }
  .cpj-lady-blazer-detail > figure { min-height: 70vw; }
  .cpj-lady-blazer .cpj-look-copy,
  .cpj-lady-dress .cpj-look-copy { min-height: 70svh; padding-inline: 9vw; }

  .cpj-julietas-visual { height: 66svh; min-height: 480px; }
  .cpj-julietas-copy { padding: 94px 8vw 112px; }
  .cpj-julietas-copy h2 { margin: 50px 0 68px; font-size: clamp(68px,16vw,94px); }
  .cpj-julietas-lead { font-size: clamp(24px,5.4vw,31px); }
  .cpj-julietas-body { margin-top: 50px; padding-top: 38px; }
  .cpj-julietas-body p { font-size: 15px; line-height: 1.82; }
  .cpj-julietas-letter blockquote { margin-top: 60px; padding: 40px 7vw; font-size: clamp(27px,6vw,36px); }

  .cpj-closing { grid-template-columns: 1fr; }
  .cpj-closing > figure { min-height: 76svh; }
  .cpj-closing-cta { min-height: 68svh; padding: 90px 9vw; }
}

@media (max-width: 520px) {
  .cpj-hero-letter > div { width: 92%; }
  .cpj-hero-letter h1 { margin-block: 32px 28px; }
  .cpj-hero-image { min-height: 68svh; }
  .cpj-hero-image figcaption { left: 22px; right: 22px; bottom: 20px; }
  .cpj-section-kicker { gap: 12px; font-size: 10px; }
  .cpj-manifesto-visual { height: 66svh; min-height: 430px; }
  .cpj-manifesto-visual figcaption em { display: none; }
  .cpj-manifesto-content { padding: 78px 7vw 92px; }
  .cpj-manifesto-title h2 { font-size: clamp(43px,13vw,58px); }
  .cpj-manifesto-title h2 em { margin-left: 0; font-size: .66em; }
  .cpj-manifesto-quote > p { align-items: flex-start; flex-direction: column; }
  .cpj-film-quote > figure { height: 44svh; min-height: 330px; }
  .cpj-film-quote-copy { min-height: 0; padding: 76px 7vw 84px; }
  .cpj-film-quote-copy > img { width: 46px; margin-bottom: 50px; }
  .cpj-film-quote blockquote { font-size: clamp(29px,8.2vw,37px); }
  .cpj-film-quote cite { align-items: flex-start; flex-direction: column; }
  .cpj-julietas-visual { height: 58svh; min-height: 390px; }
  .cpj-julietas-copy { padding: 78px 7vw 92px; }
  .cpj-julietas-copy h2 { margin: 48px 0 60px; font-size: clamp(60px,20vw,78px); }
  .cpj-julietas-copy h2 em { margin-left: 0; }
  .cpj-chapter-nav a { font-size: 12px; }
  .cpj-look-media--duo { grid-template-columns: 1fr 1fr; }
  .cpj-look-media--duo img,
  .cpj-look-media--stack img { min-height: 72vw; }
  .cpj-look-feature-copy h3 { font-size: 22vw; }
  .cpj-francesca-stage > figure,
  .cpj-francesca-detail { min-height: 76vw; }
  .cpj-juliet-collage { height: 150vw; }
}

@media (prefers-reduced-motion: reduce) {
  .editorial-page.is-editorial-ready .cpj-reveal,
  .cpj-chapter-opening figure img { opacity: 1; transform: none; transition: none; }
  .cpj-progress { display: none; }
}

/* Editorial labels use the same readable utility scale as the store. */
.cpj-hero-letter span,
.cpj-look-copy > span,
.cpj-look-feature-copy span,
.cpj-piece-copy > span,
.cpj-julietas-copy > span,
.cpj-closing-cta > span,
.cpj-manifesto-title > span,
.cpj-film-quote cite,
.cpj-chapter-opening span {
  font-size: var(--type-label);
  font-weight: 400;
  letter-spacing: .14em;
}

.cpj-scroll,
.cpj-look-copy > a,
.cpj-piece-copy > a,
.cpj-closing-cta > a {
  font-size: var(--type-ui);
  font-weight: 400;
  letter-spacing: .09em;
}

.cpj-look-copy > p,
.cpj-piece-copy > p {
  color: #49433d;
  font-size: 14px;
  line-height: 1.8;
}

.cpj-hero-letter p,
.cpj-look-copy > em { color: #6a5f58; }

.cpj-look--isabella .cpj-look-copy > p,
.cpj-look--isabella .cpj-look-copy > em,
.cpj-look-copy--camel > p,
.cpj-look-copy--camel > em { color: #fffaf1; }

@media (max-width: 900px) {
  .cpj-hero-letter span,
  .cpj-look-copy > span,
  .cpj-look-feature-copy span,
  .cpj-piece-copy > span,
  .cpj-julietas-copy > span,
  .cpj-closing-cta > span,
  .cpj-manifesto-title > span,
  .cpj-film-quote cite,
  .cpj-chapter-opening span,
  .cpj-look-copy > a,
  .cpj-piece-copy > a,
  .cpj-closing-cta > a { font-size: 11px; }

  .cpj-look-copy > p,
  .cpj-piece-copy > p { font-size: 14px; }
}
