/* ================= */
/* CONTROLS CAROUSEL */
/* ================= */

.controls-stage {
  position: absolute;
  left: 50%;
  bottom: 7%;
  transform: translateX(-50%);
  z-index: 30;
  width: min(92vw, 360px);
  height: 170px;
  pointer-events: none;
}

.carousel-main-btn,
.carousel-side-btn,
.volume-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  pointer-events: auto;
}

.carousel-main-btn,
.carousel-left-btn,
.carousel-right-btn {
  z-index: 35;
}

/* ========================= */
/* MAIN BUTTON BASE          */
/* ========================= */

.carousel-main-btn {
  position: absolute;
  left: 50%;
  top: 6px;
  transform: translateX(-50%);
  width: 96px;
  height: 96px;
  border-radius: 50%;
  overflow: hidden;
  backdrop-filter: blur(8px);
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    filter 0.25s ease;
}

.carousel-main-btn::before {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  filter: blur(10px);
  opacity: 0.7;
}

.carousel-main-btn::after {
  content: "";
  position: absolute;
  inset: 6px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.16);
}

.carousel-main-btn:active {
  transform: translateX(-50%) scale(0.96);
}

/* ========================= */
/* MODE THEMES               */
/* ========================= */

/* ===== COMFORT ===== */
body[data-mode="comfort"] .carousel-main-btn {
  background:
    radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.35), transparent 38%),
    radial-gradient(circle at 50% 50%, rgba(255, 190, 120, 0.25), rgba(255, 140, 90, 0.1) 62%, rgba(10, 12, 18, 0.35) 100%),
    linear-gradient(145deg, rgba(255, 180, 120, 0.95), rgba(255, 120, 80, 0.92));

  box-shadow:
    0 10px 28px rgba(255, 150, 90, 0.25),
    0 0 34px rgba(255, 170, 110, 0.25),
    inset 0 2px 8px rgba(255, 255, 255, 0.28),
    inset 0 -6px 12px rgba(120, 60, 20, 0.18);
}

body[data-mode="comfort"] .carousel-main-btn::before {
  background:
    conic-gradient(
      from 0deg,
      rgba(255, 200, 140, 0.06),
      rgba(255, 255, 255, 0.42),
      rgba(255, 150, 100, 0.12),
      rgba(255, 255, 255, 0.28),
      rgba(255, 200, 140, 0.06)
    );
}

body[data-mode="comfort"] .main-mode-icon {
  filter: drop-shadow(0 0 10px rgba(255, 180, 120, 0.25));
}

/* ===== DYNAMIC ===== */
body[data-mode="dynamic"] .carousel-main-btn {
  background:
    radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.25), transparent 38%),
    radial-gradient(circle at 50% 50%, rgba(255, 60, 60, 0.3), rgba(255, 0, 0, 0.12) 62%, rgba(10, 12, 18, 0.45) 100%),
    linear-gradient(145deg, rgba(255, 50, 50, 0.95), rgba(180, 0, 0, 0.92));

  box-shadow:
    0 12px 32px rgba(255, 40, 40, 0.35),
    0 0 40px rgba(255, 60, 60, 0.35),
    inset 0 2px 8px rgba(255, 255, 255, 0.2),
    inset 0 -6px 14px rgba(80, 0, 0, 0.3);

  filter: contrast(1.1) saturate(1.1);
}

body[data-mode="dynamic"] .carousel-main-btn::before {
  background:
    conic-gradient(
      from 0deg,
      rgba(255, 80, 80, 0.1),
      rgba(255, 255, 255, 0.35),
      rgba(255, 0, 0, 0.2),
      rgba(255, 255, 255, 0.25),
      rgba(255, 80, 80, 0.1)
    );
}

body[data-mode="dynamic"] .main-mode-icon {
  filter: drop-shadow(0 0 12px rgba(255, 50, 50, 0.4));
}

/* ===== ROADTRIP ===== */
body[data-mode="roadtrip"] .carousel-main-btn {
  background:
    radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.28), transparent 38%),
    radial-gradient(circle at 50% 50%, rgba(120, 120, 255, 0.22), rgba(90, 60, 255, 0.1) 62%, rgba(10, 12, 18, 0.4) 100%),
    linear-gradient(145deg, rgba(120, 90, 255, 0.95), rgba(70, 50, 200, 0.92));

  box-shadow:
    0 10px 28px rgba(90, 70, 255, 0.3),
    0 0 40px rgba(120, 100, 255, 0.3),
    inset 0 2px 8px rgba(255, 255, 255, 0.22),
    inset 0 -6px 14px rgba(40, 20, 120, 0.25);
}

body[data-mode="roadtrip"] .carousel-main-btn::before {
  background:
    conic-gradient(
      from 0deg,
      rgba(120, 120, 255, 0.08),
      rgba(255, 255, 255, 0.35),
      rgba(90, 60, 255, 0.18),
      rgba(255, 255, 255, 0.25),
      rgba(120, 120, 255, 0.08)
    );
}

body[data-mode="roadtrip"] .main-mode-icon {
  filter: drop-shadow(0 0 10px rgba(140, 120, 255, 0.35));
}

/* ========================= */
/* SIDE BUTTONS              */
/* ========================= */

.carousel-left-btn,
.carousel-right-btn {
  position: absolute;
  top: 76px;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.08), transparent 40%),
    rgba(20, 13, 15, 0.34);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.08),
    0 5px 18px rgba(0, 0, 0, 0.18);
  opacity: 0.96;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.carousel-left-btn {
  left: calc(50% - 108px);
}

.carousel-right-btn {
  right: calc(50% - 108px);
}

.carousel-left-btn:active,
.carousel-right-btn:active {
  transform: scale(0.95);
}

/* ========================= */
/* ICONS                     */
/* ========================= */

.main-mode-icon {
  position: absolute;
  width: 38px;
  height: 38px;
  object-fit: contain;
  opacity: 0.26;
  transform: translateY(1px) scale(1.02);
  pointer-events: none;
}

.play-icon {
  position: relative;
  z-index: 3;
  width: 30px;
  height: 30px;
  object-fit: contain;
  filter: drop-shadow(0 3px 12px rgba(0, 0, 0, 0.32));
  pointer-events: none;
}

.mode-icon {
  width: 24px;
  height: 24px;
  display: block;
  object-fit: contain;
  pointer-events: none;
}

/* ========================= */
/* EMBLA                     */
/* ========================= */

.embla {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 230px;
  height: 126px;
  overflow: hidden;
  opacity: 0;
  z-index: 32;
  pointer-events: auto;
}

.embla__container {
  display: flex;
  height: 100%;
}

.embla__slide {
  flex: 0 0 100%;
  min-width: 0;
  height: 100%;
}

.embla,
.embla__container,
.embla__slide {
  touch-action: pan-x;
}

/* ========================= */
/* VOLUME                    */
/* ========================= */

.volume-wrap {
  position: absolute;
  left: 50%;
  bottom: 1.2%;
  transform: translateX(-50%);
  z-index: 31;
}

.volume-btn {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.08), transparent 40%),
    rgba(20, 13, 15, 0.34);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.08),
    0 6px 18px rgba(0, 0, 0, 0.28);
  backdrop-filter: blur(4px);
}

.volume-btn:active {
  transform: scale(0.95);
}

.volume-icon {
  width: 30px;
  height: 30px;
  display: block;
  object-fit: contain;
  pointer-events: none;
}