/* Shared collection and lightbox styles, isolated from the retired gallery theme. */
.gallery-heading { padding-bottom:36px; }
.gallery-heading .breadcrumb { margin-bottom:26px; }
.gallery-heading h1 { margin-bottom:20px; }
.gallery-section { padding-bottom:72px; }
.gallery-intro { display:flex; justify-content:space-between; gap:20px; padding:18px 0 24px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }
.gallery-intro>span:first-child { color:var(--ink); font-weight:650; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.gallery-card { display:block; min-width:0; border:1px solid var(--line); border-radius:8px; overflow:hidden; text-decoration:none; background:var(--paper); transition:border-color .18s,transform .18s; }
.gallery-card:hover { border-color:var(--accent); transform:translateY(-3px); }
.gallery-card-image { aspect-ratio:1.15; background:var(--wash); overflow:hidden; }
.portrait-page .gallery-card-image { aspect-ratio:4/5; }
.gallery-card-image img { width:100%; height:100%; object-fit:cover; object-position:center 25%; transition:transform .3s; }
.portrait-page .gallery-card-image img { object-position:center; }
.gallery-card:hover .gallery-card-image img { transform:scale(1.025); }
.gallery-card-copy { padding:22px; border-top:1px solid var(--line); }
.gallery-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.gallery-card h2 { font-size:23px; line-height:1.25; letter-spacing:-.035em; color:var(--ink); }
.gallery-card-heading .ui-icon { margin-top:5px; opacity:.65; }
.gallery-card-detail { margin-top:10px!important; color:var(--muted); font-size:13px; }
.gallery-card-count { display:block; margin-top:16px; font-size:12px; color:var(--accent); }
.gallery-contact { display:flex; align-items:center; justify-content:space-between; gap:36px; padding:36px 0 64px; border-top:1px solid var(--line); }
.gallery-contact h2 { max-width:560px; font-size:34px; margin:12px 0; }
.gallery-contact p:not(.eyebrow) { color:var(--muted); }
.gallery-contact .action { flex-shrink:0; }
.theater-modal,.portrait-modal { display:none; position:fixed; inset:0; z-index:100; padding:28px 24px; background:rgba(4,9,25,.82); overflow:auto; overscroll-behavior:contain; }
.theater-modal-content,.portrait-modal-content { position:relative; width:min(1040px,100%); max-height:calc(100dvh - 56px); margin:0 auto; border-radius:10px; overflow:auto; overscroll-behavior:contain; background:var(--paper); color:var(--ink); box-shadow:0 24px 80px rgba(0,0,0,.2); }
.theater-modal-close,.portrait-modal-close { position:sticky; top:14px; float:right; margin:14px 14px -58px 0; z-index:6; width:44px; height:44px; border:1px solid var(--line); border-radius:50%; background:var(--paper); color:var(--ink); font:28px/1 var(--font); cursor:pointer; }
.theater-modal-close:hover,.portrait-modal-close:hover { background:var(--wash); color:var(--accent); }
.theater-modal-image-wrapper,.portrait-modal-image-wrapper { position:relative; height:min(57vh,580px); min-height:260px; background:var(--wash); touch-action:pan-y; }
.site-page .theater-modal-image,.site-page .portrait-modal-image { width:100%; height:100%; object-fit:contain; }
.theater-modal-nav,.portrait-modal-nav { position:absolute; top:50%; transform:translateY(-50%); z-index:4; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid rgba(255,255,255,.4); border-radius:50%; background:rgba(8,12,39,.82); color:#fff; font:32px/1 var(--font); cursor:pointer; }
.theater-modal-nav-prev,.portrait-modal-nav-prev { left:16px; }
.theater-modal-nav-next,.portrait-modal-nav-next { right:16px; }
.theater-modal-nav:disabled,.portrait-modal-nav:disabled { opacity:.3; cursor:default; }
.theater-modal-nav:hover:not(:disabled),.portrait-modal-nav:hover:not(:disabled) { background:#064bff; }
.theater-modal-counter,.portrait-modal-counter { position:absolute; z-index:4; bottom:16px; left:50%; transform:translateX(-50%); border-radius:20px; padding:5px 13px; background:rgba(8,12,39,.8); color:#fff; font-size:12px; font-variant-numeric:tabular-nums; }
.theater-modal-info,.portrait-modal-info { padding:30px 38px 38px; }
.theater-modal-title,.portrait-modal-title { font-size:32px; line-height:1.2!important; letter-spacing:-.035em!important; margin:0 0 14px!important; }
.theater-modal-meta { display:flex; flex-wrap:wrap; gap:10px 22px; padding-bottom:20px; border-bottom:1px solid var(--line); margin-bottom:20px; font-size:14px; color:var(--muted); }
.theater-modal-role { color:var(--accent); font-weight:600; }
.portrait-modal-location { gap:8px; margin-bottom:18px; color:var(--muted); font-size:14px; }
.theater-modal-overview,.theater-modal-character,.portrait-modal-description,.portrait-modal-details { max-width:760px; color:var(--muted); font-size:16px; line-height:1.85; }
.theater-modal-overview p+p,.portrait-modal-details p+p { margin-top:16px; }
.portrait-modal-details { margin-top:18px; }
.theater-modal-character,.theater-modal-gallery { margin-top:28px; }
.theater-modal-character h3,.theater-modal-gallery h3 { margin:0 0 16px; font-size:16px; color:var(--ink); }
.theater-gallery-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.theater-gallery-item { aspect-ratio:4/3; overflow:hidden; border-radius:4px; cursor:pointer; background:var(--wash); border:2px solid transparent; }
.theater-gallery-item[aria-current] { border-color:var(--accent); }
.theater-gallery-item:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.theater-gallery-item img { width:100%; height:100%; object-fit:cover; }
.theater-modal-video-wrapper,.theater-modal-video-embed,.theater-modal-video-embed iframe { width:100%; height:100%; border:0; }
.gallery-image-status { position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:16px; padding:24px 68px; color:var(--muted); background:var(--wash); text-align:center; font-size:14px; }
.gallery-image-retry { min-height:44px; padding:10px 20px; border:1px solid var(--line); border-radius:5px; background:var(--paper); color:var(--ink); cursor:pointer; font:600 14px/1.5 var(--font); }
.gallery-image-retry:hover { color:var(--accent); border-color:var(--accent); }
@media(max-width:1100px) {
 .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
 .gallery-contact { align-items:flex-start; flex-direction:column; }
}
@media(max-width:760px) {
 .gallery-heading { padding-bottom:28px; }
 .gallery-heading h1 { font-size:40px; }
 .gallery-intro { font-size:12px; gap:12px; }
 .gallery-section { padding-bottom:44px; }
 .gallery-grid { grid-template-columns:1fr; gap:26px; }
 .gallery-card h2 { font-size:23px; }
 .gallery-card-copy { padding:20px; }
 .portrait-page .gallery-card-image { aspect-ratio:1; }
 .gallery-contact { padding:30px 0 44px; gap:24px; }
 .gallery-contact h2 { font-size:30px; }
 .theater-modal,.portrait-modal { padding:10px; }
 .theater-modal-content,.portrait-modal-content { max-height:calc(100dvh - 20px); border-radius:8px; }
 .theater-modal-image-wrapper,.portrait-modal-image-wrapper { height:46vh; min-height:220px; }
 .theater-modal-info,.portrait-modal-info { padding:24px; }
 .theater-modal-title,.portrait-modal-title { font-size:26px; }
 .theater-modal-close,.portrait-modal-close { top:10px; margin:10px 10px -54px 0; }
 .theater-modal-nav-prev,.portrait-modal-nav-prev { left:10px; }
 .theater-modal-nav-next,.portrait-modal-nav-next { right:10px; }
 .theater-gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
}
