/* Brand motion keyframes (V4 opening, V5 later visits, V7 logo light): copied from the portal's css/parts/motion-brand.css.
   Only transform, opacity, clip-path and mask-position move. Everything stops under "reduce motion". */
@keyframes edge-in { from { -webkit-mask-position: 100% 0; mask-position: 100% 0; } to { -webkit-mask-position: 0 0; mask-position: 0 0; } }
@keyframes edge-out { from { -webkit-mask-position: 0 0; mask-position: 0 0; } to { -webkit-mask-position: 100% 0; mask-position: 100% 0; } }
@keyframes slogan-up { from { clip-path: inset(100% 0 0 0); transform: translateY(var(--slogan-rise)); } to { clip-path: inset(0); transform: none; } }
@keyframes shine-pass { 0% { opacity: 1; background-position: 120% 0; } 85% { opacity: 1; } 100% { opacity: 0; background-position: -20% 0; } }
@keyframes shine-pass-rev { 0% { opacity: 1; background-position: -20% 0; } 85% { opacity: 1; } 100% { opacity: 0; background-position: 120% 0; } }
@keyframes shine-move { 0% { background-position: 120% 0; } 18.33%, 100% { background-position: -20% 0; } }
@keyframes shine-glow { 0%, 15.58% { opacity: 1; } 18.33%, 100% { opacity: 0; } }
@keyframes opening-live { from { visibility: visible; } to { visibility: hidden; } }
@keyframes opening-skip { from { opacity: 1; visibility: visible; } to { opacity: 0; visibility: hidden; } }
@keyframes ret-close { 0%, 45% { clip-path: circle(80% at 50% 50%); } 100% { clip-path: circle(0% at 50% 50%); } }
@keyframes ret-turn { from { rotate: -60deg; } to { rotate: 60deg; } }
@keyframes ret-fade { 0% { opacity: 0; scale: 0.8; } 25%, 55% { opacity: 1; scale: 1; } 100% { opacity: 0; scale: 0.6; } }

/* Reduce motion: nothing moves, the finished page shows at once (js/quiet.js also picks no opening). */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
