/* GYDRA 31.1 — sequential reveal, soft arrival, falling punctuation. */
.brand-motion { overflow: visible; }
.brand-motion__letter, .brand-motion__dot { transform-box: fill-box; transform-origin: center; }
.brand-motion__g { --from: 190px; --delay: 100ms; }
.brand-motion__y { --from: -180px; --delay: 430ms; }
.brand-motion__d { --from: -325px; --delay: 760ms; }
.brand-motion__r { --from: -490px; --delay: 1090ms; }
.brand-motion__a { --from: -615px; --delay: 1420ms; }
.brand-motion__info { --from: -800px; --delay: 1750ms; }
.brand-enter .masthead .brand-motion__letter {
  animation: brand-arrive 740ms cubic-bezier(.22,.72,.24,1) var(--delay) both;
}
@keyframes brand-arrive {
  0% { opacity: 0; transform: translateX(var(--from)) scale(.94); }
  9% { opacity: 1; }
  57% { opacity: 1; transform: translateX(0) scale(1); }
  70% { transform: translateX(2px) rotate(.6deg) scale(1.055); }
  80% { transform: translateX(-1.5px) rotate(-.45deg) scale(1.02); }
  90% { transform: translateX(.7px) rotate(.15deg) scale(.995); }
  100% { opacity: 1; transform: translateX(0) rotate(0) scale(1); }
}
.brand-enter .masthead .brand-motion__dot { animation: brand-drop 650ms cubic-bezier(.22,.7,.3,1) both; }
.brand-enter .masthead .brand-motion__head { animation-delay: 2500ms; }
.brand-enter .masthead .brand-motion__point { animation-delay: 3250ms; }
@keyframes brand-drop {
  0% { opacity: 0; transform: translateY(-105px) scale(.9); }
  12% { opacity: 1; }
  45% { opacity: 1; transform: translateY(0) scale(1); }
  70% { opacity: 1; transform: translateY(0) scale(1.3); }
  88% { opacity: 1; transform: translateY(0) scale(1.08); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
 .brand-enter .masthead .brand-motion__letter, .brand-enter .masthead .brand-motion__dot { animation: none; }
}
