/* CGC-Max website · interactive NDI topology · existing navy/cyan/violet */
.tag-engine{left:50%;top:8%;transform:translateX(-50%);white-space:nowrap}
.source-section[data-active-source=ndi]>.container>.source-path{display:none}
.source-section:not([data-active-source=ndi]) #ndi-topology-mount{display:none}
.ndi-topology{margin-top:34px;border:1px solid #4e64804d;border-radius:20px;background:radial-gradient(ellipse at 8% 15%,#30777d12,transparent 55%),radial-gradient(ellipse at 88% 78%,#725dbd16,transparent 60%),#0c1424;box-shadow:0 30px 80px #02061255;overflow:hidden}
.topology-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px 30px 20px}.topology-eyebrow{color:#7699b4;font-size:10px;letter-spacing:.18em}.topology-toolbar h3{font-size:24px;line-height:1.5;color:#e0edfa;margin-top:7px;font-weight:600}.topology-toolbar>button{flex-shrink:0;border:1px solid #60768e55;border-radius:8px;color:#9fb3cb;background:#19243a;padding:11px 14px;font-size:12px;min-height:44px;cursor:pointer}.topology-toolbar>button:hover{border-color:#91a8c9}.topology-toolbar>button[aria-pressed=true]{color:#e4c590;border-color:#be9c5266}.ndi-topology [hidden]{display:none!important}
.topology-device-picker{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:0 30px}.topology-device-picker>button{border:1px solid #43536e66;border-radius:9px;background:#131e30;color:#91a7c5;min-height:47px;padding:10px 6px;font-size:14px;cursor:pointer;white-space:nowrap;transition:background .18s,color .18s,border-color .18s}.topology-device-picker>button:hover{background:#203047;border-color:#718eae88;color:#d6e7fa}.topology-device-picker>button[aria-pressed=true]{background:linear-gradient(110deg,#25404f,#313553);color:#e2f2ff;border-color:#7ca3bf99;box-shadow:inset 0 1px #c8eaff1c}
.topology-protocols{display:flex;gap:7px;padding:12px 30px 0;flex-wrap:wrap}.topology-protocols button{border:1px solid #55688555;border-radius:7px;min-height:38px;padding:8px 13px;background:#111e31;color:#9cb0ca;font-size:12px;cursor:pointer}.topology-protocols button[aria-pressed=true]{color:#c9bfff;border-color:#9d8cdd80;background:#322c4e}
.topology-legend{display:flex;gap:25px;align-items:center;padding:25px 30px 0;font-size:12px;color:#8ba3c1}.topology-legend>span:not(.legend-hint){display:flex;align-items:center;gap:8px}.topology-legend>span:not(.legend-hint)::before{content:'';width:18px;height:2px;background:currentColor}.legend-video{color:#78d5cf}.legend-control{color:#b8a4ee}.legend-power{color:#bca477}.topology-legend .legend-power::before{height:0!important;background:none!important;border-top:2px dashed currentColor}.legend-hint{margin-left:auto;color:#8397b2}
.topology-canvas{position:relative;width:100%;aspect-ratio:2;isolation:isolate;background-image:radial-gradient(#96b1df1d .7px,transparent .7px);background-size:22px 22px}.topology-wires{position:absolute;inset:0;width:100%;height:100%;z-index:0;fill:none;stroke-linecap:round;stroke-linejoin:round}.wire-base{stroke-width:1.6;opacity:.55}.wire-video{stroke:#64ddd4;marker-end:url(#ndi-arrow)}.wire-control{stroke:#b1a1f4;marker-end:url(#control-arrow)}.wire-flow{stroke-width:2.5;stroke-dasharray:11 75;animation:ndi-flow 3s linear infinite;marker-end:none;opacity:.9}.wire-control.wire-flow{animation-duration:3.7s}.wire-power{stroke:#c4a46d;stroke-width:1.4;stroke-dasharray:5 7;opacity:.6}
.topology-node{position:absolute;width:23.636%;height:27.273%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px solid #435e795e;border-radius:13px;background:linear-gradient(140deg,#182b3b,#111d2e 65%);color:#a9c2db;z-index:1;cursor:pointer;min-width:0;transition:transform .2s,border-color .2s,box-shadow .2s}.topology-node:hover{transform:translateY(-3px);border-color:#82b2c9b3;box-shadow:0 12px 24px #02071466}.topology-node[aria-pressed=true]{border-color:#a194d5;box-shadow:0 0 0 1px #a194d529,0 12px 30px #08091755}.topology-tablet,.topology-network,.topology-pc{top:6.364%}.topology-tablet,.topology-hub{left:2.727%}.topology-network,.topology-adapter{left:38.182%}.topology-pc,.topology-box{left:73.636%}.topology-box,.topology-adapter,.topology-hub{top:57.273%;background:linear-gradient(140deg,#22293f,#171c30 65%);border-color:#7b6eab55}.topology-pc{background:radial-gradient(ellipse at 50% 0,#38516855,transparent 80%),#132536;border-color:#73c7cc66}.node-sequence{position:absolute;left:12px;top:10px;font-size:10px;letter-spacing:.1em;color:#6785a4}.topology-box .node-sequence,.topology-adapter .node-sequence,.topology-hub .node-sequence{color:#8f80b5}.topology-icon{height:49px;width:73px;display:block;color:#7cbed0}.topology-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.topology-box .topology-icon,.topology-adapter .topology-icon,.topology-hub .topology-icon{color:#b2a2df}.diagram-screen{fill:#38687c3b}.topology-node strong{font-size:17px;font-weight:600;color:#dceafb;line-height:1.35}.topology-subtitle{font-size:11px;color:#91a7c2;line-height:1.4;text-align:center;padding:0 7px}
.wire-label{position:absolute;z-index:1;font-size:10px;line-height:1.4;color:#82b5bc;background:#0c1727;padding:4px 8px;border:1px solid #415a7055;border-radius:5px;text-align:center;white-space:nowrap}.label-video-a{left:32.273%;top:14%;transform:translateX(-50%)}.label-video-b{left:67.727%;top:14%;transform:translateX(-50%)}.label-control{left:85.455%;top:44.4%;transform:translate(-50%,-50%);color:#c4b2ee;border-color:#8e78bc4d}.label-target{left:67.727%;top:64.5%;transform:translateX(-50%);color:#ab9ecb}.label-return{left:32.273%;top:64.5%;transform:translateX(-50%);color:#ab9ecb}.label-hub{left:14.545%;top:44.4%;transform:translate(-50%,-50%);color:#ab9ecb}
.topology-power{position:absolute;left:42%;top:88%;display:flex;align-items:center;gap:8px;color:#bda575;padding:5px 12px;border:1px dashed #bda57566;border-radius:8px;background:#1c2030;z-index:2}.topology-power svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.5}.topology-power>span{font-size:11px}.topology-power small{display:block;font-size:9px;color:#9e957e;margin-top:4px}.topology-mobile-return{display:none}.topology-detail{display:flex;align-items:flex-start;gap:17px;margin:0 30px;padding:21px 23px;background:#19243a88;border:1px solid #51668244;border-radius:11px}.detail-index{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;color:#bba9eb;background:#3c335c66;border:1px solid #9180bd66;border-radius:9px;font-size:13px}.topology-detail strong{display:block;color:#d4e4f8;font-size:15px;font-weight:600;line-height:1.5}.topology-detail p{font-size:13px;line-height:1.85;color:#96aac5;margin:7px 0 0}.topology-caption{display:flex;justify-content:space-between;gap:24px;padding:17px 30px 24px;color:#8b9cb4;font-size:10px;line-height:1.8}.topology-caption>span:last-child{white-space:nowrap;color:#7187a2}.ndi-topology button:focus-visible{outline:2px solid #96e6de;outline-offset:4px}
.ndi-topology[data-wiring=generic] .target-wire,.ndi-topology[data-wiring=ferrum] .target-wire,.ndi-topology[data-wiring=wireless] .target-wire{stroke-dasharray:5 6;opacity:.5}.ndi-topology:not([data-wiring=adapter]) .wire-flow.target-wire{display:none}.topology-power.power-hub{left:14.545%;transform:translateX(-50%)}.topology-power.power-adapter{left:50%;transform:translateX(-50%)}
@keyframes ndi-flow{to{stroke-dashoffset:-172}}
@media(max-width:1000px){.topology-toolbar{padding:22px 22px 17px}.topology-toolbar h3{font-size:21px}.topology-device-picker{padding-inline:22px;gap:6px}.topology-device-picker>button{font-size:12px}.topology-legend{padding-inline:22px;gap:16px;font-size:11px}.topology-icon{width:56px;height:38px}.topology-node{gap:5px}.topology-node strong{font-size:14px}.topology-subtitle{font-size:9px}.node-sequence{font-size:9px;left:9px;top:8px}.wire-label{font-size:8px;padding:3px 5px}.topology-detail{margin-inline:22px;padding:17px}.topology-caption{padding-inline:22px;gap:15px}.topology-power{left:39%;top:87%}.topology-power small{font-size:8px}.topology-power svg{width:22px}.topology-protocols{padding-inline:22px}}
@media(max-width:700px){.ndi-topology{border-radius:14px;margin-top:24px}.topology-toolbar{padding:20px 17px 16px;gap:10px;align-items:flex-start}.topology-toolbar h3{font-size:20px;max-width:225px}.topology-eyebrow{font-size:8px}.topology-toolbar>button{font-size:10px;padding:8px 10px;min-height:40px}.topology-device-picker{grid-template-columns:repeat(3,minmax(0,1fr));padding-inline:17px;gap:7px}.topology-device-picker>button{font-size:12px;min-height:44px}.topology-legend{flex-wrap:wrap;padding:21px 17px 0;gap:10px 17px}.legend-hint{width:100%;margin:0;font-size:10px}.topology-protocols{padding-inline:17px}.topology-canvas{display:flex;flex-direction:column;gap:29px;padding:20px 17px 0;aspect-ratio:auto;background-size:18px 18px}.topology-wires,.wire-label{display:none}.topology-node{position:relative;inset:auto;width:100%;height:86px;flex-direction:column;align-items:flex-start;justify-content:center;padding:14px 38px 14px 84px;gap:5px;border-radius:10px}.topology-icon{position:absolute;left:18px;top:20px;width:49px;height:40px}.node-sequence{left:auto;right:12px;top:12px;font-size:10px}.topology-node strong{font-size:16px}.topology-subtitle{font-size:11px;padding:0;text-align:left}.topology-node:not(.topology-hub)::after{position:absolute;top:calc(100% + 5px);left:50%;transform:translateX(-50%);content:'↓';color:#81c9cd;font-size:17px;line-height:19px}.topology-box::after,.topology-adapter::after{color:#b3a0e5!important}.topology-pc::after{content:'↓  ' attr(data-mobile-connection)!important;color:#b3a0e5!important;font-size:10px!important;white-space:nowrap}.topology-box::after{content:'↓  ' attr(data-mobile-connection)!important;font-size:10px!important;white-space:nowrap}.topology-power{position:relative;inset:auto;margin:0 auto;width:auto;max-width:100%;padding:8px 13px}.topology-power small{font-size:10px;line-height:1.5}.topology-power>span{font-size:12px}.topology-mobile-return{display:block;text-align:center;color:#b3a3df;font-size:12px;padding:18px 10px 22px}.topology-detail{margin:0 17px;padding:17px 13px;gap:11px}.detail-index{width:28px;height:28px;font-size:11px}.topology-detail strong{font-size:14px}.topology-detail p{font-size:12px;line-height:1.85}.topology-caption{display:block;padding:15px 17px 22px;font-size:10px}.topology-caption>span{display:block}.topology-caption>span+span{margin-top:5px}.topology-node:hover{transform:none}.tag-engine{top:3%;left:50%}}
@media(prefers-reduced-motion:reduce){.wire-flow{animation:none;stroke-dasharray:none;opacity:.25}.topology-node{transition:none}.topology-node:hover{transform:none}}
@media(max-width:700px){.topology-power.power-hub,.topology-power.power-adapter{left:auto;transform:none}}
