/* V3.1: viewport-sized native artwork, separate energy layer, local readability masks. */
body{isolation:isolate;background:#020d1b}
.cinematic-world{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:#020d1b;contain:strict}
.world-atmosphere{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 52%,#103653 0,#062034 40%,#020d1b 78%);opacity:.85}
.world-scenes,.world-scene{position:absolute;inset:0}
.world-scene{opacity:0;visibility:hidden;overflow:hidden}
.world-scene.initial{opacity:1;visibility:visible}
.world-scene.active{visibility:visible;will-change:opacity,transform}
.world-scene img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(100vw,1672px);height:auto;max-height:100svh;object-fit:contain;mask-image:radial-gradient(ellipse 68% 76% at center,#000 57%,transparent 99%)}
.world-near{position:absolute;inset:0;opacity:.32;will-change:transform;transform:none}
.world-near svg{width:100%;height:100%;display:block;fill:none;stroke-linecap:round;stroke-linejoin:round}
.world-beam-base{stroke:#1478ff;stroke-width:1;stroke-dasharray:3 15;opacity:.14}
.world-beam-live{stroke:url(#world-energy);stroke-width:1.4;stroke-dasharray:1;stroke-dashoffset:.85;filter:drop-shadow(0 0 3px #14e8e2)}
.world-veil{position:absolute;inset:0;background:linear-gradient(0deg,#020d1b33,transparent 18%,transparent 84%,#020d1b33)}
/* Surfaces belong behind reading areas, not over the entire world. */
.glass-hero{background:linear-gradient(90deg,#020d1b88,transparent 63%)}
.integrations{background:rgba(245,248,252,.92)}
.approach{background:rgba(245,248,252,.16)}
.problems{background:rgba(20,232,226,.035);border-top-color:#020d1b66;border-bottom-color:#020d1b66}
.story{background:rgba(2,13,27,.08)}
.solutions{background:rgba(245,248,252,.86)}
.principles{background:rgba(234,242,249,.12)}
.faq{background:rgba(245,248,252,.96)}
.contact{background:radial-gradient(ellipse 48% 75% at 50% 48%,#020d1be6 0,#020d1ba6 52%,transparent 100%)}
footer{background:#020d1ba6}
.approach .section-heading>*,
.problems .section-heading>*,
.approach .wrap>.eyebrow,
.problems .wrap>.eyebrow,
.problems .chain-note,
.principles .wrap>h2,
.principles .wrap>.eyebrow{position:relative;isolation:isolate}
.approach .section-heading>*:before,
.problems .section-heading>*:before,
.approach .wrap>.eyebrow:before,
.problems .wrap>.eyebrow:before,
.problems .chain-note:before,
.principles .wrap>h2:before,
.principles .wrap>.eyebrow:before{content:'';position:absolute;inset:-10px -14px;z-index:-1;background:rgba(245,248,252,.96);box-shadow:0 0 22px 12px rgba(245,248,252,.74);pointer-events:none}
.approach .steps,.principles .principle-grid{position:relative;isolation:isolate}
.approach .steps:before{background:#d1e2ef}
.approach .approach-composition{background:linear-gradient(90deg,transparent 25%,#f5f8fcf0 45%,#f5f8fcf5 98%,transparent)}
.principles .principle-grid:before{content:'';position:absolute;inset:-16px;z-index:-1;background:#f5f8fcf2;box-shadow:0 0 24px 10px #f5f8fcaa;pointer-events:none}
.story .wrap>h2,.story .wrap>.eyebrow,.story .wrap>.body-large,.narrative-step{background:radial-gradient(ellipse at 35% 50%,#020d1bce,transparent 90%)}
/* Rail keeps its existing anchors and labels; only the beam and nodes change. */
.journey{left:12px;--energy-y:0px}
.journey[data-mode] .journey-track{top:31px;bottom:50px;width:1px;background:rgba(80,135,163,.27)}
.journey[data-mode] .journey-track i{width:1px;background:linear-gradient(#1478ff,#14e8e2);box-shadow:0 0 6px #14e8e25c;transition:transform .38s ease-out}
.journey[data-mode] .journey-track:after{content:'';position:absolute;top:0;left:-2px;width:5px;height:5px;border-radius:50%;background:#d7fffd;box-shadow:0 0 9px #14e8e2;transform:translateY(var(--energy-y));transition:transform .38s ease-out;opacity:.9}
.journey[data-mode] a .rail-node{font-size:0;width:5px;height:5px;min-width:5px;border:0;border-radius:50%;background:#51768b;box-shadow:none;clip-path:none;color:transparent;transition:background .3s,box-shadow .3s,transform .3s}
.journey[data-mode] a.completed .rail-node{background:#398eac;box-shadow:0 0 4px #14e8e244}
.journey[data-mode] a[aria-current=location] .rail-node{background:#d7fffd;border:0;box-shadow:0 0 9px #14e8e2,0 0 18px #14e8e23d;transform:scale(1.35);animation:journey-breathe 2.6s ease-in-out infinite}
.journey[data-mode] .rail-mark{width:22px;height:22px;opacity:.32;transform:none}
.journey[data-mode=contact] .rail-mark{opacity:.9;transform:none}
.journey[data-mode] .rail-label{border-color:#30596b77;background:#031426f2;box-shadow:0 6px 18px #020d1b33}
@keyframes journey-breathe{50%{box-shadow:0 0 6px #14e8e2,0 0 12px #14e8e21a}}

@media(max-width:700px){
.world-scene img{width:auto;height:min(100svh,941px);max-height:none;max-width:none}
.world-near{display:none}
.journey{left:0}.journey[data-mode] .journey-track{top:21px;bottom:36px}.journey[data-mode] a .rail-node{width:4px;height:4px;min-width:4px}.journey[data-mode] a[aria-current=location] .rail-node{animation:none}
.approach .approach-composition{background:linear-gradient(transparent,#f5f8fcf5 40%)}
.contact{background:radial-gradient(ellipse at center,#020d1bd9, #020d1b44)}
}
@media(prefers-reduced-motion:reduce){.world-scene.active,.world-near{will-change:auto}.world-near{display:none}.journey[data-mode] .journey-track i,.journey[data-mode] .journey-track:after{transition:none}.journey[data-mode] a[aria-current=location] .rail-node{animation:none}}
.effects-off .world-scene.active,.effects-off .world-near{will-change:auto}.effects-off .world-near{display:none}
