:root {
  /* Portal: fast and functional */
  --dur-fast: 0.15s; /* @kind other */
  --dur-base: 0.2s; /* @kind other */
  --dur-theme: 0.3s; /* @kind other */
  /* Marketing: slow, cinematic reveals */
  --dur-scroll: 0.8s; /* @kind other */
  --dur-entrance: 1s; /* @kind other */
  --dur-fade: 1.5s; /* @kind other */

  --ease-out: ease-out; /* @kind other */
  --ease-default: ease; /* @kind other */
  --ease-expressive: cubic-bezier(0.22, 1, 0.36, 1); /* @kind other */

  /* Staggered view entrances step by 0.08s per child */
  --stagger-step: 0.08s; /* @kind other */
}

@keyframes aeq-fade-in { from { opacity: 0 } to { opacity: 1 } }
@keyframes aeq-slide-in-up { from { opacity: 0; transform: translateY(30px) } to { opacity: 1; transform: translateY(0) } }
@keyframes aeq-slide-in-down { from { opacity: 0; transform: translateY(-30px) } to { opacity: 1; transform: translateY(0) } }
@keyframes aeq-slide-in-left { from { opacity: 0; transform: translateX(-50px) } to { opacity: 1; transform: translateX(0) } }
@keyframes aeq-slide-in-right { from { opacity: 0; transform: translateX(50px) } to { opacity: 1; transform: translateX(0) } }
@keyframes aeq-scale-x { from { transform: scaleX(0) } to { transform: scaleX(1) } }
@keyframes aeq-view-fade-in { from { opacity: 0; transform: translateY(12px) } to { opacity: 1; transform: translateY(0) } }
@keyframes aeq-spin { to { transform: rotate(360deg) } }
@keyframes aeq-slide-in-right-toast { from { transform: translateX(100%); opacity: 0 } to { transform: translateX(0); opacity: 1 } }
@keyframes aeq-skeleton-shimmer { 0% { background-position: 100% 50% } 100% { background-position: 0 50% } }
