:root { --j-red:#ff0037; --j-paper:#f3f1ea; --j-night:#050506; }
html { scroll-behavior:smooth; }
body.journey { overflow-x:hidden; background:var(--j-night); color:#f8f7f3; cursor:auto; }
.journey a { color:inherit; }
.journey-header { position:fixed; z-index:50; inset:0 0 auto; min-height:78px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:15px; padding:15px clamp(22px,4vw,70px); background:transparent; color:#f8f7f3; font-size:13px; transition:color .65s cubic-bezier(.22,1,.36,1); isolation:isolate; }
.journey-header::before,
.journey-header::after { content:""; position:absolute; z-index:-1; inset:0; height:140%; backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 54%,transparent 100%); mask-image:linear-gradient(to bottom,#000 0%,#000 54%,transparent 100%); pointer-events:none; transition:opacity .72s cubic-bezier(.22,1,.36,1); }
.journey-header::before { background:linear-gradient(to bottom,rgba(5,5,6,.94) 0%,rgba(5,5,6,.77) 42%,rgba(5,5,6,.34) 72%,rgba(5,5,6,0) 100%); opacity:1; }
.journey-header::after { background:linear-gradient(to bottom,rgba(243,241,234,.96) 0%,rgba(243,241,234,.8) 42%,rgba(243,241,234,.38) 72%,rgba(243,241,234,0) 100%); opacity:0; }
.journey-header.is-light { color:#17191a; }
.journey-header.is-light::before { opacity:0; }
.journey-header.is-light::after { opacity:1; }
.journey-header a { text-decoration:none; }
.journey-back { justify-self:start; }
.journey-back:hover, .journey-back:focus-visible { color:var(--j-red); }
.journey-brand { white-space:nowrap; font-size:23px; font-weight:300; letter-spacing:-.065em; }
.journey-brand strong { font-family:Vollkorn,Georgia,serif; font-size:1.45em; color:var(--j-red); }
.journey-draft { justify-self:end; color:#aaa; text-transform:uppercase; letter-spacing:.16em; font-size:11px; }
.journey-header.is-light .journey-draft { color:#5d6060; }
.journey-rail { position:fixed; z-index:45; top:50%; left:clamp(10px,1.6vw,26px); transform:translateY(-50%); display:grid; gap:16px; }
.journey-rail a { display:flex; align-items:center; gap:8px; width:max-content; text-decoration:none; color:#a5a5a5; font-size:10px; text-transform:uppercase; letter-spacing:.13em; transition:color .2s; }
.journey-rail a span:first-child { display:grid; place-items:center; width:24px; height:24px; border:1px solid #ffffff55; border-radius:50%; }
.journey-rail a span:last-child { opacity:0; transform:translateX(-4px); transition:opacity .2s,transform .2s; }
.journey-rail a:hover, .journey-rail a:focus-visible, .journey-rail a.is-current { color:var(--j-red); }
.journey-rail a:hover span:last-child, .journey-rail a:focus-visible span:last-child { opacity:1; transform:none; }
.journey-rail a.is-current span:first-child { border-color:var(--j-red); }
.journey-dark, .journey-light { position:relative; isolation:isolate; overflow:clip; }
.journey-dark { background:var(--j-night); }
.journey-light { background:var(--j-paper); color:#181919; }
.journey-speckles { position:absolute; z-index:-1; inset:0; width:100%; height:100%; object-fit:cover; opacity:.36; mix-blend-mode:screen; pointer-events:none; }
.journey-wrap { width:min(100% - 12vw,1500px); margin:auto; }
.journey-kicker,.chapter-heading>span { display:block; color:var(--j-red); font-size:12px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.journey-hero { min-height:100svh; padding:clamp(145px,16vh,220px) 0 40px; }
.journey-hero .journey-wrap { min-height:calc(100svh - 230px); display:grid; grid-template-columns:1.12fr .88fr; column-gap:clamp(35px,5vw,100px); align-items:center; }
.journey-hero-copy { position:relative; z-index:3; }
.journey-hero h1 { margin:26px 0 30px; font:400 clamp(64px,6.7vw,114px)/.91 Vollkorn,Georgia,serif; letter-spacing:-.055em; }
.journey-hero h1 em { color:var(--j-red); font-weight:400; }
.journey-lede { max-width:680px; color:#dedede; font-size:clamp(18px,1.4vw,22px); line-height:1.65; }
.journey-start { display:inline-flex; align-items:center; gap:20px; margin-top:34px; padding-bottom:9px; border-bottom:1px solid #ffffff8a; text-decoration:none; font-size:13px; letter-spacing:.06em; }
.journey-start span { color:var(--j-red); font-size:20px; }
.journey-hero-media { position:relative; min-height:600px; }
.hero-image { position:absolute; width:59%; margin:0; }
.hero-image img { display:block; width:100%; border-radius:24px; }
.hero-image figcaption { padding-top:8px; color:#bcbcbc; font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
.hero-image--one { left:0; top:4%; transform:rotate(-6deg); }
.hero-image--two { right:0; bottom:2%; transform:rotate(6deg); }
.hero-scribble { position:absolute; width:73%; top:13%; right:-1%; overflow:visible; stroke:var(--j-red); stroke-width:3; stroke-linecap:round; stroke-dasharray:1; stroke-dashoffset:1; animation:hero-draw 1.8s .5s ease forwards; pointer-events:none; }
@keyframes hero-draw { to { stroke-dashoffset:0; } }
.journey-facts { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:14px 40px; width:100%; margin-top:45px; padding-top:21px; border-top:1px solid #ffffff56; color:#c6c6c6; font-size:12px; text-transform:uppercase; letter-spacing:.12em; }
.challenge-chapter { padding:clamp(110px,12vw,190px) 0 170px; }
.chapter-heading { display:grid; grid-template-columns:1fr 2fr; align-items:end; gap:30px; margin-bottom:60px; padding-bottom:34px; border-bottom:1px solid #ffffff4d; }
.chapter-heading h2 { margin:0; font:400 clamp(48px,5.6vw,90px)/1 Vollkorn,Georgia,serif; letter-spacing:-.04em; }
.chapter-heading h2 em { color:var(--j-red); font-weight:400; }
.challenge-lead { position:relative; max-width:1000px; margin:0 auto 90px; }
.challenge-lead>p { margin:0; font:400 clamp(30px,3.2vw,54px)/1.24 Vollkorn,Georgia,serif; }
.challenge-note { right:-9%; bottom:-52px; font-size:clamp(30px,3vw,46px); clip-path:none; }
.audience-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.audience-grid>div { position:relative; min-height:220px; padding:30px; border:1px solid #ffffff65; border-radius:24px; background:#101112bd; }
.audience-grid small { color:var(--j-red); text-transform:uppercase; letter-spacing:.13em; font-size:12px; }
.audience-grid p { margin:40px 0 0; font:400 clamp(25px,2.1vw,35px)/1.15 Vollkorn,Georgia,serif; }
.audience-note { right:5%; bottom:-34px; font-size:clamp(28px,2.6vw,42px); transform:rotate(-6deg); clip-path:none; }
.challenge-bottom { display:grid; grid-template-columns:1fr 1fr; gap:clamp(35px,8vw,140px); margin-top:90px; padding-top:35px; border-top:1px solid #ffffff35; }
.challenge-bottom p { margin:0; color:#d3d3d3; font-size:clamp(17px,1.25vw,20px); line-height:1.8; }
@media(max-width:900px){ .journey-hero .journey-wrap { grid-template-columns:1fr; } .journey-hero-media { min-height:450px; margin-top:55px; } .journey-hero h1 { max-width:850px; } .journey-rail { display:none; } .journey-wrap { width:min(100% - 42px,700px); } .chapter-heading { grid-template-columns:1fr; } }
@media(max-width:600px){ .journey-header { grid-template-columns:1fr auto; min-height:68px; } .journey-brand { justify-self:end; font-size:19px; } .journey-draft { display:none; } .journey-hero { padding-top:140px; } .journey-hero h1 { font-size:clamp(54px,13vw,76px); } .journey-hero-media { min-height:370px; } .hero-image { width:63%; } .hero-scribble { top:9%; } .journey-facts { margin-top:15px; font-size:11px; } .audience-grid,.challenge-bottom { grid-template-columns:1fr; } .audience-grid>div { min-height:150px; } .audience-grid p { margin-top:24px; } .challenge-lead { margin-bottom:95px; } .challenge-note { right:0; bottom:-58px; font-size:32px; } }
@media(prefers-reduced-motion:reduce){ html {scroll-behavior:auto;} .journey-speckles {display:none;} .hero-scribble {animation:none;stroke-dashoffset:0;} }

/* The graphic lab's drawn segues and responsive horizon are reused here as
   actual chapter transitions, rather than as decorative one-off graphics. */
.journey-interlude { overflow:clip; }
.journey-interlude .segue { height:max(175vh,1100px); }
.journey-interlude .segue-sticky { width:min(100% - 12vw,1500px); }
.theme-bridge { height:clamp(690px,100vh,1120px); }
.theme-bridge--final .horizon-fill { filter:url(#horizon-feather-final); }
.theme-bridge--final .horizon-haze { filter:url(#horizon-haze-final); }
.journey-light>.journey-speckles { filter:invert(1); mix-blend-mode:multiply; opacity:.2; }

.journey-light .chapter-heading { border-color:#171a1a65; }
.direction-chapter { padding:clamp(110px,13vw,205px) 0 100px; }
.direction-intro { max-width:780px; margin:0 0 clamp(45px,6vw,95px) auto; font:400 clamp(25px,2.6vw,41px)/1.3 Vollkorn,Georgia,serif; }
.principles { border-top:1px solid #171a1a55; }
.principle { display:grid; grid-template-columns:100px minmax(0,1fr) minmax(130px,.32fr); gap:clamp(20px,3vw,58px); align-items:start; padding:clamp(34px,5vw,76px) 0; border-bottom:1px solid #171a1a55; }
.principle-number { color:var(--j-red); font:400 clamp(48px,5vw,76px)/1 Vollkorn,Georgia,serif; }
.principle h3 { max-width:780px; margin:0 0 22px; font:400 clamp(31px,3.5vw,58px)/1.06 Vollkorn,Georgia,serif; letter-spacing:-.03em; }
.principle p { max-width:775px; margin:0; color:#3a3b3c; font-size:clamp(16px,1.2vw,19px); line-height:1.8; }
.principle-mark { justify-self:end; align-self:center; color:var(--j-red); font:500 clamp(25px,2.6vw,39px)/1 Caveat,cursive; transform:rotate(-7deg); text-align:center; }
.principle:nth-child(even) .principle-mark { transform:rotate(6deg); }
.work-intro { padding:105px 0 70px; }
.work-intro-copy { width:min(760px,100%); margin:0 0 0 auto; font:400 clamp(26px,2.9vw,47px)/1.25 Vollkorn,Georgia,serif; }
.work-chapter { padding:clamp(110px,12vw,195px) 0; }
.work-chapter--marketing { padding:90px 0 clamp(110px,12vw,195px); }
.work-chapter--enablement { padding-top:90px; }
.work-heading { display:grid; grid-template-columns:1fr 2fr; gap:25px; padding-bottom:32px; border-bottom:1px solid currentColor; }
.work-heading>span { color:var(--j-red); font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.18em; }
.work-heading h2 { margin:0; font:400 clamp(47px,5.9vw,96px)/.98 Vollkorn,Georgia,serif; letter-spacing:-.045em; }
.work-heading--compact h2 { font-size:clamp(34px,3.9vw,63px); line-height:1; letter-spacing:-.04em; }
.work-heading h2 em { color:var(--j-red); font-weight:400; }
.work-heading--enablement h2 { white-space:nowrap; }
.heading-note { display:inline-block; margin-left:clamp(12px,1.3vw,22px); color:var(--j-red); font:500 clamp(21px,2vw,33px)/1 Caveat,cursive; letter-spacing:0; transform:rotate(-5deg) translateY(-.18em); white-space:nowrap; }
.work-copy { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(25px,4vw,70px); margin:65px 0 85px; }
.work-copy p { margin:0; font-size:clamp(16px,1.16vw,19px); line-height:1.82; }
.journey-light .work-copy p { color:#3d3e3e; }
.journey-dark .work-copy p { color:#d8d8d8; }
.image-frame { position:relative; display:block; min-width:0; margin:0; }
.image-frame img { display:block; width:100%; height:100%; object-fit:cover; border-radius:clamp(20px,3vw,46px); }
.image-frame figcaption { margin-top:13px; color:inherit; opacity:.7; font-size:11px; text-transform:uppercase; letter-spacing:.14em; }
.image-stage { position:relative; padding-bottom:75px; }
.image-stage--enablement { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:clamp(15px,2vw,32px); align-items:start; }
.image-frame--hero { height:min(63vw,800px); }
.image-rail { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.image-rail .image-frame { height:min(29vw,375px); }
.image-rail .image-frame:nth-child(2) img { object-position:72% center; }
.image-rail .image-frame:nth-child(3) img { object-position:25% center; }
.image-rail .image-frame:nth-child(4) img { object-position:80% center; }
.enablement-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(13px,1.4vw,22px); align-items:stretch; }
.enablement-gallery .image-frame,
.enablement-gallery .image-frame--hero { width:100%; min-width:0; height:auto; aspect-ratio:1/1; }
.image-placeholder { height:100%; display:flex; flex-direction:column; justify-content:space-between; padding:clamp(20px,2.5vw,42px); border:1px dashed #a0a09c; border-radius:clamp(20px,3vw,46px); background:linear-gradient(145deg,#e5e3dc,#f7f6f1); }
.image-placeholder span { color:var(--j-red); font:400 clamp(40px,4vw,72px)/1 Vollkorn,Georgia,serif; }
.image-placeholder strong { font:400 clamp(22px,2vw,34px)/1.1 Vollkorn,Georgia,serif; }
.image-placeholder small { color:#626262; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
.image-stage-note { position:absolute; right:4%; bottom:0; color:var(--j-red); font:500 clamp(30px,3vw,48px)/1 Caveat,cursive; transform:rotate(-7deg); }

.work-chapter--campaigns { padding-top:110px; }
.campaign-gallery { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:clamp(13px,1.4vw,22px); }
.campaign-gallery .image-frame { aspect-ratio:1.05; }
.campaign-gallery .image-frame img { object-fit:cover; }
.campaign-gallery-main { grid-row:span 2; aspect-ratio:auto !important; }
.campaign-gallery-main img { object-position:center top; }
.campaign-gallery .image-frame:nth-child(2) img { object-position:75% center; }
.campaign-gallery .image-frame:nth-child(3) img { object-position:35% center; }
.campaign-gallery .image-frame:nth-child(4) img { object-position:70% center; }
.employee-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; }
.employee-gallery .image-frame,
.employee-gallery .campaign-gallery-main { width:100%; min-width:0; height:auto; grid-column:auto; grid-row:auto; aspect-ratio:1/1!important; }
.marketing-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; }
.marketing-gallery .image-frame { width:100%; min-width:0; aspect-ratio:1/1!important; }
.marketing-gallery .image-frame img { object-position:center; }
.marketing-gallery .image-placeholder { border:0; border-radius:inherit; background:linear-gradient(145deg,#e8e5dd,#f8f6ef 62%,#dedbd3); }
.marketing-gallery .campaign-gallery-main .image-placeholder { background:linear-gradient(145deg,#111 0%,#1b1b1b 52%,#070707 100%); color:#f5f2ea; }
.marketing-gallery .campaign-gallery-main .image-placeholder small { color:#aaa; }
.marketing-gallery .campaign-gallery-main { grid-row:auto; }
.marketing-gallery .marketing-gallery-website { grid-column:auto; }

/* One selected tile fills the gallery while its neighbours make room. */
.expanding-gallery { position:relative; scroll-margin-top:90px; }
.expanding-gallery > .image-frame { cursor:zoom-in; transition:transform .64s cubic-bezier(.22,1,.36,1),opacity .38s ease; }
.expanding-gallery > .image-frame:hover img,
.expanding-gallery > .image-frame:focus-visible img { filter:brightness(.9); }
.expanding-gallery > .image-frame:focus-visible { outline:3px solid var(--j-red); outline-offset:5px; border-radius:clamp(20px,3vw,46px); }
.expanding-gallery.is-expanded > .image-frame { pointer-events:none; opacity:0; transform:translate3d(var(--push-x,0px),var(--push-y,0px),0) scale(.91); }
.expanding-gallery.is-expanded > .image-frame.is-source { transform:none; }
.gallery-feature { position:absolute; z-index:8; box-sizing:border-box; overflow:hidden; border-radius:clamp(20px,3vw,46px); background:#f3f1ea; box-shadow:0 28px 75px #0004; cursor:zoom-out; transition:left .72s cubic-bezier(.22,1,.36,1),top .72s cubic-bezier(.22,1,.36,1),width .72s cubic-bezier(.22,1,.36,1),height .72s cubic-bezier(.22,1,.36,1),border-radius .72s cubic-bezier(.22,1,.36,1),box-shadow .72s ease; }
.journey-dark .gallery-feature { background:#141416; }
.gallery-feature.is-open { box-shadow:0 34px 100px #0006; }
.gallery-feature__media { width:100%; height:100%; }
.gallery-feature__media > img { display:block; width:100%; height:100%; object-fit:contain; }
.gallery-feature__media > .image-placeholder { box-sizing:border-box; width:100%; height:100%; border:0; border-radius:0; }
.gallery-feature.has-placeholder .image-placeholder small { visibility:hidden; }
.marketing-gallery .gallery-feature.is-main .image-placeholder { background:linear-gradient(145deg,#111 0%,#1b1b1b 52%,#070707 100%); color:#f5f2ea; }
.marketing-gallery .gallery-feature.is-main .image-placeholder small { color:#aaa; }
.gallery-feature__caption { position:absolute; inset:auto 0 0; padding:55px clamp(20px,3vw,45px) 23px; background:linear-gradient(transparent,#050506bd); color:white; font-size:clamp(11px,1.1vw,15px); font-weight:600; letter-spacing:.14em; text-transform:uppercase; pointer-events:none; }
.gallery-feature.has-placeholder:not(.is-main) .gallery-feature__caption { background:linear-gradient(transparent,#f3f1eadd); color:#171919; }
.gallery-feature__close { position:absolute; z-index:1; top:clamp(15px,2vw,30px); right:clamp(15px,2vw,30px); display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid #ffffffb8; border-radius:50%; background:#171919d9; color:white; font:400 27px/1 Arial,sans-serif; cursor:pointer; opacity:0; transform:scale(.8); transition:opacity .25s ease,transform .25s ease,background .25s ease; }
.gallery-feature.is-open .gallery-feature__close { opacity:1; transform:scale(1); }
.gallery-feature__close:hover,.gallery-feature__close:focus-visible { background:var(--j-red); outline:2px solid white; outline-offset:2px; }

.work-chapter--clinical { padding-top:80px; }
.work-split { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(35px,5vw,90px); align-items:center; }
.work-split .work-heading { display:block; }
.work-split .work-heading h2 { margin-top:28px; font-size:clamp(45px,5vw,80px); }
.work-split .work-copy { display:block; margin:55px 0 0; }
.work-split .work-copy p+p { margin-top:35px; }
.image-frame--clinical { height:min(57vw,760px); }
.image-frame--clinical svg { position:absolute; inset:2%; width:96%; height:91%; stroke:var(--j-red); stroke-width:2.3; stroke-linecap:round; pointer-events:none; }
.draw-on-view svg path { stroke-dasharray:1; stroke-dashoffset:1; }
.draw-on-view.is-visible svg path { animation:journey-draw 1.7s .2s ease forwards; }
@keyframes journey-draw { to { stroke-dashoffset:0; } }
.work-chapter--system { padding-top:80px; }
.system-image { max-width:100%; height:min(70vw,970px); }
.system-image img { object-fit:contain; background:#101113; }
.system-image svg { position:absolute; left:15%; bottom:4%; width:70%; height:18%; stroke:var(--j-red); stroke-width:4; stroke-linecap:round; pointer-events:none; }

.impact-chapter { padding:clamp(110px,13vw,200px) 0 150px; }
.impact-metric { position:relative; display:grid; grid-template-columns:.8fr 1fr; align-items:center; gap:clamp(35px,8vw,145px); padding:75px 0 100px; border-bottom:1px solid #171a1a55; }
.impact-metric strong { position:relative; z-index:1; font:400 clamp(95px,13vw,220px)/.9 Vollkorn,Georgia,serif; letter-spacing:-.08em; }
.impact-metric p { max-width:620px; font-size:clamp(17px,1.35vw,21px); line-height:1.75; }
.impact-metric svg { position:absolute; left:-3%; top:14%; width:48%; height:70%; stroke:var(--j-red); stroke-width:4; }
.impact-columns { display:grid; grid-template-columns:1fr 1fr; gap:clamp(50px,8vw,140px); padding:100px 0 115px; border-bottom:1px solid #171a1a55; }
.impact-columns h3 { margin:0 0 35px; font:400 clamp(35px,3.5vw,60px)/1 Vollkorn,Georgia,serif; }
.impact-columns ul { margin:0; padding:0; list-style:none; }
.impact-columns li { position:relative; padding:18px 0 18px 33px; border-top:1px solid #171a1a25; font-size:clamp(15px,1.18vw,19px); line-height:1.55; }
.impact-columns li::before { content:'↗'; position:absolute; left:0; color:var(--j-red); }
.reflection { width:min(1100px,100%); margin:110px auto 0; text-align:center; }
.reflection>span { color:var(--j-red); font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.18em; }
.reflection blockquote { margin:28px 0 42px; font:400 clamp(30px,3.45vw,57px)/1.26 Vollkorn,Georgia,serif; }
.reflection p { max-width:800px; margin:auto; color:#3d3e3e; font-size:clamp(16px,1.2vw,19px); line-height:1.75; }
.journey-footer { padding:clamp(100px,12vw,180px) 0 45px; }
.journey-footer-links { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin:36px 0 110px; }
.journey-footer-links a { display:flex; flex-direction:column; gap:20px; min-height:220px; padding:clamp(28px,3vw,50px); border:1px solid #ffffffb0; border-radius:clamp(24px,3vw,45px); text-decoration:none; transition:background .25s,transform .25s; }
.journey-footer-links a:hover,.journey-footer-links a:focus-visible { background:#17191b; transform:translateY(-5px); }
.journey-footer-links span { color:var(--j-red); font-size:12px; text-transform:uppercase; letter-spacing:.17em; }
.journey-footer-links strong { font:400 clamp(37px,4vw,66px)/1 Vollkorn,Georgia,serif; }
.journey-footer-bottom { display:flex; justify-content:space-between; gap:25px; padding-top:30px; border-top:1px solid #ffffff6e; }
.journey-footer-bottom a { text-decoration:none; font-size:13px; }

@media(max-width:900px) {
  .principle { grid-template-columns:70px minmax(0,1fr); }
  .principle-mark { grid-column:2; justify-self:start; }
  .work-copy { grid-template-columns:1fr; gap:24px; max-width:700px; }
  .work-copy p { font-size:17px; }
  .work-split { grid-template-columns:1fr; }
  .image-frame--clinical { height:min(80vw,700px); }
  .journey-interlude .segue-sticky { width:min(100% - 42px,700px); }
}
@media(max-width:600px) {
  .journey-interlude .segue { height:max(145vh,820px); }
  .journey-interlude .segue-sticky { min-height:520px; }
  .theme-bridge { height:760px; }
  .direction-chapter,.work-chapter,.impact-chapter { padding:100px 0; }
  .work-intro { padding:80px 0 30px; }
  .principle { grid-template-columns:45px minmax(0,1fr); gap:14px; }
  .principle-number { font-size:40px; }
  .principle h3 { font-size:31px; }
  .principle-mark { font-size:28px; }
  .work-heading { grid-template-columns:1fr; gap:15px; }
  .work-heading h2 { font-size:clamp(42px,11vw,60px); }
  .work-heading--enablement h2 { white-space:normal; }
  .heading-note { display:block; width:max-content; margin:14px 0 0 auto; transform:rotate(-5deg); }
  .work-copy { margin:38px 0 48px; }
  .image-stage--enablement { grid-template-columns:1fr; }
  .image-stage--enablement.enablement-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .enablement-gallery .image-frame,
  .enablement-gallery .image-frame--hero { height:auto; max-height:none; aspect-ratio:.72; }
  .image-frame--hero { height:100vw; max-height:550px; }
  .image-rail { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding:0 0 18px; }
  .image-rail .image-frame { flex:0 0 74%; height:72vw; scroll-snap-align:start; }
  .image-stage-note { bottom:-12px; }
  .campaign-gallery { grid-template-columns:1fr 1fr; }
  .campaign-gallery-main { grid-column:1/-1; grid-row:auto; height:105vw; }
  .campaign-gallery .image-frame:not(.campaign-gallery-main) { aspect-ratio:.72; }
  .employee-gallery .image-frame,
  .employee-gallery .campaign-gallery-main { grid-column:auto; height:auto; aspect-ratio:.72!important; }
  .marketing-gallery .image-frame,
  .marketing-gallery .campaign-gallery-main,
  .marketing-gallery .marketing-gallery-website { grid-column:auto; height:auto; aspect-ratio:.72!important; }
  .image-frame--clinical { height:95vw; }
  .system-image { height:100vw; }
  .impact-metric { grid-template-columns:1fr; gap:5px; padding:45px 0 65px; }
  .impact-metric strong { font-size:clamp(105px,28vw,170px); }
  .impact-metric svg { width:80%; height:55%; top:0; }
  .impact-columns { grid-template-columns:1fr; gap:65px; padding:70px 0; }
  .reflection { margin-top:80px; }
  .journey-footer-links { grid-template-columns:1fr; gap:15px; margin-bottom:70px; }
  .journey-footer-links a { min-height:170px; }
  .journey-footer-bottom { flex-direction:column; }
}
@media(prefers-reduced-motion:reduce){ .draw-on-view svg path { stroke-dashoffset:0; } .journey-footer-links a { transition:none; } }
@media(prefers-reduced-motion:reduce){ .expanding-gallery > .image-frame,.gallery-feature,.gallery-feature__close { transition:none!important; } }

/* Portrait-format chapter drawings. The extension belongs to the illustration,
   not to the following horizon module. */
.journey-interlude { position:relative; z-index:2; overflow:visible; }
.journey-interlude:not(.journey-interlude--turn)::after { content:""; position:absolute; z-index:3; left:50%; bottom:-45vh; width:3px; height:45vh; border-radius:3px; background:linear-gradient(to bottom,var(--red) 70%,transparent); transform-origin:top; transform:translateX(-50%) scaleY(var(--p,1)); pointer-events:none; }
.journey-interlude--untangle::after { display:none; }
.journey-interlude--untangle .untangle-thread { top:5%; height:calc(100% + 45vh)!important; overflow:visible; }
.journey-interlude--untangle .untangle-thread__path { stroke:url(#tmw-thread-fade); stroke-width:4; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.journey-interlude--untangle .segue-meta { justify-content:center; text-align:center; }
.journey-interlude--untangle .segue-side--from { width:100%; color:#f8f7f3; font:400 clamp(54px,7vw,105px)/.95 Vollkorn,Georgia,serif; letter-spacing:-.04em; text-align:center; text-transform:none; }
.journey-interlude--untangle .segue-canvas h3 { width:min(100%,1050px); padding:.22em .38em .3em; background:radial-gradient(ellipse at center,rgba(5,6,8,.96) 0%,rgba(5,6,8,.9) 52%,rgba(5,6,8,.48) 72%,transparent 100%); }
.journey-interlude--untangle .segue-caption { position:relative; z-index:4; width:min(92%,930px); max-width:none; margin:0 auto; padding:22px 55px; border-top:0; background:radial-gradient(ellipse at center,rgba(5,6,8,.96) 0%,rgba(5,6,8,.88) 55%,rgba(5,6,8,.42) 76%,transparent 100%); text-align:center; }

/* Shared chapter-intro treatment: label, title and lead copy form one centred stack. */
.work-intro .chapter-heading { display:flex; flex-direction:column; align-items:center; gap:24px; margin-bottom:42px; padding-bottom:0; border-bottom:0; text-align:center; }
.work-intro .chapter-heading > span { order:-1; }
.work-intro-copy { width:min(900px,100%); margin:0 auto; text-align:center; }
.journey-interlude .segue-canvas { overflow:visible; }
.journey-interlude .segue-canvas > svg:not(.turn-swoop) { inset:auto; left:50%; top:5%; width:min(100%,490px); height:72%; transform:translateX(-50%); }
.journey-interlude .segue-side--from { left:50%; top:3%; transform:translateX(-50%); }
.journey-interlude .segue-side--to { left:50%; right:auto; top:auto; bottom:18%; transform:translateX(-50%); }
.journey-interlude .segue-canvas h3 { bottom:0; width:100%; font-size:clamp(54px,7vw,105px); }
.journey-interlude .segue-note { right:9%; top:42%; }
.journey-interlude--turn .segue { height:max(245vh,1650px); }
.journey-interlude--turn .turn-sheet--back { transform:rotate(-4deg) scale(calc(.9 + var(--p) * .1)); }
.journey-interlude--turn .turn-sheet--middle { --card-step:clamp(0,calc((var(--p) - .42) * 1.724),1); z-index:2; background:#e7e3da; color:#141414; transform-origin:50% 100%; transform:translateY(calc(var(--card-step) * 72vh)) rotateX(calc(var(--card-step) * -65deg)); opacity:clamp(0,calc(1.35 - var(--card-step) * 1.6),1); }
.journey-interlude--turn .turn-sheet--front { --card-step:clamp(0,calc(var(--p) * 2.083),1); z-index:3; transform-origin:50% 100%; transform:translateY(calc(var(--card-step) * 72vh)) rotateX(calc(var(--card-step) * -65deg)); opacity:clamp(0,calc(1.35 - var(--card-step) * 1.6),1); }
.journey-interlude--turn .turn-sheet--middle strong { font-size:clamp(34px,4vw,59px); }
.journey-interlude--turn .segue-caption { width:min(92%,980px); max-width:none; margin:0 auto; padding:24px 40px 0; border-top:1px solid #ffffff55; color:#f2f0e9; font:400 clamp(20px,2vw,31px)/1.35 Vollkorn,Georgia,serif; text-align:center; opacity:clamp(0,calc((var(--p) - .86) * 7.15),1); transform:translateY(calc((1 - var(--p)) * 28px)); }
@media(max-width:700px){ .journey-interlude .segue-canvas > svg:not(.turn-swoop) { width:min(100%,330px); height:67%; } .journey-interlude .segue-note { right:0; top:46%; } .journey-interlude--turn .segue-caption { padding:18px 0 0; font-size:18px; } }
