.portfolio-gallery{width:min(1400px,94vw);max-width:none;max-height:94dvh;padding:0;border:1px solid var(--line);background:var(--paper);color:var(--ink);overflow:auto}
.portfolio-gallery[open]{display:flex;flex-direction:column}
.portfolio-gallery::backdrop{background:#000c}
.gallery-header,.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md)}
.gallery-header{border-bottom:1px solid var(--line)}
.gallery-close,.gallery-controls button{background:none;border:0;color:var(--ink);font:.75rem/1.5 var(--mono);min-height:44px;padding:var(--space-xs) var(--space-sm);cursor:pointer}
.gallery-controls button:hover,.gallery-close:hover{color:var(--red)}
.gallery-stage{margin:0;min-height:0;background:#141514;display:grid;place-items:center}
.gallery-stage img{display:block;width:100%;height:calc(94dvh - 160px);min-height:180px;object-fit:contain}
.gallery-stage img[hidden]{display:none}
.gallery-status{margin:0;padding:var(--space-xl);font:var(--text-body)/1.5 var(--body);color:#eeede9}
.gallery-status[hidden]{display:none}
.gallery-counter{font:.75rem/1.5 var(--mono);color:var(--red);font-variant-numeric:tabular-nums}
.gallery-controls button:disabled{opacity:.35;cursor:default}
body:has(.portfolio-gallery[open]),body:has(.portfolio-player[open]){overflow:hidden}
@media(max-width:640px){.gallery-header,.gallery-controls{padding:var(--space-xs) var(--space-sm)}.gallery-stage img{height:calc(94dvh - 152px)}.gallery-header h2{max-width:70%}}
