/* Events page styles (extracted from views/pages/events.ejs) */
.events-list { display:flex; flex-direction:column; }
.event-row { border-top:1px solid var(--primary); }
.event-link { display:flex; gap:20px; align-items:flex-start; width:100%; text-decoration:none; color:inherit; }
.event-tile { width:130px; height:130px; flex:0 0 130px; border-radius:var(--border-radius); overflow:hidden; display:block; position:relative; }
.event-tile__img { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform 0.4s ease; }
.event-link:hover .event-tile__img { transform:scale(1.08); }
.event-content { display:flex; flex:1 1 auto; gap:20px; align-items:flex-start; min-width:0; }
.event-main { flex:1 1 auto; min-width:0; }
.event-title { margin:0 0 8px 0; font-size:1.6rem; }
.event-desc {
  max-height: 4.5rem;
  overflow: hidden;
  color: var(--text-color);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
  word-break: break-word;
}
.event-meta { width:200px; flex:0 0 200px; text-align:right; color:var(--text-color); }
.event-meta .event-date-time { display:flex; flex-direction:column; gap:2px; font-weight:600; color:var(--text-color); }
.event-date { }
.event-time { font-weight:400; color:var(--text-color); }
.event-location { margin-top:6px; font-style:italic; color:var(--primary); }

@media (max-width: 640px) {
  .event-link { gap:12px; align-items:center; }
  .event-tile { width:80px; height:80px; flex:0 0 80px; align-self:center; }
  .event-content { flex-direction:column; gap:4px; }
  .event-desc { display:none; }
  .event-meta { width:100%; text-align:left; flex:unset; font-size:0.875rem; }
  .event-meta .event-date-time { flex-direction:row; align-items:baseline; gap:0; }
  .event-time:not(:empty)::before { content:'|'; padding-left:0.4em; padding-right:0; font-weight:400; color:var(--text-color); }
}

.events-page > h1 + .events-list { margin-top: 2rem; }

/* Slide-up animation (no bounce/overshoot) */
@keyframes slideUpFadeIn {
  0%   { opacity: 0; transform: translateY(36px); }
  100% { opacity: 1; transform: translateY(0); }
}

.events-list > .event-row,
.events-list > li {
  opacity: 0;
  transform: translateY(36px);
  will-change: transform, opacity;
}

.events-list > .event-row.in-view,
.events-list > li.in-view {
  animation-name: slideUpFadeIn;
  animation-duration: 560ms;
  animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  animation-fill-mode: forwards;
}

/* Stagger delays (up to 12 items) when element gains .in-view */
.events-list > .event-row.in-view:nth-child(1),
.events-list > li.in-view:nth-child(1) { animation-delay: 0ms; }
.events-list > .event-row.in-view:nth-child(2),
.events-list > li.in-view:nth-child(2) { animation-delay: 80ms; }
.events-list > .event-row.in-view:nth-child(3),
.events-list > li.in-view:nth-child(3) { animation-delay: 160ms; }
.events-list > .event-row.in-view:nth-child(4),
.events-list > li.in-view:nth-child(4) { animation-delay: 240ms; }
.events-list > .event-row.in-view:nth-child(5),
.events-list > li.in-view:nth-child(5) { animation-delay: 320ms; }
.events-list > .event-row.in-view:nth-child(6),
.events-list > li.in-view:nth-child(6) { animation-delay: 400ms; }
.events-list > .event-row.in-view:nth-child(7),
.events-list > li.in-view:nth-child(7) { animation-delay: 480ms; }
.events-list > .event-row.in-view:nth-child(8),
.events-list > li.in-view:nth-child(8) { animation-delay: 560ms; }
.events-list > .event-row.in-view:nth-child(9),
.events-list > li.in-view:nth-child(9) { animation-delay: 640ms; }
.events-list > .event-row.in-view:nth-child(10),
.events-list > li.in-view:nth-child(10) { animation-delay: 720ms; }
.events-list > .event-row.in-view:nth-child(11),
.events-list > li.in-view:nth-child(11) { animation-delay: 800ms; }
.events-list > .event-row.in-view:nth-child(12),
.events-list > li.in-view:nth-child(12) { animation-delay: 880ms; }

@media (prefers-reduced-motion: reduce) {
  .events-list > .event-row,
  .events-list > li { animation: none; transform: none; opacity: 1; }
}
