.typing-stage{position:relative;padding:20px 0 16px;background:radial-gradient(70% 100% at 50% 50%,var(--typing-glow),transparent 75%)}.typing-canvas{position:relative;display:flex;align-items:center;width:100%;height:94px;overflow:hidden}.typing-viewport{position:relative;display:flex;align-items:center;width:100%;height:100%;overflow:hidden;cursor:text;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 8%,#000 92%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,#000 8%,#000 92%,transparent 100%)}.typing-indicator,.typing-indicator-frame{position:absolute;top:50%;left:50%;width:22px;height:55px;border-radius:0;transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity 100ms var(--ease)}.typing-indicator{z-index:0;background-color:var(--accent-soft)}.typing-indicator-frame{z-index:2;border-top:1px solid var(--accent-border);border-right:1px solid var(--accent-border);border-left:1px solid var(--accent-border)}.typing-indicator.is-visible,.typing-indicator-frame.is-visible{opacity:1}.typing-indicator-frame::after{content:"";position:absolute;right:-0.5px;bottom:0;left:-0.5px;height:3px;border-radius:0;background-color:var(--accent-strong)}.typing-track{position:relative;z-index:1;display:inline-block;flex:0 0 auto;padding:10px 0;color:var(--faint);font-family:var(--font-mono);font-size:clamp(1.65rem,3.4vw,2.2rem);font-weight:400;line-height:1.45;letter-spacing:0.012em;font-variant-ligatures:none;white-space:nowrap;transform:translate3d(0,0,0);transition:transform 110ms var(--ease);will-change:transform}.typing-track.is-positioning{transition:none}.typing-word{display:inline-block;white-space:nowrap}.typing-char{position:relative;display:inline-block;padding:2px 2px;margin:0 -1px;border-radius:0;color:var(--faint);text-align:center;transition:background-color 100ms var(--ease),color 100ms var(--ease),box-shadow 100ms var(--ease)}.typing-char.is-future{color:var(--faint)}.typing-char.is-correct{color:var(--text)}.typing-char.is-wrong{background-color:var(--danger-soft);color:var(--danger-strong);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.typing-char.is-current{color:var(--accent-strong)}.typing-char.is-current.is-error{background-color:var(--danger);color:var(--surface);box-shadow:0 0 0 3px var(--danger-soft);animation:typing-error 260ms var(--ease)}.typing-input{position:absolute;z-index:2;inset:0;width:100%;height:100%;padding:0;border:0;background:transparent;color:transparent;caret-color:transparent;opacity:0;resize:none;-webkit-text-fill-color:transparent}.typing-input:focus,.typing-input:focus-visible{outline:none}.typing-hint{min-height:19px;margin:8px 24px 0;color:var(--muted);font-size:12px;line-height:1.5;letter-spacing:0.01em;text-align:center;text-wrap:balance}.typing-stage.is-finished .typing-track{opacity:0.82}.typing-stage.is-finished .typing-indicator,.typing-stage.is-finished .typing-indicator-frame{opacity:0}.typing-stage.is-finished .typing-char.is-error{background-color:var(--danger-soft);color:var(--danger-strong);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.typing-stage.is-finished .typing-input{cursor:default}@keyframes typing-error{0%{transform:translateX(0)}25%{transform:translateX(-3px)}60%{transform:translateX(3px)}100%{transform:translateX(0)}}@media (width <=640px){.typing-stage{padding-top:16px;padding-bottom:12px}.typing-canvas{height:82px}.typing-viewport{-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 5%,#000 95%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,#000 5%,#000 95%,transparent 100%)}.typing-track{padding:8px 0;font-size:clamp(1.5rem,6.2vw,1.9rem)}.typing-hint{margin-right:16px;margin-left:16px;font-size:11px}}