.loading-screen { position:fixed; inset:0; z-index:9999; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px; background:radial-gradient(ellipse at center,#e5edff,#a9bde8); color:#30487e; opacity:1; transition:opacity .35s ease; }
.loading-screen[hidden] { display:none; }
.loading-character { width:min(300px,65vw); height:auto; max-height:60svh; object-fit:contain; filter:drop-shadow(0 10px 18px #4b679833); animation:loading-float 2.4s ease-in-out infinite; }
.loading-screen p { margin:18px 0 14px; font:20px Georgia,serif; letter-spacing:2px; }
.loading-track { width:140px; height:3px; border-radius:3px; overflow:hidden; background:#7893c53b; }
.loading-track span { display:block; height:100%; width:40%; background:#5575b4; animation:loading-slide 1.2s ease-in-out infinite; }
.loading-screen.is-ready { opacity:0; pointer-events:none; }
@keyframes loading-float { 50% { transform:translateY(-7px); } }
@keyframes loading-slide { from { transform:translateX(-100%); } to { transform:translateX(350%); } }
@media(prefers-reduced-motion:reduce) { .loading-character,.loading-track span { animation:none; } .loading-screen { transition:none; } }
