.archive-page {
  --archive-space: clamp(72px, 9vw, 128px);
  padding-bottom: var(--archive-space);
}

.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.archive-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
  column-gap: clamp(48px, 9vw, 124px);
  align-items: end;
  padding: clamp(76px, 10vw, 138px) 0 clamp(64px, 8vw, 104px);
}

.archive-intro h1,
.archive-detail h1 {
  margin: 0;
  font-family: "Unbounded Variable", sans-serif;
  font-size: clamp(46px, 7.2vw, 94px);
  font-weight: 560;
  line-height: .98;
  letter-spacing: -.065em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.archive-intro h1 span { color: var(--green); }

.archive-intro-copy {
  max-width: 44ch;
  margin: 0 0 .25em;
  color: var(--muted);
  font-size: clamp(16px, 1.55vw, 19px);
  line-height: 1.7;
}

.archive-list { border-top: 1px solid var(--line); }

.archive-row {
  display: block;
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid var(--line);
}

.archive-row article {
  display: grid;
  grid-template-columns: minmax(180px, .72fr) minmax(0, 1.5fr) minmax(170px, .55fr);
  gap: clamp(24px, 4vw, 58px);
  align-items: center;
  min-height: 226px;
  padding: 32px 0;
}

.archive-row-visual {
  position: relative;
  min-width: 0;
  aspect-ratio: 8 / 5;
  overflow: hidden;
  background: #0d1217;
}

.archive-row-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.62) brightness(.84);
  transition: filter 420ms ease, transform 650ms cubic-bezier(.2, .75, .25, 1);
}

.archive-row-signal {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--archive-accent, var(--green));
  background: radial-gradient(circle at 50% 50%, color-mix(in srgb, currentColor 8%, transparent), transparent 68%);
}

.archive-row-signal .archive-signal { width: 150%; }

.archive-row time {
  display: block;
  margin-bottom: 17px;
  color: var(--archive-accent, var(--green));
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}

