/* IraNOC Stable 3.2.2 — expressive signal-driven live network scene. */
.network-scene-live .scene-parallax-layer,
.network-scene-live .network-scene-note{
  opacity:0;
  visibility:hidden;
}
.network-scene-live.scene-ready .scene-parallax-layer,
.network-scene-live.scene-ready .network-scene-note{
  opacity:1;
  visibility:visible;
  transition:opacity .32s ease;
}
.network-scene-live.scene-load-failed .scene-parallax-layer,
.network-scene-live.scene-load-failed .network-scene-note{
  opacity:1;
  visibility:visible;
}
.network-scene-live .iranoc-network-unified-image,
.network-scene-live .iranoc-network-custom-image{
  display:block;
  width:100%;
  height:auto;
  max-width:760px;
  max-height:430px;
  margin:auto;
  object-fit:contain;
  pointer-events:none;
  background:transparent!important;
  filter:none!important;
  box-shadow:none!important;
  mix-blend-mode:normal!important;
}
.network-scene-live .iranoc-network-art{
  position:relative;
  display:block;
  width:100%;
  max-width:760px;
  margin:auto;
  aspect-ratio:3/2;
  line-height:0;
}
.network-scene-live .iranoc-network-art .iranoc-network-unified-image{
  width:100%;
  max-width:none;
  max-height:none;
  animation:none!important;
}
.iranoc-network-live-layer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  pointer-events:none;
}
.iranoc-network-live-layer .live-led{opacity:.35;transform-box:fill-box;transform-origin:center;animation:iranoc-natural-led 2.4s steps(2,end) infinite}
.iranoc-network-live-layer .live-led.green{fill:#55e58a;filter:drop-shadow(0 0 4px rgba(70,230,120,.92))}
.iranoc-network-live-layer .live-led.amber{fill:#ffc35b;filter:drop-shadow(0 0 4px rgba(255,185,67,.88))}
.iranoc-network-live-layer .delay-1{animation-delay:-.25s}.iranoc-network-live-layer .delay-2{animation-delay:-1.05s}.iranoc-network-live-layer .delay-3{animation-delay:-1.72s}.iranoc-network-live-layer .delay-4{animation-delay:-2.25s}
.iranoc-ap-live-dot{fill:#4db8ee;opacity:.35;filter:drop-shadow(0 0 5px rgba(69,174,237,.95));animation:iranoc-device-led 1.25s steps(2,end) -.35s infinite}
.iranoc-camera-live-ring{fill:none;stroke:#ea5458;stroke-width:2.2;stroke-dasharray:2 8;stroke-linecap:round;opacity:.22;filter:drop-shadow(0 0 2px rgba(234,68,73,.45));animation:iranoc-camera-breathe 4s ease-in-out infinite}
.iranoc-camera-live-dot{fill:#ff5559;opacity:.35;filter:drop-shadow(0 0 6px rgba(255,55,62,.98));animation:iranoc-device-led 1.05s steps(2,end) -.7s infinite}
.iranoc-signal-waves{fill:none;stroke-linecap:round;stroke-width:4;filter:drop-shadow(0 0 5px rgba(8,170,162,.34))}
.iranoc-signal-waves .signal-wave{transform-box:fill-box;transform-origin:center bottom;animation:iranoc-signal-wave 2.65s ease-in-out infinite}
.iranoc-signal-waves .wave-1{stroke:#08aaa2;animation-delay:0s}.iranoc-signal-waves .wave-2{stroke:#3caee1;animation-delay:-.88s}.iranoc-signal-waves .wave-3{stroke:#8a4bb0;animation-delay:-1.76s}
.iranoc-camera-signal{stroke-width:3.3}.iranoc-camera-signal .wave-1{stroke:#ea5458}.iranoc-camera-signal .wave-2{stroke:#a858b8}.iranoc-camera-signal .wave-3{stroke:#3caee1}
.iranoc-flow-routes path{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}
.iranoc-flow-routes .flow-glow{stroke:#08aaa2;stroke-width:8;opacity:.11;filter:drop-shadow(0 0 6px rgba(8,170,162,.55))}
.iranoc-flow-routes .flow-signal{stroke:#20c8c0;stroke-width:2.25;stroke-dasharray:11 18;opacity:.7;animation:iranoc-route-flow 2.2s linear infinite}
.iranoc-flow-routes .route-ap{stroke:#48b7e9}.iranoc-flow-routes .route-camera{stroke:#8a4bb0}
.iranoc-flow-nodes .flow-node{fill:rgba(255,255,255,.08);stroke:#13c8bf;stroke-width:2.2;opacity:.75;transform-box:fill-box;transform-origin:center;animation:iranoc-node-pulse 2.4s ease-out infinite}
.iranoc-flow-nodes .node-ap{stroke:#48b7e9;animation-delay:-.7s}.iranoc-flow-nodes .node-camera{stroke:#a858b8;animation-delay:-1.2s}.iranoc-flow-nodes .node-rack-b{animation-delay:-.7s}.iranoc-flow-nodes .node-rack-c{animation-delay:-1.2s}
.iranoc-rack-scan{fill:rgba(92,225,216,.14);filter:blur(5px) drop-shadow(0 0 8px rgba(8,170,162,.6));opacity:0;animation:iranoc-rack-scan 5.8s ease-in-out infinite}
.iranoc-packet-flow .packet{fill:#79fff7;opacity:.9;filter:drop-shadow(0 0 5px rgba(8,170,162,.95))}
.iranoc-packet-flow .packet-b{fill:#71ccfa;filter:drop-shadow(0 0 5px rgba(60,174,225,.95))}.iranoc-packet-flow .packet-c{fill:#d17bea;filter:drop-shadow(0 0 5px rgba(164,76,187,.95))}
.iranoc-live-badge{position:absolute;left:5%;top:1.5%;display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid rgba(8,170,162,.3);border-radius:999px;background:rgba(255,255,255,.78);backdrop-filter:blur(10px);color:#087d7a;font:700 8px/1.1 Arial,sans-serif;letter-spacing:.1em;box-shadow:0 7px 22px rgba(22,30,38,.09)}
.iranoc-live-badge b{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.iranoc-live-badge b em{display:block;width:6px;height:6px;border-radius:50%;background:#2bd16f;box-shadow:0 0 0 4px rgba(43,209,111,.13),0 0 7px rgba(43,209,111,.75);animation:iranoc-live-dot 1.4s ease-in-out infinite}.iranoc-live-badge>span{padding-left:7px;border-left:1px solid rgba(8,170,162,.18);font-size:7px;opacity:.7}
.iranoc-live-badge i{display:block;width:3px;height:8px;border-radius:3px;background:#08aaa2;transform-origin:bottom;animation:iranoc-live-meter 1.5s ease-in-out infinite}.iranoc-live-badge i:nth-of-type(2){animation-delay:-.3s}.iranoc-live-badge i:nth-of-type(3){animation-delay:-.65s}.iranoc-live-badge i:nth-of-type(4){animation-delay:-.95s}
html.iranoc-dark .iranoc-live-badge{background:rgba(13,16,22,.64);border-color:rgba(99,216,209,.24);color:#81e2dc;box-shadow:none}
@keyframes iranoc-natural-led{0%,25%,100%{opacity:.28;transform:scale(.92)}26%,58%{opacity:.96;transform:scale(1.08)}59%,78%{opacity:.5;transform:scale(1)}}
@keyframes iranoc-ap-breathe{0%,100%{opacity:.16}50%{opacity:.7}}
@keyframes iranoc-camera-breathe{0%,100%{opacity:.18}50%{opacity:.58}}
@keyframes iranoc-device-led{0%,36%,100%{opacity:.22;transform:scale(.85)}37%,72%{opacity:1;transform:scale(1.3)}73%,86%{opacity:.45;transform:scale(1)}}
@keyframes iranoc-live-meter{0%,100%{transform:scaleY(.35);opacity:.45}50%{transform:scaleY(1);opacity:1}}
@keyframes iranoc-live-dot{0%,100%{opacity:.45;transform:scale(.82)}50%{opacity:1;transform:scale(1.12)}}
@keyframes iranoc-signal-wave{0%,100%{opacity:.14;stroke-dasharray:3 10;stroke-dashoffset:13;transform:scale(.96)}48%{opacity:.92;stroke-dasharray:42 3;stroke-dashoffset:0;transform:scale(1.02)}}
@keyframes iranoc-route-flow{to{stroke-dashoffset:-58}}
@keyframes iranoc-node-pulse{0%,100%{opacity:.26;transform:scale(.72)}50%{opacity:.86;transform:scale(1.15)}}
@keyframes iranoc-rack-scan{0%,12%{opacity:0;transform:translateX(0)}22%{opacity:.65}68%{opacity:.38}78%,100%{opacity:0;transform:translateX(410px)}}
html.iranoc-dark .network-scene-live,
html.iranoc-dark .network-scene-live .scene-parallax-layer,
html.iranoc-dark .network-scene-live .iranoc-network-unified-image,
html.iranoc-dark .network-scene-live .iranoc-network-custom-image{
  filter:none!important;
  box-shadow:none!important;
  text-shadow:none!important;
  background-color:transparent!important;
}
.network-scene-live.motion-on .iranoc-network-art,
.network-scene-live.motion-on .iranoc-network-custom-image{
  transform-origin:center;
  will-change:transform;
  animation:iranoc-network-float var(--scene-speed,8s) cubic-bezier(.45,0,.55,1) infinite;
}
.hero-slide:not(.active) .network-scene-live .iranoc-network-art,
.hero-slide:not(.active) .network-scene-live .iranoc-network-custom-image{animation-play-state:paused}
@media(max-width:600px){
  .network-scene-live .iranoc-network-unified-image,
  .network-scene-live .iranoc-network-custom-image{max-height:280px}
  .network-scene-live.motion-mobile-off .iranoc-network-unified-image,
  .network-scene-live.motion-mobile-off .iranoc-network-art,
  .network-scene-live.motion-mobile-off .iranoc-network-custom-image{animation:none!important}
}
@media(prefers-reduced-motion:reduce){
  .network-scene-live.scene-ready .scene-parallax-layer,
  .network-scene-live.scene-ready .network-scene-note{transition:none}
  .network-scene-live .iranoc-network-unified-image,
  .network-scene-live .iranoc-network-art,
  .network-scene-live .iranoc-network-custom-image{animation:none!important}
  .iranoc-network-live-layer .live-led,.iranoc-ap-live-dot,.iranoc-camera-live-ring,.iranoc-camera-live-dot,.iranoc-live-badge i,.iranoc-live-badge b em,.iranoc-signal-waves .signal-wave,.iranoc-flow-routes .flow-signal,.iranoc-flow-nodes .flow-node,.iranoc-rack-scan{animation:none!important}
  .iranoc-packet-flow{display:none}
}
