/* Isolated home story. No global selectors, wheel interception or timed autoplay. */
.dot-ecosystem{--eco-red:#ef3447;position:relative;background:#07090d;color:#f6f7fa;font-family:Manrope,sans-serif;isolation:isolate}
.dot-ecosystem *{box-sizing:border-box}.eco-shell{max-width:1320px;margin:auto;padding:42px 40px 28px}.eco-header{display:flex;justify-content:space-between;align-items:end;gap:24px}.eco-kicker{font-size:11px!important;letter-spacing:.16em;text-transform:uppercase;color:#ff6876!important;font-weight:700;margin:0 0 10px!important}.eco-header h2{font-size:clamp(26px,3vw,42px);line-height:1.12;letter-spacing:-.04em;font-weight:600;margin:0}.eco-scroll{font-size:12px;color:#a3acbc;white-space:nowrap}.eco-nav{display:grid;grid-template-columns:repeat(5,1fr);position:relative;gap:12px;margin-top:25px;padding-bottom:15px}.eco-nav a{display:flex;gap:10px;align-items:center;color:#a3aab8;text-decoration:none;padding:8px 0;font-size:12px;transition:color .18s}.eco-nav b{font-weight:500}.eco-nav a span{font-size:10px;border:1px solid #333944;width:25px;height:25px;border-radius:50%;display:grid;place-items:center}.eco-nav a[aria-current="step"]{color:#fff}.eco-nav a.is-passed span{background:#a62332;border-color:#ff4255;color:#fff}.eco-track{position:absolute;height:2px;background:#292d37;bottom:0;left:0;right:0;overflow:hidden}.eco-track i{display:block;background:linear-gradient(90deg,#9f192c,#ff586a);height:100%;transform:scaleX(var(--eco-progress,1));transform-origin:left}.eco-scene{position:relative;height:460px;min-height:240px;contain:layout style;overflow:hidden}.eco-orbit{position:absolute;left:15%;top:20%;width:70%;height:70%;border:1px solid #263040;border-radius:50%;transform:rotateX(65deg);opacity:.5}.eco-glow{position:absolute;inset:5% 12%;background:radial-gradient(ellipse at 45% 70%,#881e2629,transparent 65%);pointer-events:none}.eco-node{position:absolute;left:var(--x);top:var(--y);width:var(--w);margin:0;transform:translate(-50%,-50%) scale(var(--s,1));opacity:var(--o,1);z-index:2;transform-origin:center;pointer-events:none}.eco-node>img{width:100%;height:auto;max-height:100%;object-fit:contain;display:block;filter:drop-shadow(0 14px 14px #0008)}.eco-node figcaption{position:absolute;top:100%;left:50%;transform:translateX(-50%);text-align:center;font-size:12px;line-height:1.4;white-space:nowrap;color:#edf0f5}.eco-node figcaption small{display:block;color:#9ca8bb;font-size:10px;margin-top:3px}.eco-car{--x:18%;--y:58%;--w:34%}.eco-tracker{--x:35%;--y:37%;--w:15%}.eco-bls{--x:14%;--y:22%;--w:10%}.eco-bts{--x:14%;--y:82%;--w:9%}.eco-cloud{--x:48%;--y:19%;--w:11%}.eco-cloud svg{width:100%;display:block}.eco-platform{--x:72%;--y:58%;--w:48%;z-index:3;perspective:1000px}.eco-dashboard{background:#f1f5fb;color:#25334a;border:1px solid #6b7c9466;border-radius:14px;overflow:hidden;box-shadow:0 24px 60px #0006,0 0 60px #3069d512;transform:perspective(1000px) rotateY(var(--tilt,0deg));transform-origin:center}.eco-dash-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 18px;border-bottom:1px solid #dce4ef;background:#fff}.eco-dash-bar img{width:110px;height:auto}.eco-dash-bar span{font-size:10px}.eco-dash-main{display:grid;grid-template-columns:2.2fr 1fr;gap:10px;padding:12px}.eco-map{position:relative;background:#e7edf4;border-radius:8px;overflow:hidden}.eco-map svg{display:block;width:100%;height:100%}.eco-river{fill:none;stroke:#b6d5ef;stroke-width:28}.eco-streets{stroke:#fff;stroke-width:8;fill:none}.eco-route{fill:none;stroke:#3c80df;stroke-width:4;stroke-linejoin:round}.eco-pins{fill:#3c80df;stroke:white;stroke-width:3}.eco-map>span{position:absolute;left:10px;top:10px;font-size:9px;background:#fff;padding:5px 8px;border-radius:4px}.eco-charts{background:#fff;border-radius:8px;padding:12px}.eco-charts span{font-size:9px;display:block;color:#526580}.eco-charts svg{display:block;width:100%;margin:15px 0}.eco-charts i{display:block;height:5px;border-radius:4px;background:#e3eaf5;margin:10px 0}.eco-charts i:nth-last-child(2){width:70%;background:#c3d6f2}.eco-demo{font-size:9px;text-align:center;padding:4px 10px 10px;margin:0;color:#50617b}.eco-links{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:visible;pointer-events:none}.eco-wire{fill:none;stroke:url(#eco-line);stroke-width:1.4;opacity:.55}.eco-flow{fill:none;stroke:#ff8791;stroke-width:2;stroke-dasharray:4 35;opacity:.8}.eco-links circle{fill:#ffc1c7;filter:drop-shadow(0 0 5px #ef3447)}.eco-copy-area{position:relative}.eco-copy{display:grid;grid-template-columns:1fr 1fr;column-gap:40px;margin:24px 0}.eco-copy .eco-kicker{grid-column:1}.eco-copy h3{grid-column:1;font-size:clamp(23px,2.6vw,34px);line-height:1.15;letter-spacing:-.035em;margin:0;font-weight:600;max-width:520px}.eco-copy>p:last-child{grid-column:2;grid-row:1/3;align-self:center;font-size:14px;line-height:1.65;margin:0;color:#b5bfce;max-width:560px}.eco-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:48px}.eco-actions{display:flex;gap:12px;flex-wrap:wrap}.eco-actions a{padding:13px 18px;font-size:12px;line-height:1.3;border:1px solid #414956;border-radius:8px;color:#fff;text-decoration:none;display:flex;gap:18px;align-items:center;transition:background .2s,border-color .2s}.eco-actions .eco-primary{background:#c9273c;border-color:#d42e41}.eco-actions a:hover{background:#343946;border-color:#748298}.eco-actions .eco-primary:hover{background:#ea3149}.eco-read{background:none;border:0;color:#a9b4c5;font-size:11px;text-decoration:underline;text-underline-offset:4px;cursor:pointer;display:none}.eco-note{max-width:1280px;margin:0 auto;padding:24px 40px 32px;font-size:11px;line-height:1.6;color:#9aa5b6;border-top:1px solid #202530}.dot-ecosystem a:focus-visible,.dot-ecosystem button:focus-visible{outline:2px solid #ff6876;outline-offset:5px}.dot-ecosystem.eco-enhanced{height:calc(470svh + 120px)}.eco-enhanced .eco-pin{position:sticky;top:64px;height:calc(100svh - 64px);min-height:570px}.eco-enhanced .eco-shell{height:100%;display:flex;flex-direction:column;padding-top:24px;padding-bottom:18px}.eco-enhanced .eco-scene{flex:1;height:auto;min-height:200px}.eco-enhanced .eco-copy-area{height:124px;flex:none}.eco-enhanced .eco-copy{position:absolute;inset:0;margin:14px 0;opacity:var(--copy-o,0);transform:translateY(var(--copy-y,0));pointer-events:none}.eco-enhanced .eco-copy.is-current{pointer-events:auto}.eco-enhanced .eco-actions{opacity:var(--actions-o,0);visibility:var(--actions-v,hidden)}.eco-enhanced .eco-read{display:block}.eco-enhanced .eco-note{position:absolute;bottom:0;left:0;right:0;transform:translateY(100%);background:#07090d}.dot-ecosystem.eco-enhanced{margin-bottom:105px}.eco-read-mode .eco-read{display:block}.eco-read-mode .eco-scroll{display:none}
@media(min-width:1600px){.eco-enhanced .eco-shell{padding-top:40px;padding-bottom:30px}.eco-enhanced .eco-copy-area{height:150px}.eco-nav{margin-top:35px}.eco-copy>p:last-child{font-size:16px}.eco-node figcaption{font-size:14px}}
@media(max-width:800px){.eco-shell{padding:28px 20px 24px}.eco-header h2{font-size:28px}.eco-scroll{display:none}.eco-nav{gap:6px;margin-top:18px}.eco-nav a{flex-direction:column;gap:6px;font-size:10px;text-align:center;line-height:1.25}.eco-copy{gap:16px}.eco-copy>p:last-child{font-size:12px}.eco-copy h3{font-size:25px}.eco-node figcaption{font-size:10px}.eco-node figcaption small{font-size:9px}.eco-dash-bar{padding:8px}.eco-dash-bar img{width:85px}.eco-dash-bar span{display:none}.eco-dash-main{padding:6px;gap:6px}.eco-charts{padding:6px}.eco-charts span{font-size:7px}.eco-charts svg{margin:8px 0}.eco-demo{font-size:8px}.eco-bottom{gap:12px}.eco-actions{gap:8px}.eco-actions a{padding:11px 12px;font-size:11px}.eco-note{padding:20px;font-size:10px}.eco-enhanced .eco-copy-area{height:150px}.eco-scene{height:340px}.eco-enhanced .eco-shell{padding-top:20px}.eco-enhanced .eco-pin{top:60px;height:calc(100svh - 60px);min-height:590px}.eco-enhanced{--eco-mobile:1}}
@media(max-width:520px){.eco-shell{padding:24px 16px}.eco-header h2{font-size:27px}.eco-kicker{font-size:9px!important}.eco-nav{margin-top:12px;padding-bottom:10px}.eco-nav a{font-size:9px}.eco-nav a span{width:21px;height:21px}.eco-enhanced .eco-copy-area{height:188px}.eco-copy{display:block;margin:16px 0}.eco-copy h3{font-size:23px;margin:0 0 8px}.eco-copy>p:last-child{font-size:12px;line-height:1.5}.eco-bottom{display:block;min-height:76px}.eco-actions{display:grid;grid-template-columns:1fr 1fr}.eco-actions a{padding:10px 9px;font-size:10px;gap:6px}.eco-read{margin:14px 0 0;font-size:10px}.eco-node figcaption{font-size:9px}.eco-node figcaption small{font-size:8px;white-space:normal;min-width:80px}.eco-scene{min-height:230px;height:300px}.eco-enhanced .eco-scene{min-height:180px}.eco-enhanced .eco-pin{top:58px;height:calc(100svh - 58px);min-height:620px}.dot-ecosystem.eco-enhanced{height:calc(410svh + 120px);margin-bottom:115px}.eco-enhanced .eco-shell{padding:15px 16px}.eco-dash-main{grid-template-columns:2fr 1fr}.eco-charts i{margin:6px 0;height:3px}.eco-dash-bar img{width:72px}.eco-charts span{font-size:6px}.eco-map>span{font-size:7px;top:5px;left:5px}.eco-demo{font-size:7px;padding:3px 6px 6px}.eco-dashboard{border-radius:8px}.eco-platform{--x:65%;--y:54%;--w:64%}.eco-cloud{--x:45%;--y:16%;--w:14%}.eco-car{--x:18%;--y:62%;--w:35%}.eco-tracker{--x:20%;--y:32%;--w:22%}.eco-bls{--x:12%;--y:10%;--w:12%}.eco-bts{--x:16%;--y:85%;--w:13%}}
@media(max-height:700px) and (min-width:801px){.eco-enhanced .eco-pin{top:0;height:100svh;min-height:540px}.eco-enhanced .eco-shell{padding-top:15px}.eco-header h2{font-size:27px}.eco-nav{margin-top:12px}.eco-enhanced .eco-copy-area{height:112px}}
@media(prefers-reduced-motion:reduce){.dot-ecosystem *{transition:none!important;scroll-behavior:auto!important}.eco-scroll{display:none}}
/* Match the existing fixed masthead instead of assuming its desktop/mobile height. */
.eco-enhanced .eco-pin{top:var(--eco-header-height,116px);height:calc(100svh - var(--eco-header-height,116px));min-height:0}
.eco-node figcaption{opacity:var(--label-o,1)}
.dot-ecosystem{scroll-margin-top:120px}.eco-copy{scroll-margin-top:130px}
/* The global back-to-top bubble must not cover story text or final CTAs. */
body.eco-story-active .scroll-up{visibility:hidden;pointer-events:none}
.dot-ecosystem:not(.eco-enhanced) .eco-node figcaption{display:none}
@media(min-width:801px){.eco-bls figcaption,.eco-bts figcaption{top:68%;left:103%;transform:none;text-align:left}.eco-bls figcaption small,.eco-bts figcaption small{white-space:normal;max-width:140px}}

/* Move the scene with composited transforms instead of layout left/top on scroll. */
.eco-enhanced .eco-node{left:0;top:0;transform:translate(var(--tx,0px),var(--ty,0px)) translate(-50%,-50%) scale(var(--s,1))}
