/* Orquesta Marina: los carriles (canvas), la cuenta, el tema de la semana, las estrellas del final y el ajuste del ritmo */
.oq-ui { position: absolute; inset: 0; z-index: 1; pointer-events: none; --hw-top: 46%; }
.oq-hw { position: absolute; left: 0; width: 100%; display: block; touch-action: none; pointer-events: none; }
.oq-ui.live .oq-hw { pointer-events: auto; }

/* el tema que suena: aparece en la cuenta y antes de empezar */
.oq-song {
  position: absolute; left: 50%; top: calc(var(--hw-top) + 50px); transform: translate(-50%, 8px); opacity: 0;
  display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 16px 9px; border-radius: 16px;
  background: rgba(11, 23, 51, .78); color: #fff; text-align: center; white-space: nowrap;
  transition: opacity .3s ease, transform .3s ease;
}
.oq-song small { font-size: 12px; font-weight: 700; color: #9CC4FF; }
.oq-song b { font-family: var(--display); font-weight: 400; font-size: 22px; line-height: 1.05; }
.oq-song.on { opacity: 1; transform: translate(-50%, 0); }
.oq-song.go { animation: oq-song-in .45s cubic-bezier(.34, 1.56, .64, 1); }
@keyframes oq-song-in { from { transform: translate(-50%, 14px) scale(.85); opacity: 0; } }

/* cuenta: 3, 2, 1, ¡A tocar! */
.oq-count {
  position: absolute; left: 0; right: 0; top: calc(var(--hw-top) + 120px); text-align: center; pointer-events: none;
  font-family: var(--display); font-size: 84px; line-height: 1; color: #fff; opacity: 0;
  text-shadow: 0 4px 0 rgba(11, 23, 51, .55), 0 0 30px rgba(90, 160, 255, .55);
}
.oq-count.on { opacity: 1; animation: oq-count .6s cubic-bezier(.2, .9, .3, 1.2); }
.oq-count.go { font-size: 50px; color: #FFD45C; }
@keyframes oq-count { from { transform: scale(1.7); opacity: 0; } 40% { opacity: 1; } }

/* final: las estrellas que se ganaron */
.oq-end {
  position: absolute; left: 0; right: 0; top: calc(var(--hw-top) + 70px); display: flex; flex-direction: column; align-items: center; gap: 6px;
  opacity: 0; pointer-events: none; transition: opacity .3s ease;
}
.oq-end.on { opacity: 1; }
.oq-end p { margin: 0; font-weight: 700; font-size: 16px; color: #fff; background: rgba(11, 23, 51, .7); padding: 4px 12px; border-radius: 999px; }
.oq-stars { display: flex; gap: 10px; }
.oq-stars i {
  width: 58px; height: 58px; background: rgba(255, 255, 255, .22);
  clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
}
.oq-stars i:nth-child(2) { transform: translateY(-10px); }
.oq-stars i.on { background: linear-gradient(180deg, #FFE27A, #FFB800); animation: oq-star .5s cubic-bezier(.34, 1.56, .64, 1) var(--d) both; }
@keyframes oq-star { from { transform: scale(0) rotate(-40deg); } }
.oq-stars i.on:nth-child(2) { animation-name: oq-star2; }
@keyframes oq-star2 { from { transform: translateY(-10px) scale(0) rotate(-40deg); } to { transform: translateY(-10px); } }

/* en las instrucciones */
.oq-ready-song { display: block; margin: 0 0 8px; font-family: 'Atkinson Hyperlegible Next', system-ui, sans-serif; font-size: 15px; font-weight: 700; color: #2E5BD6; }
.dot.oq-whale { background: #3A86FF; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; width: 18px; }
.dot.oq-peng { background: #FFC93C; box-shadow: inset 0 0 0 3px #fff; width: 16px; height: 16px; }
.oq-calib-btn {
  margin-top: 10px; border: 0; background: none; padding: 4px 6px; cursor: pointer;
  font-size: 14px; font-weight: 700; color: var(--golfo-dark, #0B6B80); text-decoration: underline; text-underline-offset: 3px;
}
.oq-calib-btn:focus-visible { outline: 3px solid var(--sol); outline-offset: 2px; border-radius: 6px; }

/* ajustar el ritmo */
.oq-cal {
  position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: 20px;
  background: rgba(11, 23, 51, .62); touch-action: none; animation: cg-fade .16s ease-out both;
}
.oq-cal-card {
  width: 100%; max-width: 330px; background: #fff; border-radius: 22px; padding: 18px 18px 16px; text-align: center;
  box-shadow: 0 6px 0 rgba(10, 76, 112, .25); color: var(--tinta, #1C2740);
}
.oq-cal-card h3 { margin: 0 0 6px; font-family: var(--display); font-weight: 400; font-size: 26px; }
.oq-cal-card p { margin: 0; font-size: 15px; line-height: 1.35; }
.oq-cal-pad {
  display: grid; place-items: center; width: 140px; height: 140px; margin: 16px auto 12px; border-radius: 50%; border: 0; cursor: pointer;
  background: radial-gradient(circle at 35% 30%, #FFB0B2, #FF5A5F 55%, #C9303A); box-shadow: 0 6px 0 #9E2530; touch-action: manipulation;
}
.oq-cal-pad span { width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, .9); }
.oq-cal-pad.on { animation: oq-cal-beat .3s ease-out; }
.oq-cal-pad:active { transform: translateY(3px); box-shadow: 0 3px 0 #9E2530; }
@keyframes oq-cal-beat { from { box-shadow: 0 6px 0 #9E2530, 0 0 0 18px rgba(255, 90, 95, .35); } }
.oq-cal-out { min-height: 40px; font-weight: 700; }
.oq-cal-row { display: flex; gap: 10px; margin-top: 12px; }
.oq-cal-row .btn { flex: 1; }
.oq-cal-row .btn-play .btn-main { font-size: 20px; }

@media (prefers-reduced-motion: reduce) {
  .oq-count.on, .oq-song.go, .oq-stars i.on, .oq-cal-pad.on { animation: none; }
}
