/* Character motion stays inside each word so the phone viewport never grows. */
.title-build{position:relative;isolation:isolate}
.title-build .headline-line{animation:none!important;opacity:1;filter:none;transform:none}
.title-word{position:relative;display:inline-block;white-space:nowrap;clip-path:inset(-.25em -.08em -.22em);vertical-align:baseline;perspective:600px}
.title-letter{position:relative;display:inline-block;transform-origin:50% 100%;opacity:0;transform:translateY(115%) rotateX(-85deg) skewX(var(--letter-lean));filter:blur(5px)}
.title-built .title-letter{animation:title-assemble .95s cubic-bezier(.17,.8,.26,1) both;animation-delay:var(--letter-delay)}
.title-word::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 25%,color-mix(in srgb,var(--acid) 65%,transparent) 48%,transparent 70%);mix-blend-mode:screen;background-size:300% 100%;background-position:100% 50%;opacity:0}
.title-built .title-word::after{animation:title-light 1.15s ease-out both;animation-delay:calc(var(--word-delay) + .35s)}
.title-built::after{content:'';display:block;position:absolute;bottom:-.16em;left:0;width:min(60px,20%);height:3px;background:var(--acid);transform-origin:left;animation:title-underline .7s cubic-bezier(.2,.8,.2,1) 1.3s both}
.title-build em{font-weight:inherit}
@keyframes title-assemble{0%{opacity:0;transform:translateY(115%) rotateX(-85deg) skewX(var(--letter-lean));filter:blur(5px)}55%{opacity:1;filter:blur(0)}78%{transform:translateY(-5%) rotateX(7deg) skewX(0deg)}100%{opacity:1;transform:translateY(0) rotateX(0) skewX(0);filter:blur(0)}}
@keyframes title-light{0%{opacity:0;background-position:100% 50%}20%{opacity:.55}80%{opacity:.3}100%{opacity:0;background-position:0% 50%}}
@keyframes title-underline{from{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}
@media(max-width:767px){.title-letter{filter:none}.title-built .title-letter{animation-name:title-assemble-phone}.title-built .title-word::after{opacity:.2}.title-built::after{height:2px;width:42px}}
@keyframes title-assemble-phone{0%{opacity:0;transform:translateY(110%) rotateX(-65deg)}70%{opacity:1;transform:translateY(-4%) rotateX(4deg)}100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.title-letter{opacity:1!important;transform:none!important;filter:none!important;animation:none!important}.title-word::after,.title-built::after{display:none!important}.title-word{clip-path:none}}
