.typing-meta{display:flex;gap:18px;flex-wrap:wrap;font-weight:800}.typing-text{min-height:240px;max-height:260px;overflow:auto;padding:20px;border:0;border-radius:22px;background:var(--game-stage);color:#fff;text-align:left;font:700 1.125rem/1.9 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.03em;overflow-wrap:normal;word-break:normal}.typing-text[data-state="idle"],.typing-text[data-state="countdown"]{display:grid;place-items:center;text-align:center;font-family:inherit;font-size:clamp(1.5rem,6vw,2.5rem);line-height:1.5;letter-spacing:0}.typing-text[data-state="countdown"]{font-size:clamp(5rem,20vw,9rem);line-height:1}.typing-text span{border-radius:2px}.typing-text .done{color:#91e0ad}.typing-text .wrong{background:#ffe0e0;color:#a11}.typing-text .current{outline:2px solid #c4bdff;outline-offset:2px}.typing-text[data-state="playing"]{overflow:hidden}.typing-input{width:100%;min-height:58px;margin-top:14px;padding:12px;border:2px solid var(--game-line);border-radius:12px;font:1.1rem ui-monospace,SFMono-Regular,Consolas,monospace}.typing-status{min-height:1.8em;font-weight:700}.typing-note{color:#60708a;font-size:.92rem}.typing-result-detail{line-height:1.9}@media(max-width:600px){.typing-text{min-height:220px;max-height:240px;font-size:1rem}.typing-meta{gap:10px}}

.typing-note~#start-button,.typing-note~#retry-button{display:flex;width:auto;margin:16px auto 0}
.typing-text[data-state="playing"]{cursor:text}

.typing-text+label,.typing-input{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);opacity:0;pointer-events:none}

/* Touch users need a visible field to focus and reopen the keyboard. */
@media(pointer:coarse){
  .typing-text+label,.typing-input{position:static;width:auto;height:auto;margin:0;overflow:visible;clip-path:none;opacity:1;pointer-events:auto}
  .typing-text+label{display:block;margin-top:14px}
  .typing-input{display:block;width:100%;min-height:58px;margin-top:6px;box-sizing:border-box}
}
