/* 3D experience — locally bundled WebGL, no CDN dependency */
.hero{background:radial-gradient(ellipse at 80% 35%,#205bc1 0,transparent 48%),linear-gradient(120deg,#051331,#0b2d73 70%,#1044a5)}
.hero-inner{grid-template-columns:1fr 1.1fr;gap:26px;padding-top:65px;padding-bottom:60px;min-height:700px}
.hero h1{font-size:clamp(38px,4.9vw,66px);letter-spacing:-.045em;text-shadow:0 4px 0 #071d49,0 18px 45px #0005}
.hero h1 .accent{color:#97c5ff}
.orbit-card{position:relative;background:linear-gradient(140deg,#ffffff0d,#ffffff03);border:1px solid #a5cbff36;padding:22px 14px 14px;box-shadow:0 32px 70px #0005,inset 0 1px 0 #ffffff30;border-radius:26px;backdrop-filter:none}
.orbit-title{color:#e3efff;font-size:11px;letter-spacing:.23em}
.construction-scene{width:100%;height:370px;position:relative;cursor:grab;margin:-5px 0 -10px}
.construction-scene:active{cursor:grabbing}
.construction-scene canvas,#equipArt canvas{width:100%;height:100%;display:block;touch-action:pan-y}
.scene-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 12px 14px;gap:8px;color:#b6d1fa;font-size:9px;letter-spacing:.1em}
.scene-toolbar button{background:#ffffff0c;border:1px solid #ffffff30;color:#d9eaff;padding:7px 11px;border-radius:20px;font:inherit;cursor:pointer}
.orbit-stage{width:auto;height:auto;margin:0 5px}.orbit-ring,.orbit-center{display:none}.orbit-dots{position:static;display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.orbit-dot{position:static;width:43px;height:30px;border-radius:7px;margin:0;font-size:10px;border:1px solid #ffffff25;background:#ffffff08}.orbit-dot.selected{box-shadow:0 3px 0 #8cbcff,0 7px 20px #0003}
.orbit-detail{min-height:0;margin-top:13px;text-align:left;padding:12px 16px;background:#061b4970;border-color:#ffffff15}.orbit-detail strong{font-size:13px}.orbit-detail span{font-size:11px}
.stats-band{position:relative;box-shadow:0 16px 40px #0b348914;z-index:2}.stat-card{background:linear-gradient(145deg,#fff,#eef5ff)}
.cap-card,.svc-card,.project-card,.partner-card,.quote-card{box-shadow:0 3px 0 #dbe6f8,0 14px 35px #12346a0c;border-color:#dce7f7;background:linear-gradient(140deg,#fff 65%,#f3f7ff)}
.depth-card{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .18s ease-out,box-shadow .25s;will-change:auto}
.depth-card:hover{transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-6px);box-shadow:0 6px 0 #c8daf6,0 25px 45px #103d9020;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),#e9f3ff,#fff 65%)}
.cap-icon{box-shadow:3px 5px 0 #c0d4f5,0 12px 22px #124fc225;background:linear-gradient(145deg,#eef6ff,#ccdefa);transform:perspective(500px) rotateY(-12deg) rotateX(8deg)}
.btn{box-shadow:0 4px 0 #06256845,0 10px 24px #0015421a;transition:transform .2s,box-shadow .2s}.btn:hover{transform:translateY(-3px);box-shadow:0 6px 0 #06256845,0 16px 28px #00154226}.btn:active{transform:translateY(2px)}
.equip-stage{padding:25px;min-height:510px;background:radial-gradient(ellipse at 55% 35%,#2559ac,#081d4b 80%);border:1px solid #5385cc;box-shadow:0 7px 0 #061d4f,0 30px 50px #092e7530}
.equip-visual{min-height:330px;perspective:none}#equipArt{width:100%;height:330px;filter:none;transform:none!important;transition:none}.equip-name h3{font-size:24px}.equip-name p{font-size:10px;letter-spacing:.15em}.equip-top{letter-spacing:.08em}.equip-stage::before{opacity:.2}
.equip-specs,.equip-desc{box-shadow:0 4px 0 #dce6f7,0 15px 35px #163e7a0a}.equip-tab.active{box-shadow:0 4px 0 #092e8f,0 8px 18px #175be52b;transform:translateY(-2px)}
.dashboard{box-shadow:0 7px 0 #cad9f1,0 28px 50px #00123355;transform:perspective(1200px) rotateY(-4deg) rotateX(2deg)}
.network-card{box-shadow:0 6px 0 #061944,0 25px 40px #08256025;transform:perspective(1000px) rotateY(-4deg)}
.page-hero{background:radial-gradient(ellipse at 80% 10%,#255ebe55,transparent 55%),linear-gradient(125deg,#051331,#113c8e)}
.page-hero::before{transform:perspective(450px) rotateX(40deg) scale(1.5);opacity:.6}
.cta-band{box-shadow:0 8px 0 #082b79,0 25px 60px #174ba533;background:radial-gradient(ellipse at top right,#478cf2aa,transparent 65%),linear-gradient(130deg,#07245c,#164fc0)}
.scene-fallback{text-align:center;padding:80px 30px;font-size:25px}.scene-fallback small{font-size:13px}
@media(max-width:1000px){.hero-inner{grid-template-columns:1fr;max-width:720px;padding-top:45px}.orbit-card{max-width:600px;width:100%;margin:auto}.construction-scene{height:390px}.dashboard,.network-card{transform:none}}
@media(max-width:600px){.hero-inner{padding-top:35px;gap:35px}.hero h1{font-size:43px}.construction-scene{height:300px}.orbit-card{padding:20px 10px 12px}.equip-stage{padding:18px;min-height:450px}#equipArt{height:290px}.equip-visual{min-height:290px}.scene-toolbar{font-size:8px}.orbit-dot{width:34px}.hero-eyebrow{font-size:9px}.hero-badges span{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}.depth-card,.depth-card:hover{transform:none}}
/* Studio-quality equipment presentation */
.equip-stage{background:radial-gradient(ellipse at 50% 35%,#334f71 0%,#152941 55%,#0b192d 100%);border:1px solid #6985a348;padding:24px 26px 18px;box-shadow:0 2px 0 #ffffff15 inset,0 6px 0 #081728,0 28px 60px #09254430;min-height:595px}
.equip-stage::before{display:none}
.equip-visual{min-height:390px;margin:0 -15px}#equipArt{height:390px}
.equip-top{font-size:10px;letter-spacing:.12em;color:#d4e4fa}
.equip-top .live-pill{background:#ffffff08;border:1px solid #ffffff20;color:#dfebff;font-size:9px}
.equip-cam{background:#ffffff09;color:#c9dcf4;font-size:10px;padding:8px 12px}.equip-cam.on{background:#c5daf014;border-color:#aacbee55;color:#eff6ff}
.equip-name{text-align:left;margin-top:-2px}.equip-name h3{font-size:27px;letter-spacing:-.03em;font-weight:650;color:#f1f6ff}.equip-name p{font-size:9px;color:#9eb4d0;letter-spacing:.2em;margin-top:6px}
.viewer-controls{position:relative;z-index:3;border-top:1px solid #ffffff14;margin-top:22px;padding-top:14px;display:flex;justify-content:space-between;align-items:center;gap:8px}.viewer-controls .equip-drag-hint{font-size:10px;margin:0;color:#a7bad2}.viewer-controls>div{display:flex;gap:6px}.viewer-controls button{border:1px solid #bedcff2c;background:#e0eeff08;border-radius:8px;min-width:30px;height:30px;padding:0 10px;color:#dceaff;font-size:11px;cursor:pointer}.viewer-controls button:hover{background:#e0eeff20;border-color:#bbd6fa90}.viewer-controls button:focus-visible{outline:2px solid #9bc5ff;outline-offset:3px}.model-caption{font-size:8px;letter-spacing:.15em;color:#748aa6;position:relative;text-align:right;margin-top:12px}
@media(max-width:600px){.equip-stage{padding:18px;min-height:550px}#equipArt{height:340px}.equip-visual{min-height:340px}.equip-name h3{font-size:24px}.viewer-controls .equip-drag-hint{font-size:9px}.viewer-controls button{padding:0 7px}}
/* Detailed architectural model gets a larger, calmer showcase. */
.construction-scene{height:430px}
@media(max-width:1000px){.construction-scene{height:430px}}
@media(max-width:600px){.construction-scene{height:330px}}
.building-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:16px 4px 2px;padding:5px;background:#071b3f55;border:1px solid #ffffff18;border-radius:12px;position:relative;z-index:3}
.building-tab{font:inherit;font-size:10px;font-weight:600;line-height:1.25;border:1px solid transparent;padding:10px 5px;border-radius:8px;background:transparent;color:#b4cbed;cursor:pointer;transition:background .2s,color .2s}
.building-tab:hover{background:#ffffff16;color:#fff}.building-tab.active{color:#0d3b89;background:#f0f6ff;border-color:#fff;box-shadow:0 3px 8px #03133130}.building-tab:focus-visible{outline:2px solid #a2d0ff;outline-offset:3px}
@media(max-width:600px){.building-tab{font-size:9px;padding:9px 3px}.building-picker{margin-left:0;margin-right:0;gap:3px}}
/* Project network — geographically grounded layered vector map. */
#projectNetwork{padding:27px 24px 20px;background:radial-gradient(ellipse at 75% 10%,#183c64,transparent 65%),linear-gradient(145deg,#0c233d,#071a30);border:1px solid #739ec438;border-radius:24px;box-shadow:0 1px 0 #c1dfff25 inset,0 7px 0 #061527,0 28px 65px #061b3c30;transform:none;align-self:center}
.network-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.network-kicker{font-size:9px;font-weight:700;letter-spacing:.18em;color:#88b4dc;display:block;margin-bottom:10px}#projectNetwork h3{font-size:25px;letter-spacing:-.035em;font-weight:650;line-height:1.12;margin:0;color:#f2f7ff}#projectNetwork h3 span{font-size:14px;font-weight:400;color:#87accc;letter-spacing:0;margin-left:10px}
.network-country{background:#d0eaff08;border:1px solid #a6d3fc25;border-radius:10px;padding:9px 11px;font-size:12px;font-weight:700;letter-spacing:.12em;color:#d8eaff}.network-country span{font-size:14px;margin-left:7px;color:#7dabd3}.network-intro{color:#87a7c3;font-size:12px;margin:12px 0 6px}
.network-map-wrap{position:relative;margin:0 -12px 0;overflow:hidden;border-radius:12px}
#networkSvg{width:100%;height:auto;overflow:visible;display:block}
.map-country-label{fill:#91bce1;opacity:.48;font:600 15px Arial,sans-serif;letter-spacing:.36em}.map-ocean-label{fill:#547a9e;font:9px Arial,sans-serif;letter-spacing:.18em}.map-compass text{fill:#819db9;font:9px Arial,sans-serif}
.network-route{fill:none;stroke:#8dc7ff;stroke-width:1.45;opacity:.68}.route-flow{fill:none;stroke:#d8efff;stroke-width:2.3;stroke-linecap:round;stroke-dasharray:2 48;animation:routeTravel 7s linear infinite;opacity:.82;pointer-events:none}.network-route.route-muted,.route-flow.route-muted{opacity:.1}.network-route.route-active{stroke:#a4d9ff;stroke-width:1.7}.route-flow.route-muted{animation-play-state:paused}
@keyframes routeTravel{to{stroke-dashoffset:-200}}
.map-hub{cursor:pointer;outline:none}.label-leader{stroke:#76a5cf;stroke-width:.8;fill:none;opacity:.65}.hub-halo{fill:#8acaff;opacity:.09;stroke:#b7dfff;stroke-width:.7}.hub-socket{fill:#122f50;stroke:#97bfdf;stroke-width:1.4;filter:drop-shadow(0 3px 3px #001020)}.hub-core{fill:#d0e8ff}.map-hub text{fill:#d1e3f5;font:600 10px Arial,sans-serif;letter-spacing:.09em;paint-order:stroke;stroke:#112c49;stroke-width:3px;stroke-linejoin:round}.map-hub .hq-tag{font:600 7px Arial,sans-serif;letter-spacing:.13em;fill:#77b3df;stroke-width:2px}.hub-hit{fill:transparent;stroke:transparent;stroke-width:1;pointer-events:all}
.map-hub.selected .hub-halo{opacity:.24;stroke:#97ddff;stroke-width:1.5}.map-hub.selected .hub-socket{fill:#d8f0ff;stroke:#fff}.map-hub.selected .hub-core{fill:#246aa9}.map-hub.selected text{fill:#fff}.map-hub.selected .label-leader{stroke:#cbeaff;opacity:1}.map-hub:hover .hub-halo{opacity:.38}.map-hub:focus-visible .hub-hit{stroke:#b6e7ff;fill:#3272ab30}.map-hub:hover text{fill:#fff}
.map-interaction-hint{position:absolute;left:12px;bottom:5px;font-size:10px;color:#7b9bbb;pointer-events:none;letter-spacing:.02em}.map-interaction-hint span{font-size:14px;margin-right:5px;color:#a1c2df}
.network-city-list{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin:13px 0 16px}.network-city{min-width:0;padding:9px 2px;font-size:10px;font-weight:600;border:1px solid #779fc82b;background:#a9d7ff06;color:#a4bed8;border-radius:7px;cursor:pointer;transition:background .2s,color .2s}.network-city:hover{background:#c0deff16;color:#fff}.network-city.selected{background:#d9ecff;color:#133856;border-color:#e5f2ff;box-shadow:0 2px 0 #80acd7}.network-city:focus-visible{outline:2px solid #a9d9ff;outline-offset:3px}
.network-selection{display:flex;align-items:flex-start;gap:12px;background:linear-gradient(120deg,#2f577b30,#0a1c3230);border:1px solid #86b6df20;border-radius:12px;padding:17px 14px;min-height:119px;position:relative}.network-pin{flex:none;background:#b3d5ff0d;border:1px solid #97bfe929;width:33px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#b3d7f8}.network-pin svg{width:20px;height:20px}.network-selection>div:nth-child(2){padding-right:30px}.network-selection span#networkRegion{font-size:8px;color:#83acd2;font-weight:600;letter-spacing:.1em;display:block;margin-bottom:5px}.network-selection h4{font-size:19px;letter-spacing:-.02em;margin:0 0 5px;color:#f4f9ff}.network-selection p{font-size:11px;color:#9ab5d1;line-height:1.65;margin:0}.network-index{position:absolute;right:12px;top:18px;font-size:8px;font-variant-numeric:tabular-nums;color:#698fb3}
.network-map-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:16px;color:#607f9e;font-size:8px;line-height:1.5}.network-map-footer i{display:inline-block;width:4px;height:4px;background:#b4d8f6;border-radius:50%;vertical-align:middle;margin-right:4px}.network-map-footer b{margin:0 5px 0 9px;color:#9dc7e9;font-weight:400}
@media(max-width:600px){#projectNetwork{padding:21px 16px 18px}.network-kicker{font-size:8px}#projectNetwork h3{font-size:22px}#projectNetwork h3 span{display:block;margin:5px 0 0;font-size:12px}.network-country{font-size:10px;padding:8px}.network-intro{font-size:10px}.network-map-wrap{margin-left:-10px;margin-right:-10px}.network-city-list{grid-template-columns:repeat(3,1fr);gap:6px}.network-city{font-size:10px;padding:9px}.network-selection{padding:14px 10px;gap:9px;min-height:123px}.network-selection h4{font-size:18px}.network-selection p{font-size:10px}.network-map-footer{font-size:7px}.map-interaction-hint{font-size:8px;bottom:0}.network-selection span#networkRegion{font-size:7px}}
@media(prefers-reduced-motion:reduce){.route-flow{animation:none}}
@media(max-width:600px){.map-hub text{font-size:13px}.map-hub .hq-tag{font-size:9px}}
