/* Datong design system: static pages, shared components, three font families. */
:root {
  --ink:#101a30;
  --paper:#eee9d9;
  --text:#203147;
  --gold:#d7b76f;
  --line:#cfc7b5;
  --link:#173b70;
  --radius:6px;
  --measure:72rem
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  color:var(--text);
  background:var(--ink);
  font:16px/1.75 Inter,Arial,sans-serif
}
html[lang=zh-Hans] body {
  font-family:'Noto Serif SC',serif
}
a {
  color:var(--link);
  text-underline-offset:.2em
}
a:hover {
  color:#6e5019
}
img {
  max-width:100%;
  height:auto
}
button,input,textarea {
  font:inherit
}
button,a {
  touch-action:manipulation
}
[hidden] {
  display:none!important
}
:focus-visible {
  outline:3px solid #aa7926;
  outline-offset:4px
}
h1,h2,h3,h4 {
  line-height:1.35;
  margin:0 0 1rem;
  font-family:Georgia,'Noto Serif SC',serif
}
h1 {
  font-size:2.2rem
}
h2 {
  font-size:1.7rem
}
h3 {
  font-size:1.25rem
}
h4 {
  font-size:1.05rem
}
p {
  margin:0 0 1.4rem
}
ul {
  padding-left:1.3rem
}
li {
  margin-bottom:.45rem
}
section {
  margin-bottom:2.5rem
}
.skip-link {
  position:fixed;
  top:1rem;
  left:1rem;
  background:var(--paper);
  padding:.7rem;
  z-index:100;
  opacity:0;
  pointer-events:none;
  transform:translateY(-200%)
}
.skip-link:focus {
  opacity:1;
  pointer-events:auto;
  transform:none
}
/* Shared header and navigation */
.site-header {
  display:flex;
  align-items:center;
  gap:2rem;
  max-width:var(--measure);
  margin:auto;
  padding:1rem 1.5rem;
  color:#fff
}
.site-brand {
  display:flex;
  align-items:center;
  gap:.7rem;
  text-decoration:none;
  white-space:nowrap;
  color:var(--gold);
  font-family:Cinzel,Georgia,serif;
  letter-spacing:.06em
}
.site-brand img {
  width:52px;
  height:52px
}
.site-brand span[lang] {
  font-family:'Noto Serif SC',serif
}
#site-navigation {
  margin-left:auto
}
#site-navigation ul {
  display:flex;
  gap:1.2rem;
  list-style:none;
  padding:0;
  margin:0;
  flex-wrap:wrap
}
#site-navigation li {
  margin:0
}
#site-navigation a {
  color:#f5efdf;
  text-decoration:none;
  font-size:.85rem
}
#site-navigation a[aria-current=page] {
  color:var(--gold);
  border-bottom:1px solid var(--gold)
}
.language-switch {
  white-space:nowrap;
  font-size:.8rem
}
.language-switch a {
  color:var(--gold)
}
/* Homepage identity */
.page-home {
  background:linear-gradient(#101a3055,#101a30dd),url('../../images/background/bg-1.webp') center/cover fixed
}
#header {
  text-align:center;
  max-width:58rem;
  margin:2rem auto 3rem;
  padding:4rem 2rem;
  color:#fff
}
#header .logo img {
  width:88px;
  height:88px;
  border-radius:50%
}
#header .content {
  border-top:1px solid #d7b76f66;
  border-bottom:1px solid #d7b76f66;
  margin-top:2rem;
  padding:2.5rem 0
}
#header .site-title {
  display:grid;
  gap:.5rem
}
#header .site-title .en {
  font-family:Cinzel,Georgia,serif;
  font-size:clamp(2rem,4vw,3.6rem);
  letter-spacing:.12em
}
#header .site-title .zh {
  color:var(--gold);
  font-family:'Noto Serif SC',serif;
  font-size:2.6rem;
  letter-spacing:.15em
}
#header p {
  font-size:.8rem;
  letter-spacing:.16em;
  text-transform:uppercase
}
.landing-intro {
  max-width:42rem;
  margin:2rem auto!important
}
.landing-actions {
  display:flex;
  gap:1.5rem;
  justify-content:center;
  align-items:center
}
#header a {
  color:var(--gold)
}
/* Reading surface and content */
#main {
  max-width:64rem;
  padding:0 1.5rem;
  margin:2rem auto 4rem
}
#main > article {
  padding:clamp(1.5rem,4vw,3.5rem);
  background:var(--paper);
  border-radius:var(--radius);
  overflow-wrap:anywhere
}
.page-home #main {
  max-width:var(--measure)
}
.major {
  border-bottom:1px solid var(--line);
  padding-bottom:1rem;
  margin-bottom:2rem
}
.button {
  display:inline-block;
  border:1px solid var(--link);
  border-radius:3px;
  padding:.55rem 1.1rem;
  text-decoration:none;
  font-size:.85rem;
  font-weight:600
}
.button.primary {
  color:#fff;
  background:var(--link)
}
.button:hover {
  background:#dddbc9
}
.button.primary:hover {
  background:#254f86
}
.actions {
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  padding:0
}
.home-feature {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);
  gap:2rem;
  align-items:start
}
.home-poster img {
  width:100%;
  max-height:38rem;
  object-fit:contain;
  border-radius:3px
}
.home-eyebrow,.collab-eyebrow {
  font:600 .75rem Inter,sans-serif;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#6d613f
}
.home-workshops,.home-about,.home-connect {
  border-top:1px solid var(--line);
  padding-top:2rem
}
.home-text-link {
  margin-right:1.2rem
}
.home-connect-actions {
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  align-items:center
}
.resource-directory {
  margin-top:2.5rem
}
.resource-directory li {
  margin-bottom:.6rem
}
.resource-directory h3 {
  font-size:1.15rem
}
.image.main img {
  width:100%;
  border-radius:var(--radius)
}
/* Event archive and progressive image viewer */
.archive-controls {display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:2rem 0 .5rem}
.archive-controls #events-filter {margin:0}
.archive-year-select {display:flex;align-items:center;gap:.6rem;font-size:.85rem}
.archive-year-select select {font:inherit;padding:.45rem .7rem;border:1px solid var(--line);border-radius:3px;color:var(--text);background:transparent}
.archive-count {font-size:.8rem;color:#5e625f;margin-bottom:2rem}
.archive-year-heading {font:400 2.8rem/1.1 Georgia,serif;color:#7d6332;letter-spacing:-.04em;padding-bottom:.7rem;border-bottom:1px solid var(--line);margin:2rem 0 0}
.public-event {border-top:0;padding:2rem 0;margin:0;border-bottom:1px solid var(--line);scroll-margin-top:2rem}
.public-event-layout {display:grid;grid-template-columns:minmax(0, .9fr) minmax(0,1.25fr);gap:2rem;align-items:start}
.public-event-layout.public-event-text-only {grid-template-columns:1fr}
.public-event .event-cover {margin:0}
.public-event .event-cover img {display:block;width:100%;max-height:24rem;object-fit:contain;background:#e6e0d1;border-radius:3px}
.public-event .event-cover figcaption {font-size:.72rem;line-height:1.5;color:#62645e;margin-top:.6rem}
.public-event .event-gallery img[src*="poster-"] {height:auto;object-fit:contain}
.public-event .event-meta {font-size:.76rem;gap:.7rem;margin-bottom:.75rem}
.public-event h3 {font-size:1.55rem;line-height:1.3;margin-bottom:1rem}
.event-people {font-size:.84rem;color:#4b5560;line-height:1.6;margin-bottom:1rem}
.public-event .event-desc {line-height:1.75;margin-bottom:1.1rem}
.event-logistics {font-size:.8rem;color:#4b5560;line-height:1.75;margin:0}
.event-details {margin-top:1.2rem}
.event-details summary,.legacy-collections>summary {cursor:pointer;color:var(--link);font-size:.9rem;padding:.6rem 0;min-height:44px}
.event-details-content {padding-top:1rem;max-width:52rem}
.legacy-collections {margin-top:4rem;border-top:2px solid var(--line);padding-top:1rem}
.legacy-collections>summary {font:1.2rem/1.5 Georgia,'Noto Serif SC',serif}
.legacy-collections .event-card {margin-top:2rem}
@media(max-width:680px) {
  .public-event-layout {grid-template-columns:1fr;gap:1.25rem}
  .public-event .event-cover img {max-height:22rem}
  .public-event h3 {font-size:1.4rem}
  .archive-year-heading {font-size:2.3rem}
  .archive-controls {align-items:flex-start}
  .archive-controls #events-filter {gap:.4rem}
  .archive-controls #events-filter button {font-size:.8rem;padding:.5rem .65rem;min-height:44px}
}
.events-filter,#events-filter {
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
  margin:1.5rem 0 2rem
}
#events-filter button {
  border:1px solid var(--line);
  background:transparent;
  border-radius:3px;
  padding:.4rem .8rem;
  cursor:pointer;
  color:var(--text)
}
#events-filter button.is-active {
  background:var(--link);
  color:white
}
.event-card {
  border-top:1px solid var(--line);
  padding-top:2rem
}
.event-cover img {
  width:100%;
  max-height:30rem;
  object-fit:contain
}
.event-head {
  margin-top:1rem
}
.event-head h3 .en {
  display:block;
  font:400 1rem/1.5 Inter,sans-serif;
  margin-top:.4rem
}
.event-meta {
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  font-size:.85rem;
  margin-bottom:1rem
}
.event-tag {
  color:#6d613f
}
.event-gallery {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.7rem
}
.event-gallery img {
  width:100%;
  height:10rem;
  object-fit:cover;
  border-radius:3px
}
#course-archive .event-gallery img {
  height: auto;
  object-fit: contain;
}

.event-gallery a:focus-visible {
  outline-offset:2px
}
#lb-overlay {
  display:none;
  position:fixed;
  inset:0;
  z-index:200;
  background:#050912ed;
  align-items:center;
  justify-content:center;
  padding:2rem
}
#lb-overlay.is-open {
  display:flex
}
#lb-overlay figure {
  margin:0;
  text-align:center;
  color:#fff
}
#lb-img {
  max-height:80vh;
  max-width:90vw;
  object-fit:contain
}
#lb-cap {
  margin-top:.6rem
}
.lb-close {
  position:absolute;
  top:1rem;
  right:1rem;
  color:#fff;
  background:transparent;
  border:0;
  font-size:2.3rem;
  cursor:pointer
}
/* Contact and collaboration */
.qr-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.5rem
}
.qr-card {
  display:block;
  text-align:center;
  text-decoration:none
}
.qr-img img {
  max-height:30rem;
  object-fit:contain
}
.qr-title {
  font-weight:600
}
.qr-en {
  font-size:.8rem
}
.collab-format-list {
  list-style:none;
  padding:0
}
.collab-format-list li {
  padding:1rem 0;
  border-bottom:1px solid var(--line)
}
.collab-format-list strong,.collab-format-list span {
  display:block
}
.collab-format-list strong span {
  display:inline
}
.collab-contact-panel {
  background:#e3dcc8;
  padding:1.5rem;
  border-radius:var(--radius)
}
.collab-fine {
  font-size:.85rem
}
.collab-email {
  font-weight:600
}
/* Shared footer */
.site-footer {
  color:#d7d9df;
  border-top:1px solid #d7b76f44;
  padding:2.5rem 1.5rem 1.5rem;
  background:#0d1627
}
.site-footer .wrap {
  max-width:var(--measure);
  margin:auto
}
.footer-grid {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:2rem
}
.footer-title {
  font-family:Cinzel,Georgia,serif;
  color:var(--gold);
  font-size:1.2rem
}
.footer-title span {
  font-family:'Noto Serif SC',serif
}
.footer-heading {
  color:var(--gold);
  font:600 .85rem Inter,sans-serif
}
.footer-list {
  list-style:none;
  padding:0
}
.site-footer a {
  color:#e1d4b1
}
.footer-bottom {
  display:flex;
  gap:2rem;
  justify-content:space-between;
  border-top:1px solid #ffffff22;
  margin-top:2rem!important;
  padding-top:1.5rem;
  font-size:.75rem
}
.footer-bottom p {
  margin:0 0 .5rem
}
.footer-bottom img {
  width:85px;
  min-width:85px
}
.disclaimer {
  max-width:48rem
}
@media(max-width:850px) {
  .site-header {
    flex-wrap:wrap;
    gap:1rem
  }
  #site-navigation {
    order:3;
    width:100%;
    margin:0
  }
  #site-navigation ul {
    gap:.6rem 1.2rem
  }
  .language-switch {
    margin-left:auto
  }
  .home-feature {
    grid-template-columns:1fr
  }
  .home-poster img {
    max-height:28rem
  }
  .footer-grid {
    grid-template-columns:1fr 1fr
  }
  .footer-identity {
    grid-column:1/-1
  }
  .event-gallery {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media(max-width:480px) {
  body {
    font-size:15px
  }
  .site-header {
    padding:1rem
  }
  .site-brand img {
    width:42px;
    height:42px
  }
  #main {
    padding:0 1rem;
    margin:1rem auto 2rem
  }
  #header {
    padding:2rem 1rem;
    margin:1rem auto
  }
  #header .site-title .en {
    font-size:1.9rem;
    letter-spacing:.04em
  }
  #header .site-title .zh {
    font-size:2rem
  }
  .landing-actions {
    flex-wrap:wrap
  }
  .qr-grid {
    grid-template-columns:1fr
  }
  .footer-grid {
    grid-template-columns:minmax(0,1fr)
  }
  .footer-email {overflow-wrap:anywhere}
  .footer-bottom {
    flex-direction:column
  }
  .event-gallery img {
    height:8rem
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important
  }
}

