:root { --event-bg:#faf9f6; --event-ink:#242424; --event-line:#d8d5ce; }
:root[data-theme="dark"] { --event-bg:#181a1c; --event-ink:#f3f1eb; --event-line:#505358; }
body { background:var(--event-bg); color:var(--event-ink); }
[data-events-theme] { border:1px solid currentColor; border-radius:4px; padding:10px 14px; background:var(--event-bg); color:var(--event-ink); margin:10px; cursor:pointer; }
.photo-mosaic { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:32px; align-items:start; }
.photo-tile { margin:0; min-width:0; }.photo-tile-wide { grid-column:span 2; }
.photo-tile button { display:block; width:100%; border:0; background:none; padding:0; cursor:zoom-in; }
.photo-tile img { display:block; width:100%; height:auto; border-radius:3px; }
.photo-tile figcaption { font-size:.9rem; line-height:1.5; margin-top:10px; overflow-wrap:anywhere; }
/* Retain caption metadata and image alt text without visible gallery captions. */
.photo-tile figcaption, .photo-dialog figcaption { display:none; }
.photo-tile button:focus-visible, .photo-dialog button:focus-visible { outline:3px solid #bc3232; outline-offset:4px; }
.photo-dialog { width:min(1200px,95vw); max-height:95dvh; padding:16px; border:1px solid var(--event-line); background:var(--event-bg); color:var(--event-ink); }
.photo-dialog::backdrop { background:rgba(0,0,0,.85); }.photo-dialog figure{margin:12px 0;}.photo-dialog img{display:block;width:100%;height:65dvh;object-fit:contain;}.photo-dialog figcaption{text-align:center;line-height:1.5;margin-top:12px;}
.photo-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}.photo-controls p{margin:0 auto;}.photo-controls button{background:var(--event-bg);color:var(--event-ink);border:1px solid currentColor;padding:10px;cursor:pointer;}.photo-controls button:disabled{opacity:.4;}.photo-help{text-align:center;font-size:.85rem;}.gallery-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
@media(max-width:1100px){.photo-mosaic{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:767px){.photo-mosaic{grid-template-columns:minmax(0,1fr);gap:24px;}.photo-tile-wide{grid-column:auto;}.photo-dialog{padding:10px;}.photo-dialog img{height:55dvh;}.photo-controls{gap:8px;}}
