/* Terms page: plain readable text on the brand ground; follows the system like the front page (light by day). */
html { overscroll-behavior: auto; touch-action: auto; }
body.terms { display: block; min-height: 100dvh; -webkit-user-select: text; user-select: text; -webkit-touch-callout: default; }
.terms__page { max-width: 44rem; margin: 0 auto; padding: max(28px, env(safe-area-inset-top)) 20px max(48px, env(safe-area-inset-bottom)); line-height: 1.6; font-size: 1.0625rem; }
.terms__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 40px; }
.terms__home { font-weight: 500; font-size: 1.25rem; letter-spacing: .02em; color: var(--ink); text-decoration: none; }
.terms__lang { color: color-mix(in oklab, var(--ink) 65%, var(--bg)); }
.terms a { color: var(--accent-strong); text-underline-offset: 3px; }
.terms__home, .terms__lang a { color: inherit; }
.terms__lang a { text-decoration: none; }
.terms h1 { font-weight: 500; font-size: clamp(1.6rem, 5vw, 2.1rem); line-height: 1.2; }
.terms__date { margin-top: 6px; color: color-mix(in oklab, var(--ink) 65%, var(--bg)); font-size: .95rem; }
.terms h2 { font-weight: 500; font-size: 1.15rem; margin: 32px 0 8px; }
.terms p, .terms ul { color: color-mix(in oklab, var(--ink) 88%, var(--bg)); }
.terms ul { padding-left: 1.2em; display: grid; gap: 8px; }
.terms article + article { margin-top: 72px; padding-top: 40px; border-top: 1px solid color-mix(in oklab, var(--ink) 14%, var(--bg)); }
.terms__foot { margin-top: 64px; font-size: .9rem; color: color-mix(in oklab, var(--ink) 65%, var(--bg)); }

@media (prefers-color-scheme: light) {
  :root { --bg: var(--paper); --ink: var(--paper-ink); }
  .terms a { color: var(--paper-accent); }
  .terms__home, .terms__lang a { color: inherit; }
}
