/* Startup owns its surface and motion; app layout stays with its existing owners. */
body[data-startup] { overflow:hidden; }
body[data-startup] > :not(#app-splash):not(script):not(template) { opacity:0; pointer-events:none; }
body[data-startup] > :not(#app-splash) * { animation-play-state:paused !important; }
.app-splash { position:fixed; z-index:10000; inset:0; display:grid; place-items:center; padding:24px; overflow:auto; background:#fff; color:#69665f; }
.app-splash__composition { width:min(61vw,280px); display:flex; flex-direction:column; align-items:center; transform:translateY(-2vh); }
.app-splash__mascot { width:100%; aspect-ratio:540/505; opacity:0; }
.app-splash__mascot img { display:block; width:100%; height:100%; transform-origin:50% 97%; animation:splash-breathe 3400ms ease-in-out infinite; }
.app-splash__wordmark { display:block; width:89%; height:auto; margin-top:5px; opacity:0; }
.app-splash[data-brand-ready] :is(.app-splash__mascot,.app-splash__wordmark) { opacity:1; animation:splash-arrive 650ms cubic-bezier(.16,1,.3,1) both; }
.app-splash[data-brand-ready] .app-splash__wordmark { animation-delay:90ms; }
.app-splash__progress { position:relative; width:88%; height:26px; margin-top:25px; overflow:hidden; border-radius:999px; background:#efedea; box-shadow:inset 0 2px 2px #726c6612; direction:rtl; animation:splash-arrive 650ms 160ms cubic-bezier(.16,1,.3,1) both; }
.app-splash__fill { position:absolute; inset:0 0 0 auto; width:var(--splash-progress,0%); border-radius:inherit; background:linear-gradient(#bab5ae,#a6a198); box-shadow:inset 0 -2px 0 #89847c38; transition:width 220ms cubic-bezier(.22,1,.36,1); }
.app-splash__fill::before { content:""; position:absolute; inset:4px 9px auto; height:3px; border-radius:999px; background:#eeeae4; }
.app-splash__percentage { position:absolute; inset:0; display:grid; place-items:center; color:#383630; font:800 12px/1 Arial,sans-serif; font-variant-numeric:tabular-nums; direction:ltr; }
.app-splash__status { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.app-splash__recovery { width:min(85vw,340px); margin-top:22px; text-align:center; font:600 14px/1.7 var(--font-ui,Arial,sans-serif); }
.app-splash__recovery[hidden] { display:none; }
.app-splash__recovery p { margin:0 0 12px; }
.app-splash__recovery button { min-height:44px; padding:8px 18px; border:2px solid #d4d0c9; border-radius:12px; background:#fff; color:#504c46; cursor:pointer; }
.app-splash__recovery button:focus-visible { outline:3px solid #77726a; outline-offset:4px; }
@keyframes splash-arrive { from { opacity:0; transform:translateY(18px) scale(.96); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes splash-breathe { 0%,100% { transform:scale(1,1); } 50% { transform:scale(1.009,1.018); } }
@media (max-height:500px) { .app-splash__composition { width:150px; transform:none; } .app-splash__progress { margin-top:12px; } }
@media (prefers-reduced-motion:reduce) { .app-splash[data-brand-ready] :is(.app-splash__mascot,.app-splash__wordmark),.app-splash__mascot img,.app-splash__progress { animation:none; } .app-splash__fill { transition:none; } }
