/* Past Highlights: one photographic space, sharing the existing community typography. */
.archive-page .page-title { margin-bottom: 16px; }
.archive-page .page-title .eyebrow { color: var(--brand); letter-spacing: 2px; }
.memory-space { margin-bottom: 52px; }
.memory-stage { position: relative; height: clamp(430px,60vh,640px); overflow: hidden; isolation: isolate; }
.memory-canvas { display:block; width:100%; height:100%; touch-action:pan-y; cursor:pointer; outline-offset:-4px; }
.memory-canvas[hidden],.memory-toolbar [hidden] { display:none; }
.memory-hit-areas { position:absolute; inset:0; pointer-events:none; }
.memory-hit { position:absolute; left:0; top:0; min-height:0; min-width:0; padding:0; border:0; border-radius:0; background:transparent !important; box-shadow:none !important; pointer-events:auto; cursor:pointer; color:transparent; }
.memory-hit:focus-visible { outline:2px solid var(--brand); outline-offset:4px; }
.memory-center { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:52px; height:52px; border:1px solid var(--line); border-radius:50%; color:var(--brand); background:var(--bg); font-size:14px; }
.memory-center[hidden] { display:none; }
.memory-loading { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; text-align:center; color:var(--muted); background:var(--bg); }
.memory-loading[hidden] { display:none; }
.memory-loading p { font-size:14px; margin:0; }
.memory-caption { min-height:90px; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:12px 24px; }
.memory-caption-copy { opacity:0; transform:translateY(4px); transition:opacity 240ms ease,transform 240ms ease; }
.memory-caption.is-visible .memory-caption-copy { opacity:1; transform:none; }
.memory-caption-year { color:var(--brand); font-size:13px; letter-spacing:1px; margin-right:12px; }
.memory-caption h2 { display:inline; font-size:18px; line-height:1.5; }
.memory-caption p { font-size:14px; margin:6px 0 0; color:var(--muted); max-width:760px; }
.memory-caption a { flex-shrink:0; font-size:14px; color:var(--brand); min-height:44px; display:flex; align-items:center; opacity:0; pointer-events:none; }
.memory-caption.is-visible a { opacity:1; pointer-events:auto; }
.memory-toolbar { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px; border-bottom:1px solid var(--line); padding:8px 0 28px; }
.memory-toolbar select { width:auto; max-width:260px; min-height:44px; font-size:14px; }
.memory-toolbar .btn { min-height:44px; font-size:14px; }
.memory-list-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.memory-list-heading h2 { font-size:24px; margin:0; }
.memory-list-heading span { color:var(--muted); font-size:14px; }
.memory-fallback { display:flex; width:100%; min-width:0; overflow-x:auto; gap:16px; padding:24px; scroll-snap-type:x mandatory; }
.memory-fallback a { flex:0 0 240px; scroll-snap-align:center; }
.memory-fallback img { width:100%; aspect-ratio:3/2; object-fit:contain; }
.memory-fallback h3 { font-size:16px; margin:12px 0 4px; }
.memory-fallback p { font-size:14px; color:var(--muted); }
@media(max-width:760px) {
  .memory-space { margin:0 0 36px; }
  .memory-stage { height:410px; margin:0 -8px; }
  .memory-caption { min-height:80px; padding:8px 0 16px; align-items:flex-start; gap:12px; }
  .memory-caption h2 { font-size:16px; }
  .memory-caption p { font-size:14px; line-height:1.65; }
  .memory-caption a { font-size:14px; }
  .memory-toolbar { justify-content:flex-start; gap:8px; padding-bottom:24px; }
  .memory-toolbar select { max-width:100%; width:100%; }
  .memory-center { width:44px; height:44px; }
  .memory-list-heading { margin-bottom:16px; }
  .memory-list-heading h2 { font-size:22px; }
}
@media(max-width:359px) {
  .memory-stage { height:350px; }
  .memory-caption { flex-wrap:wrap; min-height:96px; }
}
@media(prefers-reduced-motion:reduce) {
  .memory-caption-copy { transition:none; }
}
