/* Source alpha: general .75 / PC 1. Host disabled/working behavior stays owned by host.
   General badge offsets adapt the current compact web hex, not full native Text layout.
   PC skin is opt-in on a separate PC host; never mount it on .harvest-hex. */
.gather-state-view{position:relative}
.gather-state-view[data-native-gather-variant="general"][data-native-gather-availability="unavailable"]{opacity:.75}
.gather-state-overlay{position:absolute;inset:0;pointer-events:none;z-index:5}
.gather-state-overlay img{position:absolute;object-fit:contain;pointer-events:none;filter:none}
.gather-state-warning{width:var(--source-gather-general-warning-size);height:var(--source-gather-general-warning-size);left:var(--web-gather-general-warning-left);top:var(--web-gather-general-warning-top)}
.gather-state-critical{width:var(--source-gather-general-critical-size);height:var(--source-gather-general-critical-size);left:var(--web-gather-general-critical-left);top:var(--web-gather-general-critical-top);font-size:var(--source-gather-general-critical-font)}
.gather-state-view[data-native-gather-variant="general"][data-native-gather-critical="true"][data-native-gather-last-amount="true"] .gather-state-critical{animation:gather-state-critical-alpha 1s var(--web-gather-critical-easing) infinite alternate}
/* InfoLabel28276/TweenAlpha41202: PingPong, duration1, alpha1 -> .5.
   CSS easing approximates Unity's serialized animation curve; no execution timer here. */
@keyframes gather-state-critical-alpha{from{opacity:1}to{opacity:.5}}
.gather-state-description{position:absolute;width:var(--web-gather-hidden-pixel);height:var(--web-gather-hidden-pixel);overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(prefers-reduced-motion:reduce){.gather-state-view .gather-state-critical{animation:none!important}}
