/* Aim Trainer — test-specific overrides */
:root { --test-accent: #8b5cf6; }

/* Wider shell for aim trainer only */
.t-shell { max-width: 900px; }

/* ── AIM ARENA ── */
.aim-arena {
  position: relative;
  width: 100%;
  min-height: 520px;
  background: #faf5ff;
  border: 2.5px solid #e9d5ff;
  border-radius: 22px;
  cursor: pointer;
  overflow: hidden;
}

/* ── TARGET (outline + crosshair) ── */
.aim-target {
  position: absolute;
  border-radius: 50%;
  background: transparent;
  border: 3.5px solid #8b5cf6;
  box-shadow: 0 0 0 3px rgba(139,92,246,0.15);
  cursor: pointer;
  transform: translate(-50%, -50%);
  animation: targetPop 0.15s cubic-bezier(0.34,1.56,0.64,1) both;
}

/* Crosshair: vertical line */
.aim-target::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2.5px;
  height: 50%;
  background: #8b5cf6;
  transform: translate(-50%, -50%);
  border-radius: 2px;
}

/* Crosshair: horizontal line */
.aim-target::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 50%;
  height: 2.5px;
  background: #8b5cf6;
  transform: translate(-50%, -50%);
  border-radius: 2px;
}

@keyframes targetPop {
  from { transform: translate(-50%, -50%) scale(0.3); opacity: 0; }
  to   { transform: translate(-50%, -50%) scale(1); opacity: 1; }
}

/* ── INTRO VISUAL ── */
.aim-intro-visual {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  background: #faf5ff;
  border: 2px dashed #e9d5ff;
  border-radius: 18px;
  padding: 32px 40px;
  margin-bottom: 24px;
}

.aim-demo-target {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: transparent;
  border: 3.5px solid #8b5cf6;
  box-shadow: 0 0 0 3px rgba(139,92,246,0.15);
  position: relative;
  animation: pulse 1.5s ease-in-out infinite;
}

.aim-demo-target::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 2.5px; height: 50%;
  background: #8b5cf6;
  transform: translate(-50%, -50%);
  border-radius: 2px;
}

.aim-demo-target::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 50%; height: 2.5px;
  background: #8b5cf6;
  transform: translate(-50%, -50%);
  border-radius: 2px;
}

@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}

.aim-demo-caption {
  font-family: 'Lexend', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #9ca3af;
}

.aim-hint {
  font-family: 'Lexend', sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #b0c0ca;
  text-align: center;
  margin-top: -8px;
}

/* ── SCORE RANGE TABLE (reuse) ── */
.rt-range-table {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 4px;
}
.rt-range-row {
  display: grid;
  grid-template-columns: 10px 100px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 8px;
  font-family: 'Lexend', sans-serif;
  font-size: 13px;
}
.rt-range-dot { width: 10px; height: 10px; border-radius: 50%; }
.rt-range-label { font-weight: 700; color: #1a2e3b; }
.rt-range-val   { color: #5a7285; }
.rt-range-pct   { font-weight: 700; text-align: right; }

.rt-range-row.elite  { background: #f0fdf4; } .rt-range-row.elite  .rt-range-dot { background: #2ecc71; } .rt-range-row.elite  .rt-range-pct { color: #2ecc71; }
.rt-range-row.fast   { background: #f0f9ff; } .rt-range-row.fast   .rt-range-dot { background: #0ea5e9; } .rt-range-row.fast   .rt-range-pct { color: #0ea5e9; }
.rt-range-row.avg    { background: #fafafa; } .rt-range-row.avg    .rt-range-dot { background: #f5a623; } .rt-range-row.avg    .rt-range-pct { color: #f5a623; }
.rt-range-row.slow   { background: #fef2f1; } .rt-range-row.slow   .rt-range-dot { background: #e74c3c; } .rt-range-row.slow   .rt-range-pct { color: #e74c3c; }

/* ── RESPONSIVE ── */
@media (max-width: 768px) {
  .t-shell { max-width: 100%; }
  .aim-arena { min-height: 440px; }
}

@media (max-width: 480px) {
  .aim-arena { min-height: 360px; }
  .aim-intro-visual { padding: 24px 20px; }
}

@media (max-width: 360px) {
  .aim-arena { min-height: 300px; }
}
