/* Youth Voices – Mobility 1 team platforms */
.yv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: var(--s-3); }
.yv-card { --yv-accent: var(--c-terracotta); display: flex; flex-direction: column; background: var(--c-paper-2); border: 1px solid var(--c-limestone-3); border-radius: var(--radius-md); overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.yv-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px -22px rgba(31, 15, 58, .45); }
.yv-shot { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--c-espresso); border-bottom: 4px solid var(--yv-accent); }
.yv-shot iframe { position: absolute; top: 0; left: 0; width: 400%; height: 400%; border: 0; transform: scale(.25); transform-origin: 0 0; pointer-events: none; background: #fff; }
.yv-shot::after { content: ""; position: absolute; inset: 0; }
.yv-body { display: flex; flex-direction: column; gap: .45rem; padding: var(--s-3); flex: 1; }
.yv-team { font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--yv-accent); }
.yv-body h2 { margin: 0; font-size: var(--type-xl, 1.9rem); }
.yv-tag { margin: 0; font-family: var(--font-display, "Fraunces", serif); font-style: italic; font-size: var(--type-md, 1.15rem); color: var(--c-espresso); }
.yv-body p { margin: 0; color: var(--c-text-mute); font-size: var(--type-sm); }
.yv-body .yv-members { color: var(--c-espresso); font-weight: 700; }
.yv-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem; margin-top: auto; padding-top: .8rem; }
.yv-dl { font-weight: 700; font-size: var(--type-sm); color: var(--c-turquoise); text-decoration: none; border-bottom: 2px solid currentColor; }
.yv-url { font-size: var(--type-xs); color: var(--c-text-mute); letter-spacing: .02em; }
.yv-note { margin-top: var(--s-3); font-size: var(--type-xs); color: var(--c-text-mute); }
