.vslot:empty{aspect-ratio:16/9;background:var(--ink,#08090B);border:1px solid var(--line);border-radius:3px}
.vf{position:relative;display:block;width:100%;aspect-ratio:16/9;background:var(--ink,#08090B);border:1px solid var(--line);border-radius:3px;overflow:hidden;cursor:pointer;padding:0;color:inherit;font:inherit;text-align:left}
.vf img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.55) brightness(.78);transition:filter .5s var(--ease),transform .9s var(--ease)}
.vf:hover img,.vf:focus-visible img{filter:none;transform:scale(1.015)}
.vf::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,9,11,0) 45%,rgba(8,9,11,.88) 100%);pointer-events:none}
.vf .play{position:absolute;left:clamp(1rem,2.4vw,1.6rem);bottom:clamp(1rem,2.4vw,1.6rem);z-index:2;display:flex;align-items:center;gap:.9rem}
.vf .pb{flex:none;width:56px;height:56px;border-radius:3px;background:var(--accent);display:grid;place-items:center;transition:background .2s,transform .3s var(--ease)}
.vf:hover .pb{background:var(--accent-h);transform:translateX(3px)}
.vf .pb svg{width:18px;height:18px;margin-left:3px;fill:#fff}
.vf .cap{display:flex;flex-direction:column;line-height:1.1}
.vf .cap .t{font-family:var(--fdisplay);text-transform:uppercase;letter-spacing:var(--track-display,-.03em);font-size:clamp(1.3rem,2.4vw,2rem);color:#fff}
.vf .cap .c{font-size:.95rem;color:var(--soft);margin-top:.3rem}
.vf iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vf.is-playing{cursor:default}.vf.is-playing::after{display:none}
.vgal .top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:1.8rem}
.vgal .count{font-size:.9rem;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}
.vgal .more{display:inline-flex;align-items:center;gap:.45rem;margin-top:2rem;color:var(--accent);font-weight:600;border-bottom:1px solid transparent;padding-bottom:2px}
.vgal .more:hover{border-color:var(--accent)}
.vgrid{list-style:none;margin:2.2rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1.6rem 1rem}
@media(min-width:760px){.vgrid{grid-template-columns:repeat(3,1fr);gap:2.4rem 1.4rem}}
@media(min-width:1100px){.vgrid{grid-template-columns:repeat(4,1fr)}}
.vitem button{all:unset;display:block;width:100%;cursor:pointer}
.vitem .th{position:relative;display:block;aspect-ratio:16/9;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--ink,#08090B)}
.vitem .th img{width:100%;height:100%;object-fit:cover;filter:grayscale(.55) brightness(.78);transition:filter .5s var(--ease)}
.vitem button:hover .th img,.vitem button:focus-visible .th img{filter:none}
.vitem button:focus-visible .th{outline:2px solid var(--accent);outline-offset:3px}
.vitem .n{display:block;margin-top:.8rem;font-size:.78rem;letter-spacing:.14em;color:var(--muted)}
.vitem .n .s{color:var(--accent);font-weight:700}
.vitem .t{display:block;font-family:var(--fdisplay);text-transform:uppercase;letter-spacing:var(--track-display,-.03em);font-size:1.15rem;line-height:1.05;margin-top:.35rem}
.vitem .c{display:block;font-size:.92rem;color:var(--muted);margin-top:.25rem;line-height:1.3}
.vitem.on .th{border-color:var(--accent)}
.vitem.on .th::after{content:"En lecture";position:absolute;left:.6rem;top:.6rem;background:var(--accent);color:#fff;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;padding:.2rem .5rem;border-radius:2px}
.spf{display:flex;align-items:center;gap:1.2rem;width:100%;min-height:150px;padding:1.6rem;border:1px solid var(--line);border-radius:3px;background:var(--surface);cursor:pointer;color:inherit;font:inherit;text-align:left}
.spf:hover{border-color:var(--line-strong)}
.spf .pb{flex:none;width:56px;height:56px;border-radius:3px;border:1px solid var(--line-strong);display:grid;place-items:center}
.spf .pb svg{width:18px;height:18px;margin-left:3px;fill:var(--fg)}
.spf .t{font-family:var(--fdisplay);text-transform:uppercase;font-size:1.4rem;display:block}
.spf .c{font-size:.95rem;color:var(--muted)}
.sp-frame{width:100%;height:420px;border:0;border-radius:3px;display:block}
.proof{display:grid;gap:2rem}
.proof p{color:var(--soft);max-width:44ch;margin:0}
.proof h2{margin-bottom:1.2rem}
@media(min-width:860px){.proof{grid-template-columns:.8fr 1.2fr;gap:clamp(2.5rem,5vw,5rem);align-items:end}.proof p{font-size:1.25rem}}
@media(max-width:859px){.esp .vslot{margin-top:2.6rem}}
@media (prefers-reduced-motion: reduce){.vf img,.vf .pb{transition:none}}
