body{background:#f7f6f2}
.topbar nav{display:flex;gap:18px}
.topbar nav a{color:#777973;font-size:12px;font-weight:700;text-decoration:none}
.topbar nav a[aria-current=page],.topbar nav a:hover{color:#ff5938}
.event-page-head{padding:20px 0 10px}
.event-page-head h1{font-size:clamp(30px,5vw,46px)}
.event-section{margin:22px 0 34px}
.event-section h2{padding-bottom:10px;border-bottom:1px solid #e5e3dc}
.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.event-card{overflow:hidden;background:#fff;border:1px solid #e5e3dc;border-radius:10px}
.event-cover{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#eceae4}
.event-card-content{padding:16px}
.event-share{margin-top:12px}
.event-card h3{font:600 19px 'Space Grotesk',Arial,sans-serif;margin:0 0 6px}
.event-date,.event-venue{display:block;color:#ff5938;font-size:11px;font-weight:700;margin-bottom:5px}
.event-venue{color:#777973;font-weight:600}
.event-description{font-size:12px;line-height:1.55;color:#555;margin:10px 0}
.event-card a{display:inline-block;color:#ff5938;font-size:12px;font-weight:700;text-decoration:none;margin-top:4px}
.event-card a:hover{text-decoration:underline}
.empty-message{padding:24px;border:1px dashed #d7d5ce;border-radius:8px;color:#777973;font-size:13px;text-align:center}
.gallery-grid{display:flex;flex-direction:column;gap:22px;margin:22px 0 40px}
.gallery-album{scroll-margin-top:20px}
.gallery-album-heading{margin-bottom:12px}
.gallery-album-heading h2{margin:0 0 5px;font:600 21px 'Space Grotesk',Arial,sans-serif}
.gallery-album-heading p{margin:0 0 4px;color:#777973;font-size:12px;line-height:1.5}
.album-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.gallery-item{margin:0;background:#fff;border:1px solid #e5e3dc;border-radius:9px;overflow:hidden}
.gallery-item img{width:100%;height:auto;min-height:150px;max-height:520px;object-fit:cover;display:block;background:#eceae4}
.gallery-item figcaption{padding:11px 13px;color:#555;font-size:12px;line-height:1.45}
@media(max-width:520px){.topbar nav{gap:10px}.topbar nav a{font-size:11px}.event-grid{grid-template-columns:1fr}}

/* Album gallery: responsive cards, filters and accessible full-screen lightbox. */
.gallery-filters{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 10px;margin:12px 0 4px;scrollbar-width:thin}
.gallery-filter{flex:0 0 auto;padding:9px 14px;border:1px solid #dedcd5;border-radius:999px;background:#fff;color:#4f514c;font:600 12px Arial,sans-serif;cursor:pointer;transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}
.gallery-filter:hover{border-color:#ff5938;color:#d84528;transform:translateY(-1px)}
.gallery-filter[aria-pressed=true]{border-color:#171817;background:#171817;color:#fff}
.gallery-filter:focus-visible,.gallery-image-button:focus-visible,.lightbox button:focus-visible{outline:3px solid #ff9b83;outline-offset:3px}
.gallery-grid{display:flex;flex-direction:column;gap:30px;margin:16px 0 42px}
.gallery-album{scroll-margin-top:20px;animation:album-enter .25s ease both}
.gallery-album[hidden]{display:none}
.gallery-album.filter-enter{animation:album-enter .25s ease both}
.gallery-album-heading{margin-bottom:14px}
.gallery-album-heading h2{margin:0 0 5px;font:600 21px 'Space Grotesk',Arial,sans-serif}
.gallery-album-heading p{margin:0 0 4px;color:#777973;font-size:12px;line-height:1.5}
.gallery-album-heading .gallery-album-count{color:#ff5938;font-weight:700}
.gallery-album-description{max-width:650px}
.album-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.gallery-item{min-width:0;margin:0;overflow:hidden;border:1px solid #e5e3dc;border-radius:10px;background:#fff;box-shadow:0 5px 18px #1718170a;transition:transform .2s ease,box-shadow .2s ease}
.gallery-item:hover{transform:translateY(-3px);box-shadow:0 12px 28px #17181718}
.gallery-image-button{position:relative;display:block;width:100%;aspect-ratio:4/3;padding:0;overflow:hidden;border:0;background:#e9e7e0;cursor:zoom-in;text-align:left}
.gallery-image-button img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.gallery-image-button:hover img,.gallery-image-button:focus-visible img{transform:scale(1.05)}
.gallery-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:5px;padding:18px;color:#fff;background:linear-gradient(transparent 30%,#000b);opacity:0;transition:opacity .22s ease}
.gallery-image-button:hover .gallery-overlay,.gallery-image-button:focus-visible .gallery-overlay{opacity:1}
.gallery-overlay strong{font-size:15px;line-height:1.35}
.gallery-overlay small{max-width:45ch;font-size:11px;line-height:1.45;color:#ffffffd9}
.gallery-item figcaption{padding:10px 12px;color:#555;font-size:12px;line-height:1.45}
.lightbox{position:fixed;z-index:1000;inset:0;display:grid;grid-template-columns:minmax(48px,1fr) minmax(0,1100px) minmax(48px,1fr);align-items:center;justify-items:center;padding:28px;background:#080908f2;color:#fff}
.lightbox[hidden]{display:none!important}
body.lightbox-open{overflow:hidden}
.lightbox-content{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-height:100%;margin:0}
.lightbox-content img{display:block;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 125px);object-fit:contain}
.lightbox-content figcaption{max-width:75ch;text-align:center;color:#fff;font-size:13px;line-height:1.5}
.lightbox-count{margin:0;color:#ffffffad;font-size:11px}
.lightbox button{display:grid;place-items:center;border:1px solid #ffffff55;background:#151615cc;color:#fff;cursor:pointer;transition:background .18s ease,transform .18s ease}
.lightbox button:hover{background:#ffffff25;transform:scale(1.04)}
.lightbox-close{position:absolute;top:18px;right:20px;width:44px;height:44px;border-radius:50%;font-size:30px;line-height:1}
.lightbox-nav{z-index:1;grid-row:1;width:48px;height:48px;border-radius:50%;font-size:34px;line-height:1}
.lightbox-prev{grid-column:1;justify-self:start}.lightbox-next{grid-column:3;justify-self:end}
#lightboxPrev[hidden],#lightboxNext[hidden]{display:none}
@keyframes album-enter{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){.album-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
@media(max-width:600px){.album-photo-grid{grid-template-columns:1fr;gap:14px}.gallery-grid{gap:24px}.gallery-image-button{aspect-ratio:4/3}.gallery-overlay{opacity:1;padding:14px;background:linear-gradient(transparent 25%,#0009)}.lightbox{grid-template-columns:42px minmax(0,1fr) 42px;padding:16px 8px}.lightbox-content img{max-height:calc(100vh - 130px)}.lightbox-close{top:10px;right:10px;width:40px;height:40px}.lightbox-nav{width:38px;height:38px;font-size:28px}.lightbox-prev{justify-self:center}.lightbox-next{justify-self:center}}
@media(prefers-reduced-motion:reduce){.gallery-filter,.gallery-item,.gallery-image-button img,.gallery-overlay{transition:none}.gallery-album,.gallery-album.filter-enter{animation:none}}

/* Public gallery starts with quiet album covers; photos appear after opening one. */
.gallery-cover-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0 42px}
.gallery-cover-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.gallery-cover-item{min-width:0;display:flex;flex-direction:column;gap:9px}
.gallery-cover-share{align-self:flex-start}
.gallery-cover-card{position:relative;display:block;aspect-ratio:4/3;min-width:0;padding:0;overflow:hidden;border:1px solid #e5e3dc;border-radius:12px;background:#e9e7e0;box-shadow:0 6px 20px #1718170b;cursor:pointer;text-align:left;transition:transform .2s ease,box-shadow .2s ease}
.gallery-cover-card:hover,.gallery-cover-card:focus-visible{transform:translateY(-3px);box-shadow:0 14px 30px #1718171c}
.gallery-cover-card:focus-visible,.gallery-detail-toolbar button:focus-visible{outline:3px solid #ff9b83;outline-offset:3px}
.gallery-cover-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.gallery-cover-card:hover img,.gallery-cover-card:focus-visible img{transform:scale(1.045)}
.gallery-cover-count{position:absolute;right:12px;bottom:12px;padding:8px 11px;border:1px solid #ffffff45;border-radius:999px;background:#171817d9;color:#fff;font-size:12px;font-weight:700;backdrop-filter:blur(8px)}
.gallery-cover-title{position:absolute;inset:auto 0 0;padding:36px 110px 15px 15px;overflow:hidden;background:linear-gradient(transparent,#000c);color:#fff;font:600 17px/1.3 'Space Grotesk',Arial,sans-serif;text-overflow:ellipsis;text-shadow:0 1px 3px #0008;white-space:nowrap}
.gallery-detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:22px 0 0}
.gallery-detail-toolbar[hidden]{display:none}
.gallery-detail-toolbar button{padding:9px 13px;border:1px solid #dedcd5;border-radius:999px;background:#fff;color:#333;font:600 12px Arial,sans-serif;cursor:pointer}
.gallery-detail-toolbar button:hover{border-color:#ff5938;color:#d84528}
.gallery-detail-toolbar span{color:#777973;font-size:12px;font-weight:600}
.gallery-photo-view{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:14px 0 42px;scroll-margin-top:18px}
.gallery-photo-view{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
#galleryGrid.gallery-cover-grid,#galleryGrid.gallery-photo-view{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))!important}
.gallery-photo-view .gallery-image-button{aspect-ratio:4/3}
@media(max-width:900px){.gallery-cover-grid,.gallery-photo-view{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
@media(max-width:600px){.gallery-cover-grid,.gallery-photo-view{grid-template-columns:1fr;gap:14px}.gallery-cover-grid{margin-top:18px}.gallery-detail-toolbar{margin-top:14px}}
@media(prefers-reduced-motion:reduce){.gallery-cover-card,.gallery-cover-card img{transition:none}}

/* Inline photo viewer: no fullscreen backdrop, photo-sized frame only. */
.gallery-viewer{display:grid;justify-items:center;gap:12px;margin:18px 0 28px;scroll-margin-top:18px}
.gallery-viewer[hidden]{display:none!important}
.gallery-viewer-toolbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;width:min(100%,1100px)}
.gallery-viewer-toolbar>button,.gallery-viewer-nav button{min-width:40px;height:40px;padding:0 13px;border:1px solid #dedcd5;border-radius:8px;background:#fff;color:#292a27;font:600 13px Arial,sans-serif;cursor:pointer}
.gallery-viewer-toolbar>button{justify-self:start}
.gallery-viewer-toolbar>span{color:#777973;font-size:12px;font-weight:700}
.gallery-viewer-nav{display:flex;justify-self:end;gap:8px}
.gallery-viewer-nav button{width:40px;padding:0;font-size:23px}
.gallery-viewer-toolbar button:hover{border-color:#ff5938;color:#d84528}
.gallery-viewer-frame{display:flex;flex-direction:column;align-items:center;gap:8px;width:fit-content;max-width:100%;margin:0;padding:8px;border:1px solid #e5e3dc;border-radius:10px;background:#080908;box-shadow:0 12px 32px #17181724;color:#fff}
.gallery-viewer-frame img{display:block;width:auto;height:auto;max-width:min(90vw,1180px);max-height:min(72vh,820px);object-fit:contain}
.gallery-viewer-frame figcaption{max-width:min(75ch,calc(90vw - 16px));padding:0 4px 2px;color:#f3f3ef;text-align:center;font-size:12px;line-height:1.5}
@media(max-width:700px){.gallery-viewer{gap:9px;margin:12px 0 22px}.gallery-viewer-toolbar{grid-template-columns:1fr auto;gap:8px}.gallery-viewer-toolbar>span{grid-column:1;grid-row:2}.gallery-viewer-nav{grid-column:2;grid-row:1/3}.gallery-viewer-frame{max-width:100%;padding:6px}.gallery-viewer-frame img{max-width:calc(100vw - 44px);max-height:68vh}}

@media(max-width:600px){
  .shell{width:100%;padding-right:15px;padding-left:15px}
  .topbar{height:auto;min-height:0;align-items:flex-start;flex-direction:column;gap:9px;padding:12px 0}
  .topbar nav{width:100%;max-width:100%;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;white-space:nowrap;scrollbar-width:none;padding-bottom:3px}
  .topbar nav::-webkit-scrollbar{display:none}
  .topbar nav a{flex:0 0 auto;padding:5px 2px}
  .event-page-head{padding-top:17px}
  .event-page-head h1{font-size:clamp(29px,9vw,38px);overflow-wrap:anywhere}
  .event-section{margin:18px 0 28px}
  .event-grid{grid-template-columns:minmax(0,1fr)}
  .gallery-cover-item,.gallery-item{min-width:0}
  .gallery-detail-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px}
  .gallery-detail-toolbar span{margin-left:auto}
  .gallery-detail-toolbar button{max-width:100%;padding:8px 10px}
  .gallery-photo-view{grid-template-columns:minmax(0,1fr)}
  #galleryLightbox.lightbox{grid-template-columns:36px minmax(0,1fr) 36px}
}

/* Prevent event titles and cards from being clipped on narrow viewports. */
main.shell,.event-page-head,.event-section,.event-grid,.event-card,.event-card-content{width:100%;min-width:0;max-width:100%}
.event-page-head h1,.event-page-head .eyebrow,.event-page-head .intro,.event-section h2,.event-card h3,.event-description{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.event-grid{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr))}
@media(max-width:700px){main.shell{padding-right:clamp(12px,4vw,16px);padding-left:clamp(12px,4vw,16px)}.event-page-head h1{font-size:clamp(26px,8.4vw,38px);line-height:1.12}.event-section h2{font-size:clamp(18px,6vw,23px)}.event-grid{grid-template-columns:minmax(0,1fr)}}
