/* Saison-Dekoration: nur dekorativ, klick-durchlässig, ohne Layout-Verschiebung */
.sz-layer { position: fixed; inset: 0; z-index: 30; pointer-events: none; overflow: hidden; }
.sz-garland { position: absolute; top: 0; left: 0; right: 0; height: 0; }
.sz-garland::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 9px; }
.sz-lametta::before { background: repeating-linear-gradient(90deg, #d4af37 0 6px, #f4e08a 6px 9px, #c0c0c0 9px 15px, #e8e8e8 15px 18px); box-shadow: 0 2px 4px rgba(0, 0, 0, .25); }
.sz-netz::before { background: repeating-linear-gradient(90deg, #ff7a00 0 20px, #2b1b3d 20px 40px); }
.sz-eier::before { background: repeating-linear-gradient(90deg, #ffc8dd 0 14px, #bde0fe 14px 28px, #fff3b0 28px 42px, #caffbf 42px 56px); }
.sz-fahne::before { background: repeating-linear-gradient(90deg, #e63946 0 12px, #ffd166 12px 24px, #06d6a0 24px 36px, #118ab2 36px 48px); }
.sz-ball { position: absolute; top: calc(var(--len, 20px) + 6px); width: 1.1rem; height: 1.1rem; border-radius: 50%; transform-origin: 50% calc(-1 * var(--len, 20px)); animation: sz-swing 4s ease-in-out infinite alternate; box-shadow: inset -3px -3px 5px rgba(0, 0, 0, .25), inset 3px 3px 5px rgba(255, 255, 255, .45); }
.sz-ball::before { content: ""; position: absolute; left: 50%; bottom: 100%; width: 1px; height: var(--len, 20px); background: rgba(120, 120, 120, .7); }
.sz-eier .sz-ball { border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; width: 0.95rem; height: 1.25rem; }
.sz-fahne .sz-ball { border-radius: 0; width: 0.9rem; height: 1rem; clip-path: polygon(0 0, 100% 0, 50% 100%); box-shadow: none; }
.sz-c-r { background: #d62839; } .sz-c-g { background: #2a9d4b; } .sz-c-y { background: #f4c430; } .sz-c-b { background: #3a7bd5; }
.sz-c-o { background: #ff7a00; } .sz-c-p { background: #7b2cbf; } .sz-c-k { background: #1d1d1d; }
.sz-c-pk { background: #ffafcc; } .sz-c-gb { background: #ffe66d; } .sz-c-bl { background: #a2d2ff; } .sz-c-gr { background: #b7e4c7; }
.sz-fig { position: absolute; font-size: var(--sz-s, 2.6rem); line-height: 1; filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .3)); animation: sz-bob 3.2s ease-in-out infinite alternate; animation-delay: var(--sz-d, 0s); }
.sz-v-b { bottom: 0.4rem; } .sz-v-m { top: 48%; } .sz-v-t { top: 3.2rem; }
.sz-h-l { left: 0.4rem; } .sz-h-r { right: 0.4rem; }
.sz-v-m, .sz-v-t { opacity: .85; }
.sz-fall { position: absolute; top: -2rem; animation: sz-fall linear infinite; opacity: .85; }
.sz-bar { position: fixed; left: 50%; bottom: 0.6rem; transform: translateX(-50%); z-index: 31; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.3rem 0.8rem; max-width: calc(100% - 1.5rem); padding: 0.35rem 0.8rem; border-radius: 999px; background: var(--paper, #fff); color: var(--ink, #111); border: 1px solid var(--line, #ccc); box-shadow: 0 2px 10px rgba(0, 0, 0, .2); font-size: 0.9rem; }
.sz-off { font: inherit; font-size: 0.8rem; padding: 0.15rem 0.6rem; min-height: 0; border: 1px solid var(--line, #ccc); border-radius: 999px; background: transparent; color: inherit; cursor: pointer; }
.sz-off:hover { background: var(--accent-soft, #eee); }
@keyframes sz-swing { from { transform: rotate(-6deg); } to { transform: rotate(6deg); } }
@keyframes sz-bob { from { transform: translateY(0) rotate(-4deg); } to { transform: translateY(-8px) rotate(4deg); } }
@keyframes sz-fall { from { transform: translate3d(0, -2rem, 0) rotate(0); } to { transform: translate3d(2.5rem, 105vh, 0) rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .sz-ball, .sz-fig, .sz-fall { animation: none !important; } }
@media print { .sz-layer, .sz-bar { display: none; } }