.archive-row h2 {
  margin: 0;
  font-family: "Unbounded Variable", sans-serif;
  font-size: clamp(23px, 2.8vw, 37px);
  font-weight: 520;
  line-height: 1.18;
  letter-spacing: -.045em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.archive-row-copy > p {
  max-width: 58ch;
  margin: 16px 0 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.65;
}

.archive-row-meta {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-width: 0;
}

.archive-row-meta p {
  margin: 0 0 15px;
  font-size: 16px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.archive-row-meta p span {
  display: block;
  color: var(--muted);
  font-size: 14px;
}


.archive-row-arrow {
  margin-top: auto;
  color: var(--archive-accent, var(--green));
  font-size: 21px;
  transition: transform 250ms ease;
}

@media (hover: hover) {
  .archive-row:hover h2 { color: var(--archive-accent, var(--green)); }
  .archive-row:hover img { filter: saturate(.9) brightness(.98); transform: scale(1.025); }
  .archive-row:hover .archive-row-arrow { transform: translate(3px, -3px); }
}

.archive-empty {
  padding: 64px 0;
  color: var(--muted);
  font-size: 18px;
}

.archive-empty a { color: var(--green); text-underline-offset: 5px; }

.archive-detail-hero {
  padding: clamp(44px, 6vw, 80px) 0 clamp(54px, 8vw, 104px);
}

.archive-back {
  display: inline-flex;
  gap: 8px;
  margin-bottom: clamp(54px, 8vw, 104px);
  color: var(--muted);
  font-size: 14px;
  text-decoration: none;
}

.archive-back:hover { color: var(--green); }
.archive-detail-title { max-width: 980px; min-width: 0; }
.archive-detail h1 { font-size: clamp(40px, 6.2vw, 78px); }

.archive-event-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 0;
  align-items: baseline;
  margin: 0 0 30px;
  padding: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
  list-style: none;
}

.archive-event-meta li {
  display: inline-flex;
  align-items: baseline;
  min-width: 0;
  overflow-wrap: anywhere;
}

.archive-event-meta li + li::before {
  content: "·";
  margin: 0 12px;
  color: var(--green);
}

.archive-event-meta li:first-child {
  color: var(--green);
  font-weight: 650;
}

.archive-event-meta small {
  margin-left: 8px;
  color: color-mix(in srgb, var(--muted) 76%, transparent);
  font: inherit;
}

.archive-detail-lead {
  max-width: 64ch;
  margin: 32px 0 0;
  color: var(--muted);
  font-size: clamp(17px, 1.7vw, 21px);
  line-height: 1.7;
}

.archive-register { margin-top: 34px; }

.archive-signal-divider {
  width: 100%;
  height: clamp(76px, 10vw, 126px);
  color: var(--green);
  overflow: hidden;
}

.archive-signal {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.archive-signal path {
  stroke: currentColor;
  stroke-width: 1.25;
  vector-effect: non-scaling-stroke;
  opacity: .16;
  transform-origin: center;
  animation: archive-signal-drift 22s ease-in-out infinite alternate;
}

.archive-signal path:first-child { opacity: .8; stroke-width: 1.8; }
.archive-signal path:nth-child(2) { color: var(--cyan); animation-duration: 27s; animation-direction: alternate-reverse; }
.archive-signal path:nth-child(3) { color: var(--purple); animation-duration: 31s; }
.archive-signal path:nth-child(4) { color: var(--pink); animation-duration: 36s; animation-direction: alternate-reverse; }

@keyframes archive-signal-drift {
  from { transform: translateX(-.6%) scaleY(.92); }
  to { transform: translateX(.6%) scaleY(1.08); }
}

.archive-section { padding-top: var(--archive-space); }
.archive-section-heading { margin-bottom: clamp(38px, 5vw, 64px); }

.archive-section-heading h2 {
  margin: 0;
  font-family: "Unbounded Variable", sans-serif;
  font-size: clamp(32px, 4.6vw, 56px);
  font-weight: 540;
  line-height: 1.12;
  letter-spacing: -.05em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.archive-talks .talk-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(58px, 7vw, 88px) clamp(30px, 5vw, 58px);
}

.archive-talks .talk { min-width: 0; overflow: clip; opacity: 1; transform: none; }

.archive-talks .talk img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 8 / 5;
  object-fit: cover;
  filter: saturate(.62) brightness(.86);
  transition: filter 420ms ease;
}

.archive-talks .talk-copy { padding-top: 24px; }
.archive-talks .talk-field { margin: 0 0 13px; color: var(--channel); font-size: 14px; font-weight: 600; }
.archive-talks .talk-heading { width: fit-content; max-width: 100%; }

.archive-talks .talk h3 {
  max-width: 25ch;
  margin: 0;
  font-family: "Unbounded Variable", sans-serif;
  font-size: clamp(21px, 2.35vw, 30px);
  font-weight: 520;
  line-height: 1.27;
  letter-spacing: -.04em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.archive-talks .talk-heading .wave-mark {
  width: 100%;
  max-width: 100%;
  margin-top: 10px;
  transform: none;
}

.archive-talks .talk .wave-line {
  transform-origin: center;
  animation: archive-talk-wave 15s ease-in-out infinite alternate;
}

.archive-talks .talk .wave-line:nth-child(2) { animation-duration: 19s; animation-direction: alternate-reverse; }
.archive-talks .talk .wave-line:nth-child(3) { animation-duration: 23s; }

@keyframes archive-talk-wave {
  from { transform: scaleY(.88); }
  to { transform: scaleY(1.12); }
}

.archive-talks .talk-author { margin: 16px 0 0; font-size: 15px; font-weight: 600; }
.archive-talks .talk-author a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.archive-talks .talk-author a:hover { color: var(--channel); }
.archive-talks .talk-author span { color: var(--muted); font-size: 13px; font-weight: 400; }

.archive-talks .talk-copy > p:last-child {
  max-width: 58ch;
  margin: 13px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.7;
}

@media (hover: hover) {
  .archive-talks .talk:hover img { filter: saturate(.9) brightness(.98); }
}

.archive-gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(30px, 4vw, 52px) clamp(20px, 3vw, 34px);
}

.archive-gallery figure { min-width: 0; margin: 0; }

.archive-gallery a {
  display: block;
  overflow: hidden;
  background: #0d1217;
}

.archive-gallery img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  transition: filter 380ms ease, transform 600ms cubic-bezier(.2, .75, .25, 1);
}

.archive-gallery figcaption {
  max-width: 58ch;
  margin-top: 10px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

@media (hover: hover) {
  .archive-gallery a:hover img { filter: brightness(1.08); transform: scale(1.018); }
}

.archive-detail-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  margin-top: var(--archive-space);
  padding-top: 30px;
  border-top: 1px solid var(--line);
}

.archive-detail-footer a { color: var(--muted); font-size: 14px; text-decoration: none; }
.archive-detail-footer a:hover { color: var(--green); }

