.loader{overflow:hidden;background:radial-gradient(circle at 50% 45%,#fffdf7 0,#fff7e9 48%,#f6e4cc 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}.loader::before,.loader::after{content:"";position:absolute;border:1px solid rgba(217,88,63,.16);border-radius:50%;animation:loader-ring 3s ease-in-out infinite}.loader::before{width:min(70vw,680px);aspect-ratio:1}.loader::after{width:min(52vw,500px);aspect-ratio:1;animation-delay:-1.5s}.loader.hold.done{opacity:1;visibility:visible}.loader-halo{position:relative;z-index:1;width:min(70vw,520px);padding:52px 44px;border-radius:42% 42% 48% 48%;background:rgba(255,255,255,.72);box-shadow:0 30px 90px rgba(120,61,28,.13);backdrop-filter:blur(10px);animation:loader-float 2.4s ease-in-out infinite}.loader-halo img{width:100%;height:auto;object-fit:contain}.loader p{position:relative;z-index:1;margin:3px 0 0;font-size:clamp(.78rem,1.2vw,1rem);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#6c3155}.loader p i{font-style:normal;color:#ec8b2c;padding:0 .45em}.loader-progress{position:relative;z-index:1;width:min(58vw,340px);height:5px;border-radius:20px;background:rgba(75,48,35,.11);overflow:hidden}.loader-progress span{display:block;width:40%;height:100%;margin:0;background:linear-gradient(90deg,#ec8b2c,#d9583f,#6c3155);border-radius:inherit;animation:loader-progress 2.8s cubic-bezier(.65,0,.35,1) infinite}.loader>small{position:relative;z-index:1;color:#8a7165;letter-spacing:.08em}.loader.releasing{opacity:0!important;visibility:hidden!important;transform:scale(1.025);transition:opacity .8s ease,visibility .8s,transform .8s ease}@keyframes loader-ring{50%{transform:scale(1.05);opacity:.35}}@keyframes loader-float{50%{transform:translateY(-8px)}}@keyframes loader-progress{0%{transform:translateX(-120%)}100%{transform:translateX(350%)}}@media(max-width:600px){.loader{gap:18px}.loader-halo{width:min(88vw,430px);padding:38px 28px}.loader::before{width:110vw}.loader::after{width:84vw}.loader-progress{width:64vw}.loader p{letter-spacing:.12em}}
@media(prefers-reduced-motion:reduce){.loader-halo,.loader::before,.loader::after,.loader-progress span{animation:none}.loader-progress span{width:100%}}
