@font-face{font-family:Sohne;src:url('assets/sohne-buch.otf') format('opentype');font-weight:400;font-display:swap}
@font-face{font-family:Architekt;src:url('assets/architekt-light.otf') format('opentype');font-weight:300;font-display:swap}
@font-face{font-family:Architekt;src:url('assets/architekt-regular.otf') format('opentype');font-weight:400;font-display:swap}
:root{--slate:#3c505a;--grey:#82969b;--light:#c8d2d2;--pale:#e3e8e8;--orange:#ff5f00;--scale:1}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;font-family:Sohne,Arial,sans-serif;color:var(--slate);background:var(--slate)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}p,h1,h2,h3,figure{margin:0;font-weight:400}img{display:block}a:focus-visible,button:focus-visible{outline:2px solid var(--orange);outline-offset:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:20px;top:15px;padding:12px;background:white;z-index:20;transform:translateY(-150%)}.skip:focus{transform:none}
.carousel{position:fixed;inset:0;width:100%;height:100svh;overflow:hidden;outline:none}.track{display:flex;height:100%;transition:transform .65s cubic-bezier(.65,0,.25,1);will-change:transform}.page{flex:0 0 100%;height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:none}.page::-webkit-scrollbar{display:none}.canvas{width:1440px;zoom:var(--scale);position:relative;overflow:hidden;min-height:max(1024px,calc(100svh / var(--scale)));display:flex;flex-direction:column;background:var(--pale);--cross:url('assets/cross-slate.svg');--rule:rgba(130,150,155,.5);--nav-arrow:url('assets/arrow-slate.svg?v=cap-arrow-match');--dot:var(--light)}
.masthead{position:absolute;z-index:2;top:20px;left:33px;right:20px;display:flex;align-items:center;justify-content:space-between;height:48px}.masthead>a:first-child{width:103px;height:29px}.website{color:var(--slate);width:144px;height:48px;border-radius:4px;background:rgba(255,255,255,.8);backdrop-filter:blur(30px);display:flex;justify-content:center;align-items:center;font-family:Architekt,sans-serif;font-size:14px;line-height:28px;letter-spacing:.6px;word-spacing:-2.5px;text-transform:uppercase;transition:background .2s}.website:hover{background:white}
.page-content{flex:1;min-height:968px}.intro{padding:200px 20px 0;display:grid;grid-template-columns:1fr 1fr;gap:20px}.title-column,.copy-column{position:relative}.title-column{padding-left:20px}.intro-cross{position:absolute;top:-20px;left:-20px}.title-column>.intro-cross{left:0}h1,h2.display{font-family:Architekt,sans-serif;font-weight:300;font-size:80px;line-height:80px;letter-spacing:6.4px;text-transform:uppercase}.tight-e{letter-spacing:-8px}.copy{font-size:24px;line-height:28px;color:var(--grey)}.copy p+p{margin-top:16px}.copy .bright{color:var(--slate)}.booking{margin-top:20px;width:351px;height:33px;border:1px solid var(--orange);color:var(--orange);display:flex;align-items:center;justify-content:center;gap:5px;font-family:Architekt,sans-serif;font-size:14px;line-height:18px;letter-spacing:1.12px;text-transform:uppercase;white-space:nowrap;transition:background .2s}.booking:hover{background:rgba(255,95,0,.08)}.booking img{flex-shrink:0}
.page-nav{height:56px;position:relative;display:flex;justify-content:space-between;align-items:center;margin:0 20px;flex-shrink:0;border-top:.5px solid var(--rule)}.page-nav:before,.rule:after{content:'';width:20px;height:20px;background:var(--cross) center no-repeat;position:absolute;left:calc(50% - 10px);top:-10px}.nav-arrow{width:40px;height:48px;padding:0;border:0;background:transparent;display:flex;align-items:center}.nav-arrow img{width:28px;height:28px}.nav-arrow.previous img{transform:rotate(180deg)}.nav-arrow.next{justify-content:flex-end}.nav-arrow[aria-disabled=true]{opacity:1;cursor:default}.dots{display:flex;gap:20px;position:absolute;left:calc(50% - 80px);top:20px}.dot{width:16px;height:16px;border:0;border-radius:2px;background:var(--dot);padding:0;position:relative}.dot:before{content:'';position:absolute;inset:-10px}.dot[aria-current=page]{background:var(--orange)}.dot:hover{background:var(--orange)}.rule{height:0;position:relative;border-top:.5px solid var(--rule);margin:0 20px}
.hero .canvas{background:var(--slate) url('assets/landscape-web.jpg') left top/1544px 1024px no-repeat;color:white;--cross:url('assets/cross-light.svg');--rule:rgba(200,210,210,.5)}.hero .copy{color:var(--light)}.hero .bright{color:white}.hero .booking{color:var(--light);border-color:var(--light);margin-top:27px}.hero .booking:hover{background:rgba(255,255,255,.15)}
.kern-end{letter-spacing:-16px}.journey .canvas{background:#000;color:white;--rule:rgba(227,232,232,.5);--cross:url('assets/cross-white.svg');--dot:var(--slate)}.journey .copy{color:#b2b9be}.journey .bright{color:white}.journey .website,.form .website{background:rgba(255,255,255,.2);color:white}.journey .website:hover,.form .website:hover{background:rgba(255,255,255,.3)}.journey .intro{height:633px}.journey-art{margin:70px 0 0 136px;width:1164px;height:186px}
.form .canvas{background:var(--slate);color:white;--rule:rgba(130,150,155,.5);--cross:url('assets/cross-grey.svg');--dot:var(--grey)}.stage-content{position:relative;min-height:968px}.rocket-wrap{position:absolute;width:333px;height:2108px;left:78px;top:-1220px}.rocket-dim{position:absolute;background:rgba(60,80,90,.8);width:333px;height:2208px;left:-8px;top:-737px}.stage-connector{position:absolute;left:425.333px;top:509.333px;width:285.167px;height:5.333px}.stage-copy{margin-left:730px;padding-top:417px;width:592px}.stage-copy h2{font-family:Architekt,sans-serif;font-weight:400;font-size:80px;line-height:80px;letter-spacing:6.4px;white-space:nowrap}.stage-number{color:var(--orange)}.stage-one,.stage-angle{letter-spacing:-32px}.stage-body{padding-top:5px;font-size:18px;line-height:22px;color:var(--grey);text-box-trim:trim-both;text-box-edge:cap alphabetic}.stage-body p+p{margin-top:16px}.stage-lead{font-size:24px;line-height:28px;color:white}.stage-body .bright{color:white}
.flight .website{background:rgba(227,232,232,.2)}.flight .canvas{background:white;--dot:var(--pale);--rule:rgba(130,150,155,.5)}.flight .page-content{min-height:1256px}.flight .intro{height:483px}.instruments{margin:62.5px 95px 50px;display:grid;grid-template-columns:repeat(6,174.93px);gap:40px}.instruments figure{display:flex;flex-direction:column;align-items:center;gap:20px}.instruments figcaption{font-family:Architekt,sans-serif;font-size:14px;line-height:18px;letter-spacing:1.12px;text-transform:uppercase;white-space:nowrap}.flight-outcome{margin:64.5px 18px 0 732px}.flight-outcome ul{list-style:none;padding:0;margin:16px 0}.flight-outcome li{position:relative;padding-left:21px}.flight-outcome li:before{content:'+';position:absolute;left:0}.flight-outcome .booking{margin-top:21px}
.projects .page-content{min-height:1297px}.projects .intro{height:477px}.project-grid{margin:29.5px 20px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.project-image{display:block;width:335px;height:335px;overflow:hidden}.project-image img{object-fit:cover;width:335px;height:335px}.bloom-image img{object-fit:cover}.armed-image img{width:615.06px;max-width:none;position:relative;left:-59.027px}.project-grid h3{font-size:18px;line-height:22px;margin-top:20px;margin-bottom:12px}.project-grid p{font-size:18px;line-height:22px;color:var(--grey)}.project-link{display:flex;align-items:center;width:max-content;gap:5px;height:13px;margin-top:15px;font-family:Architekt,sans-serif;font-size:14px;line-height:18px;letter-spacing:1.12px;color:var(--grey);text-transform:uppercase}.project-label{white-space:pre}.project-grid article:nth-child(2) .project-link{margin-top:18px}.project-link img{margin-left:0}.project-link:hover{color:var(--orange)}.projects-bottom-rule{margin-top:67px}.projects-cta{margin:38.5px 20px 0 730px}.projects-cta .booking{margin-top:20px}
@media(min-width:761px){.hero .canvas{background-size:calc(max(1544px,100svh / var(--scale) * 1.5078125)) calc(max(1024px,100svh / var(--scale)))}}
@media(max-width:760px){:root{--scale:1}.canvas{width:100%;zoom:1;min-height:100svh}.masthead{left:24px;right:24px;top:20px}.website{width:128px;height:44px;font-size:12px;letter-spacing:.5px;word-spacing:-2px}.page-content{min-height:calc(100svh - 64px)}.intro{padding:145px 24px 0;grid-template-columns:1fr;gap:52px}.title-column{padding-left:0}.title-column>.intro-cross,.copy-column>.intro-cross{left:-10px}h1,h2.display{font-size:clamp(38px,9vw,64px);line-height:1;letter-spacing:.08em}.copy{font-size:20px;line-height:25px}.desktop-break{display:none}.copy p+p{margin-top:16px}.booking{width:100%;max-width:351px;font-size:12px;letter-spacing:.6px;height:40px;white-space:normal}.hero .page-content{padding-bottom:70px}.hero .canvas{background-size:auto 100%;background-position:center}.page-nav{height:64px;margin:0 24px}.dots{top:24px;gap:16px;left:calc(50% - 72px)}.dot{width:16px;height:16px}.rule{margin:0 24px}}
@media(prefers-reduced-motion:reduce){.track{transition:none}*{scroll-behavior:auto!important}}
@media(max-width:760px){.journey .intro,.flight .intro,.projects .intro{height:auto}.journey .intro{padding-bottom:60px}.journey-art{width:calc(100% - 48px);height:auto;margin:45px 24px 65px}.journey-art img{width:100%;height:auto}.stage-content{min-height:calc(100svh - 64px);padding:170px 24px 64px;display:flex;flex-direction:column;gap:35px}.stage-copy{margin:0;padding:0;width:auto}.stage-copy h2{font-size:54px;line-height:64px;letter-spacing:4px}.stage-one,.stage-angle{letter-spacing:-20px}.stage-body{padding-top:15px;font-size:18px;line-height:23px;text-box-trim:none}.stage-lead{font-size:22px;line-height:27px}.rocket-wrap{position:relative;top:auto;left:auto;width:166.5px;height:444px;overflow:hidden;align-self:center;margin-top:0}.rocket-wrap>img{width:166.5px;height:1054px;position:absolute;top:-610px}.rocket-dim{display:none}.stage-connector{display:none}.stage-copy{order:-1}.flight .page-content,.projects .page-content{min-height:0;padding-bottom:60px}.flight-rule,.projects-rule{margin-top:55px}.instruments{margin:45px 24px;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px}.instruments img{width:min(100%,184px);height:auto}.instruments figure{gap:14px}.instruments figcaption{font-size:12px;letter-spacing:.5px;white-space:normal;text-align:center}.flight-outcome{margin:45px 24px 0}.flight-outcome .booking{margin-top:25px}.project-grid{margin:30px 24px 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px 20px}.project-image{width:100%;height:auto;aspect-ratio:1}.project-image img{width:100%;height:100%;object-fit:cover}.armed-image img{width:183.6%;height:100%;left:-17.62%}.project-grid h3{font-size:18px;line-height:23px}.project-grid p{font-size:16px;line-height:21px}.project-link{font-size:12px;letter-spacing:.5px;flex-wrap:wrap;max-width:100%}.projects-bottom-rule{margin-top:45px}.projects-cta{margin:40px 24px 0}.hero .booking{margin-top:25px}}
@media(max-width:480px){.project-grid{grid-template-columns:1fr}.project-grid h3{margin-top:18px}.project-link{font-size:14px;letter-spacing:1.12px}.project-grid p{font-size:18px;line-height:23px}}
.journey-mobile{display:none}
@media(max-width:760px){.kern-end{letter-spacing:-.2em}.tight-e{letter-spacing:-.1em}.journey-art{display:none}.journey-mobile{--badge:min(167.4px,calc((100vw - 68px)/2));display:grid;grid-template-columns:repeat(2,var(--badge));justify-content:center;gap:24px 20px;margin:45px 24px 65px}.journey-mobile>div{position:relative;overflow:hidden;width:var(--badge);height:var(--badge)}.journey-mobile>div:last-child{grid-column:1/-1;justify-self:center}.journey-mobile img{position:absolute;width:calc(var(--badge) * 1164 / 186);height:var(--badge);max-width:none;left:calc(var(--badge) * var(--offset) / -186)}}
/* Persistent chrome and opacity transitions: no horizontal page movement. */
.hero .heat-haze-filter{position:absolute;pointer-events:none}
.hero .heat-haze{position:absolute;inset:0;z-index:0;background:inherit;pointer-events:none;filter:url(#launch-heat-haze);opacity:.85;mask-image:linear-gradient(to bottom,transparent 18%,rgba(0,0,0,.25) 31%,black 44%,rgba(0,0,0,.65) 100%)}
.hero .page-content{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){.hero .heat-haze{display:none}}
.track{display:block;position:relative;transition:none;transform:none!important;will-change:auto}
.page{position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .55s ease,visibility 0s .55s}
.page.is-active{opacity:1;visibility:visible;pointer-events:auto;z-index:1;transition:opacity .55s ease,visibility 0s}
.canvas{padding-bottom:56px}.reveal{opacity:0;transition:opacity .6s ease;transition-delay:0s}:is(.is-active,.is-leaving) .reveal.is-visible{opacity:1;transition-delay:var(--reveal-delay,0ms)}
.fixed-chrome{position:fixed;inset:0;z-index:10;pointer-events:none;--cross:url('assets/cross-light.svg');--rule:rgba(200,210,210,.5);--dot:var(--light)}
.fixed-chrome a,.fixed-chrome button{pointer-events:auto}.fixed-chrome .masthead{top:calc(20px * var(--scale));left:calc(33px * var(--scale));right:calc(20px * var(--scale));height:calc(48px * var(--scale))}.fixed-chrome .masthead>a{zoom:var(--scale)}
.fixed-chrome .page-nav{position:absolute;bottom:0;left:0;right:0;margin:0 calc(20px * var(--scale));height:calc(56px * var(--scale));background:transparent;transition:border-color .4s,color .4s}
.fixed-chrome .page-nav:after{content:'';position:absolute;z-index:-1;inset:0 calc(-20px * var(--scale));background:var(--chrome-bg,rgba(60,80,90,.92));transition:background .55s}
.fixed-chrome .page-nav:before{width:calc(20px * var(--scale));height:calc(20px * var(--scale));left:calc(50% - 10px * var(--scale));top:calc(-10px * var(--scale));background-size:contain}
.fixed-chrome .nav-arrow{zoom:var(--scale)}.fixed-chrome .dots{zoom:var(--scale);top:20px;left:50%;transform:translateX(-50%);gap:20px}
.dot{transition:background-color .25s ease}.dot[aria-current=page]{background:var(--orange)}.dot:hover{background:var(--orange)}
body[data-active="1"] .fixed-chrome{--chrome-bg:#000;--dot:var(--slate);--cross:url('assets/cross-white.svg')}
body[data-active="2"] .fixed-chrome{--chrome-bg:var(--slate);--dot:var(--grey);--cross:url('assets/cross-grey.svg');--rule:rgba(130,150,155,.5)}
body[data-active="3"] .fixed-chrome{--chrome-bg:#fff;--dot:var(--pale);--cross:url('assets/cross-slate.svg');--rule:rgba(130,150,155,.5)}
body[data-active="4"] .fixed-chrome{--chrome-bg:var(--pale);--cross:url('assets/cross-slate.svg');--rule:rgba(130,150,155,.5)}
body[data-active="1"] .fixed-chrome .website,body[data-active="2"] .fixed-chrome .website{background:rgba(255,255,255,.2);color:white}
body[data-active="3"] .fixed-chrome .website{background:rgba(227,232,232,.8)}
.code-word{position:relative;display:inline-block}.code-glyph{position:absolute;inset:0;white-space:pre;overflow:visible;pointer-events:none}.is-decoding .code-source{opacity:0}
@media(max-width:760px){.canvas{padding-bottom:64px}.fixed-chrome .masthead{left:24px;right:24px;top:20px;height:48px}.fixed-chrome .page-nav{margin:0 24px;height:64px}.fixed-chrome .page-nav:after{inset:0 -24px}.fixed-chrome .dots{top:24px;gap:16px}}
@media(prefers-reduced-motion:reduce){.page,.reveal,.active-dot,.fixed-chrome .page-nav:after{transition:none!important}.reveal{opacity:1}}
body[data-active="0"] .fixed-chrome .page-nav:after{background:transparent}

/* Söhne body copy follows Blast's 1.5s sine fade with a soft paragraph stagger. */
.sohne-reveal{transition:opacity 1.5s cubic-bezier(.445,.05,.55,.95)}
.booking,.hero .booking{border-radius:4px;transition:opacity 1.5s cubic-bezier(.445,.05,.55,.95),background-color .2s,color .2s,border-color .2s}
.is-active .booking.reveal.is-visible{transition-delay:var(--reveal-delay,0ms),0s,0s,0s}
.booking:hover,.booking:focus-visible,.hero .booking:hover,.hero .booking:focus-visible{background:var(--orange);border-color:var(--orange);color:white}
.booking:hover img,.booking:focus-visible img{filter:brightness(0) invert(1)}
.project-link:focus-visible{color:var(--orange)}
.project-link:hover img,.project-link:focus-visible img{content:url('assets/cta-orange.svg?v=button-cap-alignment')}
.instrument-svg{display:block;width:184px;height:184px;flex-shrink:0;overflow:visible}
.dial-motion,.secondary-motion,.attitude-motion{transform-box:view-box;transform-origin:92px 92px;animation:instrument-sway 11s ease-in-out infinite;animation-play-state:paused}
/* Each instrument has its own movement; needle parts share one fixed pivot. */
.direction-dial .dial-motion{animation-name:compass-north;animation-duration:11s}
.story-dial .dial-motion{transform:rotate(11deg);animation-name:story-resistance;animation-duration:6.4s;animation-delay:-1.2s;animation-timing-function:ease-in-out}
.communication-dial .dial-motion{animation-name:communication-drift;animation-duration:8.3s;animation-delay:-3s}
.pressure-dial .dial-motion{--limit-low:-8deg;--limit-high:30deg;--limit-near:27deg;--limit-dip:-14deg;animation-name:speed-limit;animation-duration:6.2s;animation-delay:-3.4s;animation-timing-function:linear}
.priorities-dial .dial-motion{animation-name:priority-main;animation-duration:9.3s;animation-delay:-2s}
.secondary-motion{animation-name:priority-secondary;animation-duration:7.1s;animation-delay:-4s}
.attitude-motion{animation-name:attitude-correction;animation-duration:8.7s;animation-delay:-2.5s}
.is-active .instruments figure.instrument-visible .dial-motion,.is-active .instruments figure.instrument-visible .secondary-motion,.is-active .instruments figure.instrument-visible .attitude-motion{animation-play-state:running}
@keyframes compass-north{0%,100%{transform:rotate(0deg)}18%{transform:rotate(2.6deg)}37%{transform:rotate(-1.5deg)}56%{transform:rotate(3.5deg)}78%{transform:rotate(-3deg)}}
/* Story approaches the start of the orange arc, then loses momentum. */
@keyframes story-resistance{
  0%,100%{transform:rotate(11deg)}
  16%{transform:rotate(17.5deg)}
  20%{transform:rotate(15deg)}
  25%{transform:rotate(18.5deg)}
  29%{transform:rotate(16deg)}
  35%{transform:rotate(18deg)}
  43%{transform:rotate(10deg)}
  60%{transform:rotate(14deg)}
  67%{transform:rotate(18.5deg)}
  71%{transform:rotate(16.2deg)}
  77%{transform:rotate(18deg)}
  82%{transform:rotate(12deg)}
}
/* A quick climb into the orange arc, small limit corrections, then a drop. */
@keyframes speed-limit{
  0%,16%,100%{transform:rotate(var(--limit-low))}
  27%{transform:rotate(0deg);animation-timing-function:cubic-bezier(.16,.85,.25,1)}
  32%,38%{transform:rotate(var(--limit-high))}
  42%{transform:rotate(var(--limit-near))}
  46%{transform:rotate(var(--limit-high))}
  52%{transform:rotate(var(--limit-near));animation-timing-function:cubic-bezier(.2,.8,.35,1)}
  59%,66%{transform:rotate(var(--limit-dip))}
  80%{transform:rotate(var(--limit-low))}
}
@keyframes attitude-correction{0%,100%{transform:translateY(0) rotate(0deg)}16%{transform:translateY(-.5px) rotate(3deg)}27%{transform:rotate(-1deg)}43%{transform:translateY(.6px) rotate(-3.5deg)}55%{transform:rotate(1.2deg)}72%{transform:translateY(-.4px) rotate(2.4deg)}86%{transform:rotate(-1.6deg)}}
@keyframes communication-drift{0%,100%{transform:rotate(0deg)}22%{transform:rotate(10deg)}40%{transform:rotate(5deg)}64%{transform:rotate(-8deg)}82%{transform:rotate(-3deg)}}
@keyframes priority-main{0%,100%{transform:rotate(0deg)}21%{transform:rotate(18deg)}41%{transform:rotate(7deg)}65%{transform:rotate(-15deg)}83%{transform:rotate(-5deg)}}
@keyframes priority-secondary{0%,100%{transform:rotate(0deg)}17%{transform:rotate(-24deg)}38%{transform:rotate(-8deg)}61%{transform:rotate(21deg)}82%{transform:rotate(6deg)}}
@media(max-width:760px){.instrument-svg{width:min(100%,184px);height:auto}}
@media(prefers-reduced-motion:reduce){.sohne-reveal,.dot{transition:none!important}.dial-motion,.secondary-motion,.attitude-motion{animation:none!important}}

/* The exact logo artwork becomes Blast orange on hover and keyboard focus. */
.masthead>a:first-child{position:relative}
.masthead>a:first-child img{opacity:0}
.masthead>a:first-child:before{content:'';position:absolute;inset:0;background:white;mask:url('assets/logo-white.svg') center/100% 100% no-repeat;-webkit-mask:url('assets/logo-white.svg') center/100% 100% no-repeat;pointer-events:none}
body[data-active="3"] .masthead>a:first-child:before,body[data-active="4"] .masthead>a:first-child:before{background:var(--slate)}
.masthead>a:first-child:after{content:'';position:absolute;inset:0;background:var(--orange);mask:url('assets/logo-white.svg') center/100% 100% no-repeat;-webkit-mask:url('assets/logo-white.svg') center/100% 100% no-repeat;opacity:0;pointer-events:none;transition:opacity .25s ease}
.masthead>a:first-child:hover:after,.masthead>a:first-child:focus-visible:after{opacity:1}
.masthead>a:first-child:hover img,.masthead>a:first-child:focus-visible img{opacity:0}

/* The navigation resolves like a flight instrument when the page reaches its end. */
/* Keep display titles at their original spacing; compact controls use Blast's spacing. */
h1,h2.display,.stage-copy h2{word-spacing:normal}
.website,.booking,.instruments figcaption,.project-link{word-spacing:-.4em}
.website,.booking,.instruments figcaption,.project-link{letter-spacing:.08em}
.booking{width:max-content;max-width:100%;padding-inline:12px}
/* Blast's glass controls retain the same tint over white, black and slate. */
body[data-active] .fixed-chrome{--glass-background:rgba(212,212,212,.15);--glass-filter:blur(10px);--glass-shadow:none}
body[data-active] .fixed-chrome .website,body[data-active] .fixed-chrome .dot{background:var(--glass-background);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter);box-shadow:var(--glass-shadow)}
body[data-active] .fixed-chrome .dot[aria-current=page]{background:var(--orange)}
body[data-active] .fixed-chrome .website{color:var(--pale);transition:background-color .3s ease,color .3s ease}
body[data-active] .fixed-chrome .dot:hover{background:var(--orange)}
body[data-active="3"] .fixed-chrome .website,body[data-active="4"] .fixed-chrome .website{color:var(--slate)}
body[data-active="4"] .fixed-chrome{--glass-background:rgba(255,255,255,.8);--glass-filter:blur(10px);--glass-shadow:none}
body[data-active] .fixed-chrome .website:hover,body[data-active] .fixed-chrome .website:focus-visible{color:var(--orange)}
.fixed-chrome .page-nav{border-top:0;opacity:0;visibility:hidden;transition:opacity .55s ease,visibility 0s .55s,color .4s}
.fixed-chrome .page-nav:after{content:none}
.fixed-chrome .page-nav.is-available{opacity:1;visibility:visible;transition:opacity .55s ease,visibility 0s,color .4s}
.nav-rule{position:absolute;top:0;left:0;right:0;height:.5px;background:var(--rule);transform:scaleX(0);transform-origin:center;transition:transform .18s ease,background-color .4s;pointer-events:none}
.is-available .nav-rule{transform:scaleX(1);transition:transform .7s cubic-bezier(.22,1,.36,1),background-color .4s}
.fixed-chrome .page-nav:before{opacity:1;transform:scale(.8);transition:transform .55s ease}
.fixed-chrome .page-nav.is-available:before{transform:scale(1);transition:transform .5s cubic-bezier(.22,1,.36,1)}
.fixed-chrome .dot{opacity:1;transition:background-color .25s ease}
.fixed-chrome .is-available .dot{transition:background-color .25s ease}
.fixed-chrome .is-available .dot[aria-current=page]{animation:none}
@keyframes marker-activate{0%{box-shadow:0 0 0 0 rgba(255,95,0,.35)}60%{box-shadow:0 0 0 5px rgba(255,95,0,0)}100%{box-shadow:0 0 0 0 rgba(255,95,0,0)}}
.fixed-chrome .nav-arrow{opacity:1;transition:none}
.fixed-chrome .nav-arrow img{transition:translate .25s cubic-bezier(.22,1,.36,1)}
.fixed-chrome .nav-arrow.previous:hover img,.fixed-chrome .nav-arrow.previous:focus-visible img{translate:-3px 0}
.fixed-chrome .nav-arrow.next:hover img,.fixed-chrome .nav-arrow.next:focus-visible img{translate:3px 0}
.fixed-chrome .page-nav:not(.is-available) button{pointer-events:none}
@media(prefers-reduced-motion:reduce){.fixed-chrome .page-nav,.fixed-chrome .page-nav:before,.nav-rule,.fixed-chrome .dot,.fixed-chrome .nav-arrow,.fixed-chrome .nav-arrow img{transition:none!important;animation:none!important}}

/* Blast's fine-pointer cursor: solid square and outlined link state. */
.blast-cursor{--cursor-color:var(--orange);position:fixed;left:0;top:0;z-index:999999999;pointer-events:none;width:20px;height:20px;box-sizing:border-box;border:2px solid transparent;border-radius:4px;background:var(--cursor-color);opacity:0;visibility:hidden;transform:translate(-50%,-50%);transition:width .3s ease,height .3s ease,background-color .3s ease,border-color .3s ease,scale .1s cubic-bezier(.25,.46,.45,.94)}
.blast-cursor.is-visible{opacity:1;visibility:visible}
.blast-cursor.is-link{width:30px;height:30px;background:transparent;border-color:var(--cursor-color)}
.blast-cursor.is-pressed{scale:.8}
.cursor-centre{position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;background:var(--cursor-color);border-radius:50%;opacity:0;transition:opacity .25s ease,transform .25s ease,background-color .3s ease}
.is-link .cursor-centre{opacity:1;transform:scale(1)}
@media(hover:hover) and (pointer:fine){html.has-blast-cursor,html.has-blast-cursor *{cursor:none!important}}
@media(prefers-reduced-motion:reduce){.blast-cursor,.cursor-centre{transition:none!important}}

/* Original journey artwork resolves stage by stage from left to right. */
.journey-art{position:relative}
.journey-stage{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--stage-end)) 0 var(--stage-start))}
.stage-reveal{transform:translateY(6px);transition:opacity 1.2s cubic-bezier(.445,.05,.55,.95),transform 1.2s cubic-bezier(.22,1,.36,1)}
:is(.is-active,.is-leaving) .stage-reveal.is-visible{transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.stage-reveal{transform:none!important;transition:none!important}}

/* Stage rings sweep into place while their labels decode in sequence. */
.journey-stage{inset:auto;top:0;left:var(--stage-x);width:186px;height:186px;clip-path:none}
.journey-ring{position:absolute;inset:0;border-radius:50%;overflow:hidden}
.journey-ring img{width:100%;height:100%}
.journey-stage-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;font-family:Architekt,sans-serif;font-weight:300;text-transform:uppercase;word-spacing:-.4em;white-space:nowrap}
.journey-number{position:absolute;top:44px;font-size:60px;line-height:64px;letter-spacing:.08em;color:var(--orange)}
.journey-label{position:absolute;top:114px;font-size:20px;line-height:24px;letter-spacing:.08em;word-spacing:-.4em}
.journey-arrows{position:absolute;inset:0}
:is(.is-active,.is-leaving) .stage-reveal.is-visible .journey-ring{animation:journey-ring-arrive 1.4s cubic-bezier(.22,1,.36,1) var(--reveal-delay) both}
@property --journey-sweep{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes journey-ring-arrive{from{--journey-sweep:0deg}to{--journey-sweep:360deg}}
.journey-ring{mask-image:conic-gradient(from 0deg,#000 0deg var(--journey-sweep),transparent var(--journey-sweep) 360deg);-webkit-mask-image:conic-gradient(from 0deg,#000 0deg var(--journey-sweep),transparent var(--journey-sweep) 360deg)}
.journey-arrow{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--arrow-end)) 0 var(--arrow-start));transition:opacity .65s ease}
@media(prefers-reduced-motion:reduce){.journey-ring{--journey-sweep:360deg}}
@media(max-width:760px){.journey-mobile>.journey-stage{position:relative;left:auto;top:auto}.journey-mobile .journey-ring img{position:static;width:100%;height:100%;left:auto}.journey-mobile .journey-number{top:24%;font-size:calc(var(--badge) * 60 / 186);line-height:1.07}.journey-mobile .journey-label{top:61.3%;font-size:calc(var(--badge) * 20 / 186);line-height:1.2}}
@media(prefers-reduced-motion:reduce){:is(.is-active,.is-leaving) .stage-reveal.is-visible .journey-ring{animation:none}}

/* Page three keeps its composition while scrolling up through the rocket. */
.form .canvas{--rocket-scene-height:max(1024px,calc(100svh / var(--scale)));min-height:var(--rocket-scene-height);overflow:clip;display:block}
.form .stage-content{position:sticky;top:0;height:calc(var(--rocket-scene-height) - 56px);min-height:968px}
.form .rocket-wrap{top:0;height:100%;overflow:visible}
.rocket-stack{position:absolute;inset:0;transform:translateY(var(--rocket-shift,0px));transition:transform 1.1s cubic-bezier(.22,1,.36,1)}
.rocket-piece{position:absolute;left:0;width:525px;transform:scale(.6342857143);transform-origin:top left;opacity:.22;transition:opacity .8s ease}
.rocket-piece.is-current{opacity:1}
.rocket-copy-panel{position:absolute;top:417px;left:730px;width:592px;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility 0s .35s}
.rocket-copy-panel.is-current{opacity:1;visibility:visible;transition:opacity .45s ease .25s,visibility 0s}
.form .stage-copy{margin:0;padding:0;width:auto}
.rocket-copy-panel:not(.is-current) .reveal{opacity:0;transition-delay:0s}
.rocket-copy-panel[data-rocket-copy="4"] h2{font-size:70px;line-height:80px;letter-spacing:5.6px}
@media(max-width:760px){.form .canvas{--rocket-scene-height:100svh;padding-bottom:0}.form .stage-content{height:100svh;min-height:0;padding:0;display:block;overflow:hidden}.form .stage-copy{order:initial}.rocket-copy-panel{top:135px;left:24px;width:calc(100% - 48px);max-height:calc(100svh - 370px);overflow-y:auto;padding-bottom:12px}.rocket-copy-panel h2,.rocket-copy-panel[data-rocket-copy="4"] h2{font-size:clamp(30px,6.5vw,54px);line-height:1.2;letter-spacing:.08em}.form .stage-body{font-size:16px;line-height:20px;padding-top:14px}.form .stage-body p+p{margin-top:12px}.form .stage-lead{font-size:20px;line-height:24px}.form .rocket-wrap{position:absolute;top:auto;bottom:64px;left:calc(50% - 83.25px);height:210px;width:166.5px;overflow:hidden;transform:none}.rocket-stack{top:-149.5px;transform:translateY(calc(var(--rocket-shift,0px) / 2))}.rocket-piece{transform:scale(.3171428571);top:calc(var(--piece-top) / 2)!important}.form .rocket-piece img{position:static;width:525px;height:auto;left:auto}.stage-one,.stage-angle{letter-spacing:0}}
@media(prefers-reduced-motion:reduce){.rocket-stack,.rocket-piece,.rocket-copy-panel,.rocket-copy-panel.is-current{transition:none!important}}

.form.rocket-reset .rocket-stack,.form.rocket-reset .rocket-piece{transition:none!important}

/* Headlines decode without an additional fade; body copy retains its reveal. */
.rocket-copy-panel,.rocket-copy-panel.is-current{opacity:1;transition:visibility 0s .35s}
.rocket-copy-panel.is-current{transition:visibility 0s}
.rocket-copy-panel:not(.is-current) h2{visibility:hidden}
.rocket-copy-panel .stage-body{opacity:0;transition:opacity .35s ease}
.rocket-copy-panel.is-current .stage-body{opacity:1;transition:opacity .45s ease .25s}
@media(prefers-reduced-motion:reduce){.rocket-copy-panel .stage-body,.rocket-copy-panel.is-current .stage-body{transition:none}}

.journey-stage-copy.code-waiting{opacity:0}
@media(prefers-reduced-motion:reduce){.journey-stage-copy.code-waiting{opacity:1}}

/* Uniform rocket titles at 80% of the previous Accelerate title size. */
.form .rocket-copy-panel h2,.form .rocket-copy-panel[data-rocket-copy="4"] h2{font-size:56px;line-height:64px;letter-spacing:4.48px}
.form .rocket-copy-panel .stage-one,.form .rocket-copy-panel .stage-angle{letter-spacing:-25.6px}
@media(max-width:760px){.form .rocket-copy-panel h2,.form .rocket-copy-panel[data-rocket-copy="4"] h2{font-size:clamp(24px,5.2vw,43.2px);line-height:1.2;letter-spacing:.08em}.form .rocket-copy-panel .stage-one,.form .rocket-copy-panel .stage-angle{letter-spacing:0}}

/* Keep the landscape and distortion pinned to the viewport's bottom edge. */
.hero .canvas{background-image:none;overflow:clip}
.hero-backdrop{position:sticky;top:0;flex-shrink:0;width:100%;height:calc(100svh / var(--scale));margin-bottom:calc(-100svh / var(--scale));background:var(--slate) url('assets/landscape-web.jpg') left bottom/1544px 1024px no-repeat;z-index:0}
@media(min-width:761px){.hero-backdrop{background-size:calc(max(1544px,100svh / var(--scale) * 1.5078125)) calc(max(1024px,100svh / var(--scale)))}}
@media(max-width:760px){.hero-backdrop{background-size:auto 100%;background-position:center bottom}}

/* Presentation screens stay fixed; only the longer final pages scroll. */
.hero,.journey,.form{overflow:clip}

/* Weighted rocket travel and progressive section highlighting. */
.rocket-stack{transition:transform 1.2s cubic-bezier(.45,0,.16,1);will-change:transform}
.rocket-piece{transition:opacity 1.05s cubic-bezier(.4,0,.2,1)}
.form .stage-connector{transform-origin:left center;transition:none;--reveal-delay:0ms!important}
.form.rocket-sequencing .stage-connector{animation:rocket-connector .65s cubic-bezier(.4,0,.2,1) .08s both}
@keyframes rocket-connector{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}
/* Clear the previous connector left to right, then draw the new one outward. */
.form.rocket-stage-change .stage-connector{animation:rocket-connector-change 1.2s linear both}
@keyframes rocket-connector-change{
  0%{opacity:1;transform:none;clip-path:inset(0 0 0 0);animation-timing-function:cubic-bezier(.45,0,.55,1)}
  45%{opacity:1;transform:none;clip-path:inset(0 0 0 100%)}
  46%{opacity:1;transform:none;clip-path:inset(0 100% 0 0);animation-timing-function:cubic-bezier(.22,1,.36,1)}
  100%{opacity:1;transform:none;clip-path:inset(0 0 0 0)}
}
@media(prefers-reduced-motion:reduce){.form.rocket-sequencing .stage-connector,.form.rocket-stage-change .stage-connector{animation:none;transform:none;clip-path:none;opacity:1}}

.rocket-piece>img{display:block}

/* Give the rocket headline the same breathing room as the paragraphs. */
.form .rocket-copy-panel h2{position:relative;top:-8px}
@media(max-width:760px){.form .rocket-copy-panel h2{top:-4px}}

/* Focus the active artwork and let light spread over the translucent panel. */
.rocket-drawing{display:block;width:525px;height:auto;overflow:visible}
.rocket-piece{filter:none;transition:opacity 1.05s cubic-bezier(.4,0,.2,1),filter .9s ease}
.rocket-piece.is-current{filter:none}
.rocket-glass{transform-box:fill-box;transform-origin:right center}
.form{--rocket-motion-ratio:1}
.form.rocket-stage-change .rocket-stack{transition:none;animation:rocket-weighted-settle 1.25s both}
@keyframes rocket-weighted-settle{
  0%{transform:translateY(calc(var(--rocket-previous-shift) * var(--rocket-motion-ratio)));animation-timing-function:cubic-bezier(.45,0,.16,1)}
  84%{transform:translateY(calc((var(--rocket-shift) + var(--rocket-settle)) * var(--rocket-motion-ratio)));animation-timing-function:ease-out}
  100%{transform:translateY(calc(var(--rocket-shift) * var(--rocket-motion-ratio)))}
}
@media(max-width:760px){.form{--rocket-motion-ratio:.5}.form .rocket-piece .rocket-drawing{width:525px;height:auto}}
@media(prefers-reduced-motion:reduce){.rocket-piece{filter:none!important;transition:none!important}.rocket-drawing path,.form.rocket-stage-change .rocket-stack{animation:none!important}.rocket-glass{transform:none!important}}


@media(prefers-reduced-motion:reduce){.masthead>a:first-child:after{transition:none}}

/* Four independent arms extend from the centre before their orange tint settles. */
.canvas,.fixed-chrome{--plus-color:var(--slate)}
.hero .canvas,.journey .canvas{--plus-color:white}
.form .canvas{--plus-color:var(--grey)}
body[data-active="0"] .fixed-chrome,body[data-active="1"] .fixed-chrome{--plus-color:white}
body[data-active="2"] .fixed-chrome{--plus-color:var(--grey)}
.intro-cross{width:20px;height:20px;overflow:visible;pointer-events:none}
.intro-cross path{stroke:var(--plus-color);stroke-width:1;stroke-dasharray:5;stroke-dashoffset:0}
.page.plus-enter .intro-cross path{animation:plus-arm-draw .65s cubic-bezier(.4,0,.2,1) both,plus-arm-colour 1s linear both}
.page.plus-enter .copy-column .intro-cross path{animation-delay:.08s}
.rule:after,.fixed-chrome .page-nav:before{background-image:none;background-color:var(--plus-color);mask:var(--cross) center/contain no-repeat;-webkit-mask:var(--cross) center/contain no-repeat;pointer-events:none}
.page.plus-enter .rule:after,.fixed-chrome.plus-enter .page-nav.is-available:before{animation:plus-centre-draw 1s linear both}
@keyframes plus-arm-draw{from{stroke-dashoffset:5}to{stroke-dashoffset:0}}
@keyframes plus-arm-colour{0%,45%{stroke:var(--orange)}100%{stroke:var(--plus-color)}}
@keyframes plus-centre-draw{0%{clip-path:inset(50%);background-color:var(--orange)}65%{clip-path:inset(25%);background-color:var(--orange)}100%{clip-path:inset(0);background-color:var(--plus-color)}}
@media(prefers-reduced-motion:reduce){.page.plus-enter .intro-cross path,.page.plus-enter .rule:after,.fixed-chrome.plus-enter .page-nav.is-available:before{animation:none}}

/* Content scrolls only when it exceeds the available window height. */
.hero,.journey,.form{overflow-y:auto;overflow-x:hidden}
.hero .canvas,.journey .canvas{min-height:calc(100svh / var(--scale))}
.hero .page-content,.journey .page-content{min-height:0;padding-bottom:80px}
.form .stage-content{position:relative}
@media(max-width:760px){
  .hero .canvas,.journey .canvas{min-height:100svh}
  .form .canvas{--rocket-scene-height:max(700px,100svh)}
  .form .stage-content{height:var(--rocket-scene-height)}
  .form .rocket-copy-panel{max-height:calc(var(--rocket-scene-height) - 370px)}
}

/* The rocket stage stays centred and fits the viewport instead of scrolling. */
.form{overflow:clip}
@media(min-width:761px){
  .form .canvas{zoom:var(--rocket-fit);width:1440px;position:absolute;left:calc((100vw / var(--rocket-fit) - 1440px) / 2);padding-bottom:0;height:calc(100svh / var(--rocket-fit));min-height:0;--rocket-scene-height:calc(100svh / var(--rocket-fit))}
  .form .stage-content{height:100%;min-height:0;position:relative}
  .form .rocket-copy-panel{top:calc(50% - 80px);transform:none}
  .form .rocket-wrap{top:calc(50% - var(--rocket-anchor,587.65px));transition:top 1.25s cubic-bezier(.45,0,.16,1)}
  .form.rocket-reset .rocket-wrap{transition:none}
}
@media(max-width:760px){
  .form .canvas{--rocket-scene-height:100svh;height:100svh;min-height:0}
  .form .stage-content{height:100svh;min-height:0}
  .form .rocket-copy-panel{top:95px;max-height:max(80px,calc(100svh - 350px))}
}
@media(prefers-reduced-motion:reduce){.form .rocket-wrap{transition:none}}

/* Mobile references: a vertical journey and horizontal rocket above its copy. */
.mobile-rocket-rule{display:none}
@media(max-width:760px){
  .journey-mobile{--badge:min(220px,calc(100vw - 96px));display:flex;flex-direction:column;align-items:center;gap:68px;margin:44px 24px 0}
  .journey-mobile>.journey-stage{width:var(--badge);height:var(--badge);overflow:visible;flex-shrink:0}
  .journey-mobile .journey-number{color:var(--orange);letter-spacing:0}
  .journey-mobile .journey-label{letter-spacing:0}
  .journey-mobile>.journey-stage:not(:last-child):after{content:'';position:absolute;top:calc(100% + 12px);left:calc(50% - 20px);width:40px;height:44px;background:url('assets/arrow-white.svg?v=cap-arrow-match') center/32px 32px no-repeat;transform:rotate(90deg);opacity:0;transition:opacity .65s ease var(--reveal-delay)}
  .journey:is(.is-active,.is-leaving) .journey-mobile>.journey-stage.is-visible:after{opacity:1}
  .form{overflow-y:auto;overflow-x:hidden}
  .form .canvas{height:auto;min-height:100svh;padding-bottom:0;overflow:hidden}
  .form .stage-content{height:auto;min-height:100svh;display:flex;flex-direction:column;padding:110px 24px 100px;gap:32px;overflow:visible}
  .form .mobile-rocket-rule{display:block;margin:0;width:100%;flex-shrink:0}
  .form .rocket-wrap{--mobile-rocket-scale:calc((100vw - 48px) / 948px);position:relative;inset:auto;left:auto;top:auto;bottom:auto;width:100%;height:calc((100vw - 48px) * 525 / 948);align-self:center;overflow:visible;flex-shrink:0;transition:none;transform:none}
  .form .rocket-stack{position:absolute;inset:0;top:0;transform:none!important;animation:none!important}
  .form .rocket-piece{left:50%;top:50%!important;width:525px;transform:translate(-50%,-50%) rotate(90deg) scale(var(--mobile-rocket-scale));transform-origin:center;opacity:0;visibility:hidden}
  .form .rocket-piece.is-current{opacity:1;visibility:visible}
  .form .stage-copy{order:initial;width:100%}
  .form .rocket-copy-panel{display:none;position:relative;inset:auto;left:auto;top:auto;width:100%;max-height:none;overflow:visible;padding-bottom:0;transform:none}
  .form .rocket-copy-panel.is-current{display:block}
  .form .rocket-copy-panel h2{font-size:clamp(24px,8vw,48px);line-height:1.2;white-space:normal}
  .form .stage-connector{display:none}
}
@media(prefers-reduced-motion:reduce){.journey-mobile>.journey-stage:after{transition:none}}

/* Blast's compact mobile header: boxed B and smaller glass website control. */
@media(max-width:760px){
  .fixed-chrome .masthead{left:20px;right:20px;top:20px;height:48px}
  .fixed-chrome .masthead>a:first-child{width:48px;height:48px;display:block;border-radius:4px;background:var(--glass-background);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter);box-shadow:var(--glass-shadow)}
  .fixed-chrome .masthead>a:first-child img{display:none}
  .fixed-chrome .masthead>a:first-child:before,.fixed-chrome .masthead>a:first-child:after{inset:auto;left:50%;top:50%;width:17.38px;height:21px;transform:translate(-50%,-50%);mask:url('assets/logo-b.svg') center/contain no-repeat;-webkit-mask:url('assets/logo-b.svg') center/contain no-repeat}
  body[data-active] .fixed-chrome .website{width:auto;min-width:0;height:48px;padding:17px 10px 15px;font-size:12px;line-height:16px;letter-spacing:.08em;word-spacing:-.4em}
  .intro-cross{display:none}
}

/* Keep the complete connected rocket visible through each mobile stage change. */
@media(max-width:760px){
  .form .rocket-wrap{overflow:visible}
  .form .rocket-stack{inset:auto;left:50%;top:50%;width:525px;height:0;transform-origin:0 0;transform:rotate(90deg) scale(var(--mobile-stack-scale)) translate(-166.5px,calc(var(--rocket-shift,0px) - var(--rocket-anchor,587.65px)))!important;transition:transform 1.25s cubic-bezier(.45,0,.16,1)}
  .form.rocket-stage-change .rocket-stack{animation:none!important;transition:transform 1.25s cubic-bezier(.45,0,.16,1)}
  .form .rocket-piece{left:0;top:var(--piece-top)!important;transform:scale(.6342857143);transform-origin:top left;opacity:.22;visibility:visible}
  .form .rocket-piece.is-current{opacity:1}
  .form.rocket-reset .rocket-stack{transition:none}
  .form .rocket-copy-panel h2,.form .rocket-copy-panel[data-rocket-copy="4"] h2{font-size:38px;line-height:1.2}
  .form .stage-body p+p{margin-top:12px}
}
@media(prefers-reduced-motion:reduce){.form .rocket-stack{transition:none!important}}

@media(max-width:760px){h1,h2.display,.form .rocket-copy-panel h2,.form .rocket-copy-panel[data-rocket-copy="4"] h2{font-size:50px;line-height:50px}}

/* Selected mobile Figma frames: 402px canvas, 16px gutters and compact type. */
@media(max-width:760px){
  .canvas{padding-bottom:40px}
  .fixed-chrome .masthead{top:16px;left:16px;right:16px}
  .fixed-chrome .masthead>a:first-child{background:rgba(255,255,255,.8);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px)}
  body[data-active] .fixed-chrome .masthead>a:first-child:before{background:var(--slate)}
  .intro{padding:96px 16px 0;gap:32px;grid-template-columns:minmax(0,1fr)}
  h1,h2.display{font-size:50px;line-height:50px;letter-spacing:4px}
  .kern-end{letter-spacing:-3.2px}
  .copy{font-size:18px;line-height:22px}
  .copy p+p{margin-top:12px}
  .booking,.hero .booking{width:307px;max-width:100%;height:31px;margin-top:30px;padding:0 10px;font-size:12px;line-height:16px;letter-spacing:.96px;white-space:nowrap;background:var(--orange);border-color:var(--orange);color:white}
  .booking img{filter:brightness(0) invert(1)}
  .hero .copy{color:#a0a8a8}
  .hero .bright{color:white}
  .hero .page-content{padding-bottom:64px}
  .fixed-chrome .page-nav{height:40px;margin:0 16px}
  .fixed-chrome .page-nav:before,.rule:after{width:16px;height:16px;left:calc(50% - 8px);top:-8px}
  .fixed-chrome .dots{top:15px;gap:16px}
  .fixed-chrome .dot{width:10px;height:10px}
  .fixed-chrome .nav-arrow{width:32px;height:40px}
  .fixed-chrome .nav-arrow img{width:14px;height:14px}
  .rule{margin:0 16px}
  .journey .intro{padding-bottom:0}
  .journey .copy p:last-child{color:#b2b9be}
  .journey .journey-rule{margin-top:64px}
  .journey-mobile{--badge:min(178px,calc(100vw - 64px));margin:56px 16px 0;gap:56px}
  .journey-mobile>.journey-stage:not(:last-child):after{top:calc(100% + 8px);width:34px;height:40px;left:calc(50% - 17px);background-size:34px 34px}
  .journey-mobile .journey-number{letter-spacing:.08em}
  .journey-mobile .journey-label{word-spacing:-.4em;letter-spacing:.08em}
  .form .stage-content{padding:96px 16px 84px;gap:17.6px}
  .form .rocket-wrap{height:calc((100vw - 32px) * 525 / 948 * .768)}
  .form .stage-copy{margin-top:8px}
  .form .rocket-copy-panel h2,.form .rocket-copy-panel[data-rocket-copy="4"] h2{top:0;font-size:38px;line-height:38px;letter-spacing:3.04px}
  .form .rocket-copy-panel .stage-one,.form .rocket-copy-panel .stage-angle{letter-spacing:-15.2px}
  .form .stage-body{padding-top:11px;font-size:16px;line-height:20px}
  .form .stage-lead{font-size:18px;line-height:22px}
  .flight .flight-rule{margin-top:60px}
  .instruments{margin:42px 16px 39px;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .instruments figure{gap:16px}
  .instrument-svg{width:155px;height:155px;max-width:100%}
  .instruments figcaption{font-size:14px;line-height:18px;letter-spacing:1.12px;white-space:nowrap}
  .flight-outcome{margin:48px 16px 0}
  .flight-outcome ul{margin:12px 0}
  .flight-outcome .booking{margin-top:30px}
  .flight .page-content{padding-bottom:100px}
  .projects .projects-rule{margin-top:32px}
  .project-grid{margin:32px 16px 0;grid-template-columns:1fr;gap:25px}
  .project-grid h3{font-size:16px;line-height:20px;margin-top:11px;margin-bottom:12px}
  .project-grid p{font-size:16px;line-height:20px}
  .project-link{font-size:12px;line-height:16px;letter-spacing:.96px;height:13px;margin-top:15px}
  .project-grid article:nth-child(2) .project-link{margin-top:15px}
  .projects-bottom-rule{margin-top:32px}
  .projects-cta{margin:34px 16px 0}
  .projects-cta .booking{margin-top:16px}
  .projects .page-content{padding-bottom:67px}
}
@media(max-width:360px){
  h1,h2.display{font-size:42px;line-height:44px}
  .instruments figcaption{font-size:12px;letter-spacing:.7px}
  .booking,.hero .booking{font-size:11px;letter-spacing:.65px}
  .form .rocket-copy-panel h2,.form .rocket-copy-panel[data-rocket-copy="4"] h2{font-size:32px;line-height:34px}
}

@media(max-width:760px){.hero .booking{margin-top:24px}}


/* Mobile refinements: page-aware glass, tighter copy and content-sized controls. */
html,body{overscroll-behavior:none}
@media(max-width:760px){
  .intro{gap:22px}
  .form .stage-body{padding-top:10px}
  .fixed-chrome .masthead>a:first-child{background:var(--glass-background);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter)}
  body[data-active] .fixed-chrome .masthead>a:first-child:before{background:white}
  body[data-active="3"] .fixed-chrome .masthead>a:first-child:before,body[data-active="4"] .fixed-chrome .masthead>a:first-child:before{background:var(--slate)}
  .booking,.hero .booking{width:max-content;max-width:100%;padding-inline:10px}
  .project-link{display:inline-flex;flex-wrap:nowrap;height:16px;align-items:center;gap:5px}
  .project-link img{width:8px;height:8px;flex:0 0 8px;object-fit:contain;align-self:center}
}

/* Match Blast’s orange text-selection highlight across all pages. */
::selection{background:rgba(255,94,0,.749);color:#fff;text-shadow:none}
::-moz-selection{background:rgba(255,94,0,.749);color:#fff;text-shadow:none}

/* Balance the stage diagram between its upper rule and bottom navigation. */
@media(min-width:761px){
  .journey .page-content{display:flex;flex-direction:column;min-height:0;padding-bottom:0}
  .journey .intro,.journey .journey-rule,.journey .journey-art{flex-shrink:0}
  .journey .journey-art{margin-top:var(--journey-stage-gap,28px);margin-bottom:var(--journey-stage-gap,28px)}
}

/* Keep the next section close to the end of the journey copy. */
@media(min-width:761px){.journey .intro{height:auto;padding-bottom:56px}}
@media(max-width:760px){.journey .journey-rule{margin-top:60px}}

@media(min-width:761px){.journey .canvas{min-height:calc(100svh / var(--scale));justify-content:flex-start}.journey .page-content{flex:0 0 auto}}

/* Keep the Figma desktop sizes; adapt the layout rather than zooming it. */
@media(min-width:761px){
  .canvas{width:100%;zoom:1}
  .page:not(.form) .page-content{width:100%;max-width:none;margin-inline:0}
  .journey .journey-art{margin-left:auto;margin-right:auto}
  .project-grid article{min-width:0}
  .project-image,.project-image img{width:100%;height:auto;aspect-ratio:1}
  .armed-image img{width:183.6%;height:100%;aspect-ratio:auto;left:-17.62%}
}
@media(min-width:761px) and (max-width:1279px){
  .instruments{grid-template-columns:repeat(3,174.93px);justify-content:space-evenly;row-gap:40px;margin-inline:20px}
}
@media(min-width:761px) and (max-width:1203px){
  .journey-art{display:none}
  .journey-mobile{display:grid;grid-template-columns:repeat(3,186px);justify-content:center;gap:32px;margin:var(--journey-stage-gap,28px) 20px}
  .journey-mobile>.journey-stage{position:relative;inset:auto;width:186px;height:186px;overflow:visible}
  .journey-mobile .journey-ring img{position:static;width:186px;height:186px}
}
@media(min-width:761px) and (max-width:1100px){
  .page:not(.form) .intro{grid-template-columns:1fr;height:auto;gap:40px;padding-top:120px}
  .flight .intro,.projects .intro{padding-bottom:56px}
  .title-column{padding-left:20px}
  .copy-column{margin-left:20px;max-width:700px}
  .desktop-break{display:none}
  .flight-outcome,.projects-cta{margin-left:40px;margin-right:40px;max-width:700px}
  .project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:761px) and (max-width:1203px){
  .form .canvas{width:calc(100vw / var(--rocket-fit));left:0}
  .form .rocket-copy-panel{left:52%;width:calc(48% - 20px)}
  .form .rocket-wrap{left:20px}
  .form .stage-copy h2{white-space:normal}
  .form .stage-connector{left:375px;width:max(0px,calc(52% - 395px))}
}
@media(min-width:761px){.hero-backdrop{background-size:cover;background-position:center bottom}}

/* Spread the layout across wide frames without enlarging its type or artwork. */
@media(min-width:1280px){
  .instruments{grid-template-columns:repeat(6,minmax(0,1fr));justify-items:center}
}
@media(min-width:1101px){
  .flight-outcome{margin-left:calc(50% + 12px)}
  .projects-cta{margin-left:calc(50% + 10px)}
}
@media(min-width:1204px){
  .form .canvas{width:1440px;left:calc((100vw / var(--rocket-fit) - 1440px) / 2)}
  .form .rocket-copy-panel{left:730px;width:592px}
  .form .rocket-wrap{left:78px}
  .form .stage-connector{left:425.333px;width:285.167px}
  .journey-art{width:1164px;min-width:1164px;display:flex;justify-content:space-between}
  .journey-art>.journey-stage{position:relative;inset:auto;flex:0 0 186px}
  .journey-art .journey-arrow{inset:auto;top:0;width:50px;height:186px;clip-path:none;overflow:hidden}
  .journey-art .journey-arrow:nth-child(1){left:calc(12.5% + 44.75px)}
  .journey-art .journey-arrow:nth-child(2){left:calc(37.5% - 1.75px)}
  .journey-art .journey-arrow:nth-child(3){left:calc(62.5% - 48.25px)}
  .journey-art .journey-arrow:nth-child(4){left:calc(87.5% - 94.75px)}
  .journey-art .journey-arrow img{width:1164px;height:186px;max-width:none;position:absolute;left:calc(-1 * var(--arrow-start))}
}

/* Fade the full page background, rather than a centred rectangular canvas. */
.form{background:var(--slate)}
.form .canvas{background:transparent}

/* Offer a quiet exit throughout the rocket journey. */
.fixed-chrome .page-nav.is-available.is-rocket-preview{opacity:.65}
.fixed-chrome .page-nav.is-available.is-rocket-preview:hover,.fixed-chrome .page-nav.is-available.is-rocket-preview:focus-within{opacity:1}

/* Paired glass links in the persistent header. */
.header-links{display:flex;align-items:center;gap:20px;pointer-events:auto}
.fixed-chrome .header-links .website{width:auto;min-width:0;padding-inline:18px;zoom:var(--scale)}
@media(max-width:760px){
  .fixed-chrome .header-links{gap:16px}
  .fixed-chrome .header-links .website{padding-inline:10px}
}
.booking img,.project-link img{width:.75em;height:.75em;width:1cap;height:1cap;flex:0 0 auto;object-fit:contain;align-self:center}

/* The rocket scroll cue shares the carousel's centre position. */
.rocket-scroll-cue{display:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-box-trim:trim-both;text-box-edge:cap alphabetic;font-family:Architekt,sans-serif;font-size:14px;font-weight:400;line-height:18px;letter-spacing:.08em;word-spacing:-.4em;white-space:nowrap;color:var(--grey);pointer-events:none;transition:opacity .3s ease}
.rocket-scroll-cue>span{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:block;text-box-trim:trim-both;text-box-edge:cap alphabetic;color:#e3e8e8;opacity:.85;mask-image:linear-gradient(90deg,transparent 0%,black 50%,transparent 100%);mask-size:40% 100%;mask-repeat:no-repeat;mask-position:-70% 0;animation:rocket-scroll-sheen 8s ease-in-out infinite}
@keyframes rocket-scroll-sheen{0%,12%{mask-position:-70% 0}34%,100%{mask-position:170% 0}}
body[data-active="2"] .rocket-scroll-cue{display:block}
body[data-active="2"] .page-nav .dots{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility 0s .3s}
body[data-active="2"] .page-nav:hover .dots,body[data-active="2"] .page-nav:focus-within .dots,body[data-active="2"] .page-nav.is-rocket-final .dots{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s ease,visibility 0s}
body[data-active="2"] .page-nav:hover .rocket-scroll-cue,body[data-active="2"] .page-nav:focus-within .rocket-scroll-cue,body[data-active="2"] .page-nav.is-rocket-final .rocket-scroll-cue{opacity:0}
@media(max-width:760px){
  .rocket-scroll-cue{font-size:12px;line-height:16px;top:calc(50% + 1px)}
}
@media(prefers-reduced-motion:reduce){.rocket-scroll-cue>span{animation:none;mask:none;opacity:.2}}

body[data-active="2"] .page-nav.is-available{pointer-events:auto}
body[data-active="2"] .rocket-scroll-cue{pointer-events:auto}

/* Keep marker positions fixed while a hovered square grows gently. */
.fixed-chrome .dot,.fixed-chrome .is-available .dot{transform:scale(1);transform-origin:center;transition:background-color .25s ease,transform .3s cubic-bezier(.22,1,.36,1)}
@media(hover:hover) and (pointer:fine){.fixed-chrome .dot:hover{transform:scale(1.2)}}


/* Control arrows follow the NB Architekt capitals and stem weight. */
.fixed-chrome .nav-arrow{font-family:Architekt,sans-serif;font-size:14px;font-weight:400;line-height:18px}
.booking img,.project-link img{width:.7em;height:.7em;width:1cap;height:1cap;flex:0 0 auto;object-fit:contain;align-self:center}
@media(max-width:760px){.fixed-chrome .nav-arrow{font-size:12px;line-height:16px}}

/* NB Architekt Regular: 80-unit stems / 700-unit capitals. */
.booking>span,.project-link .project-label{display:block;text-box-trim:trim-both;text-box-edge:cap alphabetic}

/* Slide the scroll cue upward as navigation arrives from below. */
body[data-active="2"] .page-nav{--cue-switch:0}
body[data-active="2"] .page-nav:is(:hover,:focus-within,.is-rocket-final){--cue-switch:1}
body[data-active="2"] .rocket-scroll-cue{translate:0 0;transition:opacity .25s ease,translate .4s cubic-bezier(.22,1,.36,1)}
body[data-active="2"] .page-nav:is(:hover,:focus-within,.is-rocket-final) .rocket-scroll-cue{translate:0 -10px}
body[data-active="2"] .page-nav .dots{transition:opacity .22s ease,visibility 0s .5s}
body[data-active="2"] .page-nav:is(:hover,:focus-within,.is-rocket-final) .dots{transition:opacity .22s ease .1s,visibility 0s}
body[data-active="2"] .fixed-chrome .dot{opacity:var(--cue-switch);translate:0 calc((1 - var(--cue-switch))*10px);scale:1;transition:opacity .28s ease,translate .4s cubic-bezier(.22,1,.36,1),scale .4s cubic-bezier(.22,1,.36,1),background-color .25s ease,transform .3s cubic-bezier(.22,1,.36,1);transition-delay:0s}
body[data-active="2"] .page-nav:is(:hover,:focus-within,.is-rocket-final) .dot{transition-delay:calc(.08s + var(--marker-order)*.025s),calc(.08s + var(--marker-order)*.025s),0s,0s,0s}
@media(prefers-reduced-motion:reduce){body[data-active="2"] .rocket-scroll-cue,body[data-active="2"] .page-nav .dots,body[data-active="2"] .fixed-chrome .dot{transition:none!important}}

/* Match Blast's expanding logo wrapper; the visible B remains stationary. */
.scroll-logo-flow,.scroll-logo-b{display:none}
@media(min-width:761px){
  body.mobile-flow .fixed-chrome .masthead{left:20px}
  body.mobile-flow .masthead>a:first-child{width:131px;height:48px;color:white;transition:color .3s ease}
  body.mobile-flow .masthead>a:first-child:is(:hover,:focus-visible){color:var(--orange)}
  body.mobile-flow .masthead>a:first-child:before,body.mobile-flow .masthead>a:first-child:after{display:none}
  body.mobile-flow .scroll-logo-flow{display:flex;position:absolute;left:0;top:50%;align-items:flex-end;overflow:hidden;width:max-content;transform:translate(13px,-50%);transition:transform .5s ease}
  body.mobile-flow.is-logo-compact .scroll-logo-flow{transform:translate(0,-50%);transition-delay:.6s}
  .scroll-logo-wrapper{display:flex;align-items:center;padding:0;background:transparent;border-radius:4px;transition:all .5s ease}
  .is-logo-compact .scroll-logo-wrapper{padding:9px 13px 10px;background:var(--glass-background);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition-delay:.6s}
  .scroll-logo-flow svg{flex-shrink:0;margin-left:3px;transform:translateY(0);transition:transform .6s cubic-bezier(.25,.46,.45,.94)}
  .scroll-logo-flow svg path{fill:currentColor}
  .scroll-logo-wrapper svg{margin-left:0;opacity:0}
  .scroll-logo-flow>svg:nth-child(2){transition-delay:.1s}
  .scroll-logo-flow>svg:nth-child(3){transition-delay:.2s}
  .scroll-logo-flow>svg:nth-child(4){transition-delay:.3s}
  .scroll-logo-flow>svg:nth-child(5){transition-delay:.4s}
  .is-logo-compact .scroll-logo-flow>svg{transform:translateY(-48px)}
  .is-logo-compact .scroll-logo-flow>svg:nth-child(2){transition-delay:.4s}
  .is-logo-compact .scroll-logo-flow>svg:nth-child(3){transition-delay:.3s}
  .is-logo-compact .scroll-logo-flow>svg:nth-child(4){transition-delay:.2s}
  .is-logo-compact .scroll-logo-flow>svg:nth-child(5){transition-delay:.1s}
  body.mobile-flow .scroll-logo-b{display:block;position:absolute;left:13px;top:10px;width:24px;height:29px;background:currentColor;mask:url('assets/logo-b.svg') center/contain no-repeat;-webkit-mask:url('assets/logo-b.svg') center/contain no-repeat;pointer-events:none}
}
@media(prefers-reduced-motion:reduce){.scroll-logo-flow,.scroll-logo-wrapper,.scroll-logo-flow svg{transition:none!important}}

/* Avoid rasterising the large SVG displacement layer on mobile WebKit. */
@media(max-width:760px){.hero .heat-haze{display:none;filter:none}}
@supports(-webkit-touch-callout:none){.hero .heat-haze{display:none;filter:none}}

@media(max-width:760px){
  .hero .hero-flight-check-copy{display:none}
  .hero .copy{color:white}
}

/* Mobile navigation artwork at 150%, centered in its existing row. */
@media(max-width:760px){
  .fixed-chrome .dot{width:15px;height:15px}
  .fixed-chrome .nav-arrow img{width:21px;height:21px}
  .fixed-chrome .dots{top:12.5px}
}

/* Concise rocket descriptions for mobile. */
.stage-body-mobile{display:none}
@media(max-width:760px){
  .form .stage-body-desktop{display:none}
  .form .stage-body-mobile{display:block}
}

/* One coordinated mobile cue swap; only the individual squares fade. */
@media(max-width:760px){
  body[data-active="2"] .fixed-chrome .page-nav .rocket-scroll-cue{will-change:opacity,translate;transition:opacity .4s ease,translate .55s cubic-bezier(.4,0,.2,1)}
  body[data-active="2"] .fixed-chrome .page-nav:is(:hover,:focus-within,.is-rocket-final) .rocket-scroll-cue{translate:0 -8px}
  body[data-active="2"] .fixed-chrome .page-nav .dots{opacity:1;transition:visibility 0s .6s}
  body[data-active="2"] .fixed-chrome .page-nav:is(:hover,:focus-within,.is-rocket-final) .dots{opacity:1;transition:visibility 0s}
  body[data-active="2"] .fixed-chrome .page-nav .dot{translate:0 calc((1 - var(--cue-switch))*8px);will-change:opacity,translate;transition:opacity .4s ease,translate .55s cubic-bezier(.4,0,.2,1),background-color .25s ease,transform .3s ease;transition-delay:0s}
  body[data-active="2"] .fixed-chrome .page-nav:is(:hover,:focus-within,.is-rocket-final) .dot{transition-delay:calc(.04s + var(--marker-order)*.012s),calc(.04s + var(--marker-order)*.012s),0s,0s}
}
@media(max-width:760px) and (prefers-reduced-motion:reduce){
  body[data-active="2"] .fixed-chrome .page-nav .rocket-scroll-cue,body[data-active="2"] .fixed-chrome .page-nav .dots,body[data-active="2"] .fixed-chrome .page-nav .dot{transition:none!important;will-change:auto}
}

/* Keep neighboring carousel hit areas separate during hover growth. */
.fixed-chrome .dot:before{inset:-6px}

/* Begin the persistent navigation exit with the outgoing page fade. */
.fixed-chrome .page-nav.is-page-changing{opacity:0!important;pointer-events:none!important;transition:opacity .55s ease!important}

/* The rocket cue rises into the carousel slot on page entry. */
body[data-active="2"] .page-nav.is-cue-entering:not(:hover):not(:focus-within) .rocket-scroll-cue{animation:rocket-cue-enter .55s cubic-bezier(.4,0,.2,1) .12s backwards}
@keyframes rocket-cue-enter{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){body[data-active="2"] .page-nav.is-cue-entering .rocket-scroll-cue{animation:none!important}}

/* Reverse the cue swap when returning from the rocket to the journey. */
body[data-active="1"] .page-nav.is-cue-returning .rocket-scroll-cue{display:block;pointer-events:none;animation:rocket-cue-exit .4s cubic-bezier(.4,0,.2,1) forwards}
body[data-active="1"] .page-nav.is-cue-returning .dots{animation:rocket-carousel-return .55s cubic-bezier(.4,0,.2,1) .12s backwards}
@keyframes rocket-cue-exit{from{opacity:1;translate:0 0}to{opacity:0;translate:0 8px}}
@keyframes rocket-carousel-return{from{opacity:0;translate:0 -8px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){body[data-active="1"] .page-nav.is-cue-returning .rocket-scroll-cue{display:none}body[data-active="1"] .page-nav.is-cue-returning .dots{animation:none!important}}

/* Fade each marker once, without a second fade on its parent. */
body[data-active="2"] .fixed-chrome .page-nav .dots{opacity:1;transition:visibility 0s .6s}
body[data-active="2"] .fixed-chrome .page-nav:is(:hover,:focus-within,.is-rocket-final) .dots{opacity:1;transition:visibility 0s}

/* Keep the glass surface stable; fade orange on its own paint layer. */
body[data-active] .fixed-chrome .dot,body[data-active] .fixed-chrome .dot[aria-current=page],body[data-active] .fixed-chrome .dot:hover{background:var(--glass-background);will-change:transform;backface-visibility:hidden}
.fixed-chrome .dot:after{content:'';position:absolute;inset:0;border-radius:inherit;background:var(--orange);opacity:0;pointer-events:none;transition:opacity .25s ease}
.fixed-chrome .dot[aria-current=page]:after{opacity:1}
@media(hover:hover) and (pointer:fine){.fixed-chrome .dot:hover:after{opacity:1}}
@media(prefers-reduced-motion:reduce){.fixed-chrome .dot:after{transition:none!important}}

/* Lightweight mobile mirage, restricted to the lower image behind the copy. */
.mobile-heat-haze{position:absolute;left:0;bottom:0;width:100%;height:70%;pointer-events:none;opacity:.75;mask-image:linear-gradient(to bottom,transparent,black 30%,black 85%,rgba(0,0,0,.6));-webkit-mask-image:linear-gradient(to bottom,transparent,black 30%,black 85%,rgba(0,0,0,.6))}
.mobile-heat-haze[hidden]{display:none}

/* Mobile typography and page-contained scrolling. */
@media(max-width:760px){
  .page{touch-action:pan-y}
  h1,h2.display{word-spacing:-.2em}
  .form .rocket-copy-panel h2{word-spacing:normal}
}


@media(prefers-reduced-motion:reduce){.fixed-chrome .page-nav.is-page-changing{transition:none!important}}

/* Keep mobile scrolled content on one stable compositing layer during fades. */
@media(max-width:760px){.page:is(.is-active,.is-leaving){isolation:isolate;transform:translateZ(0);backface-visibility:hidden;will-change:opacity}}

/* Mobile controls share the page viewport without fixed-position Safari tint extensions. */
@media(max-width:760px){
  .carousel,.fixed-chrome{position:absolute;inset:0;height:100svh}
  .skip,.blast-cursor{position:absolute}
}

/* Match the desktop closing CTA rhythm to the flight-check outcome section. */
@media(min-width:761px){
  .projects .page-content{min-height:0;padding-bottom:64px}
  .projects-cta{margin-top:64.5px}
  .projects-cta .booking{margin-top:21px}
}
@media(min-width:1101px){.projects-cta{margin-left:calc(50% + 12px);margin-right:18px}}

/* Render the mobile B directly, with Blast’s SVG proportions and inset. */
.mobile-logo-b{display:none}
@media(max-width:760px){
  .fixed-chrome .masthead>a:first-child:before,.fixed-chrome .masthead>a:first-child:after{content:none}
  .fixed-chrome .masthead>a:first-child .mobile-logo-b{display:block;position:absolute;left:16px;top:13px;width:auto;height:21px;pointer-events:none}
  body[data-active] .fixed-chrome .masthead>a:first-child{color:white;transition:color .25s ease}
  body:is([data-active="3"],[data-active="4"]) .fixed-chrome .masthead>a:first-child{color:var(--slate)}
  body[data-active] .fixed-chrome .masthead>a:first-child:is(:hover,:focus-visible){color:var(--orange)}
}

/* Supplied mobile closing-section reference, shared by pages 4 and 5. */
@media(max-width:760px){
  .flight-outcome,.projects-cta{margin-top:60px}
  .flight-outcome li{padding-left:15px}
  .flight-outcome .booking,.projects-cta .booking{margin-top:16px}
  .flight .page-content,.projects .page-content{padding-bottom:64px}
}

/* Consistent mobile text-section spacing around dividers. */
@media(max-width:760px){
  .journey .journey-rule,.flight .flight-rule,.projects .projects-rule,.projects-bottom-rule{margin-top:32px}
  .flight-outcome,.projects-cta{margin-top:32px}
  .instruments{margin-bottom:32px}
  .hero .page-content,.flight .page-content,.projects .page-content{padding-bottom:32px}
  .form .stage-copy{margin-top:calc(32px - 17.6px)}
}

/* Tighten the desktop opening gap and simplify the mobile journey page. */
@media(min-width:761px){
  .intro{padding-top:170px}
  .flight .intro{height:453px}
  .projects .intro{height:447px}
  .form .stage-content{transform:translateY(-30px)}
}
@media(min-width:761px) and (max-width:1100px){
  .page:not(.form) .intro{padding-top:90px;height:auto}
}
@media(max-width:760px){.journey .journey-mobile,.journey .journey-art{display:none}}

@media(max-width:760px){.journey .journey-rule{display:none}}

/* Scale the complete desktop stage graphic, preserving its centred layout. */
@media(min-width:761px){
  .journey .journey-art,.journey .journey-mobile{zoom:.8}
  .journey .journey-art{margin-top:calc(var(--journey-stage-gap,28px) / .8);margin-bottom:calc(var(--journey-stage-gap,28px) / .8)}
}

/* Eight circle-to-arrow gaps gain 2px each at the diagram’s 80% scale. */
@media(min-width:1204px){.journey .journey-art{width:1184px;min-width:1184px}}

/* Opening copy keeps a larger lead paragraph, followed by 18/22 body text. */
.intro .copy>p:not(:first-child){font-size:18px;line-height:22px}

/* Cap the opening text measure to the supplied desktop reference. */
@media(min-width:761px){.intro .copy-column{max-width:520px}}

/* Match each rocket stage’s desktop copy measure to the opening sections. */
@media(min-width:761px){.form .rocket-copy-panel .stage-body{max-width:520px}}

/* White outline, lettering and arrow on the hero booking button. */
.hero .booking{background:transparent;border-color:white;color:white}
.hero .booking img{filter:brightness(0) invert(1)}
.hero .booking:is(:hover,:focus-visible){background:var(--orange);border-color:var(--orange);color:white}
.hero .booking:is(:hover,:focus-visible) img{filter:brightness(0) invert(1)}

/* Match the flight-check outcome copy to the smaller body type. */
.flight-outcome .copy{font-size:18px;line-height:22px}

/* Keep the closing section’s desktop divider gaps equal after the smaller type. */
@media(min-width:761px){.flight .page-content{flex:0 0 auto;min-height:0;padding-bottom:64.5px}}

/* Desktop rocket navigation reveals only after stage 05 has settled. */
@media(min-width:761px){
  body[data-active="2"] .fixed-chrome .page-nav:not(.is-rocket-final){--cue-switch:0}
  body[data-active="2"] .fixed-chrome .page-nav:not(.is-rocket-final) .rocket-scroll-cue{opacity:1;translate:0 0}
  body[data-active="2"] .fixed-chrome .page-nav:not(.is-rocket-final) .dots{visibility:hidden;pointer-events:none}
  body[data-active="2"] .fixed-chrome .page-nav .nav-arrow{transition:opacity .4s ease,visibility 0s}
  body[data-active="2"] .fixed-chrome .page-nav:not(.is-rocket-final) .nav-arrow{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s ease,visibility 0s .4s}
}

/* Hide outward arrows at the first and last page, preserving nav alignment. */
body[data-active="0"] .fixed-chrome .nav-arrow.previous,
body[data-active="4"] .fixed-chrome .nav-arrow.next{visibility:hidden;pointer-events:none}

/* Match the project closing prompt to the smaller body copy. */
.projects-cta>p.copy{font-size:18px;line-height:22px}

/* Allow for the italic question mark’s overhang before “to”. */
.rocket-copy-panel[data-rocket-copy="1"] .stage-body-desktop em:first-of-type{margin-inline-end:.08em}

/* Mobile sections share one native scroll; the rocket pins for stages 01–05. */
@media(max-width:760px){
  html:has(body.mobile-flow){height:auto;overflow-x:clip;overflow-y:auto;overscroll-behavior-y:auto}
  body.mobile-flow{height:auto;overflow:visible;overscroll-behavior-y:auto}
  .mobile-flow .carousel{position:relative;inset:auto;height:auto;overflow:visible}
  .mobile-flow .track{height:auto;overflow:visible}
  .mobile-flow .page,.mobile-flow .page:is(.is-active,.is-leaving){position:relative;inset:auto;height:auto;overflow:visible;opacity:1;visibility:visible;pointer-events:auto;transition:none;transform:none;isolation:auto;will-change:auto;backface-visibility:visible}
  .mobile-flow .canvas{min-height:0;padding-bottom:0;overflow:visible}
  .mobile-flow .hero .canvas{min-height:100svh;overflow:hidden}
  .mobile-flow .hero-backdrop{position:absolute;inset:0;height:100%;margin:0;background-size:auto 100%;background-position:center bottom}
  .mobile-flow .hero .page-content,.mobile-flow .journey .page-content{min-height:0;flex:0 0 auto;padding-bottom:64px}
  .mobile-flow .flight .page-content,.mobile-flow .projects .page-content{padding-bottom:32px}
  .mobile-flow .fixed-chrome{position:fixed;inset:0;height:100svh}
  .mobile-flow .page-nav{display:none!important}
  .mobile-flow .page.form{height:100svh;background:var(--slate)}
  .mobile-flow .form .canvas{position:sticky;top:0;left:auto;width:100%;height:100svh;min-height:0;zoom:1;padding-bottom:0;overflow:hidden}
  .mobile-flow .form .stage-content{height:100%;min-height:0;padding-bottom:24px;transform:none;overflow:visible}
  .mobile-flow .form .stage-copy{flex:1;min-height:0}
  .mobile-flow .form .rocket-copy-panel{max-height:none;overflow:visible}
}

/* Tighter section openings and a bold orange divider mark on mobile. */
@media(max-width:760px){
  .mobile-flow :is(.journey,.flight,.projects) .intro{padding-top:48px}
}

/* Let Safari sample the native document rather than a slate canvas fallback. */
@media(max-width:760px){
  html:has(body.mobile-flow),body.mobile-flow{background:transparent}
  .mobile-flow .fixed-chrome,.mobile-flow .site-header{background:transparent}
  .mobile-flow :is(.journey,.flight,.projects) .page-content{padding-bottom:48px}
}

/* Keep mobile header controls inside Safari’s visible width and safe area. */
@media(max-width:760px){
  .mobile-flow .fixed-chrome{width:min(100%,var(--mobile-ui-width,100vw));right:auto}
  .mobile-flow .fixed-chrome .masthead{left:calc(16px + env(safe-area-inset-left,0px));right:calc(16px + env(safe-area-inset-right,0px));width:auto;max-width:none;height:48px}
  .mobile-flow .fixed-chrome .masthead>a:first-child{flex:0 0 48px;width:48px;height:48px;zoom:1}
  .mobile-flow .fixed-chrome .header-links{flex:0 0 auto;flex-wrap:nowrap;gap:16px;min-width:0}
  .mobile-flow .fixed-chrome .header-links .website{flex:0 0 auto;height:48px;padding-inline:10px;font-size:12px;line-height:16px;white-space:nowrap;zoom:1}
}

/* Mobile rocket stage movement and dimming run 20% quicker. */
@media(max-width:760px){
  .form .rocket-stack,.form.rocket-stage-change .rocket-stack{transition-duration:.75s}
  .form .rocket-piece{transition:opacity .63s cubic-bezier(.4,0,.2,1)}
}

/* Desktop alternative: one native document with the existing desktop composition. */
@media(min-width:761px){
  html:has(body.mobile-flow){height:auto;overflow-x:clip;overflow-y:auto;overscroll-behavior-y:auto;background:transparent}
  body.mobile-flow{height:auto;overflow:visible;overscroll-behavior-y:auto;background:transparent}
  .mobile-flow .carousel{position:relative;inset:auto;height:auto;overflow:visible}
  .mobile-flow .track{height:auto;overflow:visible}
  .mobile-flow .page,.mobile-flow .page:is(.is-active,.is-leaving){position:relative;inset:auto;height:auto;overflow:visible;opacity:1;visibility:visible;pointer-events:auto;transition:none;transform:none;isolation:auto;will-change:auto}
  .mobile-flow .canvas{min-height:0;padding-bottom:0;overflow:visible}
  .mobile-flow .page-content{min-height:0;flex:0 0 auto;padding-bottom:64px}
  .mobile-flow .hero .canvas{min-height:100svh;overflow:hidden}
  .mobile-flow .hero-backdrop{position:absolute;inset:0;height:100%;margin:0;background-size:cover;background-position:center bottom}
  .mobile-flow .journey .canvas{min-height:0}
  .mobile-flow .journey .intro{height:auto;padding-bottom:48px}
  .mobile-flow .journey .page-content{padding-bottom:64px}
  .mobile-flow .journey .journey-art{margin-top:48px;margin-bottom:0}
  .mobile-flow .fixed-chrome{position:fixed;inset:0;height:100svh}
  .mobile-flow .page-nav{display:none!important}
  .mobile-flow .page.form{height:100svh;background:var(--slate)}
  .mobile-flow .form .canvas{position:sticky;top:0;left:0;width:1440px;max-width:calc(100vw / var(--rocket-fit));height:calc(100svh / var(--rocket-fit));min-height:0;margin-inline:auto;zoom:var(--rocket-fit);padding-bottom:0;overflow:hidden}
  .mobile-flow .form .stage-content{height:100%;min-height:0;overflow:visible}
}

/* Give the desktop growth-stage graphic more equal breathing room. */
@media(min-width:761px){
  .mobile-flow .journey .journey-art{margin-top:100px}
  .mobile-flow .journey .page-content{padding-bottom:80px}
}

/* Keep a centred scroll cue within the rocket section, without navigation. */
.form .continuous-scroll-cue{display:block;position:absolute;z-index:3;top:auto;bottom:24px;left:50%;transform:translateX(-50%);translate:0 0;opacity:1;pointer-events:none}

@media(min-width:761px){body.mobile-flow:is([data-active="3"],[data-active="4"]) .masthead>a:first-child{color:var(--slate)}}

@media(min-width:761px){body.mobile-flow .masthead>a:first-child:is(:hover,:focus-visible){color:var(--orange)}}

/* Tighten the word gap in Book a to match the compact headline spacing. */
#title-3{word-spacing:-.2em}

/* Section 5 booking prompt follows its introduction, ahead of the projects. */
.projects .intro .projects-cta{margin:16px 0 0}
.projects .intro .projects-cta .booking{margin-top:20px}
.projects .intro{height:auto}

/* Pin the entire slate section, with the following sections scrolling over it. */
.continuous-rocket-anchor{height:0;pointer-events:none}
.mobile-flow .page.form,.mobile-flow .page.form:is(.is-active,.is-leaving){position:sticky;top:0;z-index:0;height:100lvh;min-height:100lvh;background:var(--slate)}
.mobile-flow .page.flight,.mobile-flow .page.projects{position:relative;z-index:1}
.mobile-flow .page.flight{background:white}
.mobile-flow .page.projects{background:var(--pale)}
@media(min-width:761px){.mobile-flow .form .canvas{height:calc(100lvh / var(--rocket-fit))}}
@media(max-width:760px){.mobile-flow .form .canvas{height:100lvh;min-height:100lvh}}

/* Match Blast’s live boxed logo SVG rendering and light-page glass. */
@media(min-width:761px){
  body.mobile-flow .scroll-logo-b{background:none;mask:none;-webkit-mask:none}
  body.mobile-flow .scroll-logo-b>svg{display:block;width:24px;height:29px}
  body.mobile-flow:is([data-active="3"],[data-active="4"]) .scroll-logo-wrapper{background:rgba(212,212,212,.149)}
}

/* Shorten continuous rocket movement by 20%. */
.form .rocket-wrap,.form .rocket-stack,.form.rocket-stage-change .rocket-stack{transition-duration:1s;animation-duration:1s}
.form.rocket-stage-change .stage-connector{animation-duration:.96s}
@media(max-width:760px){.form .rocket-wrap,.form .rocket-stack,.form.rocket-stage-change .rocket-stack{transition-duration:.6s;animation-duration:.6s}}

/* Mobile keeps a standfirst only for each section’s opening paragraph. */
@media(max-width:760px){
  .intro .copy>p:first-child{font-size:18px;line-height:22px}
  .intro .copy>p:not(:first-child),.flight-outcome .copy,.projects-cta>p.copy{font-size:16px;line-height:20px}
}

/* Only the section pins; its inner canvas stays in a stable local position. */
.mobile-flow .page.form .canvas{position:relative;top:auto}

/* Mobile opening uses its concise three-paragraph version. */
.hero-copy-mobile{display:none}
@media(max-width:760px){
  .hero .hero-copy-desktop{display:none}
  .hero .hero-copy-mobile{display:block}
  .hero-copy-mobile strong{font-weight:700}
}

/* Prevent scroll anchoring from shifting the pinned rocket during re-entry. */
@media(min-width:761px){html:has(body.mobile-flow),body.mobile-flow,.mobile-flow .track{overflow-anchor:none}}

/* Increase mobile small body text and leading together. */
@media(max-width:760px){
 .intro .copy>p:not(:first-child),.flight-outcome .copy,.projects-cta>p.copy,.project-grid p,.form .stage-body-mobile{font-size:16px;line-height:20px}
}

/* Match the breathing room between the section heading and its divider. */
@media(min-width:761px){.projects .intro{padding-bottom:56px}}
