.garage-loader{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 38%,#14291f 0,#080c0c 42%,#030505 100%);color:#fff;font-family:"Courier New",monospace;transition:opacity .38s ease,visibility .38s ease}
.garage-loader::before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 3px,#0003 4px);opacity:.33}
.garage-loader__card{position:relative;width:min(520px,92vw);padding:30px 26px 26px;border:1px solid #18d8ff70;border-top:3px solid #2dff19;border-radius:18px;background:#071013ed;box-shadow:0 0 34px #1dff1430,0 20px 70px #000c;text-align:center}
.garage-loader__logo{display:block;width:min(300px,72vw);height:auto;margin:0 auto 22px;filter:drop-shadow(0 0 12px #30ff2280)}
.garage-loader__spinner{width:42px;height:42px;margin:0 auto 18px;border:4px solid #16404a;border-top-color:#2dff19;border-right-color:#4bddff;border-radius:50%;animation:garage-loader-spin .82s linear infinite}
#garageLoaderTitle{display:block;font-size:clamp(17px,4vw,23px);letter-spacing:.075em}
.garage-loader__track{height:18px;margin:20px 0 12px;padding:3px;overflow:hidden;border:1px solid #4bddff;border-radius:999px;background:#020506;box-shadow:inset 0 0 8px #000,0 0 12px #4bddff30}
#garageLoaderFill{display:block;width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,#11b91a,#35ff18 65%,#c9ffbd);box-shadow:0 0 14px #2dff19;transition:width .28s ease}
.garage-loader__readout{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#65dcff;font-size:13px;letter-spacing:.04em}
#garageLoaderPercent{min-width:3.5em;color:#fff;font-weight:700;text-align:left}
#garageLoaderStage{text-align:right}
.garage-loader--done{opacity:0;visibility:hidden;pointer-events:none}
.garage-loader--error .garage-loader__spinner{animation:none;border-color:#ff4359}
.garage-loader--error #garageLoaderTitle{color:#ff8796}
@keyframes garage-loader-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.garage-loader__spinner{animation-duration:1.8s}.garage-loader,#garageLoaderFill{transition:none}}
