/* Animated hero lockup based on the supplied Digisoul Media Hero design. */
.brand-sculpture.hero-logo-replay { appearance: none; width: 100%; padding: 8px; border: 0; background: transparent; color: inherit; cursor: pointer; }
.brand-sculpture.hero-logo-replay .hero-logo-mark { width: clamp(140px, 16vw, 220px); height: auto; overflow: visible; animation: none; transform: none; }
.hero-logo-leaf { fill: #1a1c19; stroke: #d5ff5f; stroke-width: 5; stroke-linejoin: round; }
.hero-logo-letter { display: inline-block; }
.hero-logo-copy span { display: block; }
.hero-logo-replay:hover .hero-brand-name { transform: translateY(-3px); transition: transform .3s ease; }
.hero.is-logo-animating .hero-eyebrow span:last-child { animation: hero-logo-sneak .6s cubic-bezier(.22,1,.36,1) both; }
.hero.is-logo-animating .hero-logo-leaf { stroke-dasharray: 700; animation: hero-logo-leaf-in .8s cubic-bezier(.22,1,.36,1) .1s both, hero-logo-draw 1s cubic-bezier(.22,1,.36,1) .15s both; }
.hero.is-logo-animating .hero-logo-mark g:nth-child(2) .hero-logo-leaf { animation-delay: .25s, .3s; }
.hero.is-logo-animating .hero-logo-letter { animation: hero-logo-sneak .55s cubic-bezier(.22,1,.36,1) calc(.55s + var(--letter-index) * .14s) both; }
.hero.is-logo-animating .hero-logo-media { animation: hero-logo-sneak .55s cubic-bezier(.22,1,.36,1) 1.72s both; }
.hero.is-logo-animating .sculpture-caption { animation: hero-logo-sneak .55s cubic-bezier(.22,1,.36,1) 2.28s both; }
.hero.is-logo-animating .hero-logo-copy span:first-child { animation: hero-logo-word .6s cubic-bezier(.22,1,.36,1) 2.75s both; }
.hero.is-logo-animating .hero-logo-copy span:last-child { animation: hero-logo-word .6s cubic-bezier(.22,1,.36,1) 3.05s both; }
@keyframes hero-logo-leaf-in { from { opacity: 0; transform: translateX(-30%) scaleX(.5); } to { opacity: 1; transform: none; } }
@keyframes hero-logo-draw { from { stroke-dashoffset: 700; } to { stroke-dashoffset: 0; } }
@keyframes hero-logo-sneak { from { opacity: 0; transform: translateX(-.35em); filter: blur(4px); } to { opacity: 1; transform: none; filter: blur(0); } }
@keyframes hero-logo-word { from { opacity: 0; transform: translateY(.4em); filter: blur(4px); } to { opacity: 1; transform: none; filter: blur(0); } }
@media (max-width: 700px) {
  .brand-sculpture.hero-logo-replay { width: auto; padding: 0; }
  .brand-sculpture.hero-logo-replay .hero-logo-mark { width: 65px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero.is-logo-animating *, .hero-logo-replay:hover .hero-brand-name { animation: none !important; transition: none !important; }
}