@media (max-width: 860px) {
  .archive-intro { grid-template-columns: 1fr; }
  .archive-intro h1 { margin-bottom: 36px; }
  .archive-row article { grid-template-columns: minmax(150px, .7fr) minmax(0, 1.3fr); }
  .archive-row-meta { grid-column: 2; display: grid; grid-template-columns: 1fr auto; gap: 10px 24px; }
  .archive-row-meta p { grid-column: 1 / -1; margin: 0; }
  .archive-row-arrow { grid-column: 2; grid-row: 2; margin: 0; }
}

@media (max-width: 620px) {
  .archive-page { --archive-space: 72px; }
  .archive-intro { padding: 62px 0 58px; }
  .archive-intro h1 { font-size: clamp(40px, 13vw, 62px); }
  .archive-intro-copy { font-size: 16px; }
  .archive-row article { grid-template-columns: 1fr; gap: 24px; min-height: 0; padding: 30px 0 34px; }
  .archive-row-visual { width: 100%; }
  .archive-row time { margin-bottom: 12px; }
  .archive-row h2 { font-size: clamp(23px, 8vw, 32px); }
  .archive-row-meta { grid-column: 1; grid-template-columns: 1fr auto; }
  .archive-detail-hero { padding-top: 32px; }
  .archive-back { margin-bottom: 58px; }
  .archive-detail h1 { font-size: clamp(34px, 10vw, 50px); }
  .archive-event-meta { align-items: flex-start; flex-direction: column; gap: 6px; margin-bottom: 24px; }
  .archive-event-meta li + li::before { content: none; }
  .archive-event-meta li:last-child { display: block; }
  .archive-event-meta small { display: block; margin: 2px 0 0; }
  .archive-detail-lead { margin-top: 25px; }
  .archive-signal-divider { height: 82px; }
  .archive-talks .talk-list,
  .archive-gallery-grid { grid-template-columns: 1fr; gap: 34px; }
  .archive-detail-footer { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .archive-page *,
  .archive-page *::before,
  .archive-page *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}


.archive-gallery a { cursor: zoom-in; }
.photo-lightbox {
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: clamp(12px, 3vw, 36px);
  border: 0;
  background: transparent;
  color: #f3f5ef;
  box-sizing: border-box;
}
.photo-lightbox::backdrop { background: rgb(4 8 10 / .96); }
.photo-lightbox[open] { display: flex; flex-direction: column; gap: 12px; }
.photo-lightbox-toolbar { display: flex; align-items: center; justify-content: space-between; }
.photo-lightbox-counter { color: #b3bcbf; font-variant-numeric: tabular-nums; }
.photo-lightbox button {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid #45504b;
  border-radius: 50%;
  background: #111916;
  color: #f3f5ef;
  font: 26px/1 sans-serif;
  cursor: pointer;
}
.photo-lightbox button:hover { border-color: var(--green); color: var(--green); }
.photo-lightbox button:focus-visible { outline: 2px solid var(--green); outline-offset: 4px; }
.photo-lightbox button[hidden] { display: none; }
.photo-lightbox-stage { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; gap: 20px; }
.photo-lightbox-image { display: block; min-width: 0; width: auto; max-width: calc(100% - 136px); height: 100%; object-fit: contain; }
.photo-lightbox-caption { margin: 0; text-align: center; color: #b3bcbf; font-size: 14px; line-height: 1.5; }
.photo-lightbox-caption:empty { display: none; }
@media (max-width: 620px) {
  .photo-lightbox-stage { position: relative; padding-bottom: 64px; }
  .photo-lightbox-image { max-width: 100%; width: 100%; }
  .photo-lightbox-stage button { position: absolute; bottom: 0; }
  .photo-lightbox-stage [data-previous] { left: calc(50% - 60px); }
  .photo-lightbox-stage [data-next] { right: calc(50% - 60px); }
}

.archive-search { margin: 0 0 32px; max-width: 720px; }
.archive-search label { display:block; margin-bottom:12px; font-size:14px; color:var(--muted); }
.archive-search-controls { display:flex; gap:12px; }
.archive-search input { min-width:0; flex:1; width:100%; min-height:48px; padding:12px 16px; border:1px solid #45534c; border-radius:4px; background:#0d1511; color:var(--text); font:inherit; }
.archive-search input:focus-visible { outline:2px solid var(--green); outline-offset:2px; }
.archive-search button { min-height:48px; padding:12px 20px; font-size:14px; }
.archive-search-status { display:flex; flex-wrap:wrap; gap:12px 24px; margin:0 0 24px; color:var(--muted); font-size:14px; }
.archive-search-status a { color:var(--green); text-underline-offset:4px; }
