.dpFacility{position:relative;isolation:isolate;aspect-ratio:1312/1199;pointer-events:none;--dp-accent:#c391ff}.dpFacilityArt{position:absolute;inset:0}.dpFacilityArt>img,.dpFacilityArt>svg{width:100%;height:100%;object-fit:contain;display:block}.dpFacilityArt>img{filter:drop-shadow(0 10px 7px #0009)}
.dpFacility-hospital{aspect-ratio:880/600}.dpFacility-hospital .hhpLiveLights{--hhp-lamp-blue:#c391ff}.dpFacility-hospital .hhpLampBlue .hhpLampCore{stroke:#d5b0ff}.dpFacility-hospital .hhpLampRunning{stroke:#f0dfff}.dpFacility-hospital .hhpPresentation{overflow:visible}.dpFacility .hhpPresentation[data-hhp-paused="false"] *{animation-play-state:running!important}
.dpFacilityProjection{position:absolute;top:2%;left:50%;transform:translate(-50%,-100%);display:flex;align-items:center;flex-direction:column;white-space:nowrap;animation:dpProject 8s ease-in-out infinite;text-align:center;z-index:4}.dpFacility-hospital .dpFacilityProjection{top:5%}.dpFacility-generator .dpFacilityProjection{top:26%}.dpFacilityProjection strong{font:800 12px/1.2 system-ui,sans-serif;letter-spacing:1px;color:#eee1ff;text-shadow:0 0 6px #ac70e9,0 0 18px #9256ba;transform:perspective(200px) rotateX(9deg)}.dpProjectedBadge{width:24px;height:28px;margin-bottom:5px;filter:drop-shadow(0 0 6px #bc87ff)}.dpProjectionBeam{width:90px;height:25px;clip-path:polygon(0 0,100% 0,50% 100%);background:repeating-linear-gradient(90deg,#c997ff25 0 1px,transparent 1px 12px),linear-gradient(#bc85ee03,#d9b6ff65);position:relative}.dpProjectionBeam:after{content:'';position:absolute;bottom:0;left:49%;width:3px;height:3px;background:white;box-shadow:0 0 10px 3px #d4a6ff}
.dpFacilityLive{position:absolute;inset:0;overflow:visible;pointer-events:none}.dpFactoryChannels path{fill:none;stroke:#ca9dff;stroke-width:4;stroke-linecap:round;opacity:.45}.dpFactoryRunning path{fill:none;stroke:#f5ddff;stroke-width:5;stroke-dasharray:6 58;stroke-linecap:round;animation:dpAssembly 2.7s linear infinite}.dpFactoryBeacon{fill:#f3e1ff;animation:dpBeacon 2.4s ease-in-out infinite}.dpFacilityShadow{position:absolute;left:16%;right:16%;bottom:3%;height:14%;border-radius:50%;background:#0008;filter:blur(10px);transform:skewX(-15deg);z-index:-1}
.dpPowerPort{position:absolute;width:13px;height:13px;transform:translate(-50%,-50%);border-radius:50%;background:#e7ccff;border:3px solid #51386d;box-shadow:0 0 0 1px #d0a1f0,0 0 9px #c98cff88;z-index:5}.dpFacility-generator .dpPowerPort{background:#f4ddff;border-color:#733ca5;width:11px;height:11px}.dpPowerGrid{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:1}.dpPowerGrid path{fill:none;stroke-linecap:round;stroke-linejoin:round}.dpPowerShadow{stroke:#01030b;stroke-width:11}.dpPowerCable{stroke:#51475f;stroke-width:7}.dpPowerLight{stroke:#a16bdd;stroke-width:3;opacity:.85}.dpPowerFlow{stroke:#f5ddff;stroke-width:2;stroke-dasharray:10 75;animation:dpPowerFlow 3s linear infinite}
.dpReactorFlow{fill:none;stroke:#ecd0ff;stroke-width:5;stroke-linecap:round;stroke-dasharray:13 33;animation:dpAssembly 1.7s linear infinite;opacity:.8}.dpReactorRing{fill:none;stroke:#d7a5ff;stroke-width:4;stroke-dasharray:18 12;animation:dpReactorRing 4s linear infinite;opacity:.55}.dpGeneratorLamps{fill:none;stroke:#dec0ff;stroke-width:4;stroke-linecap:round;animation:dpBeacon 3s ease-in-out infinite}
@keyframes dpProject{0%,12%,85%,100%{opacity:.18;filter:brightness(.8)}20%,75%{opacity:1;filter:brightness(1.1)}}@keyframes dpAssembly{to{stroke-dashoffset:-128}}@keyframes dpBeacon{50%{opacity:.4}}@keyframes dpPowerFlow{to{stroke-dashoffset:-170}}@keyframes dpReactorRing{to{stroke-dashoffset:-120}}
@media(prefers-reduced-motion:reduce){.dpFacility *, .dpPowerGrid *{animation:none!important}}
