.touch-word{display:inline-block;max-width:100%;white-space:normal}.touch-char{display:inline-block;transform-origin:50% 80%}.touch-char.is-touched{animation:letter-touch .6s cubic-bezier(.2,.8,.2,1)}.touch-particles{position:fixed;inset:0;width:100%;height:100%;z-index:121;pointer-events:none!important;user-select:none}.touch-particles[hidden]{display:none!important}.btn,.text-link,.service-card,.chess-moves button{transition:translate .2s ease-out,box-shadow .2s ease-out,border-color .2s ease-out}.btn:hover,.btn:focus-visible,.text-link:hover,.service-card:hover{translate:0 -2px}.touch-char.is-touched{color:var(--accent,#ffd400)}
@keyframes letter-touch{0%,100%{transform:translateY(0) rotate(0)}32%{transform:translateY(-.12em) rotate(-5deg)}65%{transform:translateY(.025em) rotate(2deg)}}
html[data-motion=paused] .touch-char{animation:none!important;transform:none!important}html[data-motion=paused] .btn,html[data-motion=paused] .text-link,html[data-motion=paused] .service-card{translate:none;transition:none}
@media(prefers-reduced-motion:reduce){.touch-char{animation:none!important;transform:none!important}.btn,.text-link,.service-card{translate:none!important;transition:none}.touch-particles{display:none!important}}
.motion-dock{position:fixed;left:18px;bottom:95px;z-index:125;padding:10px 13px;border:1px solid var(--line,#555);border-radius:30px;background:var(--page,#090909);color:var(--ink,#f4f0e8);font:600 10px/1.4 Manrope,sans-serif;box-shadow:0 4px 18px #0003;cursor:pointer}.motion-dock:focus-visible{outline:3px solid var(--accent,#ffd400);outline-offset:4px}.motion-dock:disabled{cursor:default;opacity:.8}
.touch-char.is-touched{animation:letter-energy .62s cubic-bezier(.2,.8,.2,1) var(--letter-delay,0ms) both}.word-charged{position:relative}.word-charged .is-touched{text-shadow:0 0 14px #ffd40066}
@keyframes letter-energy{0%,100%{transform:translateY(0);color:inherit}38%{transform:translateY(var(--letter-lift,-.12em));color:var(--accent,#ffd400)}70%{transform:translateY(.015em)}}
html[data-motion=paused] .word-charged .is-touched{text-shadow:none}
@media(prefers-reduced-motion:reduce){.word-charged .is-touched{text-shadow:none}}
html[data-motion=paused] .touch-word{transform:none!important;opacity:1!important}
@media(prefers-reduced-motion:reduce){.touch-word{transform:none!important;opacity:1!important}}
