/* Batch 59a (2026-10-06): the photo frame component. Justin's eight "Updated frames" are the only photo frame on the site.
   Generated by scripts/photo-frame-css-batch59a.py from the frame manifest. Never hand edit; see FRAME_COMPONENT.md.
   Static by construction: no animation, no transition, nothing to switch off under reduced motion or ?static=1.
   Legacy route sheets put !important rules on every img inside a photo box, so the geometry of the slot and of the overlay is held with a repeated class
   (specificity) plus !important. The photo inside the slot keeps its own rules (object-position, srcset, rotators) untouched. */
.omf{position:relative;display:block;width:100%;aspect-ratio:var(--omf-ar,1);box-sizing:border-box;margin:0;padding:0;border:0;overflow:visible;isolation:isolate;line-height:0;background:transparent}
.omf.omf.omf{border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;overflow:visible!important;aspect-ratio:var(--omf-ar,1)!important;padding:0!important}
.omf.omf.omf.omf--fill{width:auto!important;height:100%;max-width:100%}
.omf__photo{position:absolute;left:var(--omf-l);top:var(--omf-t);width:var(--omf-w);height:var(--omf-h);overflow:hidden;z-index:0;margin:0;padding:0;border:0;border-radius:0;background:#1a0a0c}
.omf.omf.omf > .omf__photo{position:absolute!important;left:var(--omf-l)!important;top:var(--omf-t)!important;width:var(--omf-w)!important;height:var(--omf-h)!important;aspect-ratio:auto!important;overflow:hidden!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.omf__photo :where(img,picture,video){border:0;outline:0;border-radius:0;box-shadow:none}
.omf__photo > :where(img,picture){position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;display:block}
.omf__photo > picture > :where(img){width:100%;height:100%;object-fit:cover;display:block}
.omf.omf.omf > .omf__frame{position:absolute!important;left:0!important;top:0!important;width:100%!important;height:100%!important;max-width:none!important;aspect-ratio:auto!important;object-fit:fill!important;z-index:2;pointer-events:none;user-select:none;-webkit-user-drag:none;border:0!important;border-radius:0!important;box-shadow:none!important;margin:0!important;padding:0!important;opacity:1!important;transform:none!important}
.omf[data-omf="f01"]{--omf-ar:1254 / 1254;--omf-l:17.783%;--omf-t:17.703%;--omf-w:64.274%;--omf-h:63.796%}
.omf[data-omf="f02"]{--omf-ar:1086 / 1448;--omf-l:17.219%;--omf-t:16.782%;--omf-w:65.838%;--omf-h:66.022%}
.omf[data-omf="f03"]{--omf-ar:1122 / 1402;--omf-l:17.469%;--omf-t:17.047%;--omf-w:65.062%;--omf-h:65.478%}
.omf[data-omf="f04"]{--omf-ar:1402 / 1122;--omf-l:11.484%;--omf-t:16.31%;--omf-w:76.748%;--omf-h:64.706%}
.omf[data-omf="f05"]{--omf-ar:1254 / 1254;--omf-l:16.188%;--omf-t:17.624%;--omf-w:67.863%;--omf-h:64.115%}
.omf[data-omf="f06"]{--omf-ar:1086 / 1448;--omf-l:17.403%;--omf-t:16.091%;--omf-w:65.378%;--omf-h:66.298%}
.omf[data-omf="f07"]{--omf-ar:1122 / 1402;--omf-l:16.488%;--omf-t:15.763%;--omf-w:68.093%;--omf-h:66.833%}
.omf[data-omf="f08"]{--omf-ar:1402 / 1122;--omf-l:12.411%;--omf-t:19.608%;--omf-w:75.321%;--omf-h:61.765%}
