/* R32 the play pill is a small pet that lives in the film frame (film-pet-r32.js moves
 * it on fine pointers). The hover wait charges the pill instead of veiling the picture,
 * the cursor steps back to a dot so the pet leads, and the player opens on the same pill.
 * Selectors start at html so they win over film-card-r31, film-r12 and cursor-r17
 * whatever the stylesheet order. */
:root{--r32-pet-acid:#D6FF3F;--r32-pet-ease:cubic-bezier(.16,1,.3,1)}
/* The dark veil and aperture loader no longer cover the picture; the pill is the sign. */
html .r31-film-image .film-r12-dwell{display:none}
/* While the script drives it, the transform follows the spring frame by frame; the
 * deeper shadow lifts it off the picture. */
html .r31-film-image.is-r32-pet .r32-film-pill{transition:width .55s var(--r32-pet-ease),background-color .3s var(--r32-pet-ease),box-shadow .45s var(--r32-pet-ease);box-shadow:0 14px 34px #00000038;will-change:transform}
/* Charging: Acid fills the pill from left to right with the real hover-wait progress,
 * and runs back quickly when the wait is abandoned. */
html .r31-film-image .r32-film-pill-fill{inset:0;opacity:1;background:var(--r32-pet-acid);transform:scaleX(0);transform-origin:left center;transition:transform .28s var(--r32-pet-ease)}
html .r31-film-image.is-film-r12-dwelling .r32-film-pill-fill{transform:scaleX(var(--film-dwell-progress,0));transition:none}

/* The custom cursor stops competing: a small dot, no label, no ring. Difference keeps it
 * visible when the white pet sits under it. */
html .r17-cursor[data-mode=film]{mix-blend-mode:difference}
html .r17-cursor[data-mode=film] .r17-cursor-shape,html .r17-cursor[data-mode=film].is-r17-dwelling .r17-cursor-shape{width:12px;height:12px}
html .r17-cursor[data-mode=film] :is(.r17-cursor-label,.r17-cursor-dwell){display:none}

/* The player's opening state continues the pet: the same white pill and play mark,
 * breathing, with an Acid sweep in place of the unrelated aperture. */
html .film-r12-status .film-r12-load-graphic{--load-h:clamp(52px,5vw,76px);width:calc(var(--load-h) * 1.58);height:var(--load-h);margin:0 auto 26px;border-radius:999px;background:#fff;overflow:hidden;isolation:isolate;box-shadow:0 10px 32px #0000004d;animation:r32-pet-breathe 2.6s ease-in-out infinite}
html .film-r12-status .film-r12-load-arc{display:none}
html .film-r12-status .film-r12-load-graphic::before{content:"";position:absolute;inset:0;background:var(--r32-pet-acid);animation:r32-pet-sweep 1.9s cubic-bezier(.65,0,.35,1) infinite}
html .film-r12-status .film-r12-load-graphic::after{content:"";position:absolute;left:calc(50% - var(--load-h) * .143);top:50%;width:calc(var(--load-h) * .34);height:calc(var(--load-h) * .381);background:#000;clip-path:polygon(0 0,100% 50%,0 100%);transform:translateY(-50%)}
@keyframes r32-pet-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.045,1.03)}}
/* It starts full, as the charged pill left it, empties to the right, refills from the left. */
@keyframes r32-pet-sweep{0%,14%{transform:translateX(0)}50%{transform:translateX(101%)}50.01%{transform:translateX(-101%)}86%,100%{transform:translateX(0)}}
