@media (max-width: 1100px) {
  .app { grid-template-columns: 1fr; }
  .rail { position: fixed; inset-inline-start: 0; width: min(86vw, 320px); transform: translateX(110%); z-index: 30; transition: transform .2s ease; }
  [dir="ltr"] .rail { transform: translateX(-110%); }
  body.nav-open .rail { transform: none; }
  body.nav-open .scrim { display: block; position: fixed; inset: 0; background: rgba(20,20,20,.35); z-index: 20; }
  .menu { display: inline-flex; border: 1px solid var(--line); background: #0c141e; color: var(--ink); border-radius: 12px; padding: 8px 10px; }
  .quote, .stage, .trio, .cards, .cards.four, .split-cards, .ribbon, .split, .split.duo, .choices, .hero, .trade-cards, .stat-grid, .steps-grid, .reviews, .feature-grid, .live-board { grid-template-columns: 1fr; }
  .site .menu { display: inline-flex; }
  .site .nav nav { display: none; width: 100%; flex-basis: 100%; flex-direction: column; }
  body.nav-open .site .nav nav { display: flex; }
  .home-plot, .desk-plot { height: 240px; }
  .chart { min-height: 420px; }
  .plot { min-height: 260px; }
  .main main, .hero, .band, .split { padding: 16px 16px 96px; }
  .dock { display: grid; grid-template-columns: repeat(4, 1fr); position: fixed; inset-inline: 0; bottom: 0; background: #101923; border-top: 1px solid var(--line); z-index: 18; }
  .dock a { text-align: center; text-decoration: none; font-size: 12px; padding: 12px 4px; color: var(--muted); }
  .nav { flex-wrap: wrap; }
  .nav nav { display: none; }
  .hero h1 { font-size: 36px; }
  .level { grid-template-columns: 1fr 1fr; }
  table.data-table { min-width: 0; }
  .data-table thead { display: none; }
  .data-table tr { display: grid; gap: 6px; border: 1px solid var(--line); border-radius: 16px; padding: 12px; margin: 0 0 10px; background: var(--paper); }
  .data-table td { display: flex; justify-content: space-between; gap: 12px; border: 0; white-space: normal; }
  .data-table td::before { content: attr(data-label); color: var(--muted); }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .cards, .quote { grid-template-columns: 1fr 1fr; }
}
