/* Hero wordmark: one-shot "particles gather into the name" reveal (see hero-forge.js).
   The real, selectable text is always in the DOM; the ghost state keeps the word faintly readable. */
/* positioned so both canvases anchor to the wordmark */
.wordmark{position:relative}
html.forge .wordmark span{opacity:.14;animation:forge-failsafe .01s 4.5s forwards}   /* fail-safe: letters appear even if JS never finishes */
html.forge-done .wordmark span{animation:none;opacity:1}
@keyframes forge-failsafe{to{opacity:1}}
.forge-canvas{position:absolute;z-index:2;pointer-events:none;display:block}
/* ambient dust sits BEHIND the letters (negative z-index in the hero's stacking context) and fades in */
.forge-dust{position:absolute;z-index:-1;pointer-events:none;display:block;opacity:0;transition:opacity 2.4s ease}
.forge-dust.on{opacity:1}
@media(prefers-reduced-motion:reduce){html.forge .wordmark span{opacity:1;animation:none}.forge-canvas,.forge-dust{display:none}}
