.viewer__loading{position:absolute;z-index:60;inset:0;transform:none;display:grid;min-width:0;place-items:center;overflow:hidden;padding:clamp(1.25rem,5vw,4rem);border:0;border-radius:0;background:radial-gradient(circle at 50% 42%,#244659 0,#101c25 38%,#05080c 78%);box-shadow:none;isolation:isolate}
.viewer__loading::before,.viewer__loading::after{content:"";position:absolute;z-index:-1;inset:-30%;pointer-events:none}
.viewer__loading::before{background:conic-gradient(from 10deg at 50% 50%,transparent 0 18%,#4d9bb522 29%,transparent 41% 62%,#d5b97917 76%,transparent 88%);animation:loading-atmosphere 16s linear infinite}
.viewer__loading::after{inset:0;background:linear-gradient(115deg,transparent 20%,#ffffff0b 48%,transparent 72%);transform:translateX(-100%);animation:loading-light 4.5s ease-in-out infinite}
.viewer__loading-content{display:flex;width:min(88vw,34rem);align-items:center;flex-direction:column;gap:.8rem;text-align:center}
.viewer__loading-mark{position:relative;display:grid;width:74px;height:74px;place-items:center;margin-bottom:.8rem;border:1px solid #ffffff2b;border-radius:22px;background:#0b141cc7;box-shadow:0 0 0 10px #ffffff08,0 1.5rem 5rem #0008;transform:rotate(45deg)}
.viewer__loading-mark::before{content:"";width:22px;height:22px;border:2px solid #78c3dc;border-radius:5px;box-shadow:0 0 25px #62bfdc99}
.viewer__loading-mark::after{content:"";position:absolute;inset:-11px;border:1px solid #ffffff18;border-radius:28px;animation:loading-pulse 2.2s ease-out infinite}
.viewer__loading-kicker{color:#8fc6d8!important;font-size:.68rem!important;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.viewer__loading strong{font-size:clamp(1.45rem,4vw,2.4rem);font-weight:650;letter-spacing:-.03em}
.viewer__loading span[data-loading-detail]{min-height:1.3em;color:#b8c8d1;font-size:clamp(.78rem,2vw,.92rem)}
.viewer__loading progress{overflow:hidden;width:min(100%,25rem);height:3px;margin-top:1.1rem;border:0;border-radius:99px;background:#ffffff18;accent-color:#73bad1}
.viewer__loading progress::-webkit-progress-bar{background:#ffffff18}.viewer__loading progress::-webkit-progress-value{border-radius:99px;background:linear-gradient(90deg,#5ca9c3,#d5b979);box-shadow:0 0 15px #6cc0dd}.viewer__loading progress::-moz-progress-bar{background:linear-gradient(90deg,#5ca9c3,#d5b979)}
.viewer__loading progress:not([value]){background:linear-gradient(90deg,transparent,#77bfd6,transparent) 0 0/45% 100% no-repeat #ffffff18;animation:loading-progress 1.7s ease-in-out infinite}
.viewer__loading button{margin-top:.75rem;min-width:8rem}.viewer__spinner{display:none}
@keyframes loading-atmosphere{to{transform:rotate(360deg)}}@keyframes loading-light{0%,25%{transform:translateX(-100%)}70%,100%{transform:translateX(100%)}}@keyframes loading-pulse{0%{opacity:.65;transform:scale(.82)}75%,100%{opacity:0;transform:scale(1.2)}}@keyframes loading-progress{0%{background-position:-70% 0}100%{background-position:170% 0}}
@media (prefers-reduced-motion:reduce){.viewer__loading::before,.viewer__loading::after,.viewer__loading-mark::after,.viewer__loading progress:not([value]){animation:none}}
@media (max-width:600px){.viewer__loading{padding:1.25rem}.viewer__loading-mark{width:62px;height:62px;border-radius:19px}.viewer__loading-content{width:min(90vw,25rem)}}
