.portrait-trigger{position:relative;display:block;width:100%;aspect-ratio:1/1;padding:0;border:0;text-align:inherit;color:inherit;cursor:zoom-in}.portrait-trigger img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.portrait-trigger:focus-visible{outline:3px solid #79dffc;outline-offset:-4px;z-index:2}.photo-cue{position:absolute;right:13px;bottom:12px;width:31px;height:31px;display:grid;place-items:center;border:1px solid #f78eca9c;border-radius:50%;background:#091323b8;color:#fff;font-size:20px;line-height:1;opacity:.84;transition:transform .2s,background .2s}.portrait-trigger:hover .photo-cue,.portrait-trigger:focus-visible .photo-cue{transform:scale(1.12);background:#df3b92}
body.gallery-open{overflow:hidden}.photo-gallery[hidden]{display:none}.photo-gallery{position:fixed;z-index:100;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(circle at 50% 35%,#4a1844b3,transparent 65%),#040712f5;backdrop-filter:blur(16px);color:#fff}.gallery-shell{position:relative;width:min(100%,1040px);height:min(850px,calc(100dvh - 40px));min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:15px}.gallery-top{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:42px}.gallery-brand{color:#fb7abb;letter-spacing:.25em;font:800 .72rem 'DM Sans',sans-serif}.gallery-close{width:44px;height:44px;border:1px solid #ffffff78;border-radius:50%;background:#111c32;color:#fff;font-size:28px;line-height:1;cursor:pointer}.gallery-close:hover,.gallery-nav:hover{background:#e43c95;border-color:#ffb8de}.gallery-stage{position:relative;min-height:0;display:grid;place-items:center;overflow:hidden;background:linear-gradient(155deg,#1a1d39,#101626 56%,#1c1330);border:1px solid #f76fb064;box-shadow:0 0 40px #fa4ca038,0 20px 70px #0009}.gallery-stage:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#42ccfa25,transparent 18%,transparent 82%,#ee4cab24);z-index:1}.gallery-image{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:drop-shadow(0 10px 18px #0008)}.gallery-meta{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;gap:12px;min-height:70px}.gallery-nav{width:52px;height:52px;border:1px solid #7499b4;border-radius:50%;background:#17263e;color:#fff;font-size:28px;line-height:1;cursor:pointer}.gallery-caption{text-align:center;min-width:0}.gallery-title{margin:0;font:900 clamp(1.9rem,4vw,3.2rem)/1 'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.08em}.gallery-sub{display:flex;align-items:center;justify-content:center;gap:10px;margin:7px 0 0;color:#bfd1e5;font:700 .72rem 'DM Sans',sans-serif;letter-spacing:.1em;text-transform:uppercase}.gallery-dot{width:7px;height:7px;border-radius:50%;background:#54d9af;box-shadow:0 0 12px #54d9af}.gallery-dot.off{background:#fb7185;box-shadow:0 0 12px #fb7185}.gallery-index{color:#72d9fa}.gallery-hint{position:absolute;left:50%;transform:translateX(-50%);bottom:77px;white-space:nowrap;color:#ffffffaa;font:600 .65rem 'DM Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase;pointer-events:none}@media(max-width:700px){.photo-cue{width:26px;height:26px;right:8px;bottom:8px;font-size:17px}.photo-gallery{padding:10px 9px calc(12px + env(safe-area-inset-bottom,0px))}.gallery-shell{height:calc(100dvh - 22px - env(safe-area-inset-bottom,0px));gap:10px}.gallery-top{padding:0 5px}.gallery-stage{border-radius:3px}.gallery-meta{grid-template-columns:46px minmax(0,1fr) 46px;gap:4px;min-height:70px}.gallery-nav{width:42px;height:42px;font-size:24px}.gallery-sub{gap:6px;font-size:.6rem;letter-spacing:.04em}.gallery-hint{bottom:75px;font-size:.58rem}}@media(prefers-reduced-motion:reduce){.photo-cue{transition:none}}
.gallery-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#050812}.gallery-image[hidden],.gallery-video[hidden]{display:none}
.media-count{position:absolute;left:10px;bottom:12px;padding:6px 9px;border-radius:18px;background:#091323c9;border:1px solid #ffffff70;color:#fff;font:700 11px 'DM Sans',sans-serif}
