/* First-paint shell: independent of React, fonts and the application bundle. */
html:has(#app-splash) { background: #fef9f5; }
body:has(#app-splash) { margin: 0; overflow: hidden; }
#app-splash {
  position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center;
  box-sizing: border-box; min-height: 100svh; padding: 24px;
  background: #fef9f5; color: #403e38; font: 14px/1.6 Arial, sans-serif;
}
#app-splash [hidden] { display: none; }
.startup-glow { position: absolute; width: min(88vw,720px); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle,#e9ddce55,transparent 68%); }
.startup-identity { position: relative; width: min(440px,82vw); aspect-ratio: 920/660; transform: translateY(-12px); }
.startup-identity img, .startup-rings { position: absolute; inset: 0; width: 100%; height: 100%; }
.startup-identity img { animation: startup-reveal 2.1s ease-out both; }
.startup-rings { animation: startup-resolve 2.1s ease-in-out both; }
.startup-rings g { transform-origin: 627px 610px; animation: startup-orbit 1.65s linear infinite; }
.startup-status, .startup-error { position: absolute; top: calc(50% + 150px); left: 24px; right: 24px; text-align: center; margin: 0; color: #746b60; }
.startup-status { font-size: 11px; letter-spacing: .18em; }
.startup-error { font-size: 14px; letter-spacing: normal; color: #403e38; }
.startup-error a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-top: 14px; padding: 0 22px; border: 1px solid #827568; border-radius: 24px; color: inherit; text-underline-offset: 3px; }
.startup-error a:focus-visible { outline: 3px solid #403e38; outline-offset: 4px; }
.startup-footer { position: absolute; bottom: max(30px, env(safe-area-inset-bottom)); margin: 0; font-size: 9px; letter-spacing: .3em; color: #746b60; }
#app-splash[data-failed] .startup-rings { display: none; }
#app-splash[data-failed] .startup-identity img { animation: none; }
.startup-noscript { position: fixed; inset: 0; z-index: 10001; display: grid; place-items: center; padding: 24px; margin: 0; background: #fef9f5; color: #403e38; font: 16px/1.5 Arial,sans-serif; text-align: center; }
@keyframes startup-orbit { to { transform: rotate(360deg); } }
@keyframes startup-resolve { 0%,65% { opacity: 1; } 100% { opacity: 0; } }
@keyframes startup-reveal { 0%,65% { opacity: 0; transform: translateY(8px); } 100% { opacity: 1; transform: none; } }
@media(max-width:480px) { .startup-status,.startup-error { top: calc(50% + 122px); } }
@media(max-height:480px) { .startup-identity { width: min(280px,50vh); } .startup-status,.startup-error { top: calc(50% + 70px); } .startup-footer { bottom: 12px; } }
@media(prefers-reduced-motion:reduce) {
  .startup-rings { display: none; }
  .startup-identity img, .startup-rings, .startup-rings g { animation: none; }
  .startup-glow { display: none; }
}
