.ecosystem-loop{background:var(--background);padding-block:72px 56px;overflow:clip}.loop-heading h2{letter-spacing:-.045em;margin-top:24px;font-size:clamp(32px,3.8vw,56px);line-height:1.12}.loop-heading :where(h2)>span{color:var(--primary)}.loop-lede{color:var(--muted-foreground);max-width:500px;margin-top:16px;font-size:15px;line-height:1.65}.loop-scene{max-width:960px;margin:8px auto 0;position:relative;container-type:inline-size}.loop-canvas{position:relative}.loop-orbit{width:100%;height:auto;display:block;overflow:visible}.loop-center{text-align:center;flex-direction:column;align-items:center;gap:6px;width:250px;display:flex;position:absolute;top:66%;left:50%;translate:-50%}.loop-globe{aspect-ratio:1;background:radial-gradient(circle,#d6ecab99 0%,#e6f0d266 46%,#eaf1dc00 72%);position:absolute;translate:-50% -50%}.loop-globe canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.loop-core{aspect-ratio:1;width:27%;position:absolute;top:50%;left:50%;translate:-50% -50%}.loop-core-glow{background:radial-gradient(circle,#c9ea6b1f 0%,#c9ea6b0a 38%,#0000 66%);border-radius:50%;animation:6s ease-in-out infinite loop-core-breathe;position:absolute;inset:-70%}.loop-core-ticks{background:repeating-conic-gradient(#7f9a6c 0 .55deg, transparent .55deg 6deg);opacity:.5;border-radius:50%;animation:120s linear infinite loop-core-spin;position:absolute;inset:-17%;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 6px),#000 calc(100% - 5.5px));mask:radial-gradient(farthest-side,#0000 calc(100% - 6px),#000 calc(100% - 5.5px))}.loop-core-ring{background:conic-gradient(from 0deg, transparent 0 60%, #9db88466 82%, #e2edd299 95%, transparent 100%);border-radius:50%;animation:9s linear infinite loop-core-spin;position:absolute;inset:-8%;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 1.5px),#000 calc(100% - 1px));mask:radial-gradient(farthest-side,#0000 calc(100% - 1.5px),#000 calc(100% - 1px))}.loop-core-pulse{opacity:0;border:1px solid #86a071;border-radius:50%;animation:1.6s ease-out forwards loop-core-pulse;position:absolute;inset:-8%}.loop-core-disc{background:radial-gradient(circle at 32% 24%,#34503a 0%,#16271a 52%,#0a130c 100%);border-radius:50%;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 1px #ffffff26,inset 0 -8px 14px #0000006e,0 0 0 1px #5d7a4c66,0 8px 20px #0d241240}.loop-core-disc:before{content:"";border:1px solid #ffffff14;border-radius:50%;position:absolute;inset:7%}.loop-core-disc:after{content:"";background:linear-gradient(112deg,#0000 44%,#ffffff1f 50%,#0000 56%);animation:9s ease-in-out infinite loop-core-sheen;position:absolute;inset:-30%;translate:-120%}.loop-core-mark{aspect-ratio:1;width:52%;display:block;position:relative;overflow:visible}@keyframes loop-core-breathe{50%{opacity:.6;scale:.94}}@keyframes loop-core-spin{to{rotate:360deg}}@keyframes loop-core-pulse{0%{opacity:.5;scale:1}to{opacity:0;scale:1.9}}@keyframes loop-core-sheen{0%,60%{translate:-120%}to{translate:120%}}.loop-center span{text-transform:uppercase;letter-spacing:.065em;color:var(--primary);white-space:nowrap;font-size:11px;font-weight:500}.loop-center p{letter-spacing:-.01em;color:var(--foreground);font-size:14px;line-height:1.5}@supports (width:1cqw){.loop-center{width:min(250px,26cqw)}.loop-center p{font-size:clamp(11px,1.45cqw,14px)}}.loop-rail{stroke:#d1dac5;stroke-width:2px}.loop-rail-glow{stroke:#a5cf4f;stroke-width:9px;stroke-opacity:.16;stroke-dasharray:100;stroke-linecap:round;transition:stroke-dashoffset 50ms linear}.loop-grown-rail{stroke:url(#loop-rail-grad);stroke-width:2px;stroke-dasharray:100;stroke-dashoffset:100px;stroke-linecap:round;transition:stroke-dashoffset 50ms linear}.loop-traveler{stroke:#9bd12c;stroke-width:6px;stroke-linecap:round;stroke-dasharray:3 97;transition:stroke-dashoffset 50ms linear}.loop-traveler-trail{stroke:#8fbd3c;stroke-width:3.5px;stroke-opacity:.4;stroke-linecap:round;stroke-dasharray:14 86;transition:stroke-dashoffset 50ms linear}.loop-globe-ring{fill:none;stroke:#8fb352;stroke-width:1.4px;stroke-linecap:round;stroke-dasharray:1 8;opacity:.75;animation:16s linear infinite loop-ring}.loop-globe-ring[data-reverse]{animation-direction:reverse}.loop-beam{fill:none;stroke:#7fae2e;stroke-width:1.8px;stroke-linecap:round;stroke-dasharray:1 9;animation:1.1s linear infinite loop-beam-flow}.loop-ripple{fill:none;stroke:#8fb837;stroke-width:1.6px;transform-box:fill-box;transform-origin:50%;animation:1.8s ease-out forwards loop-ripple}.loop-addition[data-built=true] .loop-led{animation:2.4s ease-in-out infinite loop-led}@keyframes loop-led{50%{opacity:.3}}.loop-addition[data-built=true] .loop-float{animation:6s ease-in-out infinite loop-float}.loop-scan{transition:stroke .4s}.loop-progress,.loop-type,.loop-trend{stroke-dasharray:100}.loop-packet-glow,.loop-packet-core{fill:none;stroke-linecap:round;stroke-dasharray:.01 99.99;opacity:0}.loop-packet-glow{stroke:#b4e64a;stroke-opacity:.35;stroke-width:9px}.loop-packet-core{stroke:#f2ffc2;stroke-width:4px}.loop-bar{transform-box:fill-box;transform-origin:50% 100%}.loop-addition[data-built=true] .loop-scan{animation:3.4s ease-in-out infinite loop-scan}.loop-addition[data-built=true] .loop-progress{animation:5s ease-in-out infinite loop-progress}.loop-addition[data-built=true] .loop-type{animation:4.2s ease-in-out infinite loop-progress}.loop-addition[data-built=true] .loop-trend{animation:6s ease-in-out infinite loop-progress}.loop-addition[data-built=true] .loop-twinkle{animation:3.2s ease-in-out infinite loop-twinkle}.loop-addition[data-built=true] .loop-bar{animation:2.8s ease-in-out infinite loop-bar}.loop-addition[data-built=true] .loop-code{animation:3.4s ease-in-out infinite loop-code}.loop-addition[data-built=true] :where(.loop-packet-glow,.loop-packet-core){animation:3.6s cubic-bezier(.45,0,.25,1) infinite loop-packet;animation-delay:var(--d,0s)}@keyframes loop-scan{0%,to{stroke:#9faf8b;opacity:.55}45%{stroke:#dcf6a6;opacity:1}}@keyframes loop-progress{0%{stroke-dashoffset:100px;opacity:.45}55%,85%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:.45}}@keyframes loop-twinkle{50%{opacity:.4}}@keyframes loop-bar{50%{transform:scaleY(.42)}}@keyframes loop-code{50%{stroke:#86b552}}@keyframes loop-packet{0%{stroke-dashoffset:0;opacity:0}12%,88%{opacity:1}to{stroke-dashoffset:-100px;opacity:0}}@keyframes loop-dash{to{stroke-dashoffset:-104px}}@keyframes loop-ring{to{stroke-dashoffset:-180px}}@keyframes loop-beam-flow{to{stroke-dashoffset:-20px}}@keyframes loop-ripple{0%{opacity:.8;transform:scale(.7)}to{opacity:0;transform:scale(1.7)}}@keyframes loop-halo{50%{transform:scale(1.14)}}@keyframes loop-float{50%{translate:0 -4px}}.ecosystem-loop:not([data-running=true]) :where(.loop-globe-ring,.loop-beam,.loop-float,.loop-led,.loop-station-halo,.loop-core-glow,.loop-core-ring,.loop-core-ticks,.loop-scan,.loop-progress,.loop-type,.loop-trend,.loop-twinkle,.loop-bar,.loop-code,.loop-packet-glow,.loop-packet-core,.loop-station-inner),.ecosystem-loop:not([data-running=true]) .loop-core-disc:after{animation-play-state:paused}.loop-station :where(.loop-station-platform,.loop-station-slab,.loop-station-index){transition:opacity .7s}.loop-station:not([data-built=true]) :where(.loop-station-platform,.loop-station-slab,.loop-station-index){opacity:.55}.loop-svg-label{fill:#66735d;transition:fill .7s}.loop-station[data-built=true] .loop-svg-label{fill:#3f4d38}.loop-station-shadow{opacity:.7;transition:opacity .6s}.loop-station-halo{opacity:0;transition:opacity .5s}.loop-station[data-active=true] .loop-station-halo,.loop-station[data-active=true] .loop-station-shadow{opacity:1}.loop-station-rim{fill:none;stroke:#9bd12c;stroke-width:2px;opacity:0;transition:opacity .5s}.loop-station[data-active=true] .loop-station-rim{opacity:.9}.loop-station-inner{fill:none;stroke:#d7e2c6;stroke-dasharray:2 6;transition:stroke .6s}.loop-station[data-built=true] .loop-station-inner{stroke:#9fc35a;animation:26s linear infinite loop-dash}.loop-station[data-active=true] .loop-station-halo{transform-box:fill-box;transform-origin:50%;animation:2.8s ease-in-out infinite loop-halo}.ecosystem-loop:not([data-running=true]) .loop-station[data-active=true] .loop-station-halo{animation-play-state:paused}.loop-addition{opacity:.32;transition:opacity .5s}.loop-addition[data-built=true]{opacity:1}.loop-detail,.loop-next-wave{opacity:0;transition:opacity .35s,translate .45s cubic-bezier(.16,1,.3,1);translate:0 12px}.loop-addition[data-built=true] .loop-detail,.loop-next-wave[data-built=true]{opacity:1;translate:0}.loop-next-wave{transition-delay:.1s}.loop-local-track{stroke:#bccca6;stroke-width:1.2px;stroke-linecap:round;stroke-linejoin:round}.loop-local-flow{stroke:#80a044;stroke-width:1.5px;stroke-dasharray:100;stroke-linecap:round;stroke-linejoin:round;transition:stroke-dashoffset 50ms linear}.loop-port-link{stroke:#a3b98b;stroke-width:1.2px;stroke-linecap:round;fill:none}.loop-cost-drop{stroke-dasharray:100;transition:stroke-dashoffset 50ms linear}.loop-stages{grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;min-width:0;display:grid}.ecosystem-loop .loop-step{text-align:left;box-shadow:none;color:var(--muted-foreground);background:0 0;border:0;border-radius:0;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:12px;padding:20px 0 16px;display:flex;position:relative}.ecosystem-loop .loop-step:hover{color:var(--foreground);background:0 0}.loop-step:focus-visible{outline:2px solid var(--primary);outline-offset:6px;border-radius:2px}.loop-step-track{background:var(--border);height:2px;position:absolute;inset:0 0 auto;overflow:hidden}.loop-step-track i{height:100%;width:var(--step-progress);background:#799a46;transition:width 50ms linear;display:block}.loop-step[data-active=true] .loop-step-track{background:#c1d596}.loop-step-kicker{text-transform:uppercase;letter-spacing:.065em;align-items:center;gap:9px;font-size:11px;font-weight:500;display:flex}.loop-step-kicker>span{color:var(--primary)}.loop-step-kicker>svg{opacity:0;margin-left:auto}.loop-step[data-active=true] .loop-step-kicker>svg{opacity:1}.loop-step strong{letter-spacing:-.02em;font-size:16px;font-weight:500;line-height:1.5}.loop-step[data-active=true] strong{color:var(--foreground)}@media (width<=900px){.loop-stages{gap:14px}.loop-step-kicker{gap:5px;font-size:10px}.loop-step strong{font-size:14px}.loop-step-kicker>svg{display:none}}@media (width<=699px){.ecosystem-loop{padding-block:64px 48px}.loop-scene{margin:24px -20px}.loop-center{width:auto;min-height:92px;margin:4px 20px 0;position:static;translate:none}.loop-center p{font-size:14px}.loop-svg-label{display:none}.loop-stages{grid-template-columns:1fr;gap:0}.ecosystem-loop .loop-step{flex-direction:row;align-items:center;gap:16px;padding:15px 0}.loop-step-kicker{flex-shrink:0;width:102px;font-size:10px}.loop-step strong{font-size:14px;line-height:1.45}}@media (prefers-reduced-motion:reduce){.ecosystem-loop :where(.loop-globe-ring,.loop-beam,.loop-ripple,.loop-float,.loop-led,.loop-station-halo,.loop-core-glow,.loop-core-ring,.loop-core-ticks,.loop-scan,.loop-progress,.loop-type,.loop-trend,.loop-twinkle,.loop-bar,.loop-code,.loop-packet-glow,.loop-packet-core,.loop-station-inner),.ecosystem-loop .loop-core-disc:after{animation:none}.ecosystem-loop :where(.loop-addition,.loop-detail,.loop-next-wave,.loop-grown-rail,.loop-local-flow,.loop-cost-drop,.loop-traveler,.loop-traveler-trail,.loop-rail-glow){transition:none}}
