@media (max-width: 760px), (max-height: 560px) {
  body { overflow: hidden; }
  header, .stage { display: none; }
  .mobile-only { display: block; }

  .fullscreen-app {
    position: fixed; inset: 0;
    width: 100vw; height: 100dvh;
    border: 0; background: #f8fafc;
  }

  .info-fab {
    position: fixed; right: 0; top: 50%; transform: translateY(-50%);
    z-index: 2;
    width: 30px; height: 52px;
    border: 1px solid var(--border); border-right: 0;
    border-radius: 12px 0 0 12px;
    background: rgba(22, 27, 34, 0.85); color: var(--text);
    font: 600 1rem/1 Georgia, serif; cursor: pointer;
    backdrop-filter: blur(6px);
  }

  .sheet {
    position: fixed; inset: auto 0 0 0; z-index: 3;
    max-height: 88dvh; overflow-y: auto;
    background: var(--window-bg);
    border-top: 1px solid var(--border);
    border-radius: 18px 18px 0 0;
    padding: 1.25rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom));
    box-shadow: 0 -20px 60px rgba(0, 0, 0, 0.6);
    transform: translateY(105%);
    transition: transform 0.25s ease;
  }
  .sheet.open { transform: none; }
  .sheet-backdrop {
    position: fixed; inset: 0; z-index: 2;
    background: rgba(1, 4, 9, 0.6);
    opacity: 0; pointer-events: none; transition: opacity 0.25s ease;
  }
  .sheet-backdrop.open { opacity: 1; pointer-events: auto; }
  .sheet h1 { font-size: 1.6rem; }
  .sheet .grabber { width: 40px; height: 4px; border-radius: 2px; background: var(--border); margin: -0.25rem auto 1rem; }
  .sheet .actions .btn { flex: 1 1 auto; justify-content: center; }
}
