/* Section entrances (reveal.js): a short rise and fade, staggered within each group. A keyframe animation rather than a
   transition, so it never replaces an element's own transitions (the expanding panels, the FAQ rows). */
@keyframes rv-up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.rv{opacity:0}
.rv.rv-in{animation:rv-up .9s cubic-bezier(.22,1,.36,1) var(--rv-d,0s) both}

/* closing card frame lines: each outline draws round from its corner, then its green square pops in */
.close-lines .sq{transform-box:fill-box;transform-origin:center}
.lines-wait .close-lines .ln{stroke-dasharray:1 1;stroke-dashoffset:1}
.lines-wait .close-lines .sq{transform:scale(0)}
.lines-in .close-lines .ln{stroke-dashoffset:0;transition:stroke-dashoffset 1.8s cubic-bezier(.65,0,.35,1)}
.lines-in .close-lines.front .ln{transition-delay:.35s}
.lines-in .close-lines .sq{transform:none;transition:transform .7s cubic-bezier(.34,1.56,.64,1) 1.3s}
.lines-in .close-lines.front .sq{transition-delay:1.6s}
@media (prefers-reduced-motion:reduce){.rv{opacity:1}.rv.rv-in{animation:none}}
