/* noisyVR · .film · base funcional del vídeo de caso (Jeff, 12-9-26).
   Solo lo necesario para que funcione y se vea. La composición es de Neo:
   puede fundir esto en styles.css y borrar el archivo (y el <link> en core.py). */
.film{position:relative;margin:0;width:100%;aspect-ratio:16/9;background:transparent;overflow:hidden}
.film-video{display:block;width:100%;height:100%;object-fit:contain;background:transparent}
.film-controls{position:absolute;right:18px;bottom:18px;display:flex;gap:10px;z-index:2}
.film-controls button{width:46px;height:46px;border-radius:50%;border:1px solid #f6f3ec99;background:#02131d99;color:#f6f3ec;display:grid;place-items:center;backdrop-filter:blur(6px);cursor:pointer;transition:background .2s,border-color .2s}
.film-controls button:hover,.film-controls button:focus-visible{background:#f6f3ec;color:#1e1c21;border-color:#f6f3ec}
.film-controls svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.film-sound .ic-on{display:none}.film-sound[aria-pressed=true] .ic-on{display:block}.film-sound[aria-pressed=true] .ic-off{display:none}
.film-sound[aria-pressed=true]{background:#5ab4f6;border-color:#5ab4f6;color:#1e1c21}
.film-error{position:absolute;inset:auto 18px 18px;margin:0;font-size:15px;color:#f6f3ec}
.film.is-full .film-controls{display:none}
@media(max-width:650px){.film-controls{right:12px;bottom:12px}.film-controls button{width:40px;height:40px}}
