/* Landing page (GET /). Tokens only — layout on top of app.css primitives. */
.pt-landing { display: grid; gap: var(--pt-space-5); padding-top: var(--pt-space-3); }
.pt-landing-hero { display: grid; gap: var(--pt-space-3); max-width: var(--pt-form-max); }
.pt-landing-title { font-size: var(--pt-text-2xl); line-height: var(--pt-line-2xl); font-weight: var(--pt-weight-title); letter-spacing: -.02em; text-wrap: balance; }
.pt-landing-body { color: var(--pt-text-muted); font-size: var(--pt-text-lg); line-height: var(--pt-line-lg); max-width: 54ch; text-wrap: pretty; }
.pt-landing-actions { display: flex; flex-wrap: wrap; gap: var(--pt-space-2); align-items: center; margin-top: var(--pt-space-1); }
.pt-landing-chips { margin-top: var(--pt-space-1); }
/* The recovery card belongs to the owner story: it sits under the hero copy so both columns fill the fold. */
.pt-landing-hero > .pt-landing-progress-section { margin-block: var(--pt-space-4) 0; }
.pt-landing-aside { display: grid; gap: var(--pt-space-2); }
.pt-landing-aside .pt-section { margin-block: 0 var(--pt-space-3); }
.pt-landing-list { counter-reset: step; }
.pt-landing-list > li { display: contents; }
.pt-landing-step { display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 5px; margin-right: var(--pt-space-2); border-radius: var(--pt-radius-pill); background: var(--pt-accent-soft); color: var(--pt-accent); font-size: var(--pt-text-2xs); font-weight: var(--pt-weight-title); font-variant-numeric: tabular-nums; }
.pt-landing-progress { display: grid; gap: var(--pt-space-3); }
@media (min-width: 768px) {
  .pt-landing { padding-top: var(--pt-space-4); }
  .pt-landing-title { font-size: var(--pt-text-3xl); line-height: var(--pt-line-3xl); }
}
@media (min-width: 1080px) {
  .pt-landing { grid-template-columns: minmax(0, 3fr) minmax(320px, 2fr); gap: var(--pt-space-7); align-items: start; }
  .pt-landing-hero { padding-top: var(--pt-space-6); }
  .pt-landing-hero > .pt-landing-progress-section { margin-top: var(--pt-space-6); }
}
