/* Owner-approved demo scenes. Keep the original scroll controller and design. */
.phone-landing .phone-slide {
  gap: 10px;
  transform: none;
  transition: opacity .18s linear;
}
.phone-landing .phone-slide:not(.active) { visibility: hidden; pointer-events: none; }
.phone-landing .phone-slide.active { visibility: visible; transform: none; }
.phone-landing .ps-top {
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  margin-bottom: 0;
  flex-shrink: 0;
}
.phone-landing .ps-sub { background: none; padding: 0; }
.phone-landing .ps-demo-body { display: flex; flex-direction: column; gap: 8px; flex-shrink: 0; }
.phone-landing .ps-demo-body > * { flex-shrink: 0; }
.phone-landing .ps-demo-footer { display: flex; flex-direction: column; gap: 7px; margin-top: auto; flex-shrink: 0; }
.phone-landing .ps-demo-body .ps-bubble { margin-bottom: 0; max-width: 94%; }
.phone-landing .ps-demo-body .ps-row { margin-bottom: 0; }
.phone-landing .ps-demo-body .ps-client-card { margin-bottom: 0; padding: 12px; }
.phone-landing .ps-client-card .gap { margin-top: 5px; }
.phone-landing .ps-demo-footer .ps-cta-mini {
  display: block;
  margin-top: 0;
  border-radius: 12px;
  line-height: 1.4;
  white-space: normal;
}
.phone-landing .ps-demo-note { color: #6b6775; font-size: 10px; line-height: 1.5; text-align: center; }
.phone-landing .ps-demo-success { padding: 10px; border-radius: 10px; background: #e8f2e9; color: #35664a; font-size: 11px; line-height: 1.45; }
.phone-landing .ps-demo-body .ps-tracker { margin-top: 0; gap: 8px; }
.phone-landing .ps-ready { background: #eeebfd; padding: 12px 8px; border-radius: 14px; text-align: center; }
.phone-landing .ps-ready-check { display: grid; place-items: center; width: 30px; height: 30px; margin: 0 auto 8px; border-radius: 50%; background: var(--brand); color: white; }
.phone-landing .ps-ready b { display: block; font-size: 14px; color: var(--text); }
.phone-landing .ps-ready p { font-size: 11px; line-height: 1.5; color: var(--muted); margin: 6px 0 0; }
.phone-landing .chapter-phone-inline .phone-slide { position: absolute; inset: 0; }

@media (max-width: 860px) {
  .phone-landing .story-grid {
    grid-template-columns: minmax(0, 1fr) clamp(144px, 45vw, 200px);
    gap: 12px;
  }
  .phone-landing .story-phone-pin .phone-device {
    width: 100%;
    height: 400px;
    padding: 6px;
    border-radius: 28px;
    zoom: 1;
  }
  /* The display face's long words collide with the device in two columns. */
  .phone-landing .story-chapter .h1,
  .phone-landing .story-chapter .ch-h { font-family: var(--font-body); }
  .phone-landing .story-chapter .ch-h { font-size: clamp(16px, 5vw, 20px); }
  .phone-landing .story-chapter .hero-actions > a { white-space: normal; }
  .phone-landing .how-step > div:last-child { min-width: 0; }
  .phone-landing .how-step b,
  .phone-landing .how-step p { overflow-wrap: anywhere; }
  .phone-landing .phone-device::before { top: 13px; width: 58px; height: 12px; }
  .phone-landing .phone-screen { height: 100%; aspect-ratio: auto; border-radius: 22px; }
  .phone-landing .phone-slide,
  .phone-landing .chapter-phone-inline .phone-slide { padding: 32px 9px 12px; gap: 8px; }
  .phone-landing .ps-title { font-size: 12px; line-height: 1.3; }
  .phone-landing .ps-sub { font-size: 9px; line-height: 1.4; }
  .phone-landing .ps-demo-body { gap: 7px; }
  .phone-landing .ps-demo-body .ps-bubble { font-size: 10px; line-height: 1.45; padding: 8px 9px; }
  .phone-landing .ps-demo-body .ps-row { padding: 9px 7px; gap: 6px; border-radius: 10px; }
  .phone-landing .ps-avatar { width: 23px; height: 23px; font-size: 10px; }
  .phone-landing .ps-row b { font-size: 10px; }
  .phone-landing .ps-row span { font-size: 9px; }
  .phone-landing .ps-demo-body .ps-client-card { padding: 9px; border-radius: 10px; }
  .phone-landing .ps-client-card .nm { font-size: 10px; line-height: 1.4; }
  .phone-landing .ps-client-card .meta { font-size: 9px; line-height: 1.4; }
  .phone-landing .ps-client-card .gap { font-size: 8.5px; line-height: 1.4; padding: 0; background: none; margin-top: 4px; }
  .phone-landing .ps-demo-footer { gap: 6px; }
  .phone-landing .ps-demo-footer .ps-cta-mini { font-size: 10px; padding: 10px 5px; border-radius: 10px; }
  .phone-landing .ps-demo-note { font-size: 8.5px; line-height: 1.45; }
  .phone-landing .ps-demo-success { font-size: 9px; padding: 8px 7px; }
  .phone-landing .ps-step { padding: 8px 7px; gap: 6px; opacity: 1; }
  .phone-landing .ps-step b { font-size: 9px; line-height: 1.4; }
  .phone-landing .ps-step .dot { flex-shrink: 0; }
  .phone-landing .ps-ready { padding: 10px 7px; }
  .phone-landing .ps-ready b { font-size: 12px; line-height: 1.4; }
  .phone-landing .ps-ready p { font-size: 9px; }
  .phone-landing .chapter-phone-inline .phone-device { width: 220px; height: 440px; padding: 6px; border-radius: 28px; }
}
@media (min-width: 600px) and (max-width: 860px) {
  .phone-landing .story-grid { grid-template-columns: minmax(0, 1fr) 240px; gap: 24px; }
  .phone-landing .story-phone-pin .phone-device { height: 480px; }
  .phone-landing .ps-demo-body .ps-bubble { font-size: 12px; }
  .phone-landing .ps-client-card .nm, .phone-landing .ps-row b { font-size: 12px; }
  .phone-landing .ps-client-card .meta, .phone-landing .ps-step b { font-size: 11px; }
  .phone-landing .ps-demo-footer .ps-cta-mini { font-size: 12px; }
  .phone-landing .ps-demo-note { font-size: 10px; }
}
@media (max-width: 359px) {
  /* Longer wrapped step labels need more vertical space, not smaller text. */
  .phone-landing .story-phone-pin .phone-device { height: 440px; }
  .phone-landing .story-chapter .h1 { font-size: 20px; }
  .phone-landing .story-chapter .how-step b,
  .phone-landing .story-chapter .how-step p { font-size: 11px; }
}
@media (max-width: 860px) and (max-height: 560px) and (prefers-reduced-motion: no-preference) {
  /* A complete scene remains readable when the landscape viewport cannot pin it. */
  .phone-landing .story-grid { display: block; }
  .phone-landing .story-phone-pin { display: none; }
  .phone-landing .chapter-phone-inline { display: flex; }
  .phone-landing .story-chapter { min-height: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .phone-landing .phone-slide { transition: none; }
}
@media (max-width: 860px) and (prefers-reduced-motion: reduce) {
  .phone-landing .story-grid { grid-template-columns: minmax(0, 1fr); }
}
