/* Pictures of the dashboard on the home page, 2026-10-09.
   One picture in the hero where two films stood, and six pictures under
   "See it work" where a row of thirteen films stood. Four of five visitors
   never pressed play: a picture is seen without a press. tools/site_shots.py
   puts the pictures in; this file only says how they stand. */

/* A picture, in the frame a film had. */
.hero-shot a,
.shot a {
  display: block;
  overflow: hidden;
  border: 1px solid #d9dc9447;
  border-radius: 14px;
  background: #0e1510;
}
.hero-shot img,
.shot img { display: block; width: 100%; }
.hero-shot a:focus-visible,
.shot a:focus-visible { outline-offset: 3px; }

/* The hero: the whole dashboard, as wide as its half of the page. */
.hero-shot {
  align-self: center;
  min-width: 0;
  margin: 0;
}
.hero-shot a { box-shadow: 0 24px 64px #000a; }
.hero-shot img { height: auto; }
.hero-shot figcaption {
  margin-top: 12px;
  color: #aeb9a6;
  font-size: 14px;
  line-height: 1.5;
}

/* The second button of the hero has no play mark any more: it is a plain link. */
.hero-ctas .watch-link { text-decoration: underline; text-underline-offset: 4px; }

/* "See it work": six pictures, three side by side. Each is cut to one shape
   from its top left corner, where a screen says what it is; a press opens the
   whole picture. */
.shots {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 34px 24px;
  align-items: start;
  margin: 0;
  padding: 0;
  list-style: none;
}
.shot { min-width: 0; }
.shot a { aspect-ratio: 16 / 10; transition: border-color .18s; }
.shot img {
  height: 100%;
  object-fit: cover;
  object-position: left top;
}
.shot a:hover { border-color: var(--brass); }
.shot-title {
  margin: 14px 0 2px;
  color: var(--vellum);
  font-size: 17px;
  font-weight: 600;
  line-height: 1.3;
}
.shot-text {
  margin: 0;
  color: #aeb9a6;
  font-size: 14.5px;
  line-height: 1.55;
}

/* A press on a picture shows it large, over the page (shots.20261009.js).
   The picture is as large as the window allows and never larger than its file. */
.hero-shot a,
.shot a { cursor: zoom-in; }
.shot-window {
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 0;
  overflow: visible;
  border: 0;
  background: transparent;
  cursor: zoom-out;
}
.shot-window::backdrop { background: #050806f2; }
.shot-window img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(96vw, 1880px);
  max-height: calc(100vh - 110px);
  border: 1px solid #d9dc9447;
  border-radius: 10px;
  background: #0e1510;
  box-shadow: 0 24px 80px #000;
}
.shot-window-close {
  display: block;
  margin: 0 0 10px auto;
  padding: 8px 14px;
  border: 1px solid #56634c;
  border-radius: 999px;
  background: #0e1510;
  color: var(--vellum);
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}
.shot-window-close:hover { border-color: var(--brass); color: var(--brass); }
.shot-window-words {
  margin: 10px 0 0;
  color: #aeb9a6;
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
}

@media (max-width: 980px) {
  /* One column in the hero: the picture stands under the words, full width. */
  .hero-shot { align-self: start; }
  .shots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  /* Phones: the pictures stand in a row that is moved by thumb, like the films did,
     so the page does not grow by six screens. */
  .shots {
    display: flex;
    gap: 14px;
    margin-inline: -20px;
    padding: 2px 20px 16px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 20px;
    scrollbar-width: none;
  }
  .shot { flex: none; width: 78vw; scroll-snap-align: start; }
}
@media (max-width: 360px) {
  .shots { margin-inline: -16px; padding-inline: 16px; scroll-padding-inline: 16px; }
}
