/* Typing Ninja Blitz — falling-word typing game */

.tnb-setup { display: flex; flex-direction: column; gap: 18px; }
.tnb-setup h3 { margin: 0 0 8px; font-size: 1.05rem; }

.tnb-pick-row { display: flex; flex-wrap: wrap; gap: 10px; }

.tnb-pick {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 2px solid var(--color-border);
  background: var(--color-bg-alt);
  color: var(--color-text);
  cursor: pointer;
  font: inherit;
  min-width: 190px;
  text-align: left;
}
.tnb-pick strong { font-size: 1rem; }
.tnb-pick small { color: var(--color-text-soft); }
.tnb-pick[aria-pressed="true"] { border-color: var(--color-primary); background: rgba(79, 216, 224, 0.12); }

.tnb-start-btn { align-self: flex-start; margin-top: 4px; }

.tnb-rewards { font-size: 0.85rem; color: var(--color-text-soft); }
.tnb-rewards strong { color: var(--color-text); }

.tnb-play { display: flex; flex-direction: column; gap: 14px; }

.tnb-banner {
  padding: 12px 16px;
  border-radius: 14px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  font-size: 1.05rem;
  font-weight: 800;
  text-align: center;
}

.tnb-sky {
  position: relative;
  width: 100%;
  height: 360px;
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(38, 50, 56, 0.5), rgba(13, 27, 42, 0.6));
  border: 1px solid var(--color-border);
  overflow: hidden;
}
.tnb-sky::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 4px;
  background: rgba(239, 83, 80, 0.5);
}

.tnb-word {
  position: absolute;
  top: -30px;
  padding: 8px 14px;
  border-radius: 10px;
  background: var(--color-bg-alt);
  border: 2px solid var(--color-border);
  font-size: 1.3rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  animation-name: tnb-fall;
  animation-timing-function: linear;
  white-space: nowrap;
}
.tnb-word--locked { border-color: var(--color-primary); }
.tnb-word--sliced { animation-play-state: paused !important; transform: scale(1.3) rotate(8deg); opacity: 0; transition: transform 0.22s ease, opacity 0.22s ease; }
.tnb-word--missed { animation-play-state: paused !important; opacity: 0; transition: opacity 0.24s ease; }

@keyframes tnb-fall {
  from { top: -30px; }
  to { top: 100%; }
}

.tnb-ch { color: var(--color-text-soft); }
.tnb-ch--done { color: var(--color-success); }

.tnb-actions { display: flex; flex-wrap: wrap; gap: 10px; }