/* Workshop schedule */
.workshop-session { border-top: 1px solid var(--line); padding-top: 1.5rem; }
.workshop-meta { font-size: .85rem; color: #586174; }
.workshop-session summary { cursor: pointer; color: var(--link); }
.workshop-session details ul { margin-bottom: 0; }

.workshop-speaker { font-size: .9rem; margin-bottom: .7rem; }

.workshop-participation {
  border-top: 1px solid var(--line);
  margin-top: 3rem;
  padding-top: 2rem;
}

.workshop-participation + #course-archive {
  border-top: 2px solid var(--line);
  margin-top: 3rem;
  padding-top: 3rem;
}

#upcoming-events {margin-top:2.5rem}
.planned-event {padding:1.5rem 0;border-bottom:1px solid var(--line)}
.planned-event h3 {font-size:1.55rem;line-height:1.3;margin:1rem 0}

#public-events-filter {display:flex;gap:.5rem;flex-wrap:wrap}
#public-events-filter button {border:1px solid var(--line);background:transparent;border-radius:3px;padding:.4rem .8rem;cursor:pointer;color:var(--text)}
#public-events-filter button.is-active {background:var(--link);color:white}
.expanded-event-records {margin-top:4rem;border-top:2px solid var(--line);padding-top:2rem}
