/* Shared closing rhythm; each chapter has its own material and diagram. */
.journey-page .editorial-finale{--finale-surface:var(--accent);--finale-ink:var(--bg);--finale-accent:var(--bg);--finale-rule:#10121444;height:185svh;min-height:0;padding:0;background:var(--finale-surface);color:var(--finale-ink)}
.editorial-finale .contact-stage{top:var(--finale-header,108px);height:calc(100svh - var(--finale-header,108px));min-height:0;background:var(--finale-surface);color:var(--finale-ink)}
.editorial-finale .contact-stage::before,.editorial-finale .contact-stage::after{display:none}
.editorial-finale .contact-stage>.wrap{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:clamp(20px,3vh,36px);padding:clamp(28px,4vh,52px) var(--gutter) 24px}
.journey-page .editorial-finale .eyebrow{color:var(--finale-ink);margin:0;padding-bottom:18px;border-bottom:1px solid var(--finale-rule)}
.finale-composition{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:5vw;align-items:center;min-height:0}
.journey-page .editorial-finale h2{font-size:clamp(52px,7.6vw,116px);line-height:1.02;letter-spacing:-.065em;max-width:none;transform:translate3d(0,calc((1 - var(--climax-progress)) * 18px),0);text-wrap:balance}
.editorial-finale h2>span,.editorial-finale h2>em{display:block;color:var(--finale-ink)}
.journey-page .editorial-finale h2>em{color:var(--fg);font-style:normal}
.editorial-finale .contact-row{position:relative;inset:auto;opacity:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:end;margin:0;padding:24px 0 0;border-top:1px solid var(--finale-rule)}
.journey-page .editorial-finale .contact-row p{max-width:49ch;font-size:clamp(16px,1.4vw,20px);line-height:1.55;margin:0}
.journey-page .editorial-finale .contact-cta{min-width:250px;max-width:100%;background:var(--finale-ink);color:var(--finale-surface);box-shadow:none;transform:none}
.journey-page .editorial-finale .contact-cta:hover{background:var(--fg);color:var(--bg)}
.editorial-finale .contact-progress{position:relative;inset:auto;border:0;padding:0;color:var(--finale-ink);margin:0}
.editorial-finale .contact-progress i{background:var(--finale-rule)}
.editorial-finale .contact-progress i::after{background:var(--finale-accent)}
.finale-art{min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center;position:relative}
.finale-drawing{position:relative;width:100%;max-height:38vh;aspect-ratio:1.1;overflow:hidden}
.finale-art-labels{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--finale-rule);padding-top:16px;font-size:9px;letter-spacing:.04em}
.finale-art--approach .finale-drawing{perspective:900px}
.finale-art--approach i{position:absolute;inset:24% 19%;border:1px solid var(--finale-ink);background:var(--finale-surface);transform:rotateX(52deg) rotateZ(-32deg) translateZ(calc(var(--plate) * (24px + (1 - var(--climax-progress)) * 36px)));box-shadow:12px 18px 0 #10121406}
.finale-art--approach i:nth-child(1){--plate:-1;background:repeating-linear-gradient(90deg,transparent 0 22px,#10121416 23px 24px)}
.finale-art--approach i:nth-child(2){--plate:0}
.finale-art--approach i:nth-child(3){--plate:1;background:var(--fg);border-color:var(--finale-ink)}
.finale-art--prototype .finale-drawing{background:linear-gradient(#10121412 1px,transparent 1px),linear-gradient(90deg,#10121412 1px,transparent 1px);background-size:32px 32px;border:1px solid var(--finale-rule)}
.finale-art--prototype i{position:absolute;left:12%;right:12%;height:1px;top:35%;background:var(--finale-rule)}
.finale-art--prototype i:nth-child(2){top:50%}.finale-art--prototype i:nth-child(3){top:65%}
.finale-art--prototype i::before{content:'';position:absolute;width:9px;height:9px;left:calc(12% + var(--climax-progress) * 60%);top:-4px;background:var(--finale-ink)}
.finale-art--prototype i:nth-child(2)::before{left:40%;background:var(--fg)}
.finale-art--prototype i:nth-child(3)::before{left:calc(72% - var(--climax-progress) * 60%)}
.finale-art--prototype b{position:absolute;inset:20% 26%;border:1px solid var(--finale-ink);transform:scale(calc(.86 + var(--climax-progress) * .14))}
.finale-art--vision .finale-drawing{perspective:700px}
.finale-art--vision i{position:absolute;inset:10% 16%;border:1px solid var(--bg);transform:rotateY(-28deg) translateZ(calc(var(--depth) * (32px + var(--climax-progress) * 26px)))}
.finale-art--vision i:nth-child(1){--depth:-1;opacity:.3}.finale-art--vision i:nth-child(2){--depth:0;opacity:.6}.finale-art--vision i:nth-child(3){--depth:1}
@media(max-width:1000px){.journey-page .editorial-finale h2{font-size:clamp(48px,7.2vw,76px)}.finale-art-labels{flex-direction:column;gap:5px}.finale-composition{grid-template-columns:1.4fr .6fr;gap:24px}}
@media(max-width:600px){
 .journey-page .editorial-finale{height:165svh}
 .editorial-finale .contact-stage>.wrap{padding-block:24px;gap:20px;grid-template-rows:auto 1fr auto auto}
 .finale-composition{grid-template-columns:1fr;gap:16px;align-content:center}
 .journey-page .editorial-finale h2{font-size:clamp(40px,10.5vw,62px);line-height:1.04}
 .finale-art{display:none}
 .editorial-finale .contact-row{grid-template-columns:1fr;gap:20px;padding-top:20px}
 .journey-page .editorial-finale .contact-row p{font-size:16px;max-width:38ch}
 .editorial-finale .contact-cta{width:100%;min-height:54px}
 .editorial-finale .contact-progress{font-size:9px}
}
/* Short viewports and reduced motion use normal flow so every action stays reachable. */
@media(max-height:740px),(prefers-reduced-motion:reduce){
 .journey-page .editorial-finale{height:auto;min-height:0}
 .editorial-finale .contact-stage{position:relative;top:auto;height:auto;min-height:0}
 .editorial-finale .contact-stage>.wrap{min-height:calc(100svh - var(--finale-header,108px));grid-template-rows:auto 1fr auto auto;gap:32px}
 .finale-composition{padding-block:28px}
 .journey-page .editorial-finale h2{transform:none}
 .editorial-finale{--climax-progress:1!important}
}
/* Give translated navigation its second row before the tablet width becomes tight. */
@media(min-width:761px) and (max-width:900px){
 .journey-page>.nav{height:auto;min-height:125px;flex-wrap:wrap;gap:8px 16px;padding-top:16px;padding-bottom:0}
 .journey-page>.nav>.brand{order:1}
 .journey-page>.nav>.nav-actions{order:2;margin-left:auto}
 .journey-page>.nav nav{order:3;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;gap:8px}
 .journey-page>.nav nav a{display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px 0;font-size:12px;text-align:center;white-space:normal}
}
