/* Loaded directly by index.html so startup feedback precedes JavaScript. */
.app-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 24px;
  color: #fbf7f0;
  background: radial-gradient(ellipse at 50% 40%, #5e142a 0%, #300e1b 38%, #200b12 75%);
  text-align: center;
  transition: opacity 380ms ease, visibility 380ms;
}
.app-loader[data-ready='true'] { opacity: 0; visibility: hidden; pointer-events: none; }
.app-loader__content { width: min(100%, 360px); }
.app-loader__emblem { position: relative; width: 144px; height: 144px; margin: 0 auto 32px; display: grid; place-items: center; }
.app-loader__orbit { position: absolute; inset: 0; border: 1px solid #d8b56a30; border-radius: 50%; animation: celebration-orbit 8s linear infinite; }
.app-loader__orbit::before { content: ''; position: absolute; top: -4px; left: calc(50% - 4px); width: 8px; height: 8px; border-radius: 50%; background: #e4c983; box-shadow: 0 0 18px #d8b56a90; }
.app-loader__orbit--inner { inset: 13px; border-style: dashed; border-color: #d8b56a25; animation-direction: reverse; animation-duration: 12s; }
.app-loader__orbit--inner::before { width: 4px; height: 4px; top: -2px; left: calc(50% - 2px); }
.app-loader__calendar { width: 76px; height: 76px; padding: 18px; box-sizing: border-box; border: 1px solid #d8b56a60; border-radius: 22px; color: #e4c983; background: linear-gradient(145deg, #7a183680, #3d0d1d); box-shadow: 0 0 48px #d8b56a14; animation: celebration-breathe 3s ease-in-out infinite; }
.app-loader__brand { margin: 0; font: 600 clamp(28px, 6vw, 36px)/1.2 Georgia, serif; letter-spacing: -.025em; }
.app-loader__brand span { color: #e4c983; }
.app-loader__tagline { margin: 12px 0 30px; color: #efddb0b3; font: 400 13px/1.6 system-ui, sans-serif; letter-spacing: .025em; }
.app-loader__track { width: 160px; height: 2px; margin: 0 auto; overflow: hidden; border-radius: 2px; background: #d8b56a26; }
.app-loader__track::after { content: ''; display: block; height: 100%; width: 60%; background: linear-gradient(90deg, transparent, #e4c983, transparent); animation: celebration-shimmer 1.6s ease-in-out infinite; }
.app-loader__status { margin: 16px 0 0; color: #efddb099; font: 500 10px/1.5 system-ui, sans-serif; letter-spacing: .2em; text-transform: uppercase; }
@keyframes celebration-orbit { to { transform: rotate(360deg); } }
@keyframes celebration-breathe { 50% { transform: translateY(-4px); box-shadow: 0 0 48px #d8b56a28; } }
@keyframes celebration-shimmer { from { transform: translateX(-100%); } to { transform: translateX(270%); } }
@media (prefers-reduced-motion: reduce) {
  .app-loader, .app-loader *, .app-loader *::after { animation: none; transition: none; }
  .app-loader__track::after { margin: auto; }
}
