/* 基础排版、页面宽度与可访问性。 */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 96px; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ground);
  color: var(--ink);
  font: 400 15px/1.75 var(--font);
  -webkit-text-size-adjust: 100%;
}
body.menu-open { overflow: hidden; }
body > main { min-height: 48vh; }
h1, h2, h3, p, ul, ol, dl, figure { margin: 0; }
h1, h2 { text-wrap: balance; }
p { text-wrap: pretty; }
h1 { font-size: 34px; line-height: 1.3; font-weight: 800; }
h2 { font-size: 26px; line-height: 1.35; font-weight: 750; }
h3 { font-size: 18px; line-height: 1.4; font-weight: 700; }
ul, ol { padding: 0; }
img, svg { display: block; max-width: 100%; }
svg { flex-shrink: 0; }
a { color: var(--primary); text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, summary, select { cursor: pointer; }
button { color: inherit; }
button, input, select, textarea { min-width: 0; }
button:disabled { cursor: not-allowed; }
a, button, summary, input, select, textarea { -webkit-tap-highlight-color: var(--transparent); }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
[hidden] { display: none !important; }
::selection { background: var(--primary); color: var(--on-primary); }
.container { width: min(1120px, 100% - 48px); margin-inline: auto; }
.container--wide { width: min(1240px, 100% - 48px); }
body:is([data-page="auction"], [data-page="ranking"]) .container { width: min(1240px, 100% - 48px); }
.section { margin-block: var(--s14); }
.section-heading { display: flex; gap: var(--s6); align-items: center; justify-content: space-between; margin-bottom: var(--s6); }
.section-heading__copy { display: grid; gap: var(--s2); }
.stack { display: grid; gap: var(--s6); }
.grid-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s6); }
.display { font-size: clamp(34px, 4vw, 52px); font-weight: 800; line-height: 1.22; letter-spacing: -.02em; }
.lead { font-size: 17px; line-height: 1.8; max-width: 34em; color: var(--muted); }
.eyebrow { font-size: 12px; font-weight: 700; line-height: 1.3; letter-spacing: .08em; color: var(--primary); }
.meta { font-size: 13px; font-weight: 500; line-height: 1.5; color: var(--muted); }
.muted { color: var(--muted); }
.figure { font-size: 28px; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.numeral, time { font-variant-numeric: tabular-nums; }
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.skip-link { position: fixed; top: var(--s3); left: var(--s4); z-index: 100; padding: var(--s3) var(--s6); background: var(--paper); border: 2px solid var(--primary); border-radius: var(--r-sm); transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
.js-only { display: none; }
.js .js-only { display: revert; }
.js .no-js-only { display: none; }
.mobile-only { display: none; }
.icon { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.icon--small { width: 16px; height: 16px; }
.icon-tile { display: grid; place-items: center; width: 44px; height: 44px; border-radius: var(--r-sm); background: var(--tint); color: var(--primary); flex-shrink: 0; }
.actions { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: center; }
.body-copy { overflow-wrap: anywhere; }
.body-copy p + p { margin-top: var(--s4); }

@media (max-width: 860px) {
  .section { margin-block: var(--s10); }
  .grid-two { gap: var(--s4); }
  .mobile-only { display: block; }
}
@media (max-width: 520px) {
  .container, .container--wide, body:is([data-page="auction"], [data-page="ranking"]) .container { width: calc(100% - 32px); }
  h1 { font-size: 26px; }
  h2 { font-size: 21px; }
  h3 { font-size: 17px; }
  .lead { font-size: 16px; }
  .figure { font-size: 24px; }
  .grid-two { grid-template-columns: minmax(0, 1fr); }
  .section-heading { gap: var(--s3); align-items: start; }
  .section-heading .text-link { flex-shrink: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: 80ms !important; }
}
