/* date-kit – gemeinsame Grundlagen (Quelle: ~/date/_kit/) */
@font-face { font-family: 'Fredoka'; src: url('fonts/Fredoka.woff2') format('woff2'); font-weight: 400 700; font-display: swap; }
@font-face { font-family: 'Caveat'; src: url('fonts/Caveat.woff2') format('woff2'); font-weight: 500 700; font-display: swap; }
@font-face { font-family: 'Quicksand'; src: url('fonts/Quicksand.woff2') format('woff2'); font-weight: 500 700; font-display: swap; }

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body { -webkit-tap-highlight-color: transparent; }
img, video { display: block; max-width: 100%; }
button { font: inherit; }

/* aufsteigende Symbole */
.kit-layer { position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 1; }
.kit-float { position: absolute; bottom: -50px; left: 0; will-change: transform, opacity; user-select: none; }
.kit-burst { position: fixed; z-index: 1000; pointer-events: none; will-change: transform, opacity; user-select: none; }

/* Sterne + Sternschnuppen */
.kit-stars { position: absolute; top: 0; left: 0; border-radius: 50%; animation: kit-twinkle 6s ease-in-out infinite alternate; }
@keyframes kit-twinkle { from { opacity: .4 } to { opacity: 1 } }
.kit-meteor {
  position: absolute; top: 0; left: 0; height: 2px; border-radius: 2px; opacity: 0;
  background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,190,230,.45) 60%, #fff);
  transform-origin: 100% 50%;
}
.kit-meteor::after {
  content: ''; position: absolute; right: -2px; top: -1px; width: 4px; height: 4px; border-radius: 50%;
  background: #fff; box-shadow: 0 0 8px 3px rgba(255,180,230,.9);
}

/* flüchtender Nein-Knopf */
.kit-runaway {
  position: fixed !important; z-index: 900; margin: 0 !important;
  transition: left .28s cubic-bezier(.34,1.4,.64,1), top .28s cubic-bezier(.34,1.4,.64,1), transform .2s ease !important;
}
/* Ja-Knopf wächst (JS setzt style.scale) */
.kit-grow { transition: scale .35s cubic-bezier(.34,1.56,.64,1), transform .2s ease, box-shadow .2s ease; }

/* Einblenden beim Scrollen */
[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }
[data-reveal].kit-in { opacity: 1; transform: none; }

/* Glanz-Streifen über Knöpfe */
.kit-shine { position: relative; overflow: hidden; }
.kit-shine::after {
  content: ''; position: absolute; inset: -50% auto -50% -60%; width: 40%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent);
  transform: skewX(-20deg); animation: kit-shine 3.2s ease-in-out infinite;
}
@keyframes kit-shine { 0%, 55% { left: -60% } 100% { left: 130% } }

:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  [data-reveal] { opacity: 1; transform: none; }
}

/* Werte aus dem Date-Admin: Felder kurz ausblenden, bis daten.json geladen ist (höchstens 1,5 s) */
.kit-laedt [data-k] { visibility: hidden; }
