/* A short event journal: facts, one cover, then optional photographs. */
.popup-events{--popup-group-gap:1rem;padding-block:clamp(2.5rem,4vw,4rem);background:var(--chalk);color:var(--charcoal)}
.popup-events .popups-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem 3rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}
.popups-heading h2{font-size:var(--type-section);max-width:none}
.popup-schedule{font-size:var(--type-control);line-height:1.5}
.popup-schedule p{margin:0;color:var(--muted)}
.popup-schedule a{display:inline-flex;align-items:center;min-height:44px;gap:.3em}
.popup-archive{margin-inline:0}
.popup-archive ul{list-style:none;margin:0;padding:0}
#popup-archive-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--popup-group-gap) clamp(1.5rem,3vw,3rem);align-items:start}
.popup-archive-event{display:grid;grid-template-rows:subgrid;grid-row:span 3;gap:var(--popup-group-gap);min-width:0;scroll-margin-top:9rem}
.popup-event-heading{margin:0}
.popup-event-heading h3{font-family:var(--display);font-size:clamp(1.75rem,2.5vw,2.25rem);font-weight:500;line-height:1.15;letter-spacing:-.02em;margin:0 0 .5rem;text-wrap:balance;overflow-wrap:anywhere}
.popup-event-context,.popup-memory-note{margin:0;font-size:var(--type-control);line-height:1.5;color:var(--muted)}
.popup-memory-note{margin:.75rem 0 1rem;color:var(--charcoal)}
.popup-event-cover{margin:0;width:100%;max-width:100%;aspect-ratio:3/4}
.popup-event-cover img{width:100%;height:100%;object-fit:contain;object-position:left top}
/* Match the original Coffeeholic poster; trim only the Plus84 artwork's outer margin. */
.has-archive-poster .popup-event-cover{aspect-ratio:1545/1999;overflow:hidden}
.has-archive-poster .popup-event-cover img{height:100%;object-fit:cover;object-position:center}
.popup-poster-open,.popup-album-link{display:flex;align-items:center;align-self:start;min-height:56px;padding-block:.75rem;border-top:1px solid var(--line);font-size:var(--type-control)}
.popup-poster-open:hover,.popup-album-link:hover{text-decoration-thickness:2px}
.popup-cover-actions{display:flex;flex-wrap:wrap;gap:0 1.5rem;border-top:1px solid var(--line)}
.popup-cover-actions .popup-album-link,.popup-cover-actions .popup-poster-open{border:0;margin:0}

