/* Scene treatment lives below the cards. Only small raster light/mist layers
   animate, using transform/opacity; no moving blur or full-screen filter. */
.hub-world-scenery::after{content:"";position:absolute;inset:0;pointer-events:none;background:url('./hub-atmosphere-r20/film-grain.png') 0 0/128px 128px repeat;opacity:.04}
body[data-library-theme="youth"] .hub-world-scenery::before{filter:blur(.65px)}
body[data-library-theme="full"] .hub-world-scenery::before{filter:blur(.7px)}
body[data-library-theme="youth"] .hub-youth-air{overflow:visible}
.hub-scene-atmosphere{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hub-scene-light,.hub-scene-mist{display:none;position:absolute;animation-play-state:paused;pointer-events:none}
body[data-library-theme="full"] .hub-scene-light{display:block;left:3%;top:120px;width:min(610px,75vw);height:320px;background:radial-gradient(ellipse,#ead6a916,transparent 70%);opacity:.65;animation:hub-scene-light-r20 19s ease-in-out infinite alternate;animation-play-state:paused}
body[data-library-theme="youth"] .hub-scene-light{display:block;right:-4%;top:440px;width:min(560px,65vw);height:200px;background:radial-gradient(ellipse,#fff6cd2b,transparent 70%);opacity:.6;animation:hub-scene-light-r20 23s ease-in-out infinite alternate;animation-play-state:paused}
body[data-library-theme="youth"] #hub-world[data-youth-time="night"] .hub-scene-light{background:radial-gradient(ellipse,#aecce72a,transparent 70%)}
body[data-library-theme="youth"] #hub-world[data-youth-time="night"] .hub-scene-mist{display:block;left:-6%;top:620px;width:min(720px,70vw);height:190px;background:url('./hub-atmosphere-r20/valley-mist.webp') center/100% 100% no-repeat;opacity:.13;animation:hub-scene-mist-r20 38s ease-in-out infinite alternate;animation-play-state:paused}
.hub-scene-atmosphere[data-moving="true"] :is(.hub-scene-light,.hub-scene-mist){animation-play-state:running}
.hub-scene-atmosphere[data-still="true"] :is(.hub-scene-light,.hub-scene-mist){animation:none}
body[data-hub-scene-moving="false"] .hub-dust i{animation-play-state:paused!important}
body[data-hub-scene-still="true"] .hub-dust{display:none!important}
.hub-youth-night-owl{width:var(--hub-owl-size,76px);height:var(--hub-owl-size,76px)}
/* Image softness is static on its own layer; mist stays independently composited. */
.hub-fantasy-scene{background:#1b2023}
.hub-fantasy-backdrop{position:absolute;inset:-2px;background:url('/assets/library-fantasy-r20/lantern-stone-doorway-polished-wide.webp') center/cover no-repeat;filter:blur(.7px)}
.hub-fantasy-scene::before{z-index:1}
.hub-fantasy-scene::after{content:"";position:absolute;inset:0;z-index:2;background:url('./hub-atmosphere-r20/film-grain.png') 0 0/128px 128px repeat;opacity:.045;pointer-events:none}
.hub-fantasy-lantern,.hub-fantasy-motes{z-index:3}
.hub-fantasy-smoke{position:absolute;z-index:2;width:min(820px,57vw);height:220px;pointer-events:none;background:url('./hub-atmosphere-r20/valley-mist.webp') center/100% 100% no-repeat;opacity:.28;animation:hub-fantasy-smoke-r20 32s ease-in-out infinite alternate;animation-play-state:paused}
.hub-fantasy-smoke-near{left:-8%;bottom:12%;animation-delay:-11s}
.hub-fantasy-smoke-far{right:-8%;top:39%;height:160px;width:min(680px,48vw);opacity:.19;animation-duration:43s;animation-delay:-23s;animation-direction:alternate-reverse}
.hub-fantasy-scene[data-moving="true"] .hub-fantasy-smoke{animation-play-state:running}
.hub-fantasy-scene[data-still="true"] .hub-fantasy-smoke{animation:none;opacity:.12}
@keyframes hub-scene-light-r20{from{opacity:.4;transform:translate3d(0,0,0)}to{opacity:.72;transform:translate3d(12px,-5px,0)}}
@keyframes hub-scene-mist-r20{from{transform:translate3d(-12px,3px,0);opacity:.10}to{transform:translate3d(28px,-6px,0);opacity:.18}}
@keyframes hub-fantasy-smoke-r20{0%{transform:translate3d(-24px,7px,0);opacity:.14}50%{opacity:.3}100%{transform:translate3d(38px,-11px,0);opacity:.2}}
@media(max-width:700px){
 .hub-youth-night-owl{width:var(--hub-owl-size,48px);height:var(--hub-owl-size,48px)}
 .hub-fantasy-backdrop{background-image:url('/assets/library-fantasy-r20/lantern-stone-doorway-polished.webp');background-position:56% center}
 .hub-fantasy-smoke-near{width:86vw;height:170px;left:-20%;bottom:22%}
 .hub-fantasy-smoke-far{width:65vw;height:120px;right:-18%;top:28%}
 body[data-library-theme="youth"] .hub-scene-light{width:70vw;top:420px;height:150px}
 body[data-library-theme="youth"] #hub-world[data-youth-time="night"] .hub-scene-mist{width:80vw;top:550px;height:130px}
}
@media(prefers-reduced-motion:reduce){.hub-fantasy-smoke,.hub-scene-light,.hub-scene-mist{animation:none!important}}
@media(forced-colors:active){.hub-scene-atmosphere,.hub-world-scenery::after{display:none!important}}
@media print{.hub-scene-atmosphere,.hub-world-scenery::after{display:none!important}}
