@keyframes esHeroRise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes esBob{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}@keyframes esMoonGlow{0%,to{opacity:.55}50%{opacity:1}}@keyframes eyeBlink{0%,6%,to{opacity:var(--o,.6)}2%,4%{opacity:0}}@keyframes esFlare{0%{opacity:0;transform:translateX(-10vw)}6%{opacity:.9}12%,to{opacity:0;transform:translateX(110vw)}}@keyframes esPulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.lp-anim{animation:none!important}}@keyframes esMarq{0%{transform:translateX(0)}to{transform:translateX(-50%)}}

/* !important is LOAD-BEARING: the track sets `animation` as an inline
   shorthand, which carries animation-play-state:running, and an inline style
   beats a stylesheet rule. Without it the hover pause silently does nothing —
   the prototype had it for the same reason. */[data-mq]:hover [data-mq-track]{animation-play-state:paused!important}@keyframes esActivityFlash{0%{background-color:rgba(216,180,74,.16)}to{background-color:transparent}}[data-board-mq-track]{animation-name:esMarq;animation-timing-function:linear;animation-iteration-count:infinite;will-change:transform}[data-board-mq]:focus-within [data-board-mq-track],[data-board-mq]:hover [data-board-mq-track]{animation-play-state:paused}@media (prefers-reduced-motion:reduce){[data-board-mq-track]{animation:none}[data-board-mq]{overflow-x:auto}}