/* Event Registration(/events) — 다가오는 행사 카드(.event-card) + 지난 행사 카드(.past-card) */

.past-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.past-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 28px 26px 24px;
  overflow: hidden;
  border: 1px solid var(--color-line);
  border-radius: var(--radius);
  background: var(--color-bg);
  transition: border-color var(--hover-dur) var(--ease), box-shadow var(--hover-dur) var(--ease), transform var(--hover-dur) var(--ease);
}
/* 마우스를 올리면 위쪽에 금색 선이 그어진다 — 갤러리 제목 밑줄과 같은 몸짓 */
.past-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--color-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s var(--ease);
}
/* 그리고 카드가 떠오르며, 옅게 깔린 회차 숫자가 보라 빛으로 올라오고 아이콘이 보라로 찬다 */
.past-card:hover { border-color: var(--color-accent-line); box-shadow: var(--shadow-hover); transform: translateY(var(--hover-lift)); }
.past-card:hover::before { transform: scaleX(1); }
.past-card > :not(.past-card__no) { position: relative; }

/* 카드 오른쪽 아래에 옅게 깔리는 회차 숫자 */
.past-card__no {
  position: absolute;
  right: -4px;
  bottom: -26px;
  font-size: 132px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.05em;
  font-variant-numeric: tabular-nums;
  color: var(--color-bg-soft);
  pointer-events: none;
  user-select: none;
  transition: color var(--hover-dur) var(--ease), transform 0.5s var(--ease);
}
.past-card:hover .past-card__no { color: var(--color-accent-soft); transform: translateY(-6px); }

.past-card__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.past-card__year {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: var(--fs-h2);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: var(--color-brand);
}
.past-card__year::before { content: ""; width: 4px; height: 0.9em; border-radius: 2px; background: var(--color-accent); }
.past-card__round {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 10px;
  border: 1px solid var(--color-accent-line);
  border-radius: 999px;
  background: var(--color-bg);
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--color-accent-dark);
}
.past-card__title { margin-top: 20px; padding-top: 18px; border-top: 1px dashed var(--color-line-strong); font-size: var(--fs-h3); font-weight: 700; line-height: 1.45; color: var(--color-text); }
.past-card__theme {
  display: -webkit-box;
  margin-top: 6px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  font-size: var(--fs-small);
  color: var(--color-text-sub);
}
.past-card__meta { display: flex; flex-direction: column; gap: 8px; margin-top: 18px; font-size: var(--fs-small); color: var(--color-text-sub); }
.past-card__meta li { display: flex; align-items: center; gap: 10px; }
.past-card__icon {
  display: grid;
  flex: none;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--color-accent-soft);
  color: var(--color-accent-dark);
  transition: background-color var(--hover-dur) var(--ease), color var(--hover-dur) var(--ease);
}
.past-card:hover .past-card__icon,
.event-card:hover .past-card__icon { background: var(--color-accent); color: var(--color-on-dark); }
.past-card__svg,
.past-card__link-icon { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.past-card__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  align-self: flex-start;
  margin-top: auto;
  padding-top: 20px;
  font-size: var(--fs-small);
  font-weight: 600;
  color: var(--color-brand);
}
.past-card__link-icon { transition: transform 0.3s var(--ease); }
.past-card__link:hover .past-card__link-icon { transform: translateX(4px); }

/* 가장 최근 1건 — 바탕색만 다르다 */
.past-card.is-latest { border-color: var(--color-accent-line); background: var(--color-accent-soft); }
.past-card.is-latest .past-card__no { color: var(--color-accent-line); }
.past-card.is-latest:hover .past-card__no { color: var(--color-accent-light); }
.past-card.is-latest:hover .past-card__icon { background: var(--color-accent); }
.past-card.is-latest .past-card__icon { background: var(--color-bg); }

.past-note { margin-top: 24px; }

@media (max-width: 1023px) {
  .past-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .past-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .past-card { padding: 24px 20px 20px; }
  .past-card__no { font-size: 108px; }
}

/* ---------- 다가오는 행사 ---------- */
.event-list { display: flex; flex-direction: column; gap: 16px; }
.event-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 28px 32px;
  border: 1px solid var(--color-line);
  border-left: 4px solid var(--color-accent);
  border-radius: var(--radius);
  background: var(--color-bg);
  transition: border-color var(--hover-dur) var(--ease), box-shadow var(--hover-dur) var(--ease), transform var(--hover-dur) var(--ease);
}
/* 호버 — 떠오르며 테두리가 옅은 보라로 */
.event-card:hover { border-color: var(--color-accent-line); border-left-color: var(--color-accent); box-shadow: var(--shadow-hover); transform: translateY(var(--hover-lift)); }
.event-card__body { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.event-card__title { font-size: 22px; font-weight: 700; color: var(--color-brand); }
.event-card__theme { color: var(--color-text-sub); }
.event-card__period { font-size: var(--fs-small); font-weight: 600; color: var(--color-accent-dark); }
.event-card .past-card__meta { margin-top: 0; }
.event-card .btn { flex: none; }
.events-past-head { margin-top: 56px; }

@media (max-width: 767px) {
  .event-card { flex-direction: column; align-items: stretch; padding: 22px 20px; }
}
