/* Separate layers keep the entrance, cursor tilt and light sweep independent. */
.ash-hero h1.ash-logo { animation:none; perspective:1100px; letter-spacing:-.035em; }
.ash-logo-tilt { display:inline-flex; white-space:nowrap; transform:rotateX(var(--logo-rx,0deg)) rotateY(var(--logo-ry,0deg)); transition:transform .65s cubic-bezier(.22,1,.36,1); }
.ash-hero h1 .ash-logo-part { display:inline-block; padding-inline-end:.12em; margin-inline-end:-.12em; color:transparent; background-clip:text; -webkit-background-clip:text; background-size:300% 100%; background-position:100% 0; }
.ash-hero h1 .ash-logo-web { --logo-glow:#ffffff55; background-image:linear-gradient(110deg,#f4f4f0 34%,#fff 44%,#fff 49%,#f4f4f0 59%); animation:ash-join-left 1.15s cubic-bezier(.16,1,.3,1) both, ash-logo-sheen 7.5s 1.4s linear infinite, ash-logo-glow 7.5s 1.4s ease-in-out infinite; }
.ash-hero h1 .ash-logo-ash { --logo-glow:#b5ff2899; background-image:linear-gradient(110deg,#b5ff28 34%,#edffb9 43%,#fff 47%,#dbff90 51%,#b5ff28 59%); animation:ash-join-right 1.15s .08s cubic-bezier(.16,1,.3,1) both, ash-logo-sheen 7.5s 1.8s linear infinite, ash-logo-glow 7.5s 1.8s ease-in-out infinite; }
.ash-hero h1 .ash-logo-dot { color:var(--accent); animation:ash-dot-breathe 4s 1.4s ease-in-out infinite; }
@keyframes ash-join-left { from {opacity:0;transform:translateX(-.11em);filter:blur(5px)} to {opacity:1;transform:translateX(0);filter:blur(0)} }
@keyframes ash-join-right { from {opacity:0;transform:translateX(.11em);filter:blur(5px)} to {opacity:1;transform:translateX(0);filter:blur(0)} }
@keyframes ash-logo-sheen { 0%,72% {background-position:100% 0} 94%,100% {background-position:0% 0} }
@keyframes ash-logo-glow { 0%,70%,100% {filter:drop-shadow(0 0 0 transparent)} 79% {filter:drop-shadow(0 0 2px var(--logo-glow)) drop-shadow(0 0 15px var(--logo-glow))} 87% {filter:drop-shadow(0 0 1px var(--logo-glow)) drop-shadow(0 0 8px var(--logo-glow))} }
@keyframes ash-dot-breathe { 0%,100% {opacity:1;text-shadow:0 0 0 #b5ff2800} 50% {opacity:.72;text-shadow:0 0 20px #b5ff2833} }
/* Two identical, full-width groups: -50% always lands on the next copy. */
.ash-ticker > .ash-ticker-track { display:flex; width:max-content; padding:0; animation:ash-ticker-loop 42s linear infinite; }
.ash-ticker-group { display:flex; flex:none; align-items:center; justify-content:space-around; min-width:100vw; gap:clamp(20px,3vw,54px); padding:14px clamp(10px,1.5vw,27px); box-sizing:border-box; }
.ash-ticker-group b { padding:0; }
@keyframes ash-ticker-loop { to {transform:translateX(-50%)} }
@media(max-width:650px) { .ash-ticker-group { gap:24px; padding:14px 12px; } }
@media(prefers-reduced-motion:reduce) {
  .ash-logo-tilt {transform:none;transition:none}
  .ash-hero h1 .ash-logo-part,.ash-hero h1 .ash-logo-dot,.ash-ticker > .ash-ticker-track {animation:none;opacity:1;filter:none}
}
