.loading-screen { transition: opacity 600ms ease, visibility 600ms ease; }
.loading-screen.is-done { opacity: 0; visibility: hidden; pointer-events: none; }
.loading-screen.is-skip { display: none; }
.loading-progress span { animation: loading-progress 1.45s cubic-bezier(.65,0,.35,1) forwards; }
.coffee-steam { animation: steam 2.6s ease-in-out infinite; transform-origin: bottom center; }
.coffee-steam--two { animation-delay: .7s; }
.room-stage, .content-panel, .panel-backdrop, .lightbox { transition: opacity 450ms ease, transform 500ms cubic-bezier(.22,1,.36,1), filter 500ms ease; }
.site-shell:not(.is-ready) .room-stage { opacity: 0; }
.site-shell.is-ready .room-stage { opacity: 1; }
.panel-backdrop { opacity: 0; pointer-events: none; }
.panel-is-open .panel-backdrop { opacity: 1; pointer-events: auto; }
.content-panel { opacity: 0; transform: translateX(5%); pointer-events: none; }
.content-panel[aria-hidden="false"] { opacity: 1; transform: translateX(0); pointer-events: auto; }
.panel-header, .panel-content { animation: panel-rise 550ms both; }
.panel-content { animation-delay: 90ms; }
.lightbox { opacity: 0; pointer-events: none; }
.lightbox[aria-hidden="false"] { opacity: 1; pointer-events: auto; }
.lightbox-dialog { transform: translateY(18px) scale(.98); transition: transform 450ms cubic-bezier(.22,1,.36,1); }
.lightbox[aria-hidden="false"] .lightbox-dialog { transform: translateY(0) scale(1); }
.hotspot-label { transition: opacity 180ms ease, transform 180ms ease; }
.hotspot:hover .hotspot-label, .hotspot:focus-visible .hotspot-label, .hotspot.is-focused .hotspot-label { opacity: 1; transform: translateY(0); }
.hotspot-ping { transition: transform 240ms ease, background-color 240ms ease; }
.hotspot:hover .hotspot-ping, .hotspot:focus-visible .hotspot-ping { transform: scale(1.45); }
@keyframes loading-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes steam { 0%,100% { opacity: .1; transform: translateY(4px) scaleX(.8); } 45% { opacity: .75; transform: translateY(-8px) scaleX(1); } }
@keyframes panel-rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .001ms !important; } }

.hotspot:hover .hotspot-label, .hotspot:focus-visible .hotspot-label { transform: translate(-50%,0); }