/* The next invitation remains separate from the historical entries. */
.popup-announcements{display:none;background:var(--charcoal);color:var(--chalk);padding:2rem;margin-bottom:3rem}
.has-upcoming .popup-announcements{display:block}
.popup-feature{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,4vw,4rem);align-items:start}
.popup-events:not(.has-poster) .popup-feature{display:block}
.popup-feature .event-panel{min-width:0;padding:0}
.popup-feature .event-panel h3{font-size:var(--type-title);line-height:1.2;margin-bottom:.75rem}
.popup-feature .event-neighborhood{font-size:var(--type-body);margin:0 0 1rem;color:var(--on-dark)}
.popup-feature .event-when{display:grid;gap:.25rem;margin:0 0 .75rem;color:var(--chalk);font-size:1.5rem;line-height:1.4;font-variant-numeric:lining-nums}
.popup-feature #event-hours{font-size:var(--type-body)}
.popup-feature .event-service{max-width:42ch;margin:0 0 .75rem;color:var(--chalk);font-size:var(--type-control);line-height:1.5;font-weight:550}
.popup-feature .event-description{margin:0 0 1rem;font-size:var(--type-body);line-height:1.5;max-width:34ch;color:var(--on-dark)}
.popup-feature address{max-width:36ch;margin-bottom:1rem;font-size:var(--type-control);font-style:normal;line-height:1.5;color:var(--on-dark)}
.popup-poster{width:100%;margin:0}
.popup-poster img{width:100%;height:auto}
.popup-poster figcaption{margin-top:.25rem;font-size:var(--type-supporting);line-height:1.5;color:var(--on-dark)}
.popup-poster a{display:inline-flex;align-items:center;gap:.5rem;min-height:44px}
.popup-menu{max-width:28rem;margin-top:1.5rem}
.popup-menu h4{margin:0 0 .5rem;font-size:var(--type-control);font-weight:550;line-height:1.5}
.popup-menu ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1.25rem;list-style:none;margin:0;padding:0;color:var(--on-dark);font-size:var(--type-control);line-height:1.5}
.popup-menu li{min-width:0}
.popup-menu-note{margin:.75rem 0 0;max-width:40ch;font-size:var(--type-supporting);line-height:1.5;color:var(--on-dark)}
.popup-promotions{max-width:42ch;margin-top:1.5rem;border-top:1px solid var(--dark-line);font-size:var(--type-control);line-height:1.5;color:var(--on-dark)}
.popup-promotions summary{display:list-item;min-height:44px;align-content:center;padding-block:.5rem;cursor:pointer;color:var(--chalk);text-underline-offset:.25em}
.popup-promotions h4{margin:1rem 0 .5rem;font-size:inherit;font-weight:550;color:var(--chalk)}
.popup-promotions p{margin:0}
.popup-promotions ol{margin:.75rem 0 1rem;padding-inline-start:1.5rem}
.popup-promotions li+li{margin-top:.35rem}
.popup-promotions>a{display:inline-flex;align-items:center;min-height:44px;margin-top:.75rem;color:var(--chalk);text-underline-offset:.25em}
.popup-service-note{margin:1.5rem 0 0;max-width:65ch;font-size:var(--type-supporting);line-height:1.5;color:var(--on-dark)}
.popup-events ::selection{background:var(--charcoal);color:var(--chalk)}
.popup-announcements ::selection{background:var(--chalk);color:var(--charcoal)}
@media(max-width:900px){
  .popup-feature{grid-template-columns:minmax(0,1fr);gap:2rem}
}
@media(max-width:700px){
  .popup-events .popups-heading{display:block;margin-bottom:1.5rem}
  .popup-schedule{margin-top:1rem}
  #popup-archive-list{grid-template-columns:minmax(0,1fr);gap:2.5rem}
  .popup-archive-event{display:block;scroll-margin-top:11rem}
  .popup-event-heading{margin-bottom:var(--popup-group-gap)}
  .popup-archive-event+.popup-archive-event{padding-top:2rem;border-top:1px solid var(--line)}
  .popup-event-heading h3{font-size:1.75rem}
  .popup-event-cover img{width:100%;height:auto;max-height:none}
  .popup-event-cover{width:min(100%,24rem);aspect-ratio:auto}
  .has-archive-poster .popup-event-cover{width:min(100%,24rem);aspect-ratio:1545/1999}
  .has-archive-poster .popup-event-cover img{height:100%}
  .popup-album-link,.popup-poster-open{margin-top:var(--popup-group-gap)}
  .popup-announcements{padding:1.5rem;margin-bottom:2.5rem}
  .popup-feature .event-when{font-size:1.25rem}
  .popup-cover-actions{margin-top:var(--popup-group-gap)}
}

