.ty{gap:20px;display:grid}.ty-controls{justify-content:space-between}.ty-board{background:radial-gradient(120% 140% at 50% 0%, #fff 0%, var(--tile) 72%);box-shadow:inset 0 0 0 1px var(--line);cursor:text;border-radius:26px;padding:22px clamp(18px,3vw,36px) 30px;position:relative}.ty-board[data-focus]{box-shadow:inset 0 0 0 1px var(--line), 0 0 0 2px var(--ink)}.ty-head{min-height:34px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;align-items:baseline;gap:14px;margin-bottom:10px;display:flex}.ty-left{letter-spacing:-.02em;color:var(--accent);font-size:28px;font-weight:500}.ty-livewpm{color:var(--muted);font-size:15px}.ty-window{--lh:1.75em;height:calc(var(--lh) * 3);font-family:var(--font-mono);font-size:clamp(19px,2.2vw,25px);line-height:var(--lh);position:relative;overflow:hidden}.ty-words{transition:transform .18s var(--ease-out);flex-wrap:wrap;column-gap:.6em;display:flex;position:relative}.ty-w{height:var(--lh);white-space:pre;display:inline-flex;position:relative}.ty-w.is-wrong{text-underline-offset:6px;-webkit-text-decoration:underline #b423188c;text-decoration:underline #b423188c;text-decoration-thickness:2px}.ty-c{color:var(--muted);position:relative}.ty-c.is-ok{color:var(--ink)}.ty-c.is-bad{color:#b42318;background:#b4231814;border-radius:3px}.ty-c.is-extra{color:#b42318;opacity:.6}.ty-c.is-caret:before,.ty-w.is-end:after{content:"";background:var(--accent);border-radius:1px;width:2px;position:absolute;top:.3em;bottom:.3em}.ty-c.is-caret:before{left:-1px}.ty-w.is-end:after{right:-2px}.ty-board[data-phase=idle] .ty-c.is-caret:before,.ty-board[data-phase=idle] .ty-w.is-end:after{animation:1s step-end infinite ty-blink}.ty-board:not([data-focus]) .ty-c.is-caret:before,.ty-board:not([data-focus]) .ty-w.is-end:after{opacity:0}@keyframes ty-blink{50%{opacity:0}}.ty-input{color:#0000;caret-color:#0000;opacity:0;cursor:text;background:0 0;border:0;width:100%;height:100%;padding:0;font-size:16px;position:absolute;inset:0}.ty-veil{border-radius:inherit;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);font-family:var(--font-sans);color:var(--ink);pointer-events:none;animation:fade-in .25s var(--ease-out) both;background:#fcfbf9b8;place-items:center;font-size:16px;font-weight:600;display:grid;position:absolute;inset:0}.ty-progress{background:#1916130f;border-radius:2px;height:3px;position:absolute;bottom:14px;left:20px;right:20px;overflow:hidden}.ty-progress span{background:var(--accent);transform-origin:0;height:100%;display:block}.ty-board[data-phase=idle] .ty-progress{opacity:0}.ty-hint{margin-top:-6px}.ty-result{background:radial-gradient(120% 140% at 50% 0%, #fff 0%, var(--tile) 72%);box-shadow:inset 0 0 0 1px var(--line);border-radius:26px;outline:none;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:18px 32px;padding:26px clamp(18px,3vw,36px);display:grid}.ty-score{justify-items:start;gap:8px;display:grid}.ty-score>*{animation:rise .6s var(--ease-out) both}.ty-score>:nth-child(n+2){animation-delay:60ms}.ty-big{font-family:var(--font-mono);letter-spacing:-.05em;font-variant-numeric:tabular-nums;color:var(--ink);font-size:clamp(72px,9vw,112px);font-weight:500;line-height:.95}.ty-big small{font-family:var(--font-sans);letter-spacing:0;color:var(--muted);margin-left:.12em;font-size:.24em;font-weight:600}.ty-sub{color:var(--muted);font-variant-numeric:tabular-nums;font-size:14.5px}.ty-best{background:var(--accent);color:#fff;border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:600}.ty-score>.ty-best{animation:pop .5s var(--ease-pop) .15s both}.ty-again{grid-column:1/-1}.ty-spark{min-width:0;margin:0}.ty-spark svg{width:100%;height:120px;display:block;overflow:visible}.ty-spark-raw{fill:var(--tile-hover)}.ty-spark-net{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.ty-spark figcaption{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;grid-template-columns:auto 1fr auto;gap:8px;margin-top:8px;font-size:12px;display:grid}.ty-spark figcaption>:nth-child(2){white-space:normal;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 12px;display:flex}.ty-spark figcaption span span{white-space:nowrap}.ty-key{vertical-align:middle;border-radius:2px;width:10px;height:3px;margin:0 5px 2px 0;display:inline-block}.ty-key.is-net{background:var(--accent)}.ty-key.is-raw{background:var(--tile-hover);height:8px}@media (max-width:679px){.ty-board,.ty-result{border-radius:20px}.ty-result{grid-template-columns:1fr}.ty-spark svg{height:96px}.ty-window{font-size:17px}.ty-board{padding-top:16px}}
