/* The retired CSS room is never a loading/failure screen. Keep its book controls accessible. */
.room>.wallpaper,.room>.ambient,.toy-shelf,.room>.desk,.room main>.intro,.shelves .plank{display:none!important}
.shelves{position:absolute!important;clip-path:inset(50%);width:1px!important;height:1px!important;overflow:hidden!important}
body:not(.webgl-ready) .room{background:transparent!important;box-shadow:none!important}
.room-loading .room,.room-loading>.library-top,.room-loading>.library-bottom,.room-loading>[aria-label="灯光测试"]{visibility:hidden!important}
.room-loading #dream-canvas{opacity:0}
#dream-canvas{transition:opacity .65s ease}
#room-entrance{position:fixed;inset:0;z-index:200000;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#304d61 0,#192f43 48%,#101e30 100%);color:#ffefc9;text-align:center;overflow:hidden;transition:opacity .65s ease,visibility .65s}
#room-entrance.leaving{opacity:0;visibility:hidden;pointer-events:none}
.entrance-inner{width:min(340px,82vw);position:relative;z-index:1}
.entrance-emblem{width:116px;height:116px;margin:0 auto 20px;filter:drop-shadow(0 0 22px #eac0793d);animation:entrance-float 4s ease-in-out infinite}
.entrance-inner h1{font-size:clamp(28px,5vw,36px);letter-spacing:.13em;color:#ffe6af;margin:0 0 8px}
.entrance-brand{font:15px Georgia,serif;letter-spacing:.26em;color:#d8bd8f;margin-bottom:34px}
#entrance-status{font-size:14px;letter-spacing:.08em;min-height:24px;color:#e7d9bb}
#entrance-progress{appearance:none;display:block;margin:18px auto 0;width:160px;height:4px;border:0;border-radius:8px;overflow:hidden;background:#ffffff1a;color:#e8c17d}
#entrance-progress::-webkit-progress-bar{background:#ffffff1a;border-radius:8px}
#entrance-progress::-webkit-progress-value{background:#e8c17d;border-radius:8px;transition:width .45s}
.entrance-stars{position:absolute;inset:0;pointer-events:none}
.entrance-stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:#f9dd9e;box-shadow:0 0 8px #ffdfa980;animation:entrance-twinkle 3.4s ease-in-out infinite}
#entrance-retry{margin-top:20px;padding:10px 25px;border:1px solid #d0ad74;border-radius:24px;background:#fff0d2;color:#51402a;font:inherit;cursor:pointer}
#entrance-retry[hidden]{display:none}
@keyframes entrance-float{50%{transform:translateY(-6px)}}
@keyframes entrance-twinkle{50%{opacity:.25;transform:scale(.65)}}
@media(prefers-reduced-motion:reduce){.entrance-emblem,.entrance-stars i{animation:none!important}#room-entrance,#dream-canvas{transition:none!important}}

#entrance-progress[hidden]{display:none}
