/* ==========================================================================
   REVEAL SYSTEM
   ========================================================================== */

[data-reveal] {
  opacity: 0;
  transition: opacity 0.7s ease, transform 0.85s var(--ease-out), clip-path 0.9s var(--ease-out);
  transition-delay: var(--rd, 0s);
}
[data-reveal="up"] { transform: translateY(30px); }
[data-reveal="fade"] { transform: none; }
[data-reveal="mask"] { clip-path: inset(0 0 16% 0); transform: translateY(20px); }
[data-reveal="lines"] { transform: translateY(112%); opacity: 1; }

[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
  clip-path: inset(0 0 0% 0);
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */

@media (max-width: 1024px) {
  .hero-inner { grid-template-columns: minmax(0, 6fr) minmax(0, 4fr); }
  .ledger-row { grid-template-columns: 5.4rem minmax(0, 5fr) minmax(0, 6fr) 4rem; }
  .ledger-arrow { display: none; }
}

@media (max-width: 860px) {
  .nav-desktop { display: none; }
  .menu-toggle { display: flex; }
  .masthead-actions .btn { display: none; }

  .hero { padding-top: 1.6rem; }
  .hero-inner { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .hero-copy { display: contents; }
  .hero-inner .eyebrow { order: 1; }
  .hero-portrait { order: 2; max-width: 380px; }
  .hero-title { order: 3; margin: 0.2rem 0 0.4rem; }
  .hero-dek { order: 4; margin-bottom: 0.6rem; }
  .hero-actions { order: 5; }
  .hero-stats { grid-template-columns: repeat(2, 1fr); }
  .hero-stats .stat { border-right: none; border-bottom: 1px solid var(--line-dark); padding-left: 0 !important; }
  .hero-stats .stat:nth-child(odd) { border-right: 1px solid var(--line-dark); padding-right: 1.2rem; }
  .hero-stats .stat:nth-child(even) { padding-left: 1.2rem !important; }
  .hero-stats .stat:nth-child(3),
  .hero-stats .stat:nth-child(4) { border-bottom: none; }

  .about-grid { grid-template-columns: minmax(0, 1fr); }
  .about-lead { display: contents; }
  .about-lead .eyebrow { order: 1; }
  .about-pull { order: 2; margin-top: 0.6rem; margin-bottom: 1.1rem; }
  .about-side { order: 3; }
  .about-body { order: 4; }
  .about-body p:last-child { margin-bottom: 0.6rem; }
  .about-lead .btn { order: 5; }
  .about-portrait { max-width: 420px; }

  .latest-plate { grid-template-columns: minmax(0, 1fr); }

  .ledger-row {
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "ep dur"
      "guest guest"
      "topic topic";
    row-gap: 0.35rem;
    padding: 1.3rem 0.25rem;
  }
  .ledger-ep { grid-area: ep; font-size: 1.15rem; }
  .ledger-guest { grid-area: guest; }
  .ledger-topic { grid-area: topic; }
  .ledger-dur { grid-area: dur; }
  .ledger-row:hover { padding-left: 0.25rem; }

  .shorts-inner { grid-template-columns: minmax(0, 1fr); gap: 1.8rem; }
  .shorts-copy { display: contents; }
  .shorts-inner .eyebrow { order: 1; }
  .shorts-inner .section-title { order: 2; }
  .shorts-copy .section-title { margin-top: 0; }
  .shorts-dek { order: 3; margin-top: -0.3rem; }
  .shorts-phones {
    order: 4;
    max-width: min(100%, 680px);
    width: 100%;
    margin-inline: auto;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 1.5rem clamp(0.5rem, 2vw, 1rem);
  }
  .shorts-stats { order: 5; grid-template-columns: 1fr 1fr; margin-top: 0.4rem; padding-top: 1rem; }
  .shorts-platforms { order: 6; margin-top: 0.2rem; }
  .phone .ph-label { font-size: 0.5rem; letter-spacing: 0.12em; padding: 0.5rem; }

  .ratecard-row { grid-template-columns: minmax(0, 1fr); gap: 0.35rem; }
  .ratecard-hero { grid-template-columns: minmax(0, 1fr); }
  .rch-right { text-align: left; align-items: flex-start; }
  .ratecard-addon { grid-template-columns: minmax(0, 1fr); gap: 0.35rem; }

  .contact-cols { grid-template-columns: minmax(0, 1fr); }
  .contact-title { font-size: clamp(5.5rem, 18vw, 9.5rem); }

  .footer-inner { grid-template-columns: minmax(0, 1fr); }
  .footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; }
}

@media (max-width: 420px) {
  .hero-title { font-size: 2.55rem; }
  .contact-title { font-size: 5.5rem; }
  .shorts-stats { grid-template-columns: 1fr 1fr; gap: 1.2rem; }
  .footer-cols { grid-template-columns: 1fr; }
}

/* ==========================================================================
   REDUCED MOTION
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001s !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001s !important;
    transition-delay: 0s !important;
  }
  .hero-title .line-in,
  .hero-stage,
  [data-reveal] { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  .ticker-track { animation: none !important; }
  .waveform i { animation: none !important; }
  .ledger-preview { display: none !important; }
}
