/* CSS/SVG scene: no generated raster assets, animation loops continuously. */
.animated-infrastructure{isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 55%,#d1fe170d,transparent 65%);perspective:1000px}
.animated-infrastructure .scene-grid{inset:25% -60% -75%;background:repeating-linear-gradient(90deg,#d1fe170d 0 1px,transparent 1px 48px),repeating-linear-gradient(0deg,#d1fe170d 0 1px,transparent 1px 48px);animation:grid-travel 12s linear infinite}
.core-glow{position:absolute;inset:18% 10% 11%;background:radial-gradient(ellipse,#d1fe1726,transparent 65%);filter:blur(20px);animation:core-breathe 5s ease-in-out infinite}
.compute-cluster{position:absolute;inset:0;transform:rotate(-8deg);z-index:3}
.compute-node{--node-width:100px;--node-height:220px;--depth:30px;position:absolute;width:var(--node-width);height:var(--node-height);transform-style:preserve-3d;animation:server-float 7s ease-in-out infinite}
.node-core{left:44%;top:28%;--node-width:108px;--node-height:222px;--depth:35px;z-index:3}
.node-left{left:14%;top:43%;--node-width:70px;--node-height:145px;--depth:24px;animation-delay:-2.3s;z-index:1}
.node-right{left:75%;top:25%;--node-width:68px;--node-height:145px;--depth:24px;animation-delay:-4.7s;z-index:2}
.node-front{position:absolute;inset:0;overflow:hidden;border-radius:5px;border:1px solid #ffffff52;background:linear-gradient(110deg,#383e46 0%,#23262a 26%,#131416 77%,#2a2d32 100%);box-shadow:inset 1px 0 0 #ffffff33,0 20px 40px #00000080;z-index:2}
.node-core .node-front{border-color:#d1fe1780;box-shadow:inset 1px 0 0 #ffffff33,0 0 24px #d1fe171a,0 20px 40px #00000080}
.node-side{position:absolute;top:0;left:100%;width:var(--depth);height:100%;background:linear-gradient(90deg,#131416,#0b0b0b);border:1px solid #ffffff33;border-left:0;transform-origin:left;transform:skewY(-36deg);border-radius:0 3px 3px 0}
.node-top{position:absolute;top:calc(var(--depth)*-.73);left:0;width:100%;height:calc(var(--depth)*.73);background:linear-gradient(160deg,#5c626a,#23262a);border:1px solid #ffffff52;transform:skewX(-54deg);transform-origin:bottom left;border-radius:3px 3px 0 0}
.node-mark{font:8px monospace;letter-spacing:1px;color:#cecece;border-bottom:1px solid #ffffff1a;padding:12px 9px;height:35px}
.node-core .node-mark{color:#d1fe17;font-size:9px}
.server-slots{position:absolute;inset:43px 8px 12px;border-radius:2px;background:repeating-linear-gradient(0deg,#0b0b0b 0 8px,#23262a 9px 10px,#ffffff1a 11px,#131416 12px 24px);box-shadow:inset 0 0 8px #00000080}
.node-leds{position:absolute;top:49px;bottom:17px;left:15px;width:4px;background:repeating-linear-gradient(0deg,transparent 0 20px,#d1fe17 20px 23px,transparent 23px 24px);filter:drop-shadow(0 0 4px #d1fe17);animation:led-signal 3s steps(3) infinite}
.node-left .node-leds{animation-delay:-1s}.node-right .node-leds{animation-delay:-2s}
.scan-light{position:absolute;left:0;right:0;height:42px;background:linear-gradient(transparent,#d1fe1726,transparent);top:0;animation:server-scan 4s linear infinite;box-shadow:0 1px 0 #d1fe1733}
.node-shadow{position:absolute;top:calc(100% + 45px);left:-20%;width:160%;height:20px;border-radius:50%;background:#00000080;filter:blur(7px);animation:shadow-breathe 7s ease-in-out infinite}
.orbital{position:absolute;width:77%;height:73%;top:15%;left:14%;border:1px solid #d1fe1733;border-radius:50%;transform:rotate(-27deg) scaleY(.44);z-index:2;box-shadow:0 0 15px #d1fe170d,inset 0 0 15px #d1fe170d}
.orbital>span{position:absolute;inset:-1px;border-radius:50%;animation:orbit-travel 9s linear infinite}
.orbital>span:before{content:'';position:absolute;left:50%;top:-5px;width:10px;height:10px;background:#d1fe17;border-radius:50%;box-shadow:0 0 14px #d1fe17,0 0 30px #d1fe1780}
.orbital-two{top:22%;transform:rotate(37deg) scaleY(.47);border-color:#ffffff1a;z-index:0}.orbital-two>span{animation-duration:13s;animation-direction:reverse}.orbital-two>span:before{background:#fff;box-shadow:0 0 10px #ffffff80;width:6px;height:6px;top:-3px}
.orbital-three{width:60%;height:58%;left:21%;top:20%;transform:rotate(83deg) scaleY(.52);border-color:#d1fe171a;z-index:0}.orbital-three>span{animation-duration:17s}.orbital-three>span:before{width:5px;height:5px;top:-2px}
.data-network{position:absolute;inset:0;width:100%;height:100%;z-index:1;overflow:visible}.network-base{stroke:#d1fe1726;stroke-width:1}.network-flow{stroke:#d1fe17;stroke-width:1.5;stroke-dasharray:8 75;animation:data-transfer 8s linear infinite;filter:drop-shadow(0 0 5px #d1fe17)}.data-network circle{fill:#d1fe17;opacity:.6;animation:core-breathe 3s ease-in-out infinite}
.data-chip{position:absolute;z-index:4;display:flex;align-items:center;gap:8px;border:1px solid #ffffff24;background:#ffffff0d;box-shadow:inset 0 1px 1px #ffffff1a,0 6px 20px #00000040;backdrop-filter:blur(12px);border-radius:8px;padding:10px 12px;font:9px monospace;letter-spacing:.5px;color:#cecece;animation:chip-float 8s ease-in-out infinite}
.chip-one{top:19%;left:14%;animation-delay:-2s}.chip-one i{width:5px;height:5px;background:#d1fe17;border-radius:50%;box-shadow:0 0 8px #d1fe17}.chip-two{right:5%;bottom:24%;animation-delay:-4s}.chip-two span{color:#d1fe17;font-size:16px}.chip-three{left:15%;bottom:16%;animation-delay:-6s;color:#d1fe17;background:#d1fe170d;border-color:#d1fe1733}.chip-three span{font-size:17px}
.animated-infrastructure .scene-caption{bottom:28px;left:22%;color:#a8a8a8;font-size:9px;z-index:4}.animated-infrastructure .scene-number{color:#a8a8a8;z-index:4}
.provider-banner.aeza{background:#16b9cf}.provider-banner.beget{background:#1d4ed8}.provider-banner.timeweb{background:#dc6655}.provider-banner.spaceweb{background:#3393ff}.provider-banner .provider-name{color:#fff;text-shadow:0 1px 2px #00000026}.provider-banner .rank{color:#fff;background:#00000026;padding:4px 6px;border-radius:5px}.provider-banner:after{border-color:#ffffff33;box-shadow:0 0 0 20px #ffffff0d,0 0 0 40px #ffffff08}
@keyframes server-float{0%,100%{transform:translateY(0) rotateY(-4deg)}50%{transform:translateY(-18px) rotateY(4deg)}}
@keyframes chip-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes orbit-travel{to{transform:rotate(360deg)}}
@keyframes data-transfer{to{stroke-dashoffset:-332}}
@keyframes core-breathe{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes server-scan{from{transform:translateY(-45px)}to{transform:translateY(240px)}}
@keyframes led-signal{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes shadow-breathe{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:.3;transform:scale(.8)}}
@keyframes grid-travel{from{transform:perspective(400px) rotateX(57deg) translateY(0)}to{transform:perspective(400px) rotateX(57deg) translateY(48px)}}
@media(max-width:1100px) and (min-width:801px){.node-core{left:39%}.node-left{left:7%}.node-right{left:73%;--node-width:55px}.data-chip{font-size:8px;padding:8px}.chip-one{left:8%}.chip-three{left:8%}}
@media(max-width:800px){.animated-infrastructure{min-height:345px;max-width:580px;width:100%;margin:auto}.node-core{top:26%;--node-width:86px;--node-height:180px;--depth:27px}.node-left{--node-width:60px;--node-height:115px;--depth:20px;top:41%}.node-right{--node-width:58px;--node-height:118px;--depth:20px}.chip-one{top:12%}.chip-three{bottom:17%;left:10%}.chip-two{right:4%;bottom:23%}.animated-infrastructure .scene-number{top:10px;right:15px;font-size:8px}.animated-infrastructure .scene-caption{font-size:8px;bottom:18px;left:24%}}
@media(max-width:480px){.animated-infrastructure{min-height:310px}.node-core{left:41%;--node-width:72px;--node-height:159px;--depth:24px}.node-left{left:10%;--node-width:48px;--node-height:100px;--depth:17px}.node-right{left:77%;--node-width:43px;--node-height:98px;--depth:16px}.node-mark{font-size:6px;padding:9px 6px;height:26px}.node-core .node-mark{font-size:7px}.server-slots{inset:33px 5px 9px}.node-leds{top:35px;left:10px;width:3px}.data-chip{padding:7px 9px;font-size:7px;gap:6px}.chip-one{left:7%;top:15%}.chip-two{right:4%;bottom:22%;font-size:6px}.chip-three{left:7%;bottom:15%;font-size:6px}.orbital{width:86%;left:7%}.animated-infrastructure .scene-caption{font-size:6px;left:21%}.animated-infrastructure .scene-number{font-size:6px}}
@media(prefers-reduced-motion:reduce){.animated-infrastructure *{animation:none!important}}
