/* ==========================================================================
   APP — la page d'accueil : où va chaque composant. C'est la seule couche qui sait
   que Mehdi et Jasmine existent (couleur de chacun via --person).
   ========================================================================== */

@layer app {
  [data-who="mehdi"] { --person: var(--color-mehdi); }
  [data-who="jasmine"] { --person: var(--color-jasmine); }

  .screen {
    container-type: inline-size; /* le titre se mesure à la largeur de l'écran (cqi) */
    display: grid;
    grid-template-rows: auto minmax(calc(var(--px) * 34), 1fr) auto auto;
    justify-items: center;
    gap: var(--space-4);
    min-block-size: 100svh;
    max-inline-size: 480px;
    margin-inline: auto;
    padding:
      max(var(--space-6), env(safe-area-inset-top))
      max(var(--space-4), env(safe-area-inset-right))
      max(var(--space-4), env(safe-area-inset-bottom))
      max(var(--space-4), env(safe-area-inset-left));
  }

  .title {
    text-align: center;
    background: var(--color-bg);
  }
  /* Le titre tient sur deux lignes équilibrées ; sur les écrans étroits, la taille baisse juste ce qu'il faut
     pour qu'une ligne d'une vingtaine de caractères passe. */
  .title__main {
    font-size: min(var(--text-2), 13cqi);
    line-height: 1.125;
    text-wrap: balance;
  }

  /* Le cœur prend toute la hauteur libre, borné par la largeur ET la hauteur disponibles. */
  .screen__soul {
    container-type: size;
    display: grid;
    place-items: center;
    inline-size: 100%;
    block-size: 100%;
  }
  .screen__soul .soul { inline-size: min(100cqi, 110cqb, calc(var(--px) * 80)); }

  .duo {
    display: grid;
    grid-template-columns: 1fr 1fr;
    inline-size: 100%;
  }

  .yesterday {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    font-size: var(--text-0);
    color: var(--color-text-muted);
    background: var(--color-bg);
  }

  @media (max-height: 700px) {
    .screen { gap: var(--space-2); }
  }
}
