:root {
  color-scheme: light;
  --paper: #f5f2ea;
  --card: #fffdf8;
  --ink: #18251f;
  --muted: #68716b;
  --line: #d9d9d0;
  --forest: #183d32;
  --type-meta: .875rem;
  --type-body: 1rem;
  --serif: Iowan Old Style, Baskerville, Georgia, 'Times New Roman', serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

* { box-sizing: border-box; }

html {
  min-width: 320px;
  background: var(--paper);
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
  min-height: 100dvh;
  background:
    radial-gradient(circle at 80% 0%, rgba(239, 156, 112, .14), transparent 28rem),
    var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: var(--type-body);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--forest); text-underline-offset: 3px; }

.legal-shell {
  width: min(760px, calc(100% - 32px));
  margin: 0 auto;
  padding: 36px 0 72px;
}

.legal-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--ink);
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 700;
  text-decoration: none;
}

.legal-brand img { width: 36px; height: 36px; object-fit: contain; }

.legal-card {
  margin-top: 28px;
  padding: clamp(28px, 6vw, 56px);
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(255, 253, 248, .94);
  box-shadow: 0 24px 64px rgba(21, 44, 35, .09);
}

.legal-card h1 {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(38px, 8vw, 56px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1;
}

.legal-updated { margin: 12px 0 34px; color: var(--muted); font-size: var(--type-meta); }
.legal-card section + section { margin-top: 30px; }
.legal-card h2 { margin: 0 0 9px; font-family: var(--serif); font-size: 23px; letter-spacing: -.02em; }
.legal-card p, .legal-card li { color: #39443e; font-size: var(--type-body); line-height: 1.75; }
.legal-card p { margin: 0; }
.legal-card p + p { margin-top: 12px; }
.legal-card ul { margin: 10px 0 0; padding-left: 20px; }
.legal-card li + li { margin-top: 7px; }

.legal-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  padding: 22px 8px 0;
  color: var(--muted);
  font-size: var(--type-meta);
}

.legal-footer span { margin-right: auto; }

/* Public policy and error pages share the appearance preference of sign-in. */
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #0b1210;
  --card: #101a16;
  --ink: #f4f1e9;
  --muted: #adb7b0;
  --line: #294338;
  --forest: #b9e0ca;
}
:root[data-theme="dark"] .legal-card { background: var(--card); box-shadow: 0 24px 64px rgba(0, 0, 0, .2); }
:root[data-theme="dark"] :is(.legal-card p, .legal-card li) { color: #c8d1cb; }
:root[data-theme="dark"] .legal-card .legal-updated { color: var(--muted); }
a, button { touch-action: manipulation; }

@media (max-width: 560px) {
  .legal-shell { width: min(100% - 24px, 760px); padding-top: 22px; }
  .legal-card { margin-top: 20px; border-radius: 20px; }
}
