/* World-space station layout: one camera, projected XYZ ports and depth sorting. */
.directory-axes,.ground-guides{display:none!important}
.spatial-directory .module-stage,.directory-machine{display:contents;transform:none!important;perspective:none}
.spatial-directory .archive-module{position:absolute;max-width:none!important;padding:0;transform:translate(-50%,-50%)!important;transition:opacity .55s,filter .3s;filter:none;isolation:isolate}
.spatial-directory .archive-module .module-id{font-size:12px;letter-spacing:.09em;bottom:9%;left:50%;transform:translateX(-50%);white-space:nowrap;color:#53594d;background:#eeede6a8;padding:3px 6px}
.spatial-directory .archive-module:focus-visible{outline:none}
.spatial-directory .archive-module img{pointer-events:none}
.dispatch-hub{position:absolute;aspect-ratio:7/8;pointer-events:none;transform:translate(-50%,-50%);transition:opacity .4s,filter .4s}
.dispatch-hub img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:transform .5s,filter .5s}
.dispatch-hub .dispatch-cap{transform:translateY(-3px)}
.dispatch-hub.locked .dispatch-cap{transform:translateY(0)}
.dispatch-hub.locked .dispatch-core{filter:brightness(1.14)}
.spatial-rail{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:.6;transition:opacity .3s}
.spatial-rail.is-active{opacity:1}.spatial-rail.is-away{opacity:0}
/* Transparent cladding / refracted core. No glow field or looping signal animation. */
.rail-shadow{stroke:#626d60;stroke-width:3;opacity:.045;filter:blur(2px)}
.rail-bed{stroke:none;opacity:.9}
.rail-edge{stroke-width:.65}.rail-edge.edge-a{stroke:#6b8175;opacity:.5}.rail-edge.edge-b{stroke:#fffef3;opacity:.95}
.rail-refraction{stroke:#829b8b;stroke-width:.65;opacity:.37}
.rail-core{stroke:#fffef5;stroke-width:1.15;opacity:.9}
.rail-energy{stroke:#be995f;stroke-width:.8;opacity:0;stroke-dasharray:0 100;transition:stroke-dasharray .45s,opacity .25s}
.is-active .rail-energy{opacity:.85;stroke-dasharray:100 0}
.rail-collar{stroke:#748577;stroke-width:.8;opacity:.7}
.rail-node-ring{fill:#eeede6;fill-opacity:.55;stroke:#8d9b89;stroke-width:.65;opacity:.7}
.rail-node{fill:#a6b9a2;stroke:none;opacity:.9}
.is-active .rail-node{fill:#bf985d}.is-active .rail-node-ring{stroke:#b39160}
.station-shadow{position:absolute;height:18px;border-radius:50%;background:#57614e;transform:translate(-50%,-50%) rotate(-7deg);pointer-events:none;z-index:1!important;transition:opacity .4s}
body:not(.directory-mode) .spatial-directory .archive-module,body:not(.directory-mode) .dispatch-hub,body:not(.directory-mode) .spatial-rail,body:not(.directory-mode) .station-shadow{opacity:0;pointer-events:none}
.spatial-directory .archive-module.preview .module-cap{transform:translateY(-7px)}
.spatial-directory .archive-module.preview .module-core{transform:translateY(-2px)}
.isolating .spatial-directory .archive-module:not(.chosen){opacity:0;pointer-events:none}
.isolating .spatial-directory .archive-module.chosen{transform:translate(-50%,-50%)!important}
.isolating .spatial-directory .archive-module.chosen .module-cap{transform:translateY(-15px)}
.isolating .spatial-directory .archive-module.chosen .module-core{transform:translateY(-4px)}
.isolating .spatial-directory .archive-module.chosen .module-base{transform:translateY(6px)}
.holding .spatial-directory .archive-module.chosen .module-layer{transform:none;opacity:1}
.holding .spatial-directory .archive-module.chosen .module-angle{opacity:0}
.pushing .spatial-directory .archive-module.chosen{transform:translate(-50%,-50%) scale(5.4)!important;opacity:0;transition:transform 1.1s cubic-bezier(.6,0,.25,1),opacity 1s}
.pushing .spatial-rail,.pushing .dispatch-hub,.pushing .station-shadow{opacity:0;transition:opacity .45s}
.isolating .spatial-directory .module-ground-frame,.holding .spatial-directory .module-ground-frame-selected{opacity:0!important}

.motion-off .spatial-directory *{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.spatial-directory *{animation:none!important;transition:none!important}}
@media(max-width:760px){.spatial-directory .archive-module .module-id{font-size:11px;bottom:5%}.directory-mode .overview{pointer-events:none}.directory-mode .selection{bottom:258px}}
@media(max-width:760px){.directory-mode .overview h1{font-size:22px;line-height:1.1;margin:10px 0}}

/* Enterprise architecture blueprint: a hierarchy of datums, domain envelopes,
   level projections and fine technical linework. No floating ornamental objects. */
.blueprint-datum,.domain-plan{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;fill:none;stroke-linecap:butt;stroke-linejoin:miter;transition:opacity .45s}
.datum-lattice{stroke:#647b72;stroke-width:.75;opacity:.17}
.datum-primary{stroke:#62716e;stroke-width:1.1;opacity:.5}
.datum-secondary{stroke:#697b79;stroke-width:.65;stroke-dasharray:5 5;opacity:.33}
.datum-hub{stroke:#525e57;stroke-width:1.4;opacity:.58}
.datum-ticks{stroke:#62716e;stroke-width:.8;opacity:.5}
.plan-footprint{stroke:#829795;stroke-width:.65;stroke-dasharray:3 4;opacity:.22}
.plan-projection{stroke:#879b97;stroke-width:.65;stroke-dasharray:2 4;opacity:.3}
.plan-surface{fill:#91aaa2;fill-opacity:.035;stroke:none}
.plan-boundary{stroke:#657f7b;stroke-width:.85;opacity:.46}
.plan-inner{stroke:#8ba09b;stroke-width:.5;opacity:.3}
.plan-section{stroke:#6e8881;stroke-width:.55;opacity:.45}
.plan-dimension{stroke:#778b85;stroke-width:.55;opacity:.42}
.plan-note{fill:#79857b;stroke:none;font:8.5px Arial,sans-serif;letter-spacing:1px;opacity:.75}
.domain-plan.is-active .plan-boundary{stroke:#4e5d4e;stroke-width:1.3;opacity:.85}
.domain-plan.is-active .plan-surface{fill-opacity:.065}
body:not(.directory-mode) .blueprint-datum,body:not(.directory-mode) .domain-plan,.isolating .blueprint-datum,.isolating .domain-plan{opacity:0}
@media(max-width:760px){.plan-note{display:none}.plan-inner,.plan-section,.plan-dimension{opacity:.22}.datum-primary{stroke-width:.7;opacity:.28}.plan-boundary{stroke-width:.65}}

/* Extra sections reuse the registered four-station stage on separate pages. */
#section-pages{position:absolute;left:auto;right:40px;bottom:174px;top:auto;transform:none;display:flex;align-items:center;gap:12px;z-index:6;padding:0;font-size:10px;letter-spacing:.08em}
#section-pages button{border:1px solid #454c3e60;border-radius:50%;width:32px;height:32px;font-size:16px}
#section-pages button:disabled{opacity:.3;cursor:default}
.entering #section-pages,.isolating #section-pages{opacity:0;pointer-events:none}
@media(max-width:760px){#section-pages{right:22px;bottom:224px;gap:7px;font-size:8px}#section-pages button{width:27px;height:27px}}
@media(max-width:760px) and (max-height:650px){#section-pages{bottom:225px}}

#index-sections{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}#index-sections button{border:1px solid #454c3e60;padding:8px;font-size:11px;text-align:left}

/* Raster and replacement nameplate share one material-layer transform. */
.archive-module .module-layer,.archive-module .module-angle{position:absolute;inset:0;width:100%;height:100%;transition:transform .85s cubic-bezier(.2,.8,.2,1),opacity .65s,filter .4s}
.archive-module .module-layer>img,.archive-module .module-angle>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.archive-module .module-brand{z-index:1}
