/* VHS-88 product page. Builds on /assets/css/styles.css; only what that sheet lacks. */

.app-hero { padding-block: clamp(3rem, 7vw, 5rem) clamp(2rem, 5vw, 3rem); }

.app-id {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: .6rem;
}
.app-id img { width: 64px; height: 64px; border-radius: 16px; flex: none; }
.app-id h1 { font-size: clamp(2rem, 1.4rem + 2.5vw, 3rem); margin: 0; }

.app-lede {
  color: var(--text);
  font-size: clamp(1.05rem, 1rem + .4vw, 1.25rem);
  max-width: 44rem;
  margin-top: 1.2rem;
}

.app-cta { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }
.app-note { font-family: var(--font-mono); font-size: .85rem; color: var(--faint); margin-top: .9rem; }

.shot { margin: clamp(2rem, 5vw, 3rem) 0 0; }
.shot img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--r);
  border: 1px solid var(--line);
}
.shot figcaption { font-size: .9rem; color: var(--faint); margin-top: .6rem; }

.app-section { padding-block: clamp(2.5rem, 6vw, 4rem); border-top: 1px solid var(--line); }
.app-section h2 { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem); max-width: 40rem; }
.app-section > .wrap > p { color: var(--muted); max-width: 44rem; margin-top: .9rem; }

.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1rem;
  margin-top: 1.8rem;
}
.feature {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 1.2rem 1.3rem;
}
.feature h3 { font-size: 1.05rem; color: var(--heading); margin: 0; }
.feature p { color: var(--muted); margin-top: .5rem; font-size: .95rem; }

.shot-pair {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 1rem;
  margin-top: 1.8rem;
}
.shot-pair .shot { margin-top: 0; }

.facts { margin-top: 1.2rem; max-width: 44rem; }
.facts li { color: var(--muted); margin-top: .5rem; padding-left: 1.4rem; position: relative; }
.facts li::before { content: "—"; position: absolute; left: 0; color: var(--teal); }
