:root {
  color-scheme: dark;
  background: #131715;
  color: #f4ebdb;
  font-family: "Microsoft YaHei UI", "PingFang SC", "Noto Sans CJK SC", sans-serif;
  --quiet: #c0b8a8;
  --accent: #f0c795;
  --line: #a496783a;
}
* { box-sizing: border-box; }
body { margin: 0; background: radial-gradient(ellipse at 48% -8%, #26302a 0, #131715 61%); }
.gallery { width: min(92%, 1148px); margin: 0 auto; padding: clamp(2.25rem, 6vw, 5.6rem) 0 2.75rem; }
header { display: flex; align-items: end; justify-content: space-between; flex-wrap: wrap; gap: 1rem 2rem; margin-bottom: clamp(1.5rem, 3.2vw, 2.8rem); }
h1 { margin: 0; font-family: "Songti SC", "Noto Serif CJK SC", SimSun, serif; font-size: clamp(2.15rem, 6vw, 5rem); font-weight: 600; letter-spacing: .09em; line-height: 1.14; }
nav { display: flex; gap: clamp(1rem, 2.6vw, 2rem); padding-bottom: .1rem; }
a { color: inherit; text-underline-offset: .22em; }
nav a, .original { text-decoration: none; }
nav a { color: var(--quiet); padding: .45rem 0; font-size: .9rem; white-space: nowrap; }
nav a:hover, footer a:hover { color: var(--accent); }
section { scroll-margin-top: 1.35rem; }
section + section { margin-top: clamp(2.7rem, 6.5vw, 5.65rem); }
figure { margin: 0; }
.image-link { display: block; background: #232822; box-shadow: 0 12px 36px #0005; }
img { display: block; width: 100%; height: auto; }
figcaption { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .55rem 1rem; padding: .85rem 0; border-bottom: 1px solid var(--line); }
h2 { margin: 0; font-size: clamp(1rem, 2.2vw, 1.35rem); font-weight: 500; letter-spacing: .045em; }
.original { display: inline-flex; align-items: center; gap: .32rem; color: var(--accent); font-size: .87rem; padding: .4rem 0; }
.original:hover { text-decoration: underline; }
a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
footer { margin-top: 2.25rem; color: var(--quiet); font-size: .76rem; line-height: 1.65; }
@media (max-width: 32rem) {
  header { align-items: start; flex-direction: column; gap: .6rem; }
  nav a, .original { min-height: 44px; display: inline-flex; align-items: center; }
}
