/* ==========================================================================
   510 WELLNESS — Solo line (per-flavor pages)
   Dark botanical theme over the shared style.css tokens. One flavor per page:
   pinned scrub stage, swaying hemp-leaf backdrop, flavor card, pager.
   ========================================================================== */

/* .solo-body base, leaves backdrop and .solo-details live in ../style.css
   (shared with the line pages) */

/* ==========================================================================
   STAGE — pinned full-viewport scrub
   ========================================================================== */
.solo-stage {
  position: relative;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  align-items: center;
}

.solo-stage__num {
  position: absolute;
  left: clamp(0.5rem, 2vw, 2rem);
  bottom: 1.5rem;
  z-index: 2;
  font-size: clamp(8rem, 18vw, 16rem);
  font-weight: 600;
  letter-spacing: -0.05em;
  line-height: 0.8;
  color: rgba(255, 255, 255, 0.05);
  user-select: none;
}

.solo-stage__device {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Canvas is enabled by solo.js only when the frame sequence exists.
   The radial mask melts the footage's charcoal background into the page
   so the frame rectangle never reads as a seam. */
.solo-stage__canvas {
  display: none;
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  filter: var(--oil-filter, none);
  -webkit-mask-image: radial-gradient(ellipse 62% 78% at 50% 50%, #000 48%, transparent 90%);
  mask-image: radial-gradient(ellipse 62% 78% at 50% 50%, #000 48%, transparent 90%);
}

/* The footage is neutral gunmetal — keep the flavor identity as a soft
   accent aura behind the canvas */
.solo-body.has-frames .solo-stage__device::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(48svh, 26rem);
  height: min(48svh, 26rem);
  border-radius: 50%;
  background: radial-gradient(circle, var(--accent) 0%, transparent 62%);
  opacity: 0.14;
  pointer-events: none;
}

.solo-body.has-frames .solo-stage__canvas { display: block; }
.solo-body.has-frames .solo-stage__svg { display: none; }

.solo-stage__svg {
  height: min(74svh, 40rem);
  width: auto;
  filter: drop-shadow(0 30px 50px rgba(0, 0, 0, 0.55));
}

.device-glow { animation: glow-pulse 5s ease-in-out infinite alternate; }

@keyframes glow-pulse {
  from { opacity: 0.3; }
  to   { opacity: 0.6; }
}

.solo-stage__info {
  position: relative;
  z-index: 3;
  padding: var(--pad);
  padding-right: clamp(2rem, 6vw, 7rem);
}

/* Card: dark-theme overrides of the shared .card */
.card--solo .card__name { color: var(--white); }
.card--solo .card__desc { color: rgba(255, 255, 255, 0.62); }

.card--solo .card__terpenes li {
  border-color: rgba(255, 255, 255, 0.16);
  color: rgba(255, 255, 255, 0.62);
}

.card--solo .card__eyebrow { color: rgba(255, 255, 255, 0.45); }

.card--solo .card__potency {
  color: rgba(255, 255, 255, 0.4);
  border-top-color: rgba(255, 255, 255, 0.12);
}

/* ==========================================================================
   PAGER
   ========================================================================== */
.solo-pager {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: clamp(2.5rem, 6vw, 4rem) var(--pad);
}

.solo-pager__link {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  transition: opacity 0.3s;
  opacity: 0.85;
}

.solo-pager__link:hover { opacity: 1; }

.solo-pager__link--next { text-align: right; }

.solo-pager__link span {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
}

.solo-pager__link strong {
  font-size: clamp(1rem, 2.4vw, 1.375rem);
  font-weight: 400;
  letter-spacing: -0.01em;
}

.solo-pager__link strong::before {
  content: '';
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--accent);
  margin-right: 0.625rem;
  vertical-align: 0.06em;
}

.solo-pager__all {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 100px;
  padding: 0.75rem 1.5rem;
  transition: border-color 0.3s, color 0.3s;
  white-space: nowrap;
}

.solo-pager__all:hover { border-color: var(--white); color: var(--white); }

/* Footer already matches the dark theme via shared styles */
.footer { border-top: 1px solid rgba(255, 255, 255, 0.08); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 900px) {
  .solo-stage {
    grid-template-columns: 1fr;
    grid-template-rows: 55svh minmax(0, 1fr);
    align-items: start;
  }

  /* Keep the device clear of the fixed header while pinned */
  .solo-stage__device { height: 100%; padding-top: calc(var(--header-h) - 0.5rem); }
  .solo-stage__svg { height: min(46svh, 24rem); }

  /* The drawn frame is much narrower than the canvas here — tighten the
     mask so the footage edges still dissolve into the page */
  .solo-stage__canvas {
    -webkit-mask-image: radial-gradient(ellipse 38% 62% at 50% 50%, #000 36%, transparent 80%);
    mask-image: radial-gradient(ellipse 38% 62% at 50% 50%, #000 36%, transparent 80%);
  }

  .solo-stage__num {
    font-size: clamp(4.5rem, 18vw, 7rem);
    left: 1rem;
    bottom: auto;
    top: calc(var(--header-h) + 0.5rem);
  }

  .solo-stage__info { padding: 0.5rem var(--pad) 1.5rem; overflow: hidden; }

  .card--solo .card__name { font-size: clamp(1.85rem, 8vw, 2.5rem); margin-bottom: 0.75rem; }
  .card--solo .card__desc { font-size: 0.9375rem; margin-bottom: 1.125rem; }
  .card--solo .card__terpenes { margin-bottom: 1rem; }

  .solo-pager { grid-template-columns: 1fr 1fr; }
  .solo-pager__all { display: none; }
}

/* Short phones (e.g. iPhone SE): trade stage height for card room */
@media (max-width: 900px) and (max-height: 720px) {
  .solo-stage { grid-template-rows: 50svh minmax(0, 1fr); }
  .solo-stage__svg { height: min(40svh, 20rem); }
  .card--solo .card__potency { padding-top: 1rem; }
}

/* ==========================================================================
   REDUCED MOTION
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .device-glow { animation: none; }
}
