/* Original TUAF opening and glitch animations. */
body{margin:0;background:#0B0F14}
@keyframes stageIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
@keyframes openL{from{transform:translateX(0)}to{transform:translateX(-158px)}}
@keyframes openR{from{transform:translateX(0)}to{transform:translateX(158px)}}
@keyframes hintIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes tear{0%{clip-path:inset(42% -40px 30% -40px)}12%{clip-path:inset(0 -40px 72% -40px)}24%{clip-path:inset(58% -40px 0 -40px)}36%{clip-path:inset(18% -40px 50% -40px)}48%{clip-path:inset(0 -40px 20% -40px)}60%{clip-path:inset(30% -40px 40% -40px)}72%{clip-path:inset(-40px)}100%{clip-path:inset(-40px)}}
@keyframes gIn{0%{transform:translate(-16px,4px) skewX(24deg);filter:brightness(1.7)}14%{transform:translate(12px,-6px) scaleX(1.2);filter:none}28%{transform:translate(-8px,0) skewX(-18deg);filter:brightness(.65)}42%{transform:translate(6px,3px);filter:brightness(1.5)}56%{transform:translate(-3px,0) skewX(8deg);filter:none}70%{transform:none;filter:none}100%{transform:none;filter:none}}
@keyframes gIdle{0%{transform:none}84%{transform:none}86%{transform:translate(7px,-3px) skewX(-14deg)}88%{transform:translate(-9px,2px) scaleX(1.12)}90%{transform:none}93%{transform:translate(4px,0) skewX(10deg);filter:brightness(1.4)}95%{transform:none;filter:none}100%{transform:none;filter:none}}
@keyframes ghA{0%{transform:translate(-6px,1px)}20%{transform:translate(-12px,3px)}40%{transform:translate(-4px,-2px)}60%{transform:translate(-14px,0)}80%{transform:translate(-8px,2px)}}
@keyframes ghB{0%{transform:translate(6px,-1px)}25%{transform:translate(13px,-3px)}50%{transform:translate(4px,2px)}75%{transform:translate(11px,0)}}
.stage{animation:stageIn .9s cubic-bezier(.2,.8,.2,1) both}
.tu{animation:openL 1.5s cubic-bezier(.76,0,.24,1) 1.1s both}
.af{animation:openR 1.5s cubic-bezier(.76,0,.24,1) 1.1s both}
.hint{animation:hintIn .9s ease 2.8s both}
.gh1,.gh2{opacity:0;mix-blend-mode:screen}
.slot.on{animation:tear .55s steps(1) forwards}
.slot.on .m{animation:gIn .55s steps(1) forwards,gIdle 2.4s steps(1) .55s infinite}
.slot.on .gh1{opacity:.8;filter:brightness(.65);animation:ghA .9s steps(1) infinite}
.slot.on .gh2{opacity:.8;filter:brightness(1.8);animation:ghB 1.1s steps(1) infinite}
@media (prefers-reduced-motion: reduce){
.stage,.hint,.slot.on,.slot.on .m,.slot.on .gh1,.slot.on .gh2{animation:none}
.tu{animation:openL .01s linear 0s both}
.af{animation:openR .01s linear 0s both}
}

