* { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { margin: 0; background: #FFFFFF; color: #111111; font-family: -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
  a { color: #D0021B; text-decoration: none; transition: color 0.15s ease, background-color 0.15s ease, opacity 0.15s ease; }
  a:hover { color: #111111; text-decoration: underline; }
  .social-link { transition: color 0.15s ease, background-color 0.15s ease, transform 0.15s ease; }
  .social-link:hover { color: #111111 !important; background: #FFD100; text-decoration: none !important; transform: translateY(-2px); }

  /* Solid-background CTA buttons: a lift + brighten instead of the plain text-link hover */
  [data-cta-link], [data-channel-link], [data-public-channel-link], a[href="#video"] {
    transition: transform 0.15s ease, filter 0.15s ease, box-shadow 0.15s ease;
  }
  [data-cta-link]:hover, [data-channel-link]:hover, [data-public-channel-link]:hover, a[href="#video"]:hover {
    text-decoration: none;
    filter: brightness(1.08);
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(0,0,0,0.22);
  }
  [data-cta-link]:active, [data-channel-link]:active, [data-public-channel-link]:active, a[href="#video"]:active {
    transform: translateY(0);
    filter: brightness(0.97);
    box-shadow: none;
  }
  @media (prefers-reduced-motion: reduce) {
    a, .social-link, [data-cta-link], [data-channel-link], [data-public-channel-link] { transition: none !important; }
  }

  /* FAQ accordion: smooth height/opacity reveal instead of an instant display toggle */
  .faq-answer {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    margin-top: 0 !important;
    transition: max-height 0.32s ease, opacity 0.25s ease, margin-top 0.32s ease;
  }
  .faq-answer.is-open {
    opacity: 1;
    margin-top: 12px !important;
  }

  /* Count-up stat numbers: reserve a stable width so the layout doesn't jitter as digits change */
  [data-count-to] { font-variant-numeric: tabular-nums; }
  @keyframes ulTicker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  @media (prefers-reduced-motion: reduce) { [data-ticker] { animation: none !important; } }

  [data-sticky] { transform: translateY(110%); transition: transform 0.28s ease; }
  [data-sticky].is-visible { transform: translateY(0); }
  @media (max-width: 900px) {
    [data-sticky] { padding: 9px clamp(14px, 4vw, 20px) !important; gap: 4px 12px !important; }
    [data-sticky] [data-sticky-tag] { font-size: 14px !important; }
    [data-sticky] [data-sticky-intake] { font-size: 12.5px !important; }
    [data-sticky] a { padding: 10px 16px !important; font-size: 15px !important; }
    footer { padding-bottom: 116px !important; }
  }
  @media (max-width: 400px) {
    footer { padding-bottom: 140px !important; }
  }

  /* Feedback grid: click-to-enlarge affordance on real screenshots */
  .feedback-shot { cursor: zoom-in; transition: transform 0.15s ease, filter 0.15s ease; }
  .feedback-shot:hover, .feedback-shot:focus-visible { transform: scale(1.015); filter: brightness(1.05); }
  .feedback-shot:focus-visible { outline: 3px solid #FFD100; outline-offset: 2px; }
  @media (prefers-reduced-motion: reduce) {
    .feedback-shot { transition: none !important; }
  }

  /* Section headings: fade + rise into view once, the first time they're scrolled to */
  .reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; }
  .reveal.is-visible { opacity: 1; transform: translateY(0); }
  @media (prefers-reduced-motion: reduce) {
    .reveal { opacity: 1; transform: none; transition: none; }
  }

  /* Header: compacts slightly once the page has scrolled, instead of staying static */
  header { transition: padding-top 0.2s ease, padding-bottom 0.2s ease, box-shadow 0.2s ease; }
  header.is-scrolled { padding-top: 8px !important; padding-bottom: 8px !important; box-shadow: 0 4px 14px rgba(0,0,0,0.25); }
  @media (prefers-reduced-motion: reduce) {
    header { transition: none !important; }
  }

  /* Syllabus module rows: small hover lift to reward scanning through the list */
  .syllabus-row { transition: transform 0.15s ease; }
  .syllabus-row:hover { transform: translateX(4px); }
  @media (prefers-reduced-motion: reduce) {
    .syllabus-row { transition: none !important; }
  }

  /* Video unmute hint: shown only while a muted autoplay is running */
  #ul-video-unmute { transition: transform 0.15s ease, filter 0.15s ease; }
  #ul-video-unmute:hover { filter: brightness(1.3); transform: translateY(-2px); }
  @media (prefers-reduced-motion: reduce) {
    #ul-video-unmute { transition: none !important; }
  }

  /* Video poster: slow one-time Ken Burns zoom once the section scrolls into view */
  #ul-video-poster { transition: transform 20s linear; }
  #ul-video-poster.is-zooming { transform: scale(1.09); }
  @media (prefers-reduced-motion: reduce) {
    #ul-video-poster { transition: none !important; }
  }

  /* Video play button: attention-drawing pulse once the video section scrolls into view */
  .video-play-btn.is-pulsing { animation: ulPlayPulse 2.2s ease-in-out infinite; }
  @keyframes ulPlayPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(208,2,27,0.5); transform: scale(1); }
    50% { box-shadow: 0 0 0 14px rgba(208,2,27,0); transform: scale(1.04); }
  }
  @media (prefers-reduced-motion: reduce) {
    .video-play-btn.is-pulsing { animation: none !important; }
  }
