.drive-collection { margin-top: 48px; scroll-margin-top: 110px; }
.drive-collection h2, .drive-collection h3 { color: var(--blue-900); }
.drive-description { max-width: 60ch; color: var(--muted); margin-top: 10px; }
.motion-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 22px; margin-top: 28px; }
.motion-photo a { display: block; border-radius: var(--r-md); overflow: hidden; }
.motion-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.motion-photo figcaption { margin-top: 10px; color: var(--muted); font-size: .85rem; line-height: 1.5; }
.motion-photo a:focus-visible { outline: 3px solid var(--red); outline-offset: 4px; }
.motion-video-label { margin-top: 40px; color: var(--blue-900); font-weight: 800; font-size: 1.1rem; }
@media (max-width: 760px) { .motion-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .motion-photos { grid-template-columns: 1fr; } }
.drive-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 22px; margin-top: 28px; }
.drive-card { min-width: 0; }
.drive-poster { display: block; position: relative; aspect-ratio: 16 / 9; background: var(--blue-950); border-radius: var(--r-md); overflow: hidden; }
.drive-poster img { width: 100%; height: 100%; object-fit: contain; }
.drive-play { position: absolute; inset: 0; display: grid; place-items: center; }
.drive-play span { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; color: white; background: rgba(7,27,78,.85); border: 2px solid white; font-size: 21px; padding-left: 3px; }
.drive-poster:hover .drive-play span { background: var(--red); }
.drive-poster:focus-visible { outline: 3px solid var(--red); outline-offset: 5px; }
.drive-card h3, .drive-card h4 { font-size: 1rem; line-height: 1.5; margin-top: 12px; color: var(--blue-900); }
.drive-all { display: inline-block; color: var(--red); font-weight: 700; margin-top: 24px; text-decoration: underline; text-underline-offset: 4px; }
.gallery-jumps { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.gallery-photo-heading { margin: 52px 0 0; scroll-margin-top: 110px; }
.video-viewer-open { overflow: hidden; }
.video-viewer { margin: auto; width: min(1040px,96vw); max-width: 96vw; max-height: 96dvh; padding: 18px; border: none; border-radius: var(--r-md); background: white; color: var(--ink); }
.video-viewer::backdrop { background: rgba(7,27,78,.88); }
.video-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.video-toolbar h2 { font-size: 1rem; color: var(--blue-900); }
.video-close { padding: 10px 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--blue-tint); color: var(--blue-900); font: 700 .85rem var(--font); cursor: pointer; }
.video-close:focus-visible { outline: 3px solid var(--red); outline-offset: 2px; }
.video-stage { background: var(--blue-950); height: min(65dvh,560px); }
.video-stage iframe { display: block; width: 100%; height: 100%; border: 0; }
.video-help { margin-top: 12px; font-size: .8rem; color: var(--muted); }
.video-external { color: var(--blue-900); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 760px) { .drive-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 480px) {
  .drive-grid { grid-template-columns: 1fr; gap: 24px; }
  .video-viewer { padding: 12px; }
  .video-stage { height: 55dvh; }
}
