/* Additions for the Sanity-driven site: same world (two inks, rules, no cards). */

/* language switch is now real links */
.lang a { display: grid; place-items: center; min-width: 38px; height: 32px; font: 600 12px/1 var(--sans); letter-spacing: .06em; color: var(--on-cover-2); text-decoration: none; transition: background-color .25s, color .25s; }
.lang a + a { border-left: 1px solid rgba(186,196,222,.35); }
.lang a:hover { color: #fff; }
.lang a[aria-current="true"] { background: var(--on-cover); color: var(--cover-2); }
@media (max-width: 640px) { .lang a { min-width: 34px; height: 30px; } }

/* the other two official names always show under the cover title */
html:lang(ja) .cover__en--show, html:lang(en) .cover__ja--show { display: block; }
html:lang(ja) .cover__title { font-family: var(--serif); }

/* homepage speaker list: names as a ruled index */
.speaker-grid { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); border-top: 1px solid var(--rule); }
.speaker-grid a { display: grid; gap: 4px; padding: 18px 24px 18px 0; border-bottom: 1px solid var(--rule-2); text-decoration: none; }
.speaker-grid__name { font: 600 20px/1.3 var(--serif); }
.speaker-grid__aff { font-size: 14px; color: var(--ink-2); }
.speaker-grid a:hover .speaker-grid__name { text-decoration: underline; text-decoration-color: var(--foil); text-underline-offset: 5px; }

/* speakers page */
.speaker-cards { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 40px 28px; }
.speaker-cards a { display: grid; gap: 8px; text-decoration: none; }
.speaker-cards img, .speaker-cards__blank { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; background: #E6EAF3; }
.speaker-cards__name { margin-top: 6px; font: 600 21px/1.3 var(--serif); }
.speaker-cards__aff { font-size: 14px; color: var(--ink-2); }
.speaker-cards__talk { padding-top: 10px; border-top: 1px solid var(--rule-2); font: 500 15px/1.45 var(--serif); }
.speaker-cards a:hover .speaker-cards__name { text-decoration: underline; text-decoration-color: var(--foil); text-underline-offset: 5px; }
.speaker-photo { width: 100%; max-width: 420px; aspect-ratio: 4 / 5; object-fit: cover; }

/* news list */
.newslist { list-style: none; padding: 0; border-top: 1px solid var(--rule); }
.newslist a { display: grid; grid-template-columns: 120px 1fr auto; gap: 8px 24px; align-items: start; padding: 18px 0; border-bottom: 1px solid var(--rule-2); text-decoration: none; }
.newslist time { color: var(--gold-ink); font-weight: 600; font-size: 15px; padding-top: 3px; }
.newslist span { font: 600 19px/1.4 var(--serif); }
.newslist small { display: block; font: 600 11px/1.6 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); }
html:lang(ja) .newslist small { letter-spacing: .04em; }
.newslist em { display: block; margin-top: 6px; font: 400 15px/1.55 var(--sans); font-style: normal; color: var(--ink-2); }
.newslist img { width: 160px; aspect-ratio: 3 / 2; object-fit: cover; }
.newslist a:hover span { text-decoration: underline; text-decoration-color: var(--foil); text-underline-offset: 5px; }

/* article body */
.article { max-width: 72ch; }
.article__cover { width: 100%; margin-bottom: 12px; }
.article figure { margin: 8px 0; }
.article figure img { width: 100%; }
.article blockquote { margin: 0; padding-left: 20px; border-left: 1px solid var(--gold-ink); font-family: var(--serif); color: var(--ink); }

/* proceedings photos */
.photo-grid { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.photo-grid img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: opacity .3s; }
.photo-grid a:hover img { opacity: .85; }

/* partner logos by tier */
.logos { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); border-top: 1px solid var(--rule); }
.logos--gold { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.logos a { display: grid; place-items: center; min-height: 120px; padding: 24px; border-bottom: 1px solid var(--rule-2); text-decoration: none; font: 600 18px/1.3 var(--serif); }
.logos img { max-width: 100%; max-height: 72px; object-fit: contain; }
.logos--gold img { max-height: 96px; }

@media (max-width: 640px) {
  .newslist a { grid-template-columns: 1fr; }
  .newslist img { width: 100%; }
}

/* countdown: a printed cell block on the cover colophon */
.colophon--cd { grid-template-columns: auto minmax(0, 1fr) auto; gap: 24px 48px; align-items: end; }
.cd { padding-right: 48px; border-right: 1px solid rgba(217,180,90,.35); }
.cd__label { font: 600 11px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--foil); margin-bottom: 12px; }
html:lang(ja) .cd__label { letter-spacing: .06em; }
.cd__cells { display: flex; border-top: 1px solid rgba(217,180,90,.5); border-bottom: 1px solid rgba(217,180,90,.5); }
.cd__cell { display: grid; justify-items: center; gap: 6px; min-width: 96px; padding: 12px 18px 10px; }
.cd__cell + .cd__cell { border-left: 1px solid rgba(217,180,90,.35); }
.cd__cell b { font: 600 clamp(40px, 4.4vw, 60px)/1 var(--serif); color: var(--foil); letter-spacing: -.01em; }
.cd__cell small { font: 600 11px/1 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--on-cover-2); }
html:lang(ja) .cd__cell small { letter-spacing: .04em; }
.cd--done .cd__cells { display: none; }
.cd__done { font: 600 clamp(28px, 3vw, 40px)/1.1 var(--serif); color: var(--foil); }
.colophon--cd .colophon__facts { flex-direction: column; gap: 14px; }

/* news block right after the cover */
.newslist__more { margin-top: 20px; text-align: right; }
.newslist__empty { color: var(--ink-2); }

@media (max-width: 1080px) {
  .colophon--cd { grid-template-columns: auto minmax(0, 1fr); }
  .colophon--cd .colophon__act { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .colophon--cd { grid-template-columns: 1fr; }
  .cd { padding-right: 0; border-right: 0; }
  .cd__cells { width: 100%; }
  .cd__cell { flex: 1; min-width: 0; padding: 12px 6px 10px; }
  .cd__cell b { font-size: 40px; }
  .newslist__more { text-align: left; }
}
.runhead + .newslist { border-top: 0; }
@media (max-width: 640px) { .cover__runhead .cover__folio { display: none; } }
