/* Overlays cover only the fitted artwork; text, figures and the map stay unfiltered. */
.winter-atmosphere,.winter-atmosphere-front{position:absolute;z-index:2;pointer-events:none;overflow:hidden;contain:layout paint style}
.winter-atmosphere-front{z-index:6}
.winter-atmosphere[hidden],.winter-atmosphere-front[hidden]{display:none!important}
.winter-atmosphere-tone,.winter-atmosphere-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.winter-time-material,.winter-time-pools{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none;filter:none}
.winter-time-material[hidden],.winter-time-pools[hidden]{display:none!important}
.winter-atmosphere[data-material=ready]>.winter-atmosphere-tone{opacity:0}
.world-canvas[data-time-phase=day] .winter-place-light{filter:opacity(.22)}
.world-canvas[data-time-phase=day] .winter-place-light:is([data-status=current],[data-status=available]){filter:none}
.world-canvas[data-time-phase=evening] .winter-place-light{filter:opacity(.64)}
.world-canvas[data-time-phase=night] .winter-place-light>.winter-pack-layer>.winter-pack-dim{opacity:.55}
/* Grounding stays separate from untouched character art and enlarged hit targets. */
[data-time-phase=day]{--winter-shadow-width:58%;--winter-shadow-height:7%;--winter-shadow-left:21%;--winter-shadow-color:#142f493b;--winter-shadow-transform:scaleX(.9);--winter-shadow-blur:1.3px}
[data-time-phase=evening]{--winter-shadow-width:98%;--winter-shadow-height:9%;--winter-shadow-left:27%;--winter-shadow-color:#28345052;--winter-shadow-transform:skewX(-18deg) rotate(-9deg);--winter-shadow-blur:1.8px}
[data-time-phase=night]{--winter-shadow-width:70%;--winter-shadow-height:11%;--winter-shadow-left:15%;--winter-shadow-color:#0f22343d;--winter-shadow-transform:none;--winter-shadow-blur:2.5px}
body.map-journey #gameView .world-canvas[data-time-phase] .journey-actor::before,.scene-stage[data-time-phase] .scene-companion::after{content:'';position:absolute;left:var(--winter-shadow-left);bottom:1%;width:var(--winter-shadow-width);height:var(--winter-shadow-height);border-radius:50%;background:var(--winter-shadow-color);transform:var(--winter-shadow-transform);transform-origin:20% 50%;filter:blur(var(--winter-shadow-blur));pointer-events:none}
.scene-stage[data-time-phase] .scene-companion::after{z-index:-1}
.winter-atmosphere-media-layer{position:absolute;pointer-events:none;overflow:hidden;contain:layout paint style;isolation:isolate}
.winter-atmosphere-media-layer[hidden]{display:none!important}
.winter-atmosphere-media-layer>.winter-atmosphere-media{inset:0!important;width:100%!important;height:100%!important;transform-origin:50% 60%;will-change:transform}
.winter-atmosphere-media-layer[data-effect=fog]>.winter-atmosphere-media{animation:winter-v80-mist-drift calc(15s * var(--winter-effect-tempo,1)) ease-in-out var(--winter-effect-phase,0s) infinite alternate}
.winter-atmosphere-media-layer[data-effect=aurora]>.winter-atmosphere-media{animation:winter-v80-aurora-flow calc(18s * var(--winter-effect-tempo,1)) ease-in-out var(--winter-effect-phase,0s) infinite alternate}
.winter-atmosphere-media-layer[data-effect=reflection]>.winter-atmosphere-media{animation:winter-v80-water-light calc(11s * var(--winter-effect-tempo,1)) ease-in-out var(--winter-effect-phase,0s) infinite alternate}
.winter-atmosphere-media-layer[data-effect=smoke]>.winter-atmosphere-media{animation:winter-v88-smoke-billow calc(7.6s * var(--winter-effect-tempo,1)) ease-in-out var(--winter-effect-phase,0s) infinite alternate;transform-origin:50% 100%}
:is(.winter-atmosphere,.winter-atmosphere-front)[data-paused=true] .winter-atmosphere-media-layer>.winter-atmosphere-media,html.comfort-reduce .winter-atmosphere-media-layer>.winter-atmosphere-media{animation:none!important;transform:none!important;will-change:auto}
@keyframes winter-v80-mist-drift{0%{transform:translate3d(-1.4%,.4%,0) scale(1.025)}50%{transform:translate3d(.3%,-.5%,0) scale(1.035)}100%{transform:translate3d(1.4%,.3%,0) scale(1.025)}}
@keyframes winter-v80-aurora-flow{0%{transform:translate3d(-.6%,0,0) skewX(-.4deg) scale(1.018)}100%{transform:translate3d(.6%,.2%,0) skewX(.4deg) scale(1.018)}}
@keyframes winter-v80-water-light{0%{transform:translate3d(-.4%,0,0) scale(1.01)}100%{transform:translate3d(.4%,0,0) scale(1.01)}}
@keyframes winter-v88-smoke-billow{0%{transform:skewX(-.8deg) scale(1.008,1.002)}37%{transform:skewX(.2deg) scale(1.018,1.012)}72%{transform:skewX(.9deg) scale(1.012,1.022)}100%{transform:skewX(.4deg) scale(1.006,1.008)}}
@media(prefers-reduced-motion:reduce){.winter-atmosphere-media-layer>.winter-atmosphere-media{animation:none!important;transform:none!important;will-change:auto}}
.winter-atmosphere-tone{background:linear-gradient(155deg,#fff0be12,transparent 54%,#3c7ba608);opacity:1}
.winter-atmosphere[data-time=day]>.winter-atmosphere-tone{background:linear-gradient(155deg,#fff8df42,#d7edfa20 62%,#e5f1ff0a)}
.winter-atmosphere[data-time=evening]>.winter-atmosphere-tone{background:linear-gradient(155deg,#efa36836,#606c9420 64%,#65529936)}
.winter-atmosphere[data-time=night]>.winter-atmosphere-tone{background:linear-gradient(155deg,#101c5b65,#1e397b25 55%,#182e6052)}
.winter-atmosphere-controls{display:grid;gap:10px;margin:12px 0;padding:14px 0;border-block:1px solid #819c8b55;min-width:0}
.winter-atmosphere-controls h3,.winter-atmosphere-controls p{margin:0;overflow-wrap:anywhere}
.winter-atmosphere-controls>label{display:grid;grid-template-columns:minmax(80px,1fr) minmax(0,1.25fr);align-items:center;gap:8px;min-height:48px}
.winter-atmosphere-controls select,.winter-atmosphere-controls button{box-sizing:border-box;min-height:48px;max-width:100%;font:inherit}
.winter-atmosphere-controls select{width:100%;padding:8px;color:inherit;background:#fcfaf0;border:1px solid #829a8a;border-radius:10px}
.winter-atmosphere-controls button{padding:10px 14px;border:1px solid #829a8a;border-radius:12px;background:#e9efdf;color:#24483e;white-space:normal}
.winter-atmosphere-controls :is(select,button):focus-visible{outline:3px solid #467363;outline-offset:3px}
.winter-atmosphere-status{font-size:13px;line-height:1.5}
.winter-atmosphere-controls>.winter-snow-control{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px}
.winter-snow-control>input[type=range]{grid-column:1/-1;grid-row:2;min-width:0;width:100%;min-height:48px;margin:0;accent-color:#477764;cursor:pointer}
.winter-snow-control>output{font-weight:700;text-align:right}
.winter-snow-hint,.winter-snow-preview-note{font-size:13px;line-height:1.5}
.winter-snow-preview{display:grid;gap:7px;min-width:0;padding:10px;border:1px solid #8fa69b;border-radius:12px;background:#f6f3e9}
.winter-snow-preview[hidden]{display:none!important}
.winter-snow-preview>strong{font-size:14px}
.winter-snow-preview>canvas{display:block;width:100%;max-width:480px;height:auto;aspect-ratio:40/13;border-radius:8px;background:linear-gradient(165deg,#183b55,#244d5b 55%,#49656c);opacity:1;filter:none}
.winter-snow-control>input:focus-visible{outline:3px solid #467363;outline-offset:3px}
/* Emission has one consistent screen compositing boundary, not one per SVG group. */
.winter-place-contours{mix-blend-mode:screen;isolation:auto;filter:none!important}
.winter-place-light{mix-blend-mode:normal;opacity:.58}
.winter-place-light[data-status=available]{animation:winter-v76-window-quiet 9.6s ease-in-out infinite}
.winter-place-light[data-status=current]{opacity:1;animation:winter-v74-window-breathe 4.2s ease-in-out infinite}
.winter-place-light[data-status=complete]{opacity:.45;animation:winter-v76-window-memory 11.2s ease-in-out infinite}
.winter-place-light:nth-of-type(3n){animation-delay:-2.4s}
.winter-place-light:nth-of-type(3n+1){animation-delay:-4.8s}
.winter-place-light[data-status=locked]{display:none}
.winter-place-cutout,.winter-place-light[data-status=current] .winter-place-cutout{opacity:.025}
.winter-object-outline{opacity:.86;animation:winter-v74-window-breathe 6.8s ease-in-out infinite;mix-blend-mode:screen}
.winter-object-outline[data-found=true]{opacity:.36;animation:none}
.world-canvas[data-winter-atmosphere-paused=true] .winter-place-light,.scene-stage[data-winter-atmosphere-paused=true] .winter-object-outline{animation-play-state:paused}
.world-canvas[data-winter-atmosphere-intensity=quiet] .winter-place-light,.scene-stage[data-winter-atmosphere-intensity=quiet] .winter-object-outline,html.comfort-reduce .winter-place-light,html.comfort-reduce .winter-object-outline{animation:none}
@keyframes winter-v74-window-breathe{0%,100%{opacity:.78}50%{opacity:1}}
@keyframes winter-v76-window-quiet{0%,100%{opacity:.49}50%{opacity:.61}}
@keyframes winter-v76-window-memory{0%,100%{opacity:.39}50%{opacity:.47}}
/* Only the registered bright material changes; terrain and family art stay untouched. */
.world-canvas .winter-place-light[data-status=current]>.winter-pack-layer>.winter-pack-bright{animation-duration:3.3s;filter:brightness(1.14) saturate(1.06)}
.world-canvas .winter-place-light[data-status=available]>.winter-pack-layer>.winter-pack-bright{animation-duration:5.2s;filter:brightness(1.05)}
/* Loading, missing material and custom maps always have visible real buttons. */
body.map-journey #gameView .world-place[data-light-fallback=true]>span{opacity:1;transform:none;min-width:36px;min-height:36px;background:radial-gradient(ellipse,#ffe6aecc,#ad875c4d 58%,transparent 74%)!important;color:#fff8df;text-shadow:0 1px 4px #3d281e}
body.map-journey #gameView .world-place[data-light-fallback=true]:not(:disabled)>small{opacity:1}
body.map-journey #gameView .world-place[data-light-fallback=true]:disabled>span{background:#24483e80!important;color:#e5ebed99;opacity:.65}
.scene-secret:not([data-contour=true]):focus-visible{outline:3px solid #fff0ad;outline-offset:5px}
@media(prefers-reduced-motion:reduce){.winter-place-light[data-status],.winter-object-outline{animation:none}.winter-place-light[data-status=current],.winter-object-outline{opacity:.9}.winter-place-light[data-status=complete]{opacity:.45}.winter-object-outline[data-found=true]{opacity:.36}}
