.loading{overflow:hidden}
.loading .rise{animation-play-state:paused}
.loader{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(700px 420px at 50% 45%,#10224a,var(--night) 70%);transition:opacity .8s ease,visibility .8s,clip-path 1s cubic-bezier(.7,0,.2,1);clip-path:circle(150% at 50% 50%)}
.loader.done{opacity:0;visibility:hidden;clip-path:circle(0% at 50% 50%)}
.loader-in{width:min(520px,100%);display:flex;flex-direction:column;align-items:center;gap:22px}
.hold{width:100%;height:auto;overflow:visible}
.hold-track{fill:none;stroke:rgba(124,196,240,.22);stroke-width:1.2;stroke-dasharray:4 5}
.hold-trace{fill:none;stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-dasharray:18 82;animation:trace 6s linear infinite;filter:drop-shadow(0 0 4px rgba(233,185,73,.8))}
@keyframes trace{from{stroke-dashoffset:18}to{stroke-dashoffset:-82}}
.hold-entry{fill:none;stroke:rgba(234,240,250,.35);stroke-width:1.2;stroke-dasharray:2 4}
.fix{fill:var(--gold)}
.fix-pulse{fill:none;stroke:var(--gold);stroke-width:1;transform-box:fill-box;transform-origin:center;animation:fixpulse 2s ease-out infinite}
@keyframes fixpulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.2);opacity:0}}
.hold-lbl{font:600 8px var(--mono);letter-spacing:.14em;fill:var(--gold)}
.hold-sm{font:6.5px var(--mono);letter-spacing:.12em;fill:var(--muted)}
.hold-plane{fill:var(--panel);stroke:var(--text);stroke-width:1.3;stroke-linejoin:round;filter:drop-shadow(0 0 6px rgba(124,196,240,.7))}
.loader-text{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;letter-spacing:.16em;color:var(--sky);text-align:center}
.loader-call{font:900 30px/1 var(--disp);letter-spacing:.06em;color:var(--text)}
.loader-bar{width:min(260px,70%);height:2px;background:rgba(234,240,250,.12);border-radius:2px;overflow:hidden}
.loader-bar span{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--sky),var(--gold));transform-origin:left;transform:scaleX(0);transition:transform .4s ease}
.loader.cleared .loader-call{color:var(--gold)}
@media (prefers-reduced-motion:reduce){.loader{transition:opacity .3s}}
