.app-loader{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;background:var(--bg);color:var(--text);text-align:center}
.app-loader[hidden]{display:none}
.app-loader b{font-size:20px}
.app-loader small{color:var(--muted)}
.loader-track{width:min(230px,70vw);height:4px;overflow:hidden;border-radius:4px;background:var(--border)}
.loader-track span{display:block;width:40%;height:100%;border-radius:inherit;background:var(--primary);animation:prepare-site 1.2s ease-in-out infinite alternate}
@keyframes prepare-site{to{transform:translateX(150%)}}
@media(prefers-reduced-motion:reduce){.loader-track span{animation:none;transform:translateX(75%)}}
