  .reveal { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s ease; }
  .reveal.in-view { opacity: 1; transform: translateY(0); }

  .grid-glow {
    background-image:
      radial-gradient(circle at 20% 20%, rgba(0,229,255,0.10), transparent 40%),
      radial-gradient(circle at 80% 0%, rgba(66,149,165,0.18), transparent 45%),
      linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
    background-size: auto, auto, 42px 42px, 42px 42px;
  }

  .commitment-card { transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
  .commitment-card:hover { transform: translateY(-6px); box-shadow: 0 16px 36px -14px rgba(4,24,42,0.35); }

  .timeline-dot { box-shadow: 0 0 0 5px rgba(66,149,165,0.15); }

  ::selection { background: #4295A5; color: white; }

  #mobile-menu { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
  #mobile-menu.open { max-height: 400px; }

  /* Rhythm tabs */
  .rhythm-tab { transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
  .rhythm-tab[data-active="true"] { background: #04182a; color: white; border-color: #04182a; }
  .rhythm-panel { display: none; }
  .rhythm-panel[data-active="true"] { display: block; }

  /* Accordion */
  .accordion-body { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
  .accordion-item[data-open="true"] .accordion-body { max-height: 420px; }
  .accordion-item[data-open="true"] .accordion-chevron { transform: rotate(180deg); }
  .accordion-chevron { transition: transform .25s ease; }

  /* Prompt library: track toggle + category chips */
  .track-tab { color: #64748b; transition: color .2s ease; }
  .track-tab span.border { border-color: #e2e8f0; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
  .track-tab[data-active="true"] { color: #04182a; }
  .track-tab[data-active="true"] span.border { background: #04182a; color: white; border-color: #04182a; }

  .filter-chip {
    font-size: 11px; font-weight: 700; padding: 5px 12px; border-radius: 999px;
    border: 1px solid #e2e8f0; color: #475569; background: white; transition: all .2s ease;
  }
  .filter-chip[data-active="true"] { background: #04182a; border-color: #04182a; color: white; }
  .prompt-item[data-hidden="true"] { display: none; }
