/* Funkelnde Sterne (twinklestar) */
.fx-starfield i { position: absolute; left: var(--x); top: var(--y); width: var(--s); height: var(--s); margin: calc(var(--s) / -2) 0 0 calc(var(--s) / -2);
  opacity: 0; transform: scale(0) rotate(var(--r)); animation: fx-twinkle var(--tw) ease-in-out var(--td) infinite; }
.fx-starfield i::before, .fx-starfield i::after { content: ""; position: absolute; inset: 0; }
.fx-starfield i::before { background: radial-gradient(circle, #fff 0 18%, #e9eeff 40%, #cfd8ff);
  clip-path: polygon(50% 0, 58% 42%, 100% 50%, 58% 58%, 50% 100%, 42% 58%, 0 50%, 42% 42%); }
.fx-starfield i::after { inset: -60%; border-radius: 50%; background: radial-gradient(closest-side, rgba(220,228,255,.55), transparent); z-index: -1; }
.fx-starfield i.is-gold::before { background: radial-gradient(circle, #fff 0 18%, #ffe9b0 45%, #f3c766); }
.fx-starfield i.is-gold::after { background: radial-gradient(closest-side, rgba(255,214,130,.5), transparent); }
@keyframes fx-twinkle {
  0%   { opacity: 0; transform: scale(0) rotate(var(--r)); }
  14%  { opacity: 1; transform: scale(1) rotate(calc(var(--r) + 30deg)); }
  22%  { opacity: .7; transform: scale(.55) rotate(calc(var(--r) + 40deg)); }
  30%  { opacity: 1; transform: scale(1.15) rotate(calc(var(--r) + 50deg)); }
  42%  { opacity: .85; transform: scale(.8) rotate(calc(var(--r) + 65deg)); }
  55%, 100% { opacity: 0; transform: scale(0) rotate(calc(var(--r) + 90deg)); } }

@media (max-width: 640px) { .fx-page .fx-starfield i:nth-child(n+10) { display: none; } }
@media (prefers-reduced-motion: reduce) { .fx-starfield i { opacity: .7; transform: scale(.7) rotate(var(--r)); } }   /* Sterne stehen still */
