/*
 * critical.css — Above-the-fold styles served immediately with the HTML document.
 * Referenced in index.html as a render-blocking <link> so browsers paint the
 * loading skeleton before the main JS bundle arrives.
 * Extracted from index.html to fix a Vite 5.x html-inline-proxy build error.
 */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#fff;color:#1e293b;line-height:1.5}
#root{min-height:100vh}
.loading-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background:#fff;padding:1rem;text-align:center}
.loading-brand{font-size:clamp(2rem,8vw,3.5rem);font-weight:700;background:linear-gradient(135deg,#1e3a5f 0%,#3b82f6 50%,#10b981 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:0.5rem}
.loading-tagline{font-size:clamp(1rem,4vw,1.5rem);color:#64748b;max-width:36rem;margin:0 auto}
.loading-skeleton{margin-top:2rem;width:100%;max-width:32rem;height:3rem;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%);background-size:200% 100%;border-radius:0.5rem;animation:shimmer 1.5s infinite}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.loading-skeleton{animation:none}}
