/* Hidden by default: navigation works even when JavaScript is unavailable. */
.site-loader { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; background: var(--bg, #faf7fc); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .22s ease, visibility 0s .22s; }
.site-loading .site-loader { opacity: 1; visibility: visible; pointer-events: auto; transition: none; }
.site-loader-ring { display: grid; place-items: center; width: 56px; height: 56px; border: 3px solid color-mix(in srgb, var(--text, #2f1542) 12%, transparent); border-top-color: var(--text, #2f1542); border-right-color: var(--blue, #80dcec); border-radius: 50%; animation: site-loader-spin .85s linear infinite; }
.site-loader-ring span { width: 9px; height: 9px; border-radius: 50%; background: var(--blue, #80dcec); }
@keyframes site-loader-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .site-loader { transition: none; } .site-loader-ring { animation: none; } }
@media print { .site-loader { display: none; } }
