@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 rgba(59,130,246,.7);transform:scale(1)}50%{box-shadow:0 0 0 4px rgba(59,130,246,.3);transform:scale(1.05)}}@keyframes cursor-blink{0%,50%{opacity:1}51%,to{opacity:.3}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.typing-viewport{will-change:scroll-position;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(59,130,246,.3) transparent}.typing-viewport::-webkit-scrollbar{width:4px}.typing-viewport::-webkit-scrollbar-track{background:transparent}.typing-viewport::-webkit-scrollbar-thumb{background:rgba(59,130,246,.3);border-radius:2px}.typing-viewport::-webkit-scrollbar-thumb:hover{background:rgba(59,130,246,.5)}.typing-char{contain:layout style paint;transition:all .15s cubic-bezier(.4,0,.2,1);text-rendering:optimizeLegibility;min-width:.125em}.typing-char.correct{color:#9ca3af}.typing-char.incorrect{color:#ef4444}.typing-char.pending{color:#4b5563}.typing-content{word-break:break-word;overflow-wrap:break-word;line-height:1.8;letter-spacing:.025em}.typing-interface:focus-within .typing-viewport{outline:2px solid rgba(59,130,246,.5);outline-offset:2px;border-radius:8px}@media (prefers-reduced-motion:reduce){.typing-char{transition:color .1s ease}.typing-char.current{animation:cursor-blink 1s ease-in-out infinite;transform:none}.typing-viewport{scroll-behavior:auto}}@media (prefers-contrast:high){.typing-char.correct{color:#000;background-color:#0f0}.typing-char.incorrect{color:#fff;background-color:red}.typing-char.current{background-color:#00f;color:#fff}}@media (prefers-color-scheme:dark){.typing-char.correct{color:#34d399;text-shadow:0 0 1px rgba(52,211,153,.4)}.typing-char.incorrect{color:#f87171;background-color:hsla(0,91%,71%,.15);text-shadow:0 0 2px hsla(0,91%,71%,.4)}}.typing-content-large{transform:translateZ(0);contain:strict}.typing-viewport-fade{mask-image:linear-gradient(180deg,transparent 0,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 5%,#000 95%,transparent)}