.tower-tech-overlay{position:absolute;inset:0;z-index:4;overflow:visible;pointer-events:none;isolation:isolate}
.tower-orbit-chase{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.tower-orbit-chase polyline{fill:none;stroke-linecap:round;stroke-linejoin:round}
.tower-orbit-chase mask polyline{stroke:#fff;stroke-width:2.2}
.tower-orbit-run{stroke:#effff4;stroke-width:.7;stroke-dasharray:7 4 1 88;filter:drop-shadow(0 0 1.8px #78ffad) drop-shadow(0 0 4px #78ffad);animation:tower-orbit-race 2.6s linear infinite}
.tower-chamber-scan{position:absolute;left:22.5%;top:39%;width:40%;height:1px;background:linear-gradient(90deg,transparent,#baffd0 25%,#fff 52%,#86ffb2 76%,transparent);box-shadow:0 0 4px #8affb4,0 0 11px #65ff9f99;opacity:.2;animation:tower-chamber-sweep 3.1s ease-in-out infinite}
.tower-chamber-scan:after{content:'';position:absolute;left:8%;right:8%;top:-13px;height:26px;background:linear-gradient(180deg,transparent,#78ff9c0d 45%,#a8ffc52b 50%,transparent 55%)}
.tower-frame-beacons i{position:absolute;width:1.5%;aspect-ratio:1;border-radius:50%;background:#d9ffe4;box-shadow:0 0 3px #fff,0 0 8px #72ff9f;opacity:.15;transform:translate(-50%,-50%);animation:tower-beacon-chase 1.8s steps(1,end) infinite}
.tower-frame-beacons i:nth-child(1){animation-delay:0s}.tower-frame-beacons i:nth-child(2){animation-delay:-.4s}.tower-frame-beacons i:nth-child(3){animation-delay:-.8s}.tower-frame-beacons i:nth-child(4){animation-delay:-1.2s}
.tower-purple-glitch{position:absolute;overflow:hidden;clip-path:polygon(13% 2%,100% 13%,91% 90%,0 100%);background:repeating-linear-gradient(180deg,#c9a7ff 0 8%,#7548ca 9% 16%,#e4d4ff 17% 19%,#5c38a0 20% 28%);background-size:100% 180%;mix-blend-mode:screen;opacity:.34;animation:tower-purple-interference 2.9s steps(1,end) infinite}
.tower-purple-glitch:before,.tower-purple-glitch:after{content:'';position:absolute;inset:0}.tower-purple-glitch:before{background:linear-gradient(90deg,transparent 0 15%,#fff8 16% 21%,transparent 22% 60%,#b683ff88 61% 70%,transparent 71%);transform:translateX(-110%);animation:tower-purple-tear 1.25s steps(5,end) infinite}.tower-purple-glitch:after{background:repeating-linear-gradient(180deg,transparent 0 2px,#1b092d99 3px 4px);opacity:.7}.tower-purple-glitch i{position:absolute;left:0;right:0;height:16%;top:42%;background:#fff;box-shadow:0 0 5px #d7b8ff;animation:tower-purple-scan .8s steps(4,end) infinite}
.tower-core-pulse{position:absolute;left:38.5%;top:65%;width:19%;height:8%;border:1px solid #c8ffda;border-radius:50%;box-shadow:0 0 5px #9affb8,inset 0 0 6px #74ff9a;animation:tower-core-charge 2.4s ease-in-out infinite}
@keyframes tower-orbit-race{to{stroke-dashoffset:-100}}
@keyframes tower-chamber-sweep{0%,100%{top:39%;opacity:.08}45%,55%{opacity:.82}50%{top:67%}}
@keyframes tower-beacon-chase{0%,24%{opacity:1;transform:translate(-50%,-50%) scale(1.35)}25%,100%{opacity:.12;transform:translate(-50%,-50%) scale(.75)}}
@keyframes tower-core-charge{0%,100%{opacity:.22;transform:scale(.82)}50%{opacity:.9;transform:scale(1.08)}}
@keyframes tower-purple-interference{0%,7%,13%,58%,64%,100%{opacity:.32;filter:brightness(1)}8%,12%,59%,63%{opacity:.88;filter:brightness(1.8)}}
@keyframes tower-purple-tear{to{transform:translateX(115%)}}
@keyframes tower-purple-scan{0%{top:4%;opacity:.25}50%{top:72%;opacity:1}100%{top:18%;opacity:.45}}
.motion-paused .tower-tech-overlay *,.page-hidden .tower-tech-overlay *,html[data-motion=off] .tower-tech-overlay *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){body:not(.motion-enabled) .tower-tech-overlay *{animation:none!important}.tower-orbit-run{stroke-dasharray:10 8 2 80}.tower-frame-beacons i{opacity:.5}}
