.zoo-vignettes{padding-block:clamp(3.1rem,7vw,6rem)}
.zoo-vignette-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.9rem,3vw,2rem)}
.zoo-vignette{margin:0;min-width:0;border:1px solid #403454;border-radius:1.1rem;overflow:hidden;background:#120f23;box-shadow:0 22px 55px #05030d4d}
.zoo-vignette img{width:100%;height:auto;aspect-ratio:30/17;object-fit:cover;display:block;background:#151021}
.zoo-vignette figcaption{display:grid;gap:.5rem;padding:clamp(1rem,3vw,1.65rem);border-top:1px solid #403454}
.zoo-vignette h3{font-size:clamp(1.27rem,2.6vw,1.85rem);line-height:1.1;margin:0;color:#f3ecff;letter-spacing:-.025em}
.zoo-vignette p:not(.zoo-overline){margin:0;line-height:1.6;color:#c4b8d2}
.zoo-vignette .zoo-overline{margin:0}
.zoo-vignette:nth-child(2) .zoo-overline{color:#b8c9fb}
@media(max-width:670px){.zoo-vignette-grid{grid-template-columns:minmax(0,1fr)}.zoo-vignette img{aspect-ratio:30/17}}

/* Illustrated actions only: a brush trace and a score-board scan. */
.zoo-vignette-visual{position:relative}
.zoo-vignette-motion{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;visibility:hidden}
body[data-motion-running=true] .zoo-vignette-motion{visibility:visible}
.zoo-vignette-trace{stroke-dasharray:25 75;filter:drop-shadow(0 0 4px currentColor);color:#ffeaba;animation:zoo-vignette-trace 3s linear infinite;animation-play-state:paused}
.zoo-vignette:nth-child(2) .zoo-vignette-trace{color:#bcfff0;animation-delay:-.65s}
.zoo-vignette-pulse{transform-box:fill-box;transform-origin:center;animation:zoo-vignette-pulse 3.1s ease-out infinite;animation-delay:var(--cue-delay,0s);animation-play-state:paused}
body[data-motion-running=true] .zoo-vignette-motion :is(.zoo-vignette-trace,.zoo-vignette-pulse){animation-play-state:running}
@keyframes zoo-vignette-trace{0%{stroke-dashoffset:100;opacity:0}12%{opacity:1}74%{stroke-dashoffset:14;opacity:1}94%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes zoo-vignette-pulse{0%,100%{opacity:0;transform:scale(.55)}18%{opacity:.9;transform:scale(.95)}48%,99%{opacity:0;transform:scale(1.45)}}
