.scene-loader{
 position:fixed;left:0;right:0;top:var(--app-top,0px);height:var(--app-height,100dvh);z-index:30;
 display:grid;place-items:center;padding:24px;text-align:center;
 background:radial-gradient(ellipse at 23% 25%,#e5efddaa,transparent 54%),radial-gradient(ellipse at 85% 75%,#f1d8d766,transparent 48%),linear-gradient(165deg,#c4e0e7,#e1ece6 58%,#f7e9cf);
 color:#556a69;font-family:Figtree,sans-serif;
 transition:opacity .35s ease,visibility .35s ease;
}
.scene-loader[hidden]{display:none}
.loader-content{display:flex;flex-direction:column;align-items:center;max-width:280px}
.loader-orbit{
 position:relative;width:88px;height:88px;margin-bottom:27px;border:1px solid #fffdf4aa;border-radius:50%;
 background:#fffaf250;box-shadow:inset 0 2px 5px #ffffff60,0 10px 35px #769d9712;
}
.loader-orbit:before{content:'';position:absolute;inset:10px;border:3px solid #fffaf0b3;border-top-color:#84afa0;border-right-color:#84afa033;border-radius:50%;animation:loader-turn 3s linear infinite}
.loader-orbit:after{content:'';position:absolute;inset:33px;border-radius:50%;background:#e8b6a8;box-shadow:0 2px 7px #a57c711a;animation:loader-breathe 3s ease-in-out infinite}
.loader-title{font-family:"Delius",cursive;font-size:36px;font-weight:400;line-height:1.25;letter-spacing:0;margin:0 0 10px;color:#596572}
.loader-label{font-size:14px;line-height:1.6;margin:0;color:#5f7473}
.loader-note{font-size:12px;line-height:1.6;margin:10px 0 0;color:#657776}
.loader-retry{font:inherit;font-size:13px;min-height:44px;padding:8px 18px;margin-top:18px;background:#fffaf28c;border:1px solid #fffdf7;border-radius:13px;color:#526d60;cursor:pointer}
.loader-retry:focus-visible{outline:2px solid #5d8170;outline-offset:4px}
.loader-retry[hidden],.loader-note[hidden]{display:none}
.scene-loader.is-leaving{opacity:0;visibility:hidden;pointer-events:none}
[data-scene-state='loading'] .room-ui,[data-scene-state='error'] .room-ui{visibility:hidden}
[data-scene-state='error'] .loader-orbit:before,[data-scene-state='error'] .loader-orbit:after{animation:none}
@keyframes loader-turn{to{transform:rotate(360deg)}}
@keyframes loader-breathe{50%{transform:scale(.8);opacity:.65}}
@media(prefers-reduced-motion:reduce){
 .loader-orbit:before,.loader-orbit:after{animation:none}
 .scene-loader{transition:none}
}
