/* Photos (owner, 26 Sep 2026): the homepage portraits' treatment on every page. src/content/photo-effect.mjs marks
   the markup. A photo that belongs to a link eases in 2.5% while its card is hovered or focused; the frame stays
   still. The individual scale property composes with crops that already use transform. */
main [data-photo-card] img[data-photo-zoom]{transition:scale .5s cubic-bezier(.2,.7,.2,1),clip-path .5s cubic-bezier(.2,.7,.2,1)}
main [data-photo-card]:is(:hover,:focus-within) img[data-photo-zoom]{scale:1.025}
/* A photo that shares its box with text keeps its outline: its clip shrinks by exactly what the scale adds
   ((1 - 1/1.025) / 2 = 1.2195% a side), so only the picture inside grows. */
main img[data-photo-zoom="clip"]{clip-path:inset(0 round var(--photo-radius,0px))}
main [data-photo-card]:is(:hover,:focus-within) img[data-photo-zoom="clip"]{clip-path:inset(1.2195% round calc(var(--photo-radius,0px) / 1.025))}
@media(prefers-reduced-motion:reduce){
 main [data-photo-card] img[data-photo-zoom]{transition:none}
 main [data-photo-card]:is(:hover,:focus-within) img[data-photo-zoom]{scale:none;clip-path:inset(0 round var(--photo-radius,0px))}
}
/* Corner radii of photos that share a box with text, as their pages set them. */
main .ac-hero-photo>img{--photo-radius:4px}
main .fiar-person-heading img{--photo-radius:6px}
main .in-centre-photo img{--photo-radius:12px}
main .org-practice-proof>img{--photo-radius:8px}

/* People, face first, on the homepage's dark backing. Expert frames match the homepage and About portraits:
   1.18, 12px corners; Andrei's portrait keeps the crop it has on About. */
main img[data-photo-person]{object-position:50% 25%}
main .sme-portrait{aspect-ratio:1.18;border-radius:12px;background:#3b3c3d}
main .sme-profile[data-sme-person="andrei-sribny"] .sme-portrait img{transform:scale(1.38);transform-origin:50% 18%}
