/* M1.6 — handcrafted lightweight SVG field art, no canvas/WebGL overhead. */
.wilderness-panorama{background:#516e71}
.wilderness-panorama[data-area="grove"]{background:#344b4c}
.wilderness-panorama[data-area="grove"] .wilderness-scene-art{
 filter:saturate(.98) contrast(1.05) brightness(.94)
}
.wilderness-panorama[data-area="grove"]::after{
 background:linear-gradient(180deg,#13282c11,transparent 48%,#16292c9c 100%)
}
.wilderness-panorama[data-area="grove"] .wilderness-mist{
 background:radial-gradient(ellipse at 20% 60%,#d1f0df70,transparent 52%),
            radial-gradient(ellipse at 80% 70%,#c9e9e6a1,transparent 48%);
 opacity:.37
}
.world-mob{min-width:clamp(100px,11vw,175px);touch-action:manipulation}
.world-mob .mob-figure{display:grid;place-items:center;
 width:clamp(84px,9.5vw,142px);height:clamp(84px,9.5vw,142px);
 text-shadow:none;pointer-events:none;will-change:transform}
.creature-illustration{display:block;width:100%;height:100%;object-fit:contain;
 filter:drop-shadow(0 5px 5px #0d2427a6);user-select:none}
.world-mob .mob-shade{top:48%;left:12%;right:12%;height:20px;opacity:.7}
.world-mob .mob-label{min-width:120px;box-shadow:0 6px 17px #11202c6e}
.world-mob.mob-defeated .creature-illustration{filter:grayscale(1)}
.world-mob:hover:not(:disabled) .creature-illustration{filter:drop-shadow(0 5px 8px #d7eee86b)}
.duelist.enemy .combat-figure{filter:drop-shadow(0 3px 6px #182c3566)}
.duelist.enemy .combat-figure .combat-fighter{
 object-fit:contain;object-position:center bottom;
 filter:drop-shadow(0 8px 7px #15202aa0)
}
.duelist.enemy .combat-figure .fx-afterimage{
 object-fit:contain;object-position:center bottom
}
/* Small illustrated signs replace emoji-only NPC plaques. */
.city-poi .poi-symbol{display:grid;place-items:center;flex:0 0 38px;min-width:38px}
.city-poi .poi-art{display:block;width:37px;height:37px;object-fit:contain;filter:drop-shadow(0 3px 4px #101b2399)}
.city-poi:hover .poi-art{filter:drop-shadow(0 3px 9px #fbefd97d)}
.service-symbol{overflow:hidden;padding:0!important}
.service-symbol .service-art{display:block;width:100%;height:100%;object-fit:cover}
.city-poi.poi-inn{border-color:#ebdbc1}
.city-poi.poi-merchant{border-color:#c1d6d5b5}
.city-poi.poi-teacher{border-color:#c5d5e5b5}
.city-panorama .city-sunbeams{opacity:.9}
@media(max-width:920px){
 .world-mob{min-width:105px;padding:4px}
 .world-mob .mob-figure{width:clamp(77px,10vw,118px);height:clamp(77px,10vw,118px)}
 .city-poi .poi-symbol{flex-basis:29px;min-width:29px}
 .city-poi .poi-art{width:29px;height:29px}
}
@media(max-width:700px){
 .world-mob{min-width:82px;padding:3px}
 .world-mob .mob-figure{width:clamp(60px,11vw,88px);height:clamp(60px,11vw,88px)}
 .world-mob .mob-label{min-width:92px;padding:5px 5px}
 .world-mob .mob-label strong{font-size:9px}
 .world-mob .mob-label small{font-size:8px}
 .world-mob.mob-position-1{left:26%}
 .world-mob.mob-position-3{left:78%}
 .city-poi .poi-symbol{min-width:22px;flex:0 0 22px}
 .city-poi .poi-art{width:24px;height:24px}
 .service-symbol .service-art{width:100%;height:100%}
}
@media(max-height:420px) and (orientation:landscape){
 .world-mob .mob-figure{width:75px;height:75px}
}
@media(prefers-reduced-motion:reduce){
 .world-mob .mob-figure,.wilderness-mist,.city-sunbeams{animation:none!important;will-change:auto}
}

/* Fight atmosphere follows the same scene as the chosen grove. */
.battle-frame[data-scene="grove"]{
 background-image:linear-gradient(#2338329c,#162b2abf),url('../assets/grove-scene.svg')
}
