/* Cinematic direction: full-frame 3D, chapter colour, oversized type and quiet controls. */
:root{--font-brand:'Iowan Old Style','Palatino Linotype',Palatino,Georgia,serif;--font-display:'Avenir Next',Avenir,'Segoe UI',Arial,sans-serif;--story-bg:#c9ddef;--story-ink:#16355b;--story-rule:#16355b45;--story-soft:#16355baa;--clear:transparent;--story-shade:#c9ddef;--story-white:#ffffff;--story-dark:#16355b;--story-focus:#9fc9ef;--dark-paper:#183b63;--paper:#f4f7fb;--ink:#16355b;--film-mask:#16355b;--gutter:clamp(24px,5vw,80px)}
h1,h2{font-weight:700;letter-spacing:-.065em;line-height:1.01}h3{letter-spacing:-.03em}.wordmark{font-family:var(--font-brand);font-size:33px;letter-spacing:-.06em}.brand-symbol{display:none}.nav nav{font-size:12px;gap:32px}.nav{height:96px}.nav-cta{background:var(--clear);color:inherit;border:1px solid currentColor;border-radius:32px;min-height:46px;font-size:12px;gap:28px}.nav-cta:hover{background:var(--story-ink);color:var(--story-bg)}
header{position:fixed;z-index:20;color:var(--story-ink)}body.past-story header{background:var(--paper-light);color:var(--ink);border-bottom:1px solid var(--rule)}body.past-story .nav{height:78px}body.past-story .nav-cta:hover{background:var(--accent);color:var(--on-accent)}
.journey{height:1320svh;background:var(--story-bg)}.stage{height:100svh;min-height:680px;background:var(--story-bg);color:var(--story-ink);isolation:isolate}.stage-inner{width:100%;max-width:none;padding:0}.stage-inner:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--story-shade) 0%,var(--story-shade) 8%,var(--clear) 58%)}#scene{inset:0;right:auto;top:0;width:100%;height:100%;overflow:clip;z-index:0}#scene canvas{width:100%;height:100%}.scene-location{display:none}
.hero-copy,.process-copy{top:25%;left:max(var(--gutter),calc((100% - 1440px)/2 + 72px));width:46%;max-width:650px;z-index:3;pointer-events:none}.hero-copy h1,.process-copy h2{font-size:clamp(64px,7.25vw,108px);line-height:.99;letter-spacing:-.07em;max-width:11.5ch;white-space:pre-line;overflow-wrap:normal;text-wrap:initial}.hero-copy h1{max-width:none;white-space:normal}.hero-copy p{font-size:16px;max-width:30ch;line-height:1.65;margin-top:28px;color:inherit}.hero-actions{margin-top:24px;gap:28px}.hero-actions .button{color:inherit;background:var(--clear);border:0;border-bottom:1px solid currentColor;border-radius:0;font-size:13px;padding:12px 0;gap:40px;min-height:48px}.hero-actions .button:hover{opacity:.72}.hero-actions .text-link{font-size:12px;border:0;opacity:.7}.step-count{display:none}.process-copy>p{font-size:15px;line-height:1.65;margin-top:28px;max-width:32ch;color:inherit}.process-copy .step-detail{margin-top:16px;padding-top:0;border:0;font-size:11px;line-height:1.7;max-width:36ch;color:inherit;opacity:.72}.story-action{pointer-events:auto;margin-top:24px;border:0;border-bottom:1px solid currentColor;font-size:13px;gap:36px;min-height:44px;color:inherit}.story-action:hover{color:inherit;opacity:.7}.scene-note{left:var(--gutter);right:var(--gutter);bottom:21%;color:inherit;opacity:.7;font-size:11px;z-index:3}.scene-note>span:first-child{display:none}.scene-note>span:last-child{justify-content:flex-start}
.journey-controls{left:max(var(--gutter),calc((100% - 1440px)/2 + 72px));right:max(var(--gutter),calc((100% - 1440px)/2 + 72px));bottom:3.5%;padding:0;border:0;z-index:4;display:grid;grid-template-columns:180px minmax(0,1fr) 48px;gap:0 28px;align-items:center}.journey-heading{display:contents}.journey-heading #journey-label{grid-column:1;grid-row:1;font-size:11px;line-height:1.6;max-width:19ch;align-self:center;padding-top:24px}.journey-heading #journey-label:before{content:attr(data-position);display:block;font-size:10px;margin-bottom:4px;font-variant-numeric:tabular-nums}.journey-actions{display:contents}.journey-actions #motion-toggle{position:absolute;left:0;top:76px;font-size:10px;border:0;text-decoration:underline;text-underline-offset:4px;min-height:28px;color:inherit}.journey-actions .step-arrow{border-color:currentColor;color:inherit;width:48px;height:48px;min-height:48px;border-radius:50%;grid-column:3;grid-row:1;margin-top:12px}.journey-actions .step-arrow:hover{background:var(--story-ink);color:var(--story-bg)}.journey-actions #previous-step{display:none}.journey-actions #next-step svg{transform:rotate(90deg);width:20px;height:20px}.journey-actions #next-step:disabled{opacity:.4;background:var(--clear);cursor:not-allowed;border-style:dashed;color:var(--story-ink)}.step-nav{grid-column:2;grid-row:1;gap:16px;padding:8px 0 0;overflow-x:auto;scrollbar-width:none;align-items:stretch;scroll-snap-type:none}.step-nav button,.step-nav button[aria-current]{position:relative;flex:0 0 auto;min-width:68px;min-height:52px;padding:24px 0 0;text-align:left;font-size:9px;color:inherit;border:0;opacity:.74;white-space:nowrap}.step-nav button:before{content:'';position:absolute;left:0;right:0;top:10px;height:2px;background:currentColor;opacity:.4}.step-nav button[aria-current]{opacity:1;font-weight:500}.step-nav button[aria-current]:before{height:3px;opacity:1}.step-nav button span{display:none!important}.step-nav button:hover{opacity:1;text-decoration:none}#story-scrubber{grid-column:2;grid-row:2;opacity:.30;accent-color:var(--story-ink);height:10px;margin-top:16px}#story-scrubber:hover,#story-scrubber:focus-visible{opacity:.85}.story-demo{position:absolute;right:0;top:82px;font-size:10px;opacity:.65;pointer-events:none}.journey button:focus-visible,.journey a:focus-visible,.journey input:focus-visible,header a:focus-visible{outline-color:currentColor}
.section{padding-block:128px}.section h2{font-size:clamp(42px,5vw,72px);letter-spacing:-.065em}.section-intro>p{font-size:17px;line-height:1.7}.service-list h3{font-size:26px;letter-spacing:-.04em}.service-number{font-family:var(--font-body);font-size:11px}.care-note{background:var(--dark-paper)}.care-mark{font-family:var(--font-brand)}.booking h2{max-width:9ch}.booking-intro>p{font-size:17px}.questions h2{font-size:clamp(40px,4.5vw,64px)}.footer-top p{font-family:var(--font-brand)}
.reduced .journey{height:auto}.reduced .stage{height:100svh;min-height:760px}
@media(min-width:1800px){.hero-copy,.process-copy{max-width:680px}.hero-copy h1,.process-copy h2{font-size:108px}}
@media(max-width:1100px) and (min-width:651px){.hero-copy,.process-copy{width:47%;top:27%}.hero-copy h1,.process-copy h2{font-size:clamp(61px,7.25vw,82px)}.hero-copy p,.process-copy>p{font-size:14px;max-width:28ch}.journey-controls{grid-template-columns:130px minmax(0,1fr) 44px;gap:0 20px}.nav nav{gap:24px}.step-nav{gap:12px}.step-nav button{min-width:66px}.journey-actions .step-arrow{width:44px;height:44px;min-height:44px}.hero-actions{flex-direction:row;align-items:center;gap:20px}.story-demo{font-size:9px}.journey-heading #journey-label{font-size:10px}}
@media(max-width:650px){.nav{height:82px}.wordmark{font-size:28px}.nav-cta{min-height:40px;padding:8px 16px;font-size:11px;gap:16px}.journey{height:1220svh}.stage{min-height:720px}#scene{top:0;width:100%;height:100%;right:auto}.stage-inner:after{background:linear-gradient(180deg,var(--story-shade) 0%,var(--story-shade) 15%,var(--clear) 48%)}.hero-copy,.process-copy{left:24px;top:15%;width:calc(100% - 48px);max-width:460px}.hero-copy h1,.process-copy h2{font-size:clamp(44px,11.8vw,65px);line-height:.99;letter-spacing:-.065em;max-width:13ch}.hero-copy h1{max-width:none}.hero-copy p,.process-copy>p{font-size:13px;line-height:1.6;max-width:31ch;margin-top:16px}.hero-actions{margin-top:12px;gap:28px;flex-direction:row;align-items:center}.hero-actions .button{font-size:12px;gap:32px;min-height:44px}.hero-actions .text-link{font-size:11px}.process-copy .step-detail{font-size:9px;line-height:1.6;max-width:35ch;margin-top:8px;opacity:.65}.story-action{font-size:11px;min-height:36px;margin-top:12px;gap:28px}.scene-note{left:24px;bottom:18%;font-size:9px}.journey-controls{left:24px;right:24px;bottom:4%;grid-template-columns:80px minmax(0,1fr) 38px;gap:0 16px;padding:0}.journey-heading #journey-label{font-size:9px;padding-top:12px;max-width:12ch}.journey-heading #journey-label:before{font-size:8px;margin-bottom:4px}.journey-actions .step-arrow{width:38px;height:38px;min-height:38px;margin-top:8px}.step-nav{gap:8px;padding-top:4px}.step-nav button,.step-nav button[aria-current]{font-size:0;min-width:22px;width:22px;min-height:42px;padding:0;flex:0 0 22px}.step-nav button:before{top:22px;height:2px}.step-nav button[aria-current]:before{height:3px}#story-scrubber{height:8px;margin-top:8px}.journey-actions #motion-toggle{top:62px;font-size:8px;min-height:24px}.story-demo{top:69px;font-size:8px;max-width:23ch;text-align:right}.section{padding-block:76px}.section h2{font-size:44px}.section-intro>p{font-size:16px}.service-list h3{font-size:24px}.booking h2{max-width:12ch}.reduced .stage{height:100svh;min-height:780px}}
@media(max-width:360px){.hero-copy,.process-copy{left:20px;width:calc(100% - 40px)}.hero-copy h1,.process-copy h2{font-size:42px}.hero-copy p,.process-copy>p{font-size:12px;max-width:30ch}.process-copy .step-detail{font-size:8px}.story-action{margin-top:8px}.hero-actions{gap:24px}.journey-controls{left:20px;right:20px;grid-template-columns:70px minmax(0,1fr) 34px;gap:0 12px}.journey-actions .step-arrow{width:34px;height:34px;min-height:34px}.step-nav{gap:8px}.step-nav button,.step-nav button[aria-current]{min-width:18px;width:18px;flex-basis:18px}.nav-cta{gap:12px;padding-inline:12px}.wordmark{font-size:26px}.story-demo{font-size:7px}.scene-note{left:20px}}
@media(max-height:740px) and (min-width:651px){.stage{min-height:620px}.nav{height:80px}.hero-copy,.process-copy{top:24%}.hero-copy h1,.process-copy h2{font-size:76px}.hero-copy p,.process-copy>p{margin-top:16px}.process-copy .step-detail{font-size:10px;margin-top:12px}.story-action{margin-top:16px}.journey-controls{bottom:4%}.scene-note{bottom:23%}}
@media(prefers-reduced-motion:reduce){.hero-copy,.process-copy{will-change:auto}}

/* Keep navigation legible over bright equipment while the middle remains fully cinematic. */
.stage-inner:before{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,var(--story-bg) 0%,var(--story-bg) 9%,var(--clear) 14%,var(--clear) 76%,var(--story-bg) 94%,var(--story-bg) 100%)}
@media(min-width:1101px){.step-nav button,.step-nav button[aria-current]{font-size:10px;min-width:72px}}
@media(max-width:650px){.stage-inner:after{background:linear-gradient(180deg,var(--story-shade) 0%,var(--story-shade) 25%,var(--clear) 39%)}}
.reduced .journey-controls{grid-template-columns:180px minmax(0,1fr) 48px 48px}.reduced .journey-actions #previous-step{display:inline-grid;grid-column:3;grid-row:1}.reduced .journey-actions #next-step{grid-column:4}
@media(max-width:1100px) and (min-width:651px){.reduced .journey-controls{grid-template-columns:130px minmax(0,1fr) 44px 44px}}
@media(max-width:650px){.reduced .journey-controls{grid-template-columns:70px minmax(0,1fr) 38px 38px;gap:0 12px}}
/* Quiet scale rather than faint text: preserve contrast on every chapter colour. */
.hero-actions .text-link,.process-copy .step-detail,.scene-note,.step-nav button,.story-demo{opacity:1}#story-scrubber{opacity:.8}#story-scrubber:hover,#story-scrubber:focus-visible{opacity:1}
.container{max-width:1440px}.stage-inner{max-width:none}.hero-copy,.process-copy{left:max(var(--gutter),calc((100% - 1440px)/2 + var(--gutter)))}.journey-controls{left:max(var(--gutter),calc((100% - 1440px)/2 + var(--gutter)));right:max(var(--gutter),calc((100% - 1440px)/2 + var(--gutter)))}
@media(max-width:650px){.hero-copy,.process-copy{left:24px}.journey-controls{left:24px;right:24px}}
@media(max-width:360px){.hero-copy,.process-copy{left:20px}.journey-controls{left:20px;right:20px}}
/* Narrative copy follows page scroll, independently of the pinned 3D scene. */
.story-copy-window{position:absolute;inset:0;z-index:3;pointer-events:none;clip-path:inset(var(--copy-clip-top,116px) 0 var(--copy-clip-bottom,170px) 0)}
.story-copy-window .story-panel{position:absolute;top:25%;will-change:transform;transition:none}
.story-copy-window .story-panel a{pointer-events:auto}
@media(max-width:650px){.story-copy-window .story-panel{top:15%}}
.reduced .story-copy-window .story-panel{will-change:auto;transform:none!important}

/* A fixed animation clock makes scroll-controlled moments easy to reference. */
.story-timeline{grid-column:2 / -1;grid-row:2;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;margin-top:12px;min-width:0}
.story-timeline #story-scrubber{grid-column:1;grid-row:1;margin:0;height:20px;min-width:0;width:100%}
#story-time{grid-column:2;grid-row:1;font-size:12px;line-height:1.4;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.02em}
.journey-actions #motion-toggle{position:static;grid-column:1;grid-row:3;justify-self:start;min-height:28px;padding:4px 0}
.story-demo{position:static;grid-column:2 / -1;grid-row:3;justify-self:end;align-self:center}
@media(max-width:650px){.story-timeline{grid-column:1 / -1;gap:14px;margin-top:8px}#story-time{font-size:10px}.journey-actions #motion-toggle{min-height:24px;padding:2px 0}.story-demo{max-width:none}}
