/* First-paint loader shown inside #root until the app mounts (scissors snip, dryer wobbles, air streams out). */
.boot{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#f6f7fb;color:#0f1629;font:14px Inter,system-ui,sans-serif}
.boot svg{width:128px;height:80px;filter:drop-shadow(0 3px 2px rgba(15,22,41,.28))}
.boot .a,.boot .b{transform-origin:44px 44px;animation:boot-a .9s cubic-bezier(.45,0,.55,1) infinite}
.boot .b{animation-name:boot-b}
.boot .d{transform-origin:120px 56px;animation:boot-w .45s ease-in-out infinite}
.boot .air path{animation:boot-air .9s ease-out infinite}
.boot .air path:nth-child(2){animation-delay:.15s}
.boot .air path:nth-child(3){animation-delay:.3s}
@keyframes boot-a{50%{transform:rotate(-14deg)}}
@keyframes boot-b{50%{transform:rotate(14deg)}}
@keyframes boot-w{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@keyframes boot-air{0%{transform:translateX(-4px);opacity:0}40%{opacity:1}100%{transform:translateX(8px);opacity:0}}
@media (prefers-reduced-motion:reduce){.boot .a,.boot .b,.boot .d,.boot .air path{animation:none}}
