/* Shared 3D coordinates. Keep filters and opacity off preserve-3d containers. */
.factory-campus{width:720px;height:470px;transform:translate(-50%,-43%) rotateX(55deg) rotateZ(-32deg) scale(.86);transform-style:preserve-3d}
.factory-campus *{box-sizing:border-box}
.campus-solid{position:absolute;transform-style:preserve-3d;--top:#f4f8fc;--front:#b9cddd;--side:#8ca9bf}
.solid-face{position:absolute;border:1px solid rgba(46,79,108,.16);backface-visibility:hidden}
.face-top{inset:0;background:var(--top)}
.face-front{left:0;top:100%;width:100%;height:var(--height);transform-origin:top;transform:rotateX(-90deg);background:var(--front)}
.face-back{left:0;bottom:100%;width:100%;height:var(--height);transform-origin:bottom;transform:rotateX(90deg);background:var(--side)}
.face-right{left:100%;top:0;width:var(--height);height:100%;transform-origin:left;transform:rotateY(90deg);background:var(--side)}
.face-left{right:100%;top:0;width:var(--height);height:100%;transform-origin:right;transform:rotateY(-90deg);background:var(--front)}
.face-bottom{inset:0;background:var(--side);transform:translateZ(calc(-1 * var(--height))) rotateX(180deg)}
.campus-plinth{--top:#e8eff5;--front:#c0d1df;--side:#9ab4c9}
.campus-plinth .face-top{box-shadow:0 35px 45px rgba(51,83,117,.22)}
.campus-plinth .face-front{border-bottom:4px solid #478eaf}
.campus-floor{position:absolute;inset:8px;transform:translateZ(1px);background:repeating-linear-gradient(0deg,transparent 0 37px,#b9cdd82e 38px),repeating-linear-gradient(90deg,#eff5f9 0 37px,#b9cdd844 38px);border:1px solid #bdcfdd}
.campus-road{position:absolute;inset:23px;border:25px solid #d1dde6;border-radius:26px;transform:translateZ(2px)}
.campus-road-center{position:absolute;inset:35px;border:1px dashed #fafdff;border-radius:15px;transform:translateZ(3px)}
.cell-pad{--top:#d5e2ec;--front:#9bb6ca;--side:#7b9db6}
.cnc-cell{--top:linear-gradient(135deg,#fff,#e7f0f7);--front:linear-gradient(90deg,#dce8f1,#f8fbfd 65%,#c4d6e4);--side:linear-gradient(#a9bfd1,#819eb6)}
.cnc-cell .face-front{border-bottom:8px solid #327bb0}
.machine-window{position:absolute;left:8px;top:8px;width:40px;height:30px;border:3px solid #7798b0;background:linear-gradient(140deg,#1e425d,#5d8eaa 48%,#244963 50%);box-shadow:inset 0 0 0 1px #94c4da}
.machine-console{position:absolute;right:5px;top:9px;width:14px;height:23px;padding:3px 2px;background:#244c68;color:#58e6b4;font:8px monospace;border:2px solid #9bb4c7}
.roof-vent{--top:repeating-linear-gradient(90deg,#97adbd 0 2px,#dce7ed 2px 5px);--front:#a3b9c9;--side:#7998b0}
.status-beacon{--top:#8affd1;--front:#1fa78b;--side:#128d77}
.rack-shelf{--top:#dce8ee;--front:#5282a1;--side:#426d8a}
.rack-post{--top:#c9dfe9;--front:#547e99;--side:#365f7c}
.tote-blue{--top:#79c6d5;--front:#3b94ac;--side:#2c708e}
.tote-amber{--top:#f6d39c;--front:#d6a458;--side:#b47c34}
.tote-blue .face-top,.tote-amber .face-top{border:3px solid rgba(255,255,255,.25)}
.conveyor-body{--top:#c9d9e4;--front:#799bb5;--side:#557791}
.conveyor-rollers{--top:repeating-linear-gradient(90deg,#577b94 0 3px,#b6cbd9 3px 8px);--front:#416984;--side:#31536e}
.workpiece{--top:#f6f9fc;--front:#b6c9d8;--side:#879fb4}
.inspection-pillar{--top:#e7f2f7;--front:#bccfdd;--side:#6d93ad}
.inspection-roof{--top:#5ab6cb;--front:#317b98;--side:#255a78}
.inspection-light{position:absolute;width:17px;height:40px;transform:translateZ(24px);background:#5ce5dc80;box-shadow:0 0 12px #3ac4d7;animation:campus-scan 3s ease-in-out infinite}
.hub-base{--top:#d1e8f0;--front:#78abc0;--side:#4a86a5}
.control-hub{--top:#446e8c;--front:linear-gradient(90deg,#214c68,#3b7895);--side:repeating-linear-gradient(0deg,#244963 0 5px,#40708b 5px 6px)}
.hub-screen{position:absolute;inset:10px 6px 20px;border:1px solid #77cddb;background:linear-gradient(145deg,#1b526f,#143e5a);color:#c9faff;text-align:center;padding-top:5px;font:600 22px var(--font-display);text-shadow:0 0 12px #79e8f5}
.hub-cap{--top:#9ee7ed;--front:#4091ab;--side:#34728d}
.campus-label-anchor{position:absolute;width:0;height:0;transform:translateZ(3px)}
.campus-label{position:absolute;transform:translate(-50%,-50%) rotate(-19deg);z-index:5;white-space:nowrap;pointer-events:none;padding:2px 3px;background:#f6fbffe6;border-radius:2px;transform-origin:center}
.campus-label-title{font:600 10px var(--font-body,sans-serif);color:#3d6079}
.campus-label-side{transform:translate(-50%,-50%) rotate(43deg)}
.unit-number{position:absolute;left:6px;top:5px;font:600 10px var(--font-display);color:#4f819e}
.campus-label-sub{display:none}
.floor-caption{position:absolute;left:115px;bottom:8px;font:7px var(--font-display);letter-spacing:.15em;color:#65869e;transform:translateZ(3px)}
.campus-vehicle{position:absolute;left:0;top:0;width:0;height:0;transform-style:preserve-3d}
.vehicle-body{--top:#f2f7fb;--front:#439bb6;--side:#2c6c8e}
.vehicle-wheel{--top:#355367;--front:#20384a;--side:#152b3b}
.factory-stage .hud-order{left:0;top:15%;width:132px}
.factory-stage .hud-oee{right:-1%;top:35%;width:130px}
.factory-stage .hud-ai{left:5%;bottom:5%;width:140px}
.factory-stage .twin-panel{right:0;bottom:3%}
.factory-stage .stage-label{top:18px}
@keyframes campus-drive{to{offset-distance:100%}}
@keyframes campus-scan{50%{transform:translateZ(43px);opacity:.35}}
.campus-plinth{--top:#f3faff;--front:#dcecf7;--side:#c3dfea}
.campus-plinth .face-front{border-bottom:2px solid #8acbe3}
.campus-plinth .face-top{box-shadow:0 28px 55px #5086b323}
.campus-floor{background:repeating-linear-gradient(0deg,transparent 0 37px,#bddcf530 38px),repeating-linear-gradient(90deg,#f4fbff 0 37px,#bddcf550 38px);border-color:#d4e9f5}
.cell-pad{--top:#e9f4fc;--front:#cfe6f4;--side:#bdd8eb}
.cnc-cell{--top:linear-gradient(135deg,#fff,#f1f9ff);--front:linear-gradient(90deg,#e4f2fc,#fff 65%,#d9ebf8);--side:linear-gradient(#d6eafa,#b2d4ec)}
.cnc-cell .face-front{border-bottom:5px solid #70bbef}
.machine-window{border-color:#b1d3e9;background:linear-gradient(140deg,#a3d9ef,#e1f6fe 48%,#78b9dd 50%,#4e98c4);box-shadow:inset 0 0 0 1px #d9f6ff}
.machine-console{background:#6faace;border-color:#c4e2f1;color:#d9ffee}
.roof-vent{--top:repeating-linear-gradient(90deg,#b7d5e7 0 2px,#f0f9ff 2px 5px);--front:#d4e6f3;--side:#afd1e5}
.rack-shelf{--top:#f1faff;--front:#abcfe4;--side:#96bdd7}.rack-post{--top:#e2f4ff;--front:#9ac4de;--side:#7baccc}
.tote-blue{--top:#a5e7ec;--front:#75c6d5;--side:#57b1c6}.tote-amber{--top:#ffdf9c;--front:#f5c977;--side:#e2b363}
.conveyor-body{--top:#e4f3fc;--front:#bad7e8;--side:#9bc3dc}.conveyor-rollers{--top:repeating-linear-gradient(90deg,#9dc5dc 0 3px,#edf8ff 3px 8px);--front:#a0c9df;--side:#80b2ce}
.inspection-pillar{--top:#fff;--front:#e1eff8;--side:#b5d5e9}.inspection-roof{--top:#a6e8ec;--front:#79cbd7;--side:#57aebe}
.vehicle-body{--top:#f8fdff;--front:#8bcde3;--side:#64adcc}
.intelligence-node{position:absolute;left:305px;top:210px;width:0;height:0;transform:translateZ(155px);transform-style:preserve-3d}
.intelligence-orb{position:absolute;width:88px;height:88px;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);z-index:6;pointer-events:none;background:radial-gradient(circle at 30% 24%,#fff 0 3%,#adf4f7 12%,#36c7e4 32%,#168bcb 60%,#0963b5 85%);box-shadow:inset -7px -8px 16px #034d9b35,0 0 28px #30bce550,0 0 65px #46c9e425;display:flex;align-items:center;justify-content:center;flex-direction:column;color:white}
.intelligence-title{font:600 29px var(--font-display);text-shadow:0 1px 9px #c7faff}.intelligence-subtitle{font-size:9px;margin-top:2px;letter-spacing:.12em}
.intelligence-orbit{position:absolute;left:-65px;top:-65px;width:130px;height:130px;border:1px solid #48b8e480;border-radius:50%;box-shadow:0 0 12px #54ceef20}
.intelligence-footprint{position:absolute;left:245px;top:150px;width:120px;height:120px;border:1px dashed #63c4e355;border-radius:50%;background:radial-gradient(ellipse,#76ddef26,transparent 70%);transform:translateZ(3px)}
.intelligence-link{position:absolute;height:1px;background:linear-gradient(90deg,#38b2e48c,#5ecee326);transform-origin:left center;transform-style:preserve-3d}
.intelligence-packet{position:absolute;left:0;top:-2px;width:5px;height:5px;border-radius:50%;background:#72dcf4;box-shadow:0 0 8px #48c2ef;animation:intelligence-flow 3.2s linear infinite}
.logistics-routes{position:absolute;inset:0;width:720px;height:470px;transform:translateZ(3px);overflow:visible;pointer-events:none}.logistics-routes polyline{fill:none;stroke-linejoin:round;stroke-linecap:round}.logistics-routes .lane-bed{stroke:#e3f1f9;stroke-width:58}.logistics-routes .lane-center{stroke:#94d2ee;stroke-width:1;stroke-dasharray:4 6}
.logistics-dock{position:absolute;width:48px;height:36px;transform:translateZ(4px);border:1px solid #94cee7;border-radius:5px;background:#d8f1fc40;transition:background .3s,box-shadow .3s}.logistics-dock.active{border-color:#3bbfc6;background:#8ee4db60;box-shadow:0 0 14px #63d8e455}
.factory-stage .twin-panel{display:none}
.logistics-status{position:absolute;right:0;bottom:3%;width:190px;padding:13px 16px;border:1px solid #d9eaf6;background:#ffffffdf;box-shadow:0 12px 32px #3a84b610;border-radius:6px}
.logistics-caption{font-size:8px;letter-spacing:.1em;color:#70a4c2}.logistics-title{font-size:14px;font-weight:600;color:#356583;margin:7px 0 4px}.logistics-detail{font-size:9px;color:#8aa8bc}
@keyframes intelligence-flow{0%{left:0;opacity:0}10%,80%{opacity:1}100%{left:100%;opacity:0}}
@media(prefers-reduced-motion:reduce){.intelligence-packet{animation:none}}
@media(prefers-reduced-motion:reduce){.campus-vehicle,.inspection-light{animation:none}.campus-vehicle:nth-last-child(2){offset-distance:50%}}
@media(max-width:600px){.hero .factory-stage{width:700px;height:570px;left:50%;margin:32px 0 -280px -350px;transform:scale(.46);transform-origin:center top}.factory-stage .factory-scene{inset:65px 0 45px}.factory-stage .hud-order{left:0;top:8%}.factory-stage .hud-oee{right:0;top:28%}.factory-stage .hud-ai{bottom:0}.factory-stage .twin-panel{bottom:-2%}}
