/* reel-desktop.css — The reel's sound toast and its desktop arrow buttons and
   wider feed column, plus the footer links (.setlinks) under Preferences, which
   load at this point in the cascade. */

/* Footer links under Preferences: about, pricing, privacy, terms and cookie settings. */
.setlinks {
  margin: 16px 0 4px;
  text-align: center;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--ink-3);
}

.setlinks a {
  color: var(--brand-ink);
  text-underline-offset: 3px;
}

/* Tap-to-toggle sound confirmation. Sits dead centre over the video for a
   beat, the way every short-video app acknowledges the gesture. Visibility is
   driven by a JS timeout rather than an animation, so it still shows for its
   full duration when prefers-reduced-motion flattens the transition. */
#soundToast {
  position: fixed;
  left: 50%;
  top: 50%;
  z-index: 40;
  display: grid;
  place-items: center;
  gap: 10px;
  padding: 22px 26px;
  border-radius: var(--r-lg);
  background: rgb(0 0 0 / 62%);
  color: #fff;
  backdrop-filter: blur(12px);
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.86);
  transition:
    opacity 0.18s var(--ease),
    transform 0.18s var(--ease);
}

#soundToast.show {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

#soundToast svg {
  width: 40px;
  height: 40px;
  fill: currentcolor;
}

#soundToast span {
  font-size: 0.875rem;
  font-weight: 700;
}

/* Desktop arrow buttons: a mouse alternative to swiping, floating to the right of
   the feed column (or the 9:16 video stage) at mid-height. Hidden on phones and
   whenever a panel covers the reel. */
.reel-nav {
  display: none;
}
@media (min-width: 960px) {
  .reel-nav {
    position: fixed;
    z-index: 10;
    top: 50%;
    left: calc(50% + var(--desktop-centre-shift) + var(--feed-column) / 2 + 28px);
    display: flex;
    flex-direction: column;
    gap: 18px;
    transform: translateY(-50%);
  }
  body.watch-mode .reel-nav {
    left: calc(50% + var(--desktop-centre-shift) + var(--journey-stage-width) / 2 + 28px);
  }
  body:has(#today.show, #home.show, #practice.show, #learn.show, #cards.show, #settings.show) .reel-nav,
  body:has(#reel[inert]) .reel-nav {
    display: none;
  }
  .reel-nav button {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--panel-2);
    color: var(--ink);
    box-shadow: none;
    transition:
      background 0.15s ease,
      transform 0.1s ease;
  }
  .reel-nav button:hover {
    background: var(--line-2);
  }
  .reel-nav button:active {
    transform: scale(0.94);
  }
  .reel-nav button:focus-visible {
    outline: 3px solid var(--brand-ink);
    outline-offset: 2px;
  }
  .reel-nav svg {
    width: 26px;
    height: 26px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
}

/* Feed content stretches to the wider desktop column. */
@media (min-width: 960px) {
  .card .inner,
  .quiz-action-bar,
  .answer-feedback,
  .sheet .in,
  #mockMisses .inner,
  .bar {
    max-width: var(--feed-column);
  }
  /* Practice cards fill the wider column and read larger, at the Learn path's scale:
     a bigger .feed-question-mascot, a bigger question bubble and taller answer rows. */
  #reel .card .inner:has(.opts) > .q {
    min-height: 124px;
    margin-left: 132px;
    padding: 16px 20px;
    font-size: 1.35rem;
    line-height: 1.45;
  }
  #reel .card .inner:has(.opts) > .q > .feed-question-mascot {
    left: -132px;
    width: 116px;
    height: 130px;
  }
  #reel .card .inner > .sub {
    font-size: 0.95rem;
    margin-bottom: 16px;
  }
  #reel .card .opts {
    gap: 14px;
  }
  #reel .card .opt {
    min-height: 68px;
    padding: 16px 20px;
    font-size: 1.2rem;
    gap: 14px;
  }
}
