/* One alpha-shaped high-contrast glow contract for present and future village art buttons. */
html:root #villageScreen .art-button{--hud-glow:#fff}
html:root #villageScreen .art-button>img{filter:drop-shadow(0 3px 3px #000e) drop-shadow(0 0 2px var(--hud-glow)) drop-shadow(0 0 6px var(--hud-glow)) drop-shadow(0 0 12px var(--hud-glow))!important}
html:root #villageScreen .art-button:is(:hover,:focus-visible)>img{filter:drop-shadow(0 3px 3px #000e) drop-shadow(0 0 3px var(--hud-glow)) drop-shadow(0 0 9px var(--hud-glow)) drop-shadow(0 0 17px var(--hud-glow))!important}
html:root #villageScreen .expedition-shortcut .art-button[data-activity=active]{--hud-glow:#39ff14}
html:root #villageScreen #villageMissionConsole[data-mission-state=incoming] #villageAttackButton{--hud-glow:#ff2020}
html:root #villageScreen #villageMissionConsole[data-mission-state=outgoing] #villageAttackButton{--hud-glow:#30dcff}
html:root #villageScreen #villageMissionConsole[data-mission-state=idle] #villageAttackButton>img{animation:none!important}
html:root #villageScreen #playerProfileButton{box-shadow:0 4px 6px #000b,0 0 4px #fff,0 0 11px #fff,0 0 20px #ffffffbb!important}
html:root #villageScreen .consumed-resources button{box-shadow:0 3px 5px #000b,0 0 3px #fff,0 0 8px #ffffffdd!important}
html:root #villageScreen .consumed-resources button:hover{box-shadow:0 3px 5px #000b,0 0 5px #fff,0 0 13px #fff!important}
/* These two world surfaces own the complete game viewport. Other windows retain the shared frame. */
html:root #villageScreen #worldMapPanel:is(.world-global-mode,.world-battle-mode){inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;transform:none!important;margin:0!important;border:0!important;border-radius:0!important}
html:root #villageScreen #worldMapPanel.world-battle-mode .world-content{flex:1;min-height:0;overflow:hidden!important}
@media(prefers-reduced-motion:reduce){html:root #villageScreen #villageMissionConsole #villageAttackButton>img{animation:none!important;opacity:1!important}}
/* VIP state glow animates independently of the emblem. */
html:root #villageScreen #villageVip[data-active=false]{--hud-glow:#ff2525}
html:root #villageScreen #villageVip[data-active=true]{--hud-glow:#ffe732;isolation:isolate}
html:root #villageScreen #villageVip[data-active=true]::before{display:block!important;content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('./market/vip.webp') center/contain no-repeat;filter:drop-shadow(0 0 5px #ffdf19) drop-shadow(0 0 12px #ffc619);animation:vip-rays 2.8s ease-in-out infinite;transform-origin:center}
@keyframes vip-rays{0%,100%{opacity:.4;transform:scale(.98)}50%{opacity:.85;transform:scale(1.12)}}
@media(prefers-reduced-motion:reduce){html:root #villageScreen #villageVip[data-active=true]::before{animation:none;opacity:.65}}
