/* Vypínač · fx-reveal: entrance, depth and number pop for card grids (all pages).
   Presentation only. Without JS or with reduced motion nothing is hidden: the .fxr class is only
   added by fx-reveal.js, and only when motion is allowed. */

/* staggered entrance: cards rise 14 px and fade in the first time they scroll into view */
.fxr { opacity: 0; transform: translateY(14px); }
.fxr.fxr-in { opacity: 1; transform: none; transition: opacity .42s var(--out, ease-out), transform .42s var(--out, ease-out); transition-delay: var(--fxr-d, 0ms); }
/* once landed, the stagger delay is dropped so hover reacts within 220 ms */
.fxr.fxr-in.fxr-done { transition: transform .22s var(--out, ease-out), border-color .2s, box-shadow .2s; transition-delay: 0ms; }

/* takeaway numbers pop after their card has landed (secondary action) */
.take > li.fxr-in::before, .odnes > li.fxr-in::before { animation: fxrNum .55s var(--spring, ease-out) both; animation-delay: calc(var(--fxr-d, 0ms) + 160ms); }
@keyframes fxrNum { 0% { transform: scale(.4); opacity: 0; } 60% { transform: scale(1.18); opacity: .3; } 100% { transform: scale(1); opacity: .18; } }

/* depth on hover: the card lifts toward the pointer (mouse only, touch keeps its native press) */
@media (hover: hover) and (pointer: fine) {
  .take > li, .odnes > li, .terms .term, .combos .combo, .minis .mini, .stats .stat {
    transition: transform .22s var(--out, ease-out), border-color .2s, box-shadow .2s;
  }
  .take > li:hover, .odnes > li:hover, .terms .term:hover, .combos .combo:hover, .minis .mini:hover, .stats .stat:hover {
    transform: translateY(-3px);
    border-color: var(--c, var(--accent, var(--exo)));
    box-shadow: 0 12px 28px rgba(0, 0, 0, .22);
  }
}

/* harm chart: the hovered bar brightens and the value punches */
.hbar:hover .hb-track i { filter: brightness(1.25); }
.hbar:hover .hb-val { transform: scale(1.12); }
.hbar .hb-val { display: inline-block; transition: transform .18s var(--out, ease-out); }

@media print { .fxr { opacity: 1 !important; transform: none !important; } }

@media (prefers-reduced-motion: reduce) {
  .fxr { opacity: 1; transform: none; transition: none; }
  .take > li.fxr-in::before, .odnes > li.fxr-in::before { animation: none; }
  .take > li:hover, .odnes > li:hover, .terms .term:hover, .combos .combo:hover, .minis .mini:hover, .stats .stat:hover { transform: none; }
  .hbar:hover .hb-val { transform: none; }
}
