/* Big & Small Sort — tap-shape-then-tap-bin size comparison game */

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

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

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

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

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

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

.bss-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;
}

.bss-bin-row { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; }
.bss-bin {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 10px 22px;
  height: 100px;
  border-radius: 14px;
  border: 3px dashed var(--color-border);
  background: var(--color-bg-alt);
  cursor: pointer;
}
.bss-bin:hover { border-color: var(--color-primary); }
.bss-bin-label { font-size: 0.8rem; font-weight: 700; color: var(--color-text-soft); }
.bss-bin--wrong { animation: bss-wobble 0.4s ease; border-color: #ef5350; }

.bss-field {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  justify-content: center;
  align-items: flex-end;
  padding: 26px;
  border-radius: 18px;
  min-height: 140px;
  background: linear-gradient(180deg, rgba(79, 216, 224, 0.1), rgba(255, 202, 40, 0.08));
  border: 1px solid var(--color-border);
}

.bss-tile {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  border: 3px solid transparent;
  background: none;
  cursor: pointer;
  padding: 6px;
  border-radius: 10px;
  transition: transform 0.15s ease, opacity 0.2s ease;
}
.bss-tile:hover { transform: translateY(-2px); }
.bss-tile--selected { border-color: var(--color-primary); box-shadow: 0 0 0 4px rgba(79, 216, 224, 0.2); }
.bss-tile--wrong { animation: bss-wobble 0.4s ease; }
.bss-tile--sorted { opacity: 0; transform: scale(0.2); }

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

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

/* Tier visuals */
.bss-circle { display: inline-block; border-radius: 50%; }
.bss-circle--big { width: 60px; height: 60px; }
.bss-circle--small { width: 26px; height: 26px; }

.bss-bar { display: inline-block; width: 26px; border-radius: 6px; }
.bss-bar--tall { height: 70px; }
.bss-bar--short { height: 26px; }

.bss-fillcircle { display: inline-block; width: 46px; height: 46px; border-radius: 50%; border: 4px solid; }
