:root { --bg:#090807; --panel:#17130f; --text:#fffaf1; --muted:#c8bcaa; --gold:#ddb55d; --line:rgba(255,250,241,.14); }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font-family:"Poppins",system-ui,sans-serif; }
body.modal-open { overflow:hidden; }
a { color:inherit; }
button { font:inherit; }
.gallery-header { min-height:76px; display:flex; align-items:center; justify-content:space-between; padding:12px clamp(20px,5vw,70px); border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; font-weight:700; }
.brand img { width:50px; height:50px; border-radius:50%; object-fit:cover; }
.gallery-header nav { display:flex; gap:24px; color:var(--muted); font-size:.9rem; }
.gallery-header nav a { text-decoration:none; }
.gallery-header nav a:hover { color:var(--gold); }
.gallery-hero { padding:clamp(70px,10vw,130px) 20px 42px; text-align:center; background:radial-gradient(circle at 50% 0,#302416 0,transparent 52%); }
.eyebrow { margin:0 0 12px; color:var(--gold); font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.14em; }
h1 { margin:0; font:700 clamp(3rem,8vw,6.8rem)/1 "Playfair Display",Georgia,serif; }
.gallery-hero p:last-child { max-width:820px; margin:24px auto 0; color:var(--muted); line-height:1.8; }
.gallery-wrap { width:min(1260px,calc(100% - 40px)); margin:0 auto; padding:30px 0 90px; }
.gallery-filter-bar { display:inline-flex; flex-wrap:wrap; gap:8px; padding:6px; margin:0 0 24px; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.04); }
.gallery-filter { padding:10px 16px; border:0; border-radius:6px; color:var(--muted); background:transparent; font-weight:700; cursor:pointer; }
.gallery-filter.active { color:#15100a; background:var(--gold); }
.event-gallery { columns:3 300px; column-gap:18px; }
.gallery-item { position:relative; width:100%; display:block; margin:0 0 18px; padding:0; overflow:hidden; break-inside:avoid; border:0; border-radius:10px; background:var(--panel); cursor:pointer; }
.gallery-item img,.gallery-item video { width:100%; display:block; max-height:620px; object-fit:cover; transition:transform .35s ease; }
.gallery-item:hover img,.gallery-item:hover video { transform:scale(1.025); }
.media-label { position:absolute; right:10px; bottom:10px; padding:7px 10px; border-radius:999px; background:rgba(9,8,7,.78); color:#fff; font-size:.72rem; backdrop-filter:blur(8px); }
.gallery-empty { padding:60px 20px; border:1px dashed var(--line); color:var(--muted); text-align:center; }
.media-modal { position:fixed; inset:0; z-index:40; display:grid; place-items:center; padding:20px; background:rgba(0,0,0,.88); }
.media-modal[hidden] { display:none; }
.modal-panel { position:relative; width:min(1000px,100%); max-height:90vh; }
.modal-panel img,.modal-panel video { width:100%; max-height:82vh; object-fit:contain; display:block; }
.modal-close { position:absolute; z-index:2; top:-14px; right:-14px; width:42px; height:42px; border:1px solid var(--line); border-radius:50%; background:#17130f; color:#fff; font-size:1.6rem; cursor:pointer; }
.site-footer { padding:28px 20px; border-top:1px solid var(--line); color:var(--muted); text-align:center; font-size:.88rem; }
@media(max-width:650px){ .gallery-header nav a:not(:last-child){display:none}.brand span{display:none}.gallery-wrap{width:min(100% - 24px,1260px)}.gallery-filter-bar{display:grid;width:100%} }
