/* Scroll-led engineering story. Content stays visible without JavaScript. */
.lifecycle-journey{display:block;padding:80px var(--gutter) 65px;background:radial-gradient(ellipse at 12% 15%,#224b59,transparent 42%),#102d3b;isolation:isolate;overflow:visible}.journey-heading{display:grid;grid-template-columns:1.2fr 1fr;align-items:end;gap:65px;margin-bottom:45px}.lifecycle-journey .journey-heading h2{font-size:clamp(36px,3.8vw,56px);line-height:1.16}.lifecycle-journey .journey-heading p{font-size:14px;line-height:1.9;max-width:400px;margin:0 0 25px}.journey-scroll-hint{display:flex;align-items:center;gap:15px;font-size:8px;letter-spacing:1.2px;line-height:1.8;color:#c0d8d3}.journey-scroll-hint>span{display:grid;place-items:center;border:1px solid #91b3b357;border-radius:50%;width:33px;height:33px;flex-shrink:0;font-size:17px}.scroll-motion .journey-scroll-hint>span{animation:journeyHint 2.6s ease-in-out infinite}.journey-status{position:sticky;top:83px;z-index:7;display:flex;gap:25px;align-items:center;padding:18px 23px;background:#163848f5;backdrop-filter:blur(16px);border:1px solid #89b6b238;border-radius:5px;box-shadow:0 8px 22px #00131b26;margin-bottom:32px}.journey-status-label{font-size:8px;letter-spacing:1.5px;color:#94b2b9;flex-shrink:0}.journey-status-title{font-size:13px;color:#e9f3ee;flex:1;min-width:0}.journey-status-count{font-size:10px;white-space:nowrap;color:#94b2b9;letter-spacing:1px}.journey-status-count b{font-size:21px;font-weight:500;color:#c9eedb;margin-right:7px}.journey-status-track{position:absolute;bottom:-1px;left:0;right:0;height:3px;overflow:hidden}.journey-status-track i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#558e9c,#c1f0d0);transform:scaleX(0);transform-origin:left}.journey-track{max-width:1060px;margin:auto;position:relative;--rail-top:110px;--rail-height:calc(100% - 300px);--journey-progress:0}.journey-rail{position:absolute;left:50%;top:var(--rail-top);height:var(--rail-height);width:3px;transform:translateX(-50%);background:#78969b40;border-radius:5px;pointer-events:none}.journey-rail-fill{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(#6cabaa,#c5f1d4);transform:scaleY(var(--journey-progress));transform-origin:top;box-shadow:0 0 18px #a7e6d54a}.journey-cursor{position:absolute;left:50%;top:calc(var(--journey-progress)*100%);width:11px;height:11px;border-radius:50%;background:#edfff3;box-shadow:0 0 0 5px #bcf1d12e,0 0 27px #adf1d2;transform:translate(-50%,-50%);z-index:3}.journey-steps{list-style:none;padding:0;margin:0;position:relative}.journey-step{display:grid;grid-template-columns:minmax(0,1fr) 94px minmax(0,1fr);position:relative;scroll-margin-top:190px}.journey-step+.journey-step{margin-top:-105px}.journey-card{grid-column:1;border:1px solid #e6eee959;border-radius:8px;overflow:hidden;background:#f7faf4;color:#143647;box-shadow:0 15px 35px #00172333;position:relative;transition:border-color .35s,box-shadow .35s,transform .5s;min-width:0}.journey-step:nth-child(even) .journey-card{grid-column:3}.journey-image{aspect-ratio:400/205;position:relative;overflow:hidden;background:#345764}.journey-image img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.65);transition:transform 1s cubic-bezier(.16,1,.3,1),filter .7s}.journey-image:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,#12334180);pointer-events:none}.journey-image-index{position:absolute;z-index:1;right:20px;bottom:14px;color:#fff;font-size:40px;line-height:1;font-weight:400;letter-spacing:-2px;text-shadow:0 2px 10px #12334166}.journey-card-copy{padding:26px 28px 29px}.journey-caption{display:block;font-size:8px;letter-spacing:1.5px;font-weight:600;color:#507775}.lifecycle-journey .journey-card h3{margin:13px 0 12px;font-size:clamp(21px,2vw,29px);font-weight:500;line-height:1.2;letter-spacing:-.8px}.lifecycle-journey .journey-card p{color:#526c75;max-width:none;margin:0;font-size:13px;line-height:1.8}.journey-node{position:absolute;top:88px;left:50%;transform:translateX(-50%);width:44px;height:44px;border:1px solid #6b929b;border-radius:50%;display:grid;place-items:center;background:#193c4b;color:#adc4ca;font-size:11px;letter-spacing:.8px;z-index:4;transition:background .3s,color .3s,box-shadow .35s,border-color .3s;box-shadow:0 0 0 7px #102d3b}.journey-node:before{content:'';position:absolute;top:50%;right:100%;width:25px;height:1px;background:#83a4a159}.journey-step:nth-child(even) .journey-node:before{right:auto;left:100%}.journey-node:after{content:'';position:absolute;inset:-8px;border:1px solid #bff0d399;border-radius:50%;opacity:0;pointer-events:none}.journey-step.is-reached .journey-node{background:#bcded0;color:#133647;border-color:#c8e9d8}.journey-step.is-reached .journey-card{border-color:#9fcec08c}.journey-step.is-active .journey-node{background:#dcf6e4;box-shadow:0 0 0 7px #102d3b,0 0 0 9px #9bcebb66,0 0 30px #9fdfc060}.scroll-motion .journey-step.is-active .journey-node:after{animation:journeyPulse 2.7s ease-out infinite}.scroll-motion .journey-step.is-active .journey-card{transform:translateY(-5px);box-shadow:0 15px 45px #00000038,0 0 0 2px #aee0c98a,0 0 40px #9ed9bc14}.journey-step.is-active .journey-image img{filter:saturate(1);transform:scale(1.045)}.journey-closing{border-top:1px solid #72979540;margin:55px auto 0;padding-top:35px;max-width:1060px;display:flex;justify-content:space-between;align-items:center;gap:28px}.lifecycle-journey .journey-closing h3{font-size:28px;font-weight:400;letter-spacing:-.8px;margin:0 0 12px}.lifecycle-journey .journey-closing p{margin:0;font-size:13px;max-width:none}.journey-closing .button{flex-shrink:0}
/* Clearer movement on the existing engineering graphics and service cards. */
.scroll-motion .layer-top,.scroll-motion .layer-middle{animation-name:engineeringFloat;animation-duration:6s}.scroll-motion .layer-middle{animation-delay:-2s}.scroll-motion .signal{animation-duration:4.5s}.scroll-motion .core-glow{animation-duration:3.5s}.scroll-motion .system-flow{stroke-width:3;animation-duration:4s}.services article{position:relative;transition:transform .4s,box-shadow .4s,background .4s;z-index:0}.services article:after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:#558f90;transform:scaleX(0);transform-origin:left;transition:transform .45s}.scroll-motion .services article:hover,.scroll-motion .services article:focus-within{transform:translateY(-7px);box-shadow:0 15px 28px #17384712;z-index:1}.services article:hover:after,.services article:focus-within:after{transform:scaleX(1)}.scroll-motion .system-stage[data-active-layer=field] .system-layer-field,.scroll-motion .system-stage[data-active-layer=control] .system-layer-control,.scroll-motion .system-stage[data-active-layer=observe] .system-layer-observe{animation:systemActivate .8s cubic-bezier(.16,1,.3,1)}
@keyframes engineeringFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-25px)}}@keyframes journeyPulse{0%{transform:scale(.8);opacity:.65}80%,100%{transform:scale(1.55);opacity:0}}@keyframes journeyHint{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}@keyframes systemActivate{from{transform:translateY(12px);opacity:.4}to{transform:translateY(0);opacity:1}}
@media(max-width:1050px){.lifecycle-journey{padding-block:65px}.journey-heading{gap:38px}.journey-status{top:75px}.journey-step{grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr)}.journey-step+.journey-step{margin-top:-75px}.journey-card-copy{padding:23px}.journey-node:before{width:16px}.journey-node{width:40px;height:40px;top:70px}.lifecycle-journey .journey-card h3{font-size:23px}.journey-caption{font-size:7px}}
@media(max-width:720px){.lifecycle-journey{padding:55px var(--gutter) 45px}.journey-heading{grid-template-columns:1fr;gap:23px;margin-bottom:28px}.lifecycle-journey .journey-heading h2{font-size:36px}.lifecycle-journey .journey-heading p{font-size:13px;margin-bottom:18px;max-width:none}.journey-scroll-hint{font-size:7px;letter-spacing:.8px}.journey-status{top:73px;padding:13px 15px;gap:13px;margin-bottom:27px}.journey-status-label{display:none}.journey-status-title{font-size:11px}.journey-status-count{font-size:8px}.journey-status-count b{font-size:18px;margin-right:3px}.journey-step{display:block;padding-left:49px;scroll-margin-top:155px}.journey-step+.journey-step{margin-top:28px}.journey-rail{left:16px}.journey-node{left:16px;top:57px;width:32px;height:32px;font-size:9px;box-shadow:0 0 0 5px #102d3b}.journey-node:before,.journey-step:nth-child(even) .journey-node:before{left:100%;right:auto;width:17px}.journey-card{border-radius:6px}.journey-image{aspect-ratio:400/210}.journey-image-index{font-size:31px;right:15px;bottom:12px}.journey-card-copy{padding:22px 20px}.lifecycle-journey .journey-card h3{font-size:23px;margin:11px 0}.lifecycle-journey .journey-card p{font-size:12px}.journey-caption{font-size:7px;letter-spacing:1px}.journey-closing{margin-top:35px;padding-top:28px;flex-direction:column;align-items:start;gap:23px}.lifecycle-journey .journey-closing h3{font-size:25px}.lifecycle-journey .journey-closing p{font-size:12px}.journey-closing .button{font-size:11px}.scroll-motion .journey-step.is-active .journey-card{transform:none}}
@media(max-width:380px){.lifecycle-journey .journey-heading h2{font-size:31px}.journey-card-copy{padding:19px 16px}.lifecycle-journey .journey-card h3{font-size:20px}.journey-step{padding-left:43px}.journey-node:before,.journey-step:nth-child(even) .journey-node:before{width:11px}.journey-caption{font-size:6px}.journey-status{padding-inline:12px}}
body.motion-paused .journey-card,body.motion-paused .journey-image img,body.motion-paused .journey-node,body.motion-paused .services article,body.motion-paused .services article:after{transition:none;transform:none}body.motion-paused .journey-node{transform:translateX(-50%)}body.motion-paused .journey-node:after,body.motion-paused .journey-cursor{display:none}
@media(prefers-reduced-motion:reduce){.journey-card,.journey-image img,.journey-node,.services article{transition:none!important}.journey-card,.journey-image img,.services article{transform:none!important}.journey-node:after,.journey-cursor{display:none}.journey-scroll-hint>span{animation:none}}

/* One art-directed photo series, with consistent framing across all nine phases. */
.journey-photo{aspect-ratio:1672/941}.journey-photo img{position:absolute;left:var(--scene-x);top:var(--scene-y);width:300%;height:300%;max-width:none;object-fit:fill;transform:scale(1.012);transform-origin:var(--scene-origin);filter:saturate(.84)}.journey-step.is-active .journey-photo img{transform:scale(1.055);filter:saturate(1)}.journey-image-type{position:absolute;top:13px;left:14px;z-index:1;background:#102d3bba;border:1px solid #cde4dd33;border-radius:3px;padding:5px 7px;color:#eef7f3;font-size:7px;letter-spacing:.5px;line-height:1.3}.journey-photo .journey-image-index{font-size:35px}body.motion-paused .journey-photo img{transform:scale(1.012)}@media(prefers-reduced-motion:reduce){.journey-photo img,.journey-step.is-active .journey-photo img{transform:scale(1.012)!important}}@media(max-width:720px){.journey-image-type{top:10px;left:10px;font-size:6px;padding:4px 6px}.journey-photo .journey-image-index{font-size:29px}}
/* Concise phase cards; technical detail remains available on demand. */
.journey-details{margin-top:16px;border-top:1px solid #d3dfd7}.journey-details summary{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:44px;padding:12px 0 0;font-size:11px;color:#345f65;cursor:pointer;list-style:none}.journey-details summary::-webkit-details-marker{display:none}.journey-details summary>span:last-child{font-size:20px;line-height:1;transition:transform .2s}.journey-details[open] summary>span:last-child{transform:rotate(45deg)}.lifecycle-journey .journey-details p{padding-top:12px}.journey-step+.journey-step{margin-top:-65px}@media(max-width:1050px){.journey-step+.journey-step{margin-top:-35px}}@media(max-width:720px){.lifecycle-journey{padding-top:44px;padding-bottom:36px}.journey-heading{gap:16px;margin-bottom:21px}.lifecycle-journey .journey-heading h2{font-size:32px}.journey-status{margin-bottom:20px}.journey-step+.journey-step{margin-top:16px}.journey-card{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:start;padding:14px 12px;gap:12px}.journey-photo{width:76px;aspect-ratio:1672/941;border-radius:3px;margin-top:4px}.journey-photo .journey-image-index{display:none}.journey-image-type{top:auto;bottom:2px;left:2px;font-size:5px;padding:2px;letter-spacing:0;border:0}.journey-card-copy{padding:0;min-width:0}.journey-caption{font-size:6px;letter-spacing:.55px;line-height:1.5;overflow-wrap:anywhere}.lifecycle-journey .journey-card h3{font-size:18px;line-height:1.3;letter-spacing:-.35px;margin:7px 0 0;overflow-wrap:anywhere}.journey-details{margin-top:9px}.journey-details summary{font-size:10px;padding-top:5px;gap:5px}.lifecycle-journey .journey-details p{font-size:12px;padding-top:8px;line-height:1.7}.journey-node{top:26px}.journey-closing{margin-top:25px;padding-top:24px}}@media(max-width:380px){.journey-card{grid-template-columns:1fr;gap:10px;padding:14px}.journey-photo{width:96px;margin-top:0}.journey-card-copy{padding:0}.lifecycle-journey .journey-card h3{font-size:19px}.journey-image-type{font-size:6px}}

/* Hero: fixed layers, two slow signal impulses, readable labels. */
.hero .layer-top,.hero .layer-middle,.hero .core-glow{animation:none;transform:none}
.hero .signal{animation:none;stroke-dasharray:none;opacity:.4}
.hero-signal-track{stroke:#78a5ad;stroke-width:1.4;opacity:.6}
.hero-signal-pulse{stroke:#d2f0e4;stroke-width:3;stroke-linecap:round;stroke-dasharray:8 192;stroke-dashoffset:8;animation:heroSignalTravel 10s linear infinite}
.hero-signal-pulse-next{animation-delay:-5s}
@keyframes heroSignalTravel{0%{stroke-dashoffset:8}65%,100%{stroke-dashoffset:-100}}
.hero .hero-layer-labels{font-weight:500}
.hero .visual-caption{font-size:8px;letter-spacing:1px;line-height:1.6;flex-wrap:wrap;gap:6px 16px}
@media(max-width:720px){.hero .hero-layer-labels{font-size:17px;letter-spacing:.8px}.hero .visual-caption{font-size:9px;letter-spacing:.4px;margin-inline:4%;justify-content:center;column-gap:14px}.hero .hero-signal-pulse{stroke-width:3.5}}
body.motion-paused .hero-signal-pulse{animation:none;stroke-dasharray:none;opacity:.65}
@media(prefers-reduced-motion:reduce){.hero .hero-signal-pulse{animation:none!important;stroke-dasharray:none;opacity:.65}}

/* Approved engineering artwork with connection pulses only. */
.hero .hero-concept{overflow:hidden;border-radius:4px;transform:none;max-width:650px}
.hero .hero-concept svg{overflow:hidden}
.hero .hero-packet{fill:#e6fff4;filter:drop-shadow(0 0 5px #b6ffe1);animation:heroConceptPacket 5s linear infinite}
.hero .hero-packet-two{animation-delay:-2.5s}.hero .hero-packet-three{animation-delay:-1.5s}.hero .hero-packet-four{animation-delay:-4s}
@keyframes heroConceptPacket{0%{transform:translateY(0);opacity:0}8%,75%{opacity:1}85%,100%{transform:translateY(-80px);opacity:0}}
.hero h1{font-size:clamp(43px,4.6vw,72px)}
.hero .hero-lead{max-width:510px;font-size:14px;line-height:1.85}
body.motion-paused .hero .hero-packet{animation-play-state:paused}
@media(max-width:720px){.hero h1{font-size:clamp(34px,7.7vw,53px)}.hero .hero-lead{font-size:13px}.hero .hero-concept{width:100%;max-width:520px;margin:16px auto 22px}.hero .hero-concept-labels{font-size:23px}.hero .hero-concept-labels text{transform:translateX(-16px)}}
@media(prefers-reduced-motion:reduce){.hero .hero-packet{animation:none!important;opacity:.65}}

/* Blend the artwork into the hero; keep labels and pulses sharp. */
.hero{background:radial-gradient(ellipse at 78% 48%,#163b47 0%,#10323f 55%,#0b2734 100%)}
.hero .hero-concept{border-radius:0;background:transparent}

/* Animate SVG coordinates directly for consistent mobile rendering. */
.hero .hero-packet{animation:none!important;transform:none!important;filter:none;stroke:#b6ffe1;stroke-width:1;fill:#effff7}
@media(prefers-reduced-motion:reduce){.hero .motion-toggle{display:inline-flex}}
