/* One frame treatment across all registered game entry points. */
html body .bavilo-fit-frame{overflow:hidden!important;isolation:isolate;border-radius:var(--bavilo-card-radius,20px)!important}
html body .bavilo-fit-frame.bavilo-fit-only{padding:0!important}
html body .bavilo-fit-art{border-radius:var(--bavilo-image-radius,16px)!important;overflow:hidden;display:block}
html body img.bavilo-fit-art[data-bavilo-fit="cover"]{object-fit:cover!important;object-position:var(--bavilo-focus,50% 25%)!important;width:100%!important;max-width:100%!important;clip-path:inset(0 round var(--bavilo-image-radius,16px))}
html body .bavilo-fit-only>img.bavilo-fit-art[data-bavilo-fit="cover"]{height:100%!important;max-height:none!important;border-radius:inherit!important}
html body img.bavilo-fit-art[data-bavilo-fit="preserve"]{object-fit:contain!important}
/* Scene cards with captions: the picture owns its area, caption stays separate. */
html body .choice-grid.scenes>.picture.bavilo-fit-frame{padding:0!important}
html body .choice-grid.scenes>.picture>.picture-name{padding:4px 10px 8px;margin:0!important}
html body .sense-game .matching .card{padding:0!important;overflow:hidden!important;border-radius:22px!important}
html body.sense-game .matching .card img{object-fit:cover!important;object-position:50% 35%;border-radius:19px!important;clip-path:inset(0 round 19px)}
/* Cropped source art in SVG must stay semantically intact, but gets real clipping. */
html body svg.bavilo-fit-art{clip-path:inset(0 round var(--bavilo-image-radius,16px))}
@media(max-width:650px){html body .bavilo-fit-frame{--bavilo-card-radius:16px;--bavilo-image-radius:13px}}
