/* Critical CSS for above-the-fold content — loading spinner */
/* Extracted from inline <style> to allow strict style-src-elem CSP */
/* Theme-aware: data-ui-pack is set synchronously in index.html before paint */
/* Hex values computed from ui-packs.css HSL tokens to prevent FOUC */
/* IMPORTANT: pack names here MUST match the valid IDs in the index.html inline script */
:root{--cr-bg:#f5f3ef;--cr-fg:#3b2e26;--cr-accent:#b77f57}
:root[data-ui-pack="noir-editorial"]{--cr-bg:#f9f7f3;--cr-fg:#221f1b;--cr-accent:#b6592b}
:root[data-ui-pack="noir-editorial-night"]{--cr-bg:#17120f;--cr-fg:#f5eee5;--cr-accent:#e2a46f}
:root{--background:var(--cr-bg);--foreground:var(--cr-fg);--primary:var(--cr-accent);--primary-foreground:#fff}
*,::before,::after{box-sizing:border-box;margin:0;padding:0}
html{font-family:'Geist Sans',system-ui,-apple-system,sans-serif;line-height:1.5;-webkit-text-size-adjust:100%;--font-heading:'Bodoni Moda','Didot','Times New Roman',Georgia,serif;--font-body:'Geist Sans',system-ui,-apple-system,sans-serif}
:root[data-ui-pack="noir-editorial"]{--font-heading:'Bodoni Moda','Didot','Times New Roman',Georgia,serif}
:root[data-ui-pack="noir-editorial-night"]{--font-heading:'Bodoni Moda','Didot','Times New Roman',Georgia,serif}
body{background:var(--background);color:var(--foreground);min-height:100vh}
img,picture,video,canvas,svg{display:block;max-width:100%}
/* Boot loader — visually identical to React LoadingPage (BreatheLoader-lg).
   Same DOM/CSS is reused by src/components/ui/loading-state.tsx so the HTML→React
   handoff is seamless and there is no visual flash between the two. */
.initial-loader{display:flex;align-items:center;justify-content:center;min-height:100dvh;background:var(--cr-bg)}
.initial-loader-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem}
.initial-loader-orb{position:relative;display:flex;align-items:center;justify-content:center;width:7rem;height:7rem}
.initial-loader-core{width:2.25rem;height:2.25rem;border-radius:9999px;background:color-mix(in srgb,var(--cr-accent) 18%,transparent);animation:initial-loader-pulse 2.4s ease-in-out infinite}
.initial-loader-text{margin-top:2rem;font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-size:1.35rem;font-weight:400;letter-spacing:0.01em;color:var(--cr-fg);opacity:0.7}
@keyframes initial-loader-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.55;transform:scale(0.9)}}
