.screen-loader{background:hsl(var(--background));width:100%;min-height:100svh;color:hsl(var(--muted-foreground));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:32px 20px;display:flex}.screen-loader-mark{flex:none;place-items:center;width:144px;height:144px;display:grid;position:relative}.screen-loader-mark:before{content:"";background:radial-gradient(circle,hsl(var(--primary) / .16),transparent 70%);border-radius:50%;animation:2.2s ease-in-out infinite screen-loader-breathe;position:absolute;inset:12px}.screen-loader-mark img{-o-object-fit:contain;object-fit:contain;width:112px;height:112px;animation:2.2s ease-in-out infinite screen-loader-breathe;position:relative}.screen-loader-ring{border:2px solid hsl(var(--primary) / .12);border-top-color:hsl(var(--primary) / .8);border-right-color:hsl(var(--primary) / .4);border-radius:50%;animation:1.6s linear infinite screen-loader-turn;position:absolute;inset:0}.screen-loader-message{max-width:100%;font-size:var(--text-body-sm);overflow-wrap:anywhere;margin:0;line-height:1.5}.screen-loader-dots{gap:7px;display:flex}.screen-loader-dots span{background:hsl(var(--primary));border-radius:50%;width:5px;height:5px;animation:1.4s ease-in-out infinite screen-loader-dot}.screen-loader-dots span:nth-child(2){animation-delay:.16s}.screen-loader-dots span:nth-child(3){animation-delay:.32s}@keyframes screen-loader-turn{to{transform:rotate(360deg)}}@keyframes screen-loader-breathe{0%,to{opacity:.8;transform:scale(.97)}50%{opacity:1;transform:scale(1)}}@keyframes screen-loader-dot{0%,70%,to{opacity:.25;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}@media (height<=400px){.screen-loader{gap:12px;padding:20px}.screen-loader-mark{width:112px;height:112px}.screen-loader-mark img{width:88px;height:88px}}@media (prefers-reduced-motion:reduce){.screen-loader *,.screen-loader-mark:before{animation:none}}.screen-loader-compact{background:0 0;gap:12px;min-height:0;padding:24px 12px}.screen-loader-compact .screen-loader-mark{width:80px;height:80px}.screen-loader-compact .screen-loader-mark img{width:64px;height:64px}
