html[data-loading]{overflow:hidden}
.page-loader{position:fixed;inset:0;z-index:2147483647;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:28px;background:#f4f3ee;color:#0e0e0f;text-align:center;font-family:'Courier New',Courier,monospace}
.page-loader p{margin:0;max-width:36ch;font-size:clamp(16px,2vw,22px);line-height:1.6}
.page-loader ascii-art{display:block;min-width:140px;height:42px;overflow:hidden;font:28px/1.2 'Courier New',Courier,monospace}
.page-loader ascii-art pre{margin:0!important;font:inherit!important;text-align:center;transform:translateY(-2.4em)}
.loader-wave-fallback{display:flex;align-items:flex-end;justify-content:center;height:36px;gap:2px}
.loader-wave-fallback span{display:inline-block;animation:loader-wave .9s steps(5,end) infinite;animation-delay:var(--delay);transform-origin:center bottom;line-height:1}
@keyframes loader-wave{0%,100%{transform:scaleY(.2)}50%{transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){.loader-wave-fallback span{animation:none;transform:scaleY(var(--level,1))}}
