/* ---------- Opening screen ----------
   While the app checks the sign-in and loads, the gold house draws itself on
   black instead of an empty screen. Shown once per app launch (auth.js decides);
   later pages in the same session skip it (html.no-splash). */
.splash{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  background:#000;visibility:visible;transition:opacity .45s cubic-bezier(.23,1,.32,1),visibility 0s linear .45s}
html:not(.auth-checking) .splash{opacity:0;visibility:hidden;pointer-events:none}
html.no-splash .splash{display:none}
.splash-mark{width:88px;height:88px;overflow:visible}
.splash-mark path{fill:none;stroke:url(#splashGold);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:1;stroke-dashoffset:1;animation:splash-draw .9s cubic-bezier(.65,0,.35,1) .1s forwards}
.splash-mark path + path{animation-duration:1.1s;animation-delay:.45s}
.splash-word{font:600 12px/1 "Outfit",system-ui,-apple-system,sans-serif;letter-spacing:.34em;padding-left:.34em;color:#D2A059;
  opacity:0;transform:translateY(4px);animation:splash-word .5s cubic-bezier(.23,1,.32,1) 1.25s forwards}
/* Still loading after the drawing finishes: the house breathes softly. */
.splash-glow{animation:splash-glow 1.4s ease-in-out 1.6s infinite alternate}
@keyframes splash-draw{to{stroke-dashoffset:0}}
@keyframes splash-word{to{opacity:1;transform:none}}
@keyframes splash-glow{from{filter:drop-shadow(0 0 0 rgba(210,160,89,0))}to{filter:drop-shadow(0 0 12px rgba(210,160,89,.5))}}
/* Page entrance animations wait until the opening screen lifts. */
html.auth-checking .appear{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){
  .splash-mark path{animation:none;stroke-dashoffset:0}
  .splash-word{animation:none;opacity:1;transform:none}
  .splash-glow{animation:none}
}
