
.app-gallery-section { padding: 72px 0; border-top: 1px solid var(--line); }
.app-gallery-section h2 { max-width: 780px; }
.app-gallery-section .section-lede { max-width: 690px; margin: 18px 0 32px; }
.app-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; margin: 32px 0; align-items: start; }
.app-shot { min-width: 0; margin: 0; }
.app-shot-image { display: block; padding: 7px; border: 1px solid var(--accent-line); border-radius: 28px; background: #15100c; overflow: hidden; transition: transform .2s; }
.app-shot-image:hover { transform: translateY(-4px); }
.app-shot-image:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
.app-shot-image img { display: block; width: 100%; height: auto; border-radius: 21px; }
.app-shot figcaption { padding: 20px 2px 0; }
.app-shot-label { display: block; color: var(--accent); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }
.app-shot h3 { font-size: 22px; line-height: 1.25; margin: 0 0 10px; }
.app-shot p { color: var(--muted); font-size: 15px; line-height: 1.6; margin: 0 0 12px; }
.app-shot figcaption a { color: var(--accent); font-size: 14px; text-underline-offset: 4px; }
@media(max-width:900px) { .app-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; } }
@media(max-width:560px) { .app-gallery-section { padding:44px 0; } .app-gallery { grid-template-columns:minmax(0,1fr); gap:40px; } .app-shot { width:100%; max-width:340px; margin-inline:auto; } }
@media(prefers-reduced-motion:reduce) { .app-shot-image { transition:none; } }

.shot-crop { position:relative; display:block; width:100%; overflow:hidden; border-radius:21px; }
.shot-crop img { position:absolute; left:0; width:100%; height:auto; border-radius:0; }
.screen-full { max-width:640px; padding:24px 16px; margin:auto; }
.screen-full h1 { font-size:24px; margin:20px 0; }
.screen-full > a { color:var(--accent); }
