/* Responsive hero and on-demand portrait viewer. */
.hero-photo .photo-frame picture{display:block;width:100%;height:100%}
.hero-photo .photo-frame .portrait-zoom{position:absolute;right:18px;bottom:18px;z-index:5;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 15px;border-radius:24px;color:#27272e;background:rgba(255,255,255,.94);font:500 14px/1.2 'Onest',system-ui,sans-serif;text-decoration:none;box-shadow:0 2px 12px #0002;cursor:zoom-in}
.portrait-zoom:focus-visible{outline:3px solid #574b75;outline-offset:4px}
.portrait-dialog{width:calc(100vw - 32px);max-width:1440px;height:calc(100dvh - 32px);max-height:1100px;padding:0;border:1px solid #ffffff30;border-radius:18px;background:#191a20;color:#fff;overflow:hidden}
.portrait-dialog::backdrop{background:#12131cdd}
.portrait-shell{height:100%;display:flex;flex-direction:column}
.portrait-dialog header,.portrait-dialog footer{display:flex;align-items:center;gap:16px;padding:12px 18px;flex-shrink:0}
.portrait-dialog h2{font:500 16px/1.3 'Onest',system-ui,sans-serif;margin:0;flex:1}
.portrait-dialog button,.portrait-download{min-height:44px;border:1px solid #ffffff50;border-radius:9px;padding:8px 13px;color:#fff;background:#ffffff13;cursor:pointer;font:500 14px/1.2 system-ui,sans-serif;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.portrait-dialog button:focus-visible,.portrait-dialog a:focus-visible{outline:3px solid #c8bde4;outline-offset:2px}
.portrait-dialog .portrait-close{min-width:44px;font-size:26px}
.portrait-stage{position:relative;flex:1;min-height:0;background:#111218}
.portrait-canvas,.portrait-poster{position:absolute;inset:0;width:100%;height:100%}
.portrait-poster{object-fit:contain;pointer-events:none}
.portrait-status{margin:0;padding:4px 18px;min-height:22px;font:13px/1.4 system-ui,sans-serif;color:#d4cfe0}
.portrait-tools{display:flex;gap:6px}
.portrait-tools button{min-width:44px}
.portrait-help{flex:1;font:13px/1.4 system-ui,sans-serif;color:#c8c4d1}
@media(max-width:760px){.hero-photo .photo-frame .portrait-zoom{left:10px;right:auto;bottom:10px;min-height:44px;padding:8px 12px;font-size:12px}.portrait-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;border:0;border-radius:0;margin:0}.portrait-dialog header,.portrait-dialog footer{padding:8px 10px;gap:10px}.portrait-dialog h2{font-size:14px}.portrait-dialog footer{flex-wrap:wrap}.portrait-help{display:none}.portrait-download{margin-left:auto}.portrait-status{padding:4px 10px;font-size:12px}}
.portrait-dialog footer{background:#191a20;margin:0;border-radius:0}
