/* Quiet neon framing, with the photography at the center. */
.gallery-page main { animation: gallery-arrive .45s ease-out both; }
.gallery-page main::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, #00ffff, #ff6ec7, transparent); pointer-events: none; animation: gallery-signal .6s ease-out both; }
@keyframes gallery-arrive { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes gallery-signal { from { opacity: 1; transform: scaleX(.1); } to { opacity: 0; transform: scaleX(1); } }
.gallery-page .gallery-item { border: 1px solid #65859655; box-shadow: 0 5px 20px #0004; transition: transform .25s, border-color .25s, box-shadow .25s; }
.gallery-page .gallery-item.animate-in { animation: gallery-arrive .4s ease-out both; }
.gallery-page .gallery-item:hover, .gallery-page .gallery-item:focus-visible { transform: translateY(-3px); border-color: #00ffffb0; box-shadow: 0 7px 24px #0006, 0 0 12px #00ffff20; outline: 2px solid #00ffff; outline-offset: 4px; }
.gallery-page .gallery-item::before, .gallery-page .gallery-item::after { display: none; }
.gallery-page .gallery-item .crt-screen { opacity: .08; }
.gallery-page .gallery-item:hover img { transform: scale(1.025); filter: none; }
.gallery-page .lightbox { background: #040710fa; padding: 86px 92px 105px; box-sizing: border-box; z-index: 1000001; cursor: auto !important; }
.gallery-page .lightbox * { cursor: auto !important; }
.gallery-page .lightbox button, .gallery-page .lightbox a { cursor: pointer !important; }
.gallery-page .lightbox.active { animation: viewer-open .2s ease-out; }
@keyframes viewer-open { from { opacity: 0; } to { opacity: 1; } }
.gallery-page .lightbox-content { max-width: 100%; max-height: 100%; gap: 16px; }
.gallery-page .lightbox img, .gallery-page .lightbox-content img { max-width: 100%; max-height: calc(100dvh - 240px); width: auto; height: auto; margin: 0; object-fit: contain; border: 0; box-shadow: 0 12px 60px #0009; }
.gallery-page .viewer-loading #lightbox-img { opacity: 0; }
.viewer-header { position: absolute; left: 32px; top: 32px; right: 100px; color: #93d5db; font: .85rem/1.5 'VCR', monospace; letter-spacing: .18em; text-transform: uppercase; }
.viewer-footer { position: absolute; bottom: 30px; left: 32px; right: 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 18px; border-top: 1px solid #86bfc52b; color: #b8cbd2; font: .85rem/1.5 'VCR', monospace; }
.viewer-footer a { color: #8de9ec; text-decoration: none; padding: 8px; }
.viewer-footer a:hover { color: #ff8ed1; }
.viewer-footer a:focus-visible { outline: 2px solid #00ffff; outline-offset: 4px; }
.viewer-hint { color: #788793; font-size: .75rem; }
.viewer-status { position: absolute; top: 48%; left: 20px; right: 20px; text-align: center; color: #aac9d1; font: .9rem 'VCR', monospace; pointer-events: none; }
.gallery-page .lightbox-close, .gallery-page .lightbox-nav { border: 1px solid #60899855; background: #0a1320; color: #c9f8fc; border-radius: 0; box-shadow: none; }
.gallery-page .lightbox-close { top: 24px; right: 28px; font: 2rem/1 'VCR', monospace; }
.gallery-page .lightbox-close:hover { transform: none; }
.gallery-page .lightbox-nav { font: 2.6rem/1 'VCR', monospace; }
.gallery-page .lightbox-prev { left: 24px; }
.gallery-page .lightbox-next { right: 24px; }
.gallery-page .lightbox button:is(:hover, :focus-visible) { border-color: #00ffff; color: #00ffff; outline: 2px solid #00ffff; outline-offset: 3px; }
.gallery-page .lightbox-discuss-btn { background: transparent; font: .8rem/1.5 'VCR', monospace; padding: 10px 16px; color: #8de9ec; }
@media (max-width: 700px) {
    .gallery-page .lightbox { padding: 85px 12px 145px; }
    .gallery-page .lightbox img, .gallery-page .lightbox-content img { max-height: calc(100dvh - 270px); }
    .viewer-header { left: 18px; top: 30px; font-size: .75rem; }
    .gallery-page .lightbox-close { right: 16px; top: 20px; }
    .gallery-page .lightbox-nav { top: auto; bottom: 85px; transform: none; min-width: 56px; }
    .gallery-page .lightbox-prev { left: calc(50% - 70px); }
    .gallery-page .lightbox-next { right: calc(50% - 70px); }
    .viewer-footer { left: 18px; right: 18px; bottom: 20px; gap: 8px; font-size: .72rem; padding-top: 10px; }
    .viewer-hint { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .gallery-page main, .gallery-page main::before, .gallery-page .gallery-item.animate-in, .gallery-page .lightbox.active { animation: none; }
    .gallery-page .gallery-item, .gallery-page .gallery-item img { transition: none; }
}
