/* You Have a Thing — app landing.
   Mirrors the Symbol Font landing: a centered hero (with the app icon in place
   of the floating glyphs), a 3-up feature grid, and a status banner styled
   like the Symbol Font "What's new" card. */

@layer pages {
  .app-yhat .hero .app-icon {
    display: block;
    width: 112px;
    height: auto;
    margin: 0 auto 20px;
  }
  .app-yhat .hero .badge { margin-bottom: 12px; }

  .features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
    max-width: 900px;
    margin: 0 auto 48px;
    padding: 0 24px;
  }

  /* Status banner — same visual language as the Symbol Font "What's new" card. */
  .app-banner {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    width: min(720px, calc(100% - 48px));
    margin: 0 auto 48px;
    padding: 14px 18px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--lg-border-subtle);
    background: var(--lg-grad-surface);
  }
  .app-banner-label {
    font-size: var(--text-xs);
    font-weight: 600;
    color: var(--lg-text-dim);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    flex-shrink: 0;
  }
  .app-banner-text {
    flex: 1;
    min-width: 0;
    color: var(--lg-text-dim);
    font-size: var(--text-sm);
    line-height: var(--leading-snug);
  }
  .app-banner-text strong { color: var(--lg-text); }

  /* Screenshots — the full-screen takeover as a hero, with the menu-bar list
     floating top-right (roughly where it lives in real life) and the banner
     bottom-left, both overlapping the hero with a lift of shadow. No captions:
     the feature cards above already carry the words. */
  .shots {
    width: min(var(--content-narrow), calc(100% - 48px));
    margin: 5rem auto 6.5rem;
  }
  /* The stage spans the full content width; the takeover sits centered and
     smaller within it so the floating panels can hang past the takeover's
     edges while the whole composition still fits the content column. */
  .shots-stage { position: relative; }

  .shot-base { width: 80%; margin: 0 auto; }
  .shot-base img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--radius-lg);
    border: 1px solid var(--lg-border-subtle);
    box-shadow: var(--shadow-drop);
  }

  .shot-float { position: absolute; margin: 0; z-index: 2; }
  .shot-float img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--radius-md);
    border: 1px solid var(--lg-border-subtle);
    box-shadow: var(--shadow-overlay);
  }
  .shot-float-popover { width: 25%; top: -6%; right: 0; transform: rotate(3.5deg); }
  .shot-float-banner  { width: 42%; bottom: -5%; left: 0; transform: rotate(-3.5deg); }

  /* Below the narrow breakpoint, stop floating and stack cleanly. 720px
     mirrors the --content-narrow token (media queries can't read CSS vars). */
  @media (max-width: 720px) {
    .shots-stage { display: flex; flex-direction: column; align-items: center; gap: 18px; }
    .shot-float { position: static; width: 100% !important; transform: none; }
    .shot-float-popover { max-width: 240px; }
    .shot-float-banner { max-width: 100%; }
  }
}
