/* Dekoration im Basislager (base-decor.js) */
.base-obj:is([aria-label="Zaun"], [aria-label="Hecke"], [aria-label="Laterne"], [aria-label="Wäscheleine"], [aria-label="Statue"], [aria-label="Marktstand"], [aria-label="Gemüsebeet"], [aria-label="Brunnen"]) .base-tile-label { display: none; }
@keyframes decSpray { 0%, 100% { opacity: 0.35; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-1px); } }
.base-obj .px-l-spray { animation: decSpray 1.6s ease-in-out infinite; }
@keyframes decSway { 0%, 100% { transform: skewX(0deg); } 50% { transform: skewX(3deg); } }
.base-obj .px-l-cloth { transform-box: fill-box; transform-origin: 50% 0; animation: decSway 3.4s ease-in-out infinite; }
.base-obj .px-l-glow { opacity: 0; transition: opacity 1.4s; }
.base-stage[data-light="abend"] .base-obj .px-l-glow, .base-stage[data-light="nacht"] .base-obj .px-l-glow { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .base-obj .px-l-spray, .base-obj .px-l-cloth { animation: none; } }
/* Bauen-Menü: Reiter und Kombo-Übersicht */
.base-tabs { display: flex; gap: 6px; margin: 0 0 8px; }
.base-tabs .base-btn.active { outline: 2px solid #2b1a0e; filter: brightness(1.08); }
.base-combos { margin: 0 0 8px; }
.base-combo { display: flex; gap: 8px; align-items: flex-start; padding: 4px 6px; margin: 3px 0; border-radius: 6px; background: rgba(0, 0, 0, 0.06); opacity: 0.75; }
.base-combo.on { opacity: 1; background: rgba(90, 190, 90, 0.2); }
.base-combo-ic { min-width: 2.2em; text-align: center; }
.base-combo, .base-combo small, .base-combo b { color: #2b1a0e; }
.base-combo small { opacity: 0.8; }

/* Feste Bauplätze (base-sites.js) */
.base-obj:is([aria-label^="Flutlicht"], [aria-label="Tribüne"], [aria-label$="(Baustelle)"], [aria-label="Großes Lagerfeuer"]) .base-tile-label { display: none; }
.base-stage[data-light="abend"] .base-obj .px-l-flame, .base-obj .px-l-flame { animation: decFlame 1.1s ease-in-out infinite alternate; transform-box: fill-box; transform-origin: 50% 100%; }
@keyframes decFlame { from { transform: scale(1, 0.93); } to { transform: scale(1.04, 1.05); } }
.base-npc[data-act="picknick"] .base-npc-body::after { content: ""; position: absolute; z-index: 7; image-rendering: pixelated; background: var(--pa-basket) center bottom / 100% 100% no-repeat; width: 40%; height: 32%; right: -26%; bottom: 6%; }
.base-npc[data-act="sonnen"] .base-npc-body { transform: rotate(-84deg) translate(-8%, 6%); transform-origin: 50% 85%; }
.base-npc[data-act="sonnen"] .base-npc-body::before { content: "☀️"; position: absolute; z-index: 8; left: 40%; top: -40%; font-size: 0.9rem; transform: rotate(84deg); animation: paTwinkle 1.6s ease-in-out infinite alternate; }

/* Detailanimationen der Dekoration */
@keyframes decStream { 0% { opacity: 0.3; transform: translateY(-1px); } 50% { opacity: 0.95; } 100% { opacity: 0.3; transform: translateY(2px); } }
.base-obj .px-l-stream { animation: decStream 1.2s linear infinite; }
@keyframes decRipple { 0%, 100% { opacity: 0.2; transform: scale(0.96); } 50% { opacity: 0.85; transform: scale(1.05); } }
.base-obj .px-l-ripple { transform-box: fill-box; transform-origin: 50% 50%; animation: decRipple 2.2s ease-in-out infinite; }
.base-obj .px-l-cloth2 { transform-box: fill-box; transform-origin: 50% 0; animation: decSway 4.1s ease-in-out -1.3s infinite; }
@keyframes decGrow { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.04) skewX(-1deg); } }
.base-obj .px-l-plants { transform-box: fill-box; transform-origin: 50% 100%; animation: decGrow 3.6s ease-in-out infinite; }
.base-obj .px-l-awning { animation: decStream 4s ease-in-out infinite alternate; }
@keyframes pbDip { 0%, 100% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(26%) rotate(0deg); } 70% { transform: translateY(0) rotate(-6deg); } }
@keyframes pbSnip { from { transform: rotate(-6deg) scaleX(1); } to { transform: rotate(6deg) scaleX(0.82); } }
@keyframes pbRaise { 0%, 100% { transform: translateY(8%); } 50% { transform: translateY(-14%); } }
.base-npc[data-act="wasserholen"] .dg-decor-npc-wrap { animation: paLean 1.6s ease-in-out infinite; }
.base-npc[data-act="heckenschneiden"] .dg-decor-npc-wrap { animation: paBob 0.5s steps(2, end) infinite; }
.base-npc[data-act="laternen"] .dg-decor-npc-wrap, .base-npc[data-act="denkmal"] .dg-decor-npc-wrap { animation: none; }
.base-npc[data-act="waescheleine"] .base-npc-body::after { content: ""; position: absolute; z-index: 7; image-rendering: pixelated; background: var(--pa-wash) center bottom / 100% 100% no-repeat; width: 78%; height: 38%; right: -50%; bottom: 34%; transform-origin: 50% 0; animation: paFlutter 1.6s ease-in-out infinite; }
.base-npc[data-act="waescheleine"] .dg-decor-npc-wrap { animation: none; }
@media (prefers-reduced-motion: reduce) { .base-obj .px-l-stream, .base-obj .px-l-ripple, .base-obj .px-l-cloth2, .base-obj .px-l-plants, .base-obj .px-l-awning { animation: none; } .base-npc[data-act] .base-npc-body::after { animation: none; } }

/* Großes Lagerfeuer, Flutlicht, Tribüne */
@keyframes decFlame2 { from { transform: scale(1.05, 1.08) translateX(-1%); } to { transform: scale(0.92, 0.9) translateX(1%); } }
.base-obj .px-l-flame2 { transform-box: fill-box; transform-origin: 50% 100%; animation: decFlame2 0.7s ease-in-out infinite alternate; }
@keyframes decSparks { 0% { opacity: 0; transform: translateY(8%); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(-28%); } }
.base-obj .px-l-sparks { animation: decSparks 1.8s ease-out infinite; }
@keyframes decGlowPulse { from { opacity: 0.7; } to { opacity: 1; } }
.base-obj[aria-label="Großes Lagerfeuer"] .px-l-glow { opacity: 1; animation: decGlowPulse 1.3s ease-in-out infinite alternate; }
.base-stage[data-light="tag"] .base-obj[aria-label="Großes Lagerfeuer"] .px-l-glow { opacity: 0.35; animation: none; }
@media (prefers-reduced-motion: reduce) { .base-obj .px-l-flame, .base-obj .px-l-flame2, .base-obj .px-l-sparks, .base-obj[aria-label="Großes Lagerfeuer"] .px-l-glow { animation: none; } }
