/* Shared by the initial HTML and React. No timers or forced minimum duration. */
.eduk-loading{box-sizing:border-box;min-height: min(75dvh,640px);width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;padding:32px 20px;text-align:center;font:500 14px/1.5 system-ui,sans-serif;color:#756586;background:radial-gradient(ellipse at center,#f0eafa66,transparent 65%)}
#root>.eduk-loading{min-height:100dvh;background-color:#f8f6fc}
.eduk-loading-character{position:relative;width:148px;height:142px;display:grid;place-items:start center}
.eduk-loading-character img{display:block;width:148px;height:120px;object-fit:contain;animation:eduk-loading-float 1800ms ease-in-out infinite;filter:drop-shadow(0 6px 10px #66518e20)}
.eduk-loading-shadow{position:absolute;bottom:0;left:36px;width:76px;height:9px;border-radius:50%;background:#78619b22;filter:blur(3px);animation:eduk-loading-ground 1800ms ease-in-out infinite}
.eduk-loading p{margin:0;color:inherit}.eduk-loading-dots{animation:eduk-loading-breathe 1200ms ease-in-out infinite}
@keyframes eduk-loading-float{0%,100%{transform:translateY(1px) rotate(-3deg) scale(1)}45%{transform:translateY(-11px) rotate(3deg) scale(1.025)}70%{transform:translateY(-6px) rotate(1deg)}}
@keyframes eduk-loading-ground{0%,100%{transform:scaleX(1);opacity:.8}45%{transform:scaleX(.72);opacity:.45}}
@keyframes eduk-loading-breathe{0%,100%{opacity:.35}50%{opacity:1}}
@media(prefers-reduced-motion:reduce){.eduk-loading *{animation:none!important}}

body:has(>#root>.eduk-loading){margin:0}
