.hotel-preloader{--loader-ink:#344f72;--loader-soft:#e8edf5;--loader-sheet:#fafbfe;--loader-accent:#a98b59;position:fixed;inset:0;z-index:100000;display:grid;place-items:center;background:#f8f9fc;color:var(--loader-ink);font-family:Inter,system-ui,sans-serif;transition:opacity .28s ease,visibility .28s ease}
.hotel-preloader[hidden]{display:none}
.hotel-preloader.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
.hotel-preloader-content{display:flex;flex-direction:column;align-items:center;padding:24px;max-width:100%;box-sizing:border-box}
.hotel-preloader-art{display:block;width:184px;height:154px;overflow:visible}
.hotel-preloader-scene{width:184px;height:154px;perspective:700px}
.hotel-preloader-flipper{position:relative;width:100%;height:100%;transform-style:preserve-3d;animation:hotel-service-flip 3.6s cubic-bezier(.45,0,.25,1) infinite}
.hotel-preloader-flipper .hotel-preloader-art{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.hotel-preloader-back{transform:rotateY(180deg)}
.hotel-cloche-lid{animation:cloche-lift 3.6s ease-in-out infinite}
.hotel-cloche-shine{fill:none;stroke:var(--loader-sheet);stroke-width:4;stroke-linecap:round}
.hotel-cloche-handle{fill:none;stroke:var(--loader-accent);stroke-width:3;stroke-linecap:round}
@keyframes hotel-service-flip{0%,18%{transform:rotateY(0)}30%,68%{transform:rotateY(180deg)}80%,100%{transform:rotateY(360deg)}}
@keyframes cloche-lift{0%,30%,65%,100%{transform:translateY(0)}45%,52%{transform:translateY(-5px)}}
.hotel-bed-shadow{fill:var(--loader-ink);opacity:.07;transform-origin:100px 146px;animation:bed-shadow 2.8s ease-in-out infinite}
.hotel-bed-frame{fill:var(--loader-soft);stroke:var(--loader-ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hotel-bed-pillow{fill:var(--loader-sheet);stroke:var(--loader-ink);stroke-width:1.7;animation:pillow-settle 2.8s cubic-bezier(.22,1,.36,1) infinite}
.hotel-bed-pillow.second{animation-delay:.12s}
.hotel-bed-duvet{fill:var(--loader-sheet);stroke:var(--loader-ink);stroke-width:2;stroke-linejoin:round;animation:duvet-settle 2.8s cubic-bezier(.22,1,.36,1) infinite;transform-origin:100px 110px}
.hotel-bed-runner{fill:var(--loader-soft)}
.hotel-bed-seam{fill:none;stroke:var(--loader-ink);stroke-width:1;opacity:.18}
.hotel-bed-glint{fill:none;stroke:var(--loader-accent);stroke-width:1.6;stroke-linecap:round;transform-box:fill-box;transform-origin:center;animation:bed-glint 2.8s ease-in-out infinite}
.hotel-preloader-label{font-size:12px;font-weight:500;letter-spacing:.06em;margin:22px 0 0;color:#7c8899}
.hotel-preloader-dots{display:flex;gap:6px;margin-top:14px}
.hotel-preloader-dots i{width:4px;height:4px;border-radius:50%;background:var(--loader-ink);animation:bed-dot 1.4s ease-in-out infinite;opacity:.25}
.hotel-preloader-dots i:nth-child(2){animation-delay:.16s}.hotel-preloader-dots i:nth-child(3){animation-delay:.32s}
html[data-theme=dark] .hotel-preloader{--loader-ink:#a8bedb;--loader-soft:#25354b;--loader-sheet:#172335;--loader-accent:#c9ad7d;background:#101722}
html[data-theme=dark] .hotel-preloader-label{color:#94a3b8}
@keyframes pillow-settle{0%,100%{transform:translateY(0)}18%{transform:translateY(-7px)}42%,85%{transform:translateY(0)}}
@keyframes duvet-settle{0%,100%{transform:translateY(0) scaleY(1)}22%{transform:translateY(-4px) scaleY(1.05)}48%,85%{transform:translateY(0) scaleY(1)}}
@keyframes bed-shadow{0%,100%{transform:scaleX(1);opacity:.07}22%{transform:scaleX(.94);opacity:.04}48%,85%{transform:scaleX(1);opacity:.07}}
@keyframes bed-glint{0%,35%,85%,100%{opacity:0;transform:scale(.65)}50%,65%{opacity:1;transform:scale(1)}}
@keyframes bed-dot{0%,80%,100%{opacity:.2;transform:translateY(0)}40%{opacity:.75;transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.hotel-preloader,.hotel-preloader *{animation:none!important;transition:none!important}.hotel-bed-glint{opacity:.7}.hotel-preloader-back{display:none}}
