/* Rainbow Pattern Party — pattern-completion game */

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

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

.rpp-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;
}
.rpp-pick strong { font-size: 1rem; }
.rpp-pick small { color: var(--color-text-soft); }
.rpp-pick[aria-pressed="true"] { border-color: var(--color-primary); background: rgba(79, 216, 224, 0.12); }

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

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

.rpp-play { display: flex; flex-direction: column; gap: 16px; }

.rpp-rainbow {
  display: flex;
  height: 16px;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid var(--color-border);
}
.rpp-rainbow-seg { flex: 1; background: var(--color-bg-alt); opacity: 0.25; transition: opacity 0.2s ease; }
.rpp-rainbow-seg--on { opacity: 1; }

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

.rpp-seq {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  padding: 22px;
  border-radius: 18px;
  background: var(--color-bg-alt);
  border: 1px solid var(--color-border);
}

.rpp-dot { width: 42px; height: 42px; border-radius: 50%; flex: none; }
.rpp-dot--blank {
  background: transparent !important;
  border: 3px dashed var(--color-border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  color: var(--color-text-soft);
}

.rpp-choices { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.rpp-choice {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  border: 4px solid transparent;
  cursor: pointer;
}
.rpp-choice:hover { transform: translateY(-2px); }
.rpp-choice--correct { border-color: var(--color-success); }
.rpp-choice--wrong { animation: rpp-wobble 0.4s ease; border-color: #ef5350; }

@keyframes rpp-wobble {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  20% { transform: translateX(-6px) rotate(-8deg); }
  40% { transform: translateX(5px) rotate(8deg); }
  60% { transform: translateX(-4px) rotate(-4deg); }
  80% { transform: translateX(3px) rotate(4deg); }
}

.rpp-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
