html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.tos {
  min-height: 100svh;
  font-family: var(--font-ui);
  color: var(--foreground);
  background: radial-gradient(ellipse 60% 30% at 50% 0%, oklch(0.55 0.2 27 / 0.08), transparent 70%), var(--night-deep);
}
.tos a { color: var(--warm-light); text-underline-offset: 3px; }
.tos-header { max-width: 1180px; margin: 0 auto; padding: 22px 24px; display: flex; align-items: center; justify-content: space-between; }
.tos-logo img { display: block; width: 44px; height: 44px; }
.tos-logo:focus-visible, .tos-back:focus-visible, .tos-toc a:focus-visible, .tos-top:focus-visible { outline: 2px solid var(--brass); outline-offset: 4px; border-radius: 4px; }
.tos .tos-back { color: var(--muted-foreground); text-decoration: none; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; }
.tos .tos-back:hover { color: var(--warm-light); }
.tos-layout { max-width: 1180px; margin: 0 auto; padding: 24px 24px 96px; display: grid; grid-template-columns: 1fr; gap: 56px; }
.tos-toc { display: none; }
.tos-toc ol, .tos-toc-mobile ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.tos-toc a, .tos-toc-mobile a { display: block; padding: 6px 12px; border-left: 2px solid var(--border); color: var(--muted-foreground); text-decoration: none; font-size: 14px; line-height: 1.35; }
.tos-toc a:hover, .tos-toc-mobile a:hover { color: var(--foreground); }
.tos-toc a[aria-current="true"] { color: var(--warm-light); border-left-color: var(--warm-light); }
.tos-toc-title { margin: 0 0 12px; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted-foreground); font-weight: 600; }
.tos-toc-mobile { margin-bottom: 32px; border: 1px solid var(--border); border-radius: 12px; padding: 12px 16px; background: oklch(1 0 0 / 0.03); }
.tos-toc-mobile summary { cursor: pointer; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; color: var(--muted-foreground); }
.tos-toc-mobile[open] summary { margin-bottom: 12px; }
@media (min-width: 1024px) {
  .tos-layout { grid-template-columns: 240px minmax(0, 1fr); }
  .tos-toc { display: block; position: sticky; top: 32px; align-self: start; max-height: calc(100svh - 64px); overflow-y: auto; }
  .tos-toc-mobile { display: none; }
}
.tos-body { max-width: 68ch; font-size: 17px; line-height: 1.65; color: oklch(0.88 0.015 80); }
.tos-body h1 { font-family: var(--font-serif); font-weight: 400; font-size: clamp(44px, 6vw, 72px); line-height: 1; letter-spacing: -0.01em; margin: 8px 0 36px; color: var(--foreground); }
.tos-body h2 { font-size: 24px; font-weight: 600; line-height: 1.25; letter-spacing: -0.01em; margin: 64px 0 16px; padding-top: 24px; border-top: 1px solid var(--border); color: var(--foreground); scroll-margin-top: 24px; }
.tos-body h3 { font-size: 18px; font-weight: 600; margin: 36px 0 10px; color: var(--foreground); scroll-margin-top: 24px; }
.tos-body p { margin: 0 0 18px; }
.tos-body ul { margin: 0 0 18px; padding-left: 1.3em; list-style: disc; }
.tos-body li { margin-bottom: 8px; }
.tos-body li::marker { color: var(--warm-light); }
.tos-body strong { color: var(--foreground); font-weight: 650; }
.tos-date { color: var(--muted-foreground); font-size: 14px; letter-spacing: 0.04em; }
.tos .tos-top { display: inline-block; margin-top: 48px; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; text-decoration: none; }
@media print {
  .tos { background: #fff !important; color: #000 !important; }
  .tos-header, .tos-toc, .tos-toc-mobile, .tos-top { display: none !important; }
  .tos-layout { display: block; padding: 0; }
  .tos-body, .tos-body h1, .tos-body h2, .tos-body h3, .tos-body strong, .tos-date, .tos a { color: #000 !important; }
  .tos-body { max-width: none; font-size: 11pt; }
  .tos-body h2 { border-top-color: #ccc; break-after: avoid; }
}
