/* Progressive enhancement: without JS every word and branch remains visible. */
.motion-wait{opacity:0}.motion-line-clip{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}.motion-line{display:block;transform-origin:left bottom}
.is-typing{position:relative;color:transparent!important;white-space:pre}
.is-typing::after{content:attr(data-typed-text);position:absolute;inset:0 auto auto 0;color:var(--accent,#9cff57);border-right:1px solid currentColor;padding-right:3px;white-space:pre;pointer-events:none}
.growth-leaf{transition:opacity .5s}.audio-track i{transform-origin:center}
[data-project-reveal]{overflow-wrap:break-word}
.github-button{display:inline-flex;align-items:center;gap:12px}.github-button svg{display:block;flex:none}
html:not([lang^=zh]) .github-button [data-lang=zh],html[lang^=zh] .github-button [data-lang=en]{display:none!important}
.story-page .story-masthead h1{transform-origin:left bottom}
body[data-site-page=driverlab] .hero-inner h1{letter-spacing:-.045em}
body[data-site-page=driverlab] .mode-row{transition:transform .25s cubic-bezier(.22,1,.36,1)}
@media(hover:hover){body[data-site-page=driverlab] .mode-row:hover{transform:translateX(6px)}}
@media(prefers-reduced-motion:reduce){[data-project-reveal]{opacity:1!important;transform:none!important}body[data-site-page=driverlab] .mode-row{transition:none;transform:none!important}}
@media(prefers-reduced-motion:reduce){.motion-wait{opacity:1!important}.motion-line{transform:none!important;opacity:1!important}.is-typing{color:inherit!important}.is-typing::after{display:none}.growth-leaf{transition:none}}
@media print{.motion-wait{opacity:1!important}.grow-path{stroke-dashoffset:0!important}.growth-leaf{opacity:1!important}.project-switchboard{position:static}}
