@font-face { font-family: 'Geo'; font-weight: 700; font-display: swap; src: url('assets/fonts/CalSansUI-GeoBold.woff2') format('woff2'); }
@font-face { font-family: 'Geo'; font-weight: 500; font-display: swap; src: url('assets/fonts/CalSansUI-GeoMedium.woff2') format('woff2'); }
@font-face { font-family: 'Text'; font-weight: 700; font-display: swap; src: url('assets/fonts/CalSansUI-TextBold.woff2') format('woff2'); }
@font-face { font-family: 'Text'; font-weight: 600; font-display: swap; src: url('assets/fonts/CalSansUI-TextSemiBold.woff2') format('woff2'); }
@font-face { font-family: 'Text'; font-weight: 400; font-display: swap; src: url('assets/fonts/CalSansUI-TextRegular.woff2') format('woff2'); }
@font-face { font-family: 'UI'; font-weight: 600; font-display: swap; src: url('assets/fonts/CalSansUI-UISemiBold.woff2') format('woff2'); }
@font-face { font-family: 'UI'; font-weight: 400; font-display: swap; src: url('assets/fonts/CalSansUI-UIRegular.woff2') format('woff2'); }

:root {
  --bg: #faf9f7;
  --surface: #f1efe9;
  --text: #14120f;
  --dim: #5b564e;
  --faint: #928c81;
  --accent: #3358b8;
  --line: rgba(20, 18, 15, 0.13);
  --content: 760px;
}

* { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: 'Text', ui-sans-serif, system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-underline-offset: 3px; }
a:hover { color: var(--accent); }
a:focus-visible { outline: 3px solid rgba(51, 88, 184, 0.35); outline-offset: 4px; }

.skip-link {
  position: absolute;
  left: -999px;
  top: 0;
  z-index: 20;
  padding: 10px 16px;
  background: var(--accent);
  color: #fff;
}
.skip-link:focus { left: 20px; top: 12px; }

.legal-nav {
  min-height: 72px;
  border-bottom: 1px solid var(--line);
}
.legal-nav-inner,
.legal-footer-inner {
  width: min(100% - 48px, 1280px);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.legal-nav-inner { min-height: 72px; }
.brand {
  font-family: 'Geo', sans-serif;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-decoration: none;
}
.brand .brand-name { color: var(--accent); }
.brand .brand-domain { color: var(--text); }
.back-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font-family: 'UI', sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

.legal-main {
  width: min(100% - 48px, var(--content));
  margin: 0 auto;
  padding: clamp(72px, 10vw, 128px) 0 120px;
}
.legal-kicker {
  margin: 0 0 18px;
  color: var(--accent);
  font-family: 'UI', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
h1 {
  margin: 0;
  max-width: 720px;
  font-family: 'Geo', sans-serif;
  font-size: clamp(46px, 8vw, 82px);
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 0.98;
}
.legal-intro {
  max-width: 680px;
  margin: 28px 0 0;
  color: var(--dim);
  font-size: clamp(18px, 2.2vw, 22px);
  line-height: 1.55;
}
.legal-meta {
  margin: 40px 0 0;
  padding: 18px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--faint);
  font-family: 'UI', sans-serif;
  font-size: 13px;
}
.legal-notice {
  margin: 36px 0 0;
  padding: 22px 24px;
  border-left: 3px solid var(--accent);
  background: var(--surface);
  color: var(--dim);
}
.legal-notice strong { color: var(--text); }
.legal-body { margin-top: 68px; }
.legal-section {
  padding: 38px 0 42px;
  border-top: 1px solid var(--line);
}
.legal-section h2 {
  margin: 0 0 16px;
  font-family: 'Geo', sans-serif;
  font-size: clamp(26px, 4vw, 36px);
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.legal-section h3 {
  margin: 28px 0 8px;
  font-family: 'Text', sans-serif;
  font-size: 18px;
  line-height: 1.35;
}
.legal-section p { margin: 0 0 18px; }
.legal-section p:last-child { margin-bottom: 0; }
.legal-section ul { margin: 14px 0 20px; padding-left: 22px; }
.legal-section li { margin: 0 0 9px; padding-left: 4px; }
.policy-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin-top: 42px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  font-family: 'UI', sans-serif;
  font-size: 14px;
  font-weight: 600;
}
.policy-links a[aria-current='page'] { color: var(--accent); }

.legal-footer { padding: 38px 0 42px; border-top: 1px solid var(--line); }
.legal-footer-inner { align-items: flex-end; }
.legal-footer p { margin: 5px 0 0; color: var(--faint); font-family: 'UI', sans-serif; font-size: 12px; }

@media (max-width: 640px) {
  body { font-size: 16px; }
  .legal-nav-inner,
  .legal-footer-inner,
  .legal-main { width: min(100% - 36px, var(--content)); }
  .legal-main { padding-top: 64px; padding-bottom: 80px; }
  .legal-body { margin-top: 52px; }
  .legal-section { padding: 32px 0 36px; }
  .legal-footer-inner { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
