.gallery-hero{background:radial-gradient(circle at 78% 20%,rgba(48,200,242,.22),transparent 28%),linear-gradient(135deg,#03111c,#082b40)}
.gallery-stage{background:linear-gradient(180deg,#f2f8fa,#fff)}
.gallery-intro{display:grid;grid-template-columns:1.15fr .85fr;gap:72px;align-items:end;margin-bottom:48px}
.gallery-intro h2{font-size:clamp(38px,4.3vw,64px);line-height:1.05;letter-spacing:-.045em;margin:10px 0 0;color:var(--ink)}
.gallery-intro>p{font-size:17px;line-height:1.75;color:#5b707a;margin:0}
.gallery-filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:30px}
.gallery-filter{appearance:none;border:1px solid #c8dbe4;background:#fff;color:#34515f;padding:12px 16px;font:700 12px/1 Manrope,sans-serif;cursor:pointer;transition:color .2s,border-color .2s,background .2s,transform .2s}
.gallery-filter:hover{border-color:var(--cyan);transform:translateY(-2px)}
.gallery-filter.active{background:var(--navy);border-color:var(--navy);color:#fff}
.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.gallery-card{grid-column:span 4;display:flex;flex-direction:column;background:#fff;border:1px solid rgba(0,143,213,.18);box-shadow:0 16px 36px rgba(6,35,50,.07);overflow:hidden;transition:transform .25s,border-color .25s,opacity .25s}
.gallery-card:hover{transform:translateY(-5px);border-color:var(--cyan)}
.gallery-card.gallery-wide,.gallery-card.gallery-featured{grid-column:span 4;display:flex;flex-direction:column}
.gallery-card.gallery-tall .gallery-image,.gallery-card.gallery-featured>.gallery-image{aspect-ratio:4/3;min-height:0}
.gallery-card.gallery-featured:hover{transform:translateY(-5px)}
.gallery-card.gallery-featured>.gallery-image img{width:100%;height:100%;object-fit:cover}
.gallery-card[hidden]{display:none}
.gallery-image{aspect-ratio:4/3;background:linear-gradient(135deg,#09273a,#0a3f59);display:grid;place-items:center;position:relative;overflow:hidden}
.gallery-image:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(48,200,242,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(48,200,242,.08) 1px,transparent 1px);background-size:32px 32px}
.gallery-image:after{content:"+";font:300 48px/1 Manrope;color:rgba(114,221,251,.55);position:absolute;right:22px;bottom:18px}
.gallery-image span{position:relative;z-index:1;color:#8edff5;font:600 11px/1.4 Roboto Mono,monospace;text-transform:uppercase;letter-spacing:.12em}
.gallery-card:not(.gallery-placeholder) .gallery-image{background:#061a28}
.gallery-card:not(.gallery-placeholder) .gallery-image:before,.gallery-card:not(.gallery-placeholder) .gallery-image:after{display:none}
.gallery-card img{display:block;width:100%;height:auto;object-fit:contain;background:#061a28}
.event-photo-cover img{width:100%;height:100%;object-fit:cover}
.event-brand-cover{padding:36px 28px;align-content:center;gap:25px;background:radial-gradient(circle at 80% 20%,rgba(48,200,242,.22),transparent 30%),linear-gradient(145deg,#f7fbfc,#eaf4f7)}
.event-brand-cover img{position:relative;z-index:1;width:min(78%,250px);max-height:90px;object-fit:contain;background:transparent}
.event-brand-cover strong{position:relative;z-index:1;color:#10394d;font:800 16px/1.35 Manrope,sans-serif;text-align:center;letter-spacing:-.01em}
.gallery-copy{display:flex;flex:1;flex-direction:column;padding:25px 25px 27px}
.gallery-copy p{margin:0 0 10px;color:var(--blue);font:700 10px/1.3 Roboto Mono,monospace;text-transform:uppercase;letter-spacing:.12em}
.gallery-copy h3{font-size:20px;line-height:1.3;margin:0 0 12px;color:var(--ink)}
.gallery-copy span{display:block;color:#71828b;font-size:12px;line-height:1.5}
.gallery-copy .gallery-description{margin:18px 0 0;color:#4e6570;font:500 14px/1.7 Manrope,sans-serif;text-transform:none;letter-spacing:0}
.event-gallery{margin-top:auto;border-top:1px solid #d8e7ec;padding-top:18px}
.event-gallery summary{cursor:pointer;color:#0a597b;font:700 13px/1.4 Manrope,sans-serif;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px}
.event-gallery summary::-webkit-details-marker{display:none}
.event-gallery summary:after{content:"+";font-size:22px;color:var(--blue)}
.event-gallery[open] summary:after{content:"−"}
.event-gallery summary b{margin-left:auto;color:#788a92;font-size:11px;font-weight:600}
.event-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}
.event-photo-grid a{display:block;aspect-ratio:4/3;overflow:hidden;background:#e9f1f4}
.event-photo-grid img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.event-photo-grid a:hover img{transform:scale(1.035)}
.event-photo-grid a:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.gallery-lightbox{position:fixed;z-index:1000;inset:0;background:rgba(1,12,20,.94);display:grid;grid-template-columns:80px minmax(0,1fr) 80px;align-items:center;padding:64px 24px 28px;backdrop-filter:blur(8px)}
.gallery-lightbox[hidden]{display:none}
.gallery-lightbox figure{margin:0;display:grid;grid-template-rows:minmax(0,1fr) auto;justify-items:center;gap:16px;min-width:0;height:100%}
.gallery-lightbox figure img{display:block;max-width:100%;max-height:calc(100vh - 145px);width:auto;height:auto;object-fit:contain;box-shadow:0 20px 65px rgba(0,0,0,.4)}
.gallery-lightbox figcaption{width:min(100%,1000px);display:flex;justify-content:space-between;gap:24px;color:#d6e9ef;font-size:13px;line-height:1.5}
.lightbox-count{white-space:nowrap;color:#8edff5}
.lightbox-close,.lightbox-nav{appearance:none;border:1px solid rgba(255,255,255,.26);background:rgba(4,34,50,.72);color:#fff;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.lightbox-close:hover,.lightbox-nav:hover{background:#087da7;border-color:var(--cyan)}
.lightbox-close:focus-visible,.lightbox-nav:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.lightbox-close{position:absolute;top:18px;right:22px;width:44px;height:44px;font:300 32px/1 Manrope,sans-serif}
.lightbox-nav{width:54px;height:70px;font:300 48px/1 Manrope,sans-serif;justify-self:center}
body.gallery-modal-open{overflow:hidden}
.gallery-empty{grid-column:1/-1;margin:0;padding:34px;border:1px dashed #a9c9d6;background:#f7fbfc;color:#526b76;text-align:center;font-size:14px}
.gallery-draft-note{display:flex;gap:22px;align-items:center;margin-top:28px;padding:20px 22px;background:#eaf7fa;border-left:4px solid var(--cyan);color:#4d6672;font-size:13px;line-height:1.6}
.gallery-draft-note strong{color:var(--navy);white-space:nowrap}
@media(max-width:960px){.gallery-intro{grid-template-columns:1fr;gap:24px}.gallery-card,.gallery-card.gallery-wide,.gallery-card.gallery-featured{grid-column:span 6}.event-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.gallery-card,.gallery-card.gallery-wide,.gallery-card.gallery-featured{grid-column:span 12}.gallery-filter{flex:1 1 calc(50% - 9px)}.gallery-draft-note{align-items:flex-start;flex-direction:column;gap:5px}.event-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-gallery summary{align-items:flex-start;flex-wrap:wrap}.event-gallery summary b{margin-left:0}.gallery-lightbox{grid-template-columns:54px minmax(0,1fr) 54px;padding:66px 5px 18px}.lightbox-nav{width:44px;height:60px;font-size:38px}.gallery-lightbox figcaption{padding:0 8px;flex-direction:column;gap:2px}.gallery-lightbox figure img{max-height:calc(100vh - 180px)}}
