/* Full simulator frames: no crop, overlays, fabricated screens or autoplay. */
.app-preview { padding-block: clamp(3rem, 7vw, 7rem); border-top: 1px solid var(--line); }
.app-preview .gallery-intro { max-width: 72ch; }
.app-preview .gallery-intro p { margin-block: 1rem; }
.app-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.75rem, 2vw, 1.75rem); align-items: start; margin-block: 2rem; }
.app-gallery figure { margin: 0; min-width: 0; }
.app-gallery a { display: block; text-decoration: none; }
.app-gallery img { display: block; width: 100%; height: auto; border: 1px solid var(--line); border-radius: .75rem; }
.app-gallery figcaption { margin-block: .8rem; line-height: 1.6; overflow-wrap: anywhere; }
.app-gallery figcaption span { display: block; font-size: .8rem; }
.locale-links { display: flex; flex-wrap: wrap; gap: .45rem 1rem; align-items: center; font-size: .78rem; line-height: 1.5; }
.locale-links a { padding-block: .5rem; text-underline-offset: .2em; }
.locale-links [aria-current] { font-weight: 700; text-decoration: underline; }
@media (max-width: 800px) { .app-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .app-gallery { grid-template-columns: minmax(0, 1fr); } .app-gallery img { max-width: 23rem; margin-inline: auto; } }