/* Existing user-controlled gallery and full-photo viewer. */
.popup-memories{--memory-card-width:clamp(13.75rem,25vw,18.75rem);min-width:0;text-align:center}
.popup-memories .memory-track{position:relative;display:flex;gap:1.25rem;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:1rem;overscroll-behavior-x:contain;padding:1rem;scrollbar-color:var(--dark-line) var(--charcoal)}
.memory-track>li{position:relative;display:block;flex:0 0 var(--memory-card-width);width:var(--memory-card-width);padding:0;border:0;scroll-snap-align:center}
.memory-card{display:block;position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--chalk);color:var(--charcoal);border-radius:12px;text-decoration:none;-webkit-user-drag:none;user-select:none}
.memory-card img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.memory-card:focus-visible{outline-color:var(--chalk);outline-offset:5px}
.memory-card:hover{box-shadow:0 14px 28px rgba(0,0,0,.2)}
.memory-card-error{display:grid;place-items:center;height:100%;padding:1.25rem;font-size:var(--type-control);line-height:1.5}
.is-curved .memory-track{display:block;height:calc(var(--memory-card-width)*4/3 + 5rem);overflow:hidden;overflow:clip;scroll-snap-type:none;perspective:1400px;touch-action:pan-y pinch-zoom;cursor:grab}
.is-curved .memory-track>li{position:absolute;left:50%;top:1rem;scroll-snap-align:none;transition:transform .55s cubic-bezier(.16,1,.3,1),opacity .4s ease-out;will-change:auto}
.is-dragging .memory-track{cursor:grabbing}
.is-dragging .memory-track>li{transition:none}
.memory-controls,.memory-viewer-controls{display:flex;align-items:center;justify-content:center;gap:clamp(1rem,3vw,2.5rem)}
.memory-arrow{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;padding:0;border:1px solid var(--dark-line);border-radius:50%;background:transparent;color:var(--chalk)}
.memory-arrow:hover{background:var(--chalk);border-color:var(--chalk);color:var(--charcoal)}
.memory-arrow svg,.memory-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.popup-archive .memory-caption,.memory-viewer .memory-caption{display:grid;gap:.3rem;min-width:0;width:17rem;margin:0;color:var(--chalk);font-size:var(--type-body);line-height:1.4}
.memory-position{font-size:var(--type-supporting);color:var(--on-dark);font-variant-numeric:lining-nums tabular-nums}
.memory-open{display:inline-flex;align-items:center;min-height:44px;margin-top:.25rem;font-size:var(--type-control)}
.popup-archive .memory-help{margin:.25rem auto 0;max-width:40ch;font-size:var(--type-supporting);color:var(--on-dark)}
.memory-viewer{position:fixed;inset:0;width:min(100% - 2rem,62rem);max-width:none;max-height:calc(100dvh - 2rem);margin:auto;padding:1.25rem 1.5rem 1.5rem;border:0;border-radius:12px;background:var(--deep);color:var(--chalk);overflow-y:auto;scrollbar-color:var(--dark-line) var(--deep)}
.memory-viewer::backdrop{background:rgba(20,24,20,.9)}
.memory-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.memory-viewer-bar p{margin:0;font-size:var(--type-control);color:var(--on-dark)}
.memory-close{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.5rem .75rem;border:1px solid var(--dark-line);border-radius:2px;background:transparent;color:var(--chalk)}
.memory-close:hover{background:var(--chalk);color:var(--charcoal)}
.memory-full-photo{display:flex;align-items:center;justify-content:center;min-height:12rem;margin:0 0 1.25rem}
.memory-full-photo img{width:auto;height:auto;max-width:min(100%,var(--full-photo-width));max-height:calc(100dvh - 13rem);object-fit:contain}
.memory-image-error{max-width:34ch;padding:2rem 1rem;text-align:center;color:var(--on-dark)}
.memory-image-error a{display:inline-block;min-height:44px;padding-top:.75rem;color:var(--chalk)}
.memory-viewer .memory-caption{width:24rem;font-size:var(--type-control)}
@media(max-width:700px){
  .popup-memories{--memory-card-width:min(72vw,16.25rem)}
  .memory-controls{padding-inline:1.5rem;gap:.75rem}
  .popup-archive .memory-caption{font-size:var(--type-control)}
  .memory-viewer{width:calc(100% - 1rem);max-height:calc(100dvh - 1rem);padding:.75rem .75rem 1rem}
  .memory-viewer-controls{gap:.6rem}
  .memory-full-photo img{max-height:calc(100dvh - 13rem)}
}
@media(prefers-reduced-motion:reduce){
  .memory-track>li,.memory-card,.memory-arrow{transition:none!important}
}
