.platform-loader{position:fixed;inset:0;z-index:9990;display:grid;place-items:center;background:rgba(7,27,22,.92);color:#ecfdf5;backdrop-filter:blur(5px)}
.platform-loader[hidden],.platform-load-failure[hidden]{display:none!important}
.platform-loader-content{display:flex;flex-direction:column;align-items:center;gap:20px;padding:24px;text-align:center;max-width:100%;box-sizing:border-box}
.platform-loading-mark{position:relative;display:inline-grid;place-items:center;width:calc(var(--platform-loader-size,88px) + 24px);max-width:100%;aspect-ratio:1;padding:12px;box-sizing:border-box;flex-shrink:0}
.platform-loading-mark::before{content:"";position:absolute;inset:0;border:3px solid rgba(134,239,172,.2);border-top-color:#22c55e;border-right-color:#eab308;border-radius:50%;animation:platform-loader-spin 1s linear infinite}
.platform-loading-mark img{display:block;width:100%;height:100%;min-width:0;min-height:0;box-sizing:border-box;object-fit:contain;border-radius:50%;border:1px solid rgba(134,239,172,.5);background:#10251f}
.platform-loader-content p{margin:0;font:600 14px/1.5 system-ui,sans-serif;color:#ecfdf5}
.platform-load-failure{position:fixed;inset:0;z-index:9991;display:grid;place-items:center;padding:24px;background:#071b16;color:#ecfdf5;font:16px/1.6 system-ui,sans-serif;text-align:center}
.platform-load-failure button{margin-top:16px;padding:10px 22px;border:0;border-radius:12px;background:#15803d;color:white;font:inherit;cursor:pointer}
@keyframes platform-loader-spin{to{transform:rotate(360deg)}}
.platform-loading-mark::after{content:"";position:absolute;inset:6px;border:2px solid transparent;border-bottom-color:#86efac;border-left-color:#eab308;border-radius:50%;animation:platform-loader-spin .7s linear infinite reverse;pointer-events:none}
.platform-loading-mark img{animation:platform-loader-breathe 1.3s ease-in-out infinite}
@keyframes platform-loader-breathe{50%{transform:scale(.94);filter:brightness(1.18)}}
@media(prefers-reduced-motion:reduce){.platform-loading-mark::before,.platform-loading-mark::after,.platform-loading-mark img{animation:none}}
