/* About, privacy and terms. Same tokens, nav and footer as the home page;
   the body is a reading column with a sticky contents list beside it. */
:root {
  color-scheme: light;
  --paper: #fcfcfd;
  --panel: #ffffff;
  --canvas: #f3f3f5;
  --ink: #18191d;
  --ink-hover: #2c2d33;
  --ink-2: #3d3f46;
  --muted: #6b6e78;
  --faint: #9a9ca6;
  --line: #e7e7eb;
  --line-strong: #d9d9df;
  --accent: #5e5ce6;
  --accent-text: #4b49d1;
  --accent-soft: #f0f0fd;
  --accent-tint: #e6e6fb;
  --glow: rgba(114, 112, 255, .78);
  --glow-soft: rgba(114, 112, 255, .4);
  --glow-edge: rgba(143, 141, 255, .45);
  --warn: #b8810b;
  --warn-soft: #f8f1e3;
  --display: "Spectral", "Iowan Old Style", Georgia, serif;
  --body: "Inter", "Segoe UI", system-ui, sans-serif;
  --mono: "IBM Plex Mono", "Cascadia Mono", ui-monospace, monospace;
}
* { box-sizing: border-box; }
/* Hidden means hidden, whatever display a class gives (the account page switches cards). */
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 16px/1.6 var(--body); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
.page { overflow-x: clip; }
a { color: inherit; text-decoration: none; }
svg { max-width: 100%; }
svg.win { fill: currentColor; stroke: none; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 6px; }
h1, h2, h3, h4 { margin: 0; text-wrap: balance; }
p { margin: 0; }
.wrap { width: min(1200px, 100%); margin-inline: auto; padding-inline: 24px; }

/* Navigation and buttons, as on the home page */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px; height: 36px; padding: 0 16px; border-radius: 999px; border: 1px solid transparent; font: 500 14px/1 var(--body); white-space: nowrap; cursor: pointer; transition: background .15s ease; }
.btn svg { width: 14px; height: 14px; }
.btn-ink { background: var(--ink); color: var(--panel); }
.btn-ink:hover { background: var(--ink-hover); }
.btn-line { border-color: var(--line-strong); background: var(--panel); color: var(--ink); }
.btn-line:hover { border-color: var(--faint); background: var(--canvas); }
.btn[disabled] { opacity: .6; cursor: progress; }
.btn-glow { box-shadow: -8px 0 22px -9px var(--glow-soft), 8px 0 22px -9px var(--glow-soft), inset 0 0 0 1px var(--glow-edge); animation: glow 3.6s ease-in-out infinite alternate; }
@keyframes glow {
  from { box-shadow: -6px 0 18px -9px var(--glow-soft), 6px 0 18px -9px var(--glow-soft), inset 0 0 0 1px var(--glow-edge); }
  to { box-shadow: -12px 0 26px -9px var(--glow), 12px 0 26px -9px var(--glow), inset 0 0 0 1px var(--glow-edge); }
}
.nav { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 30; background: color-mix(in srgb, var(--paper) 84%, transparent); -webkit-backdrop-filter: saturate(1.5) blur(16px); backdrop-filter: saturate(1.5) blur(16px); border-bottom: 1px solid var(--line); }
.nav-row { display: flex; align-items: center; gap: 28px; height: 64px; }
.brand { display: inline-flex; align-items: center; gap: 10px; font: 600 16px/1 var(--body); letter-spacing: -.01em; }
.brand svg { width: 28px; height: 28px; }
.nav-links { display: flex; gap: 2px; }
.nav-links a { padding: 8px 12px; border-radius: 8px; font-size: 14px; color: var(--ink-2); }
.nav-links a:hover, .nav-links a[aria-current] { background: var(--canvas); color: var(--ink); }
.nav-end { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.nav-signin { display: inline-flex; align-items: center; height: 36px; padding: 0 14px; border-radius: 999px; font: 500 14px/1 var(--body); white-space: nowrap; }
.nav-signin:hover { background: var(--canvas); }

/* Page head */
.doc-head { display: grid; gap: 14px; padding-block: 72px 48px; }
.eyebrow { font-size: 13px; font-weight: 600; color: var(--accent-text); }
.doc-head h1 { font: 300 clamp(40px, 6vw, 72px)/1 var(--display); letter-spacing: -.025em; }
.doc-meta { font-size: 14px; color: var(--muted); }
.doc-lede { max-width: 60ch; font-size: 18px; line-height: 1.55; color: var(--ink-2); }

/* Reading column with contents */
.doc-grid { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 64px; align-items: start; padding-bottom: 96px; }
.toc { position: sticky; top: 96px; display: grid; gap: 10px; font-size: 14px; }
.toc p { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.toc ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 2px; border-left: 1px solid var(--line); }
.toc a { display: block; padding: 4px 0 4px 14px; margin-left: -1px; border-left: 1px solid transparent; color: var(--ink-2); line-height: 1.4; }
.toc a:hover { color: var(--ink); border-left-color: var(--ink); }
.doc { max-width: 70ch; min-width: 0; }
.doc section { scroll-margin-top: 88px; padding-top: 40px; margin-top: 40px; border-top: 1px solid var(--line); }
.doc section:first-child { padding-top: 0; margin-top: 0; border-top: 0; }
.doc h2 { margin-bottom: 14px; font: 400 30px/1.15 var(--display); letter-spacing: -.015em; }
.doc h3 { margin: 26px 0 8px; font-size: 17px; font-weight: 600; }
.doc p, .doc li { color: var(--ink-2); }
.doc p + p, .doc p + ul, .doc ul + p, .doc p + ol, .doc ol + p, .doc p + .table, .doc .table + p { margin-top: 12px; }
.doc ul, .doc ol { margin: 0; padding-left: 22px; display: grid; gap: 6px; }
.doc li::marker { color: var(--faint); }
.doc strong { color: var(--ink); font-weight: 600; }
.doc a, a.inline { color: var(--accent-text); text-decoration: underline; text-decoration-color: var(--accent-tint); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.doc a:hover, a.inline:hover { text-decoration-color: var(--accent-text); }
.doc code { font: 500 13.5px/1 var(--mono); color: var(--ink); }
.basis { display: block; margin-top: 10px; font-size: 14px; color: var(--muted); }

/* "The short version" */
.doc .short, .doc .principles, .doc .facts { padding: 0; }
.doc .short li, .doc .principles li { align-content: start; }
.doc .box + p, .doc p + .box, .doc .facts + p { margin-top: 14px; }
.doc .short { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--line); }
.short li { display: grid; gap: 6px; padding: 20px 22px; background: var(--panel); }
.short b { font: 400 20px/1.25 var(--display); color: var(--ink); }
.short span { font-size: 15px; color: var(--ink-2); }

/* Tables */
.table { overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; }
.table table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.table th, .table td { padding: 11px 14px; text-align: left; vertical-align: top; border-top: 1px solid var(--line); }
.table thead th { border-top: 0; background: var(--canvas); font-size: 12.5px; font-weight: 600; color: var(--muted); }
.table td { color: var(--ink-2); }
.table td:first-child { color: var(--ink); font-weight: 500; white-space: nowrap; }

/* Details you still need to fill in */
mark.fill { padding: 1px 5px; border-radius: 4px; background: var(--warn-soft); box-shadow: inset 0 -1px 0 var(--warn); color: var(--ink); font-weight: 500; }

/* Boxed text: the legal notice and the withdrawal form */
.box { padding: 20px 22px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); }
.box p { color: var(--ink-2); }
.box dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 8px 20px; margin: 0; }
.box dt { color: var(--muted); font-size: 14.5px; }
.box dd { margin: 0; color: var(--ink); overflow-wrap: anywhere; }

/* About */
.doc .principles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 4px 0 0; padding: 0; list-style: none; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--line); }
.principles li { display: grid; gap: 6px; padding: 22px; background: var(--panel); }
.principles b { font: 400 21px/1.25 var(--display); color: var(--ink); }
.principles span { font-size: 15px; color: var(--ink-2); }
.doc .facts { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.facts li { padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel); font-size: 14px; color: var(--ink-2); }

/* Account: sign-in, then plan, credits and computers */
.acct { padding-bottom: 56px; }
.acct-status { margin-bottom: 16px; padding: 10px 14px; border-radius: 10px; background: var(--warn-soft); font-size: 14px; color: var(--ink-2); }
.acct-card { display: grid; gap: 12px; align-content: start; padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: var(--panel); }
.acct-card h2 { font: 600 14px/1.3 var(--body); color: var(--muted); }
.acct-signin { max-width: 440px; gap: 14px; }
.acct-signin h2 { font: 400 28px/1.15 var(--display); letter-spacing: -.015em; color: var(--ink); }
.btn-wide { width: 100%; height: 44px; font-size: 14.5px; }
.btn-wide svg { width: 18px; height: 18px; }
.acct-or { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--faint); }
.acct-or::before, .acct-or::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.acct-form { display: grid; gap: 12px; }
.acct-field { display: grid; gap: 6px; font-size: 13px; font-weight: 500; color: var(--ink-2); }
.acct-field input { height: 44px; padding: 0 14px; border: 1px solid var(--line-strong); border-radius: 10px; background: var(--panel); font: 400 16px/1 var(--body); color: var(--ink); }
.acct-field input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-soft); }
.acct-code { text-align: center; letter-spacing: .4em; font: 500 22px/1 var(--mono) !important; }
.acct-link { justify-self: start; padding: 0; border: 0; background: none; font: 500 14px/1.4 var(--body); color: var(--accent-text); cursor: pointer; text-decoration: underline; text-decoration-color: var(--accent-tint); text-underline-offset: 3px; }
.acct-error { font-size: 14px; color: #c0392b; }
.acct-note { font-size: 14.5px; color: var(--ink-2); }
.acct-note b { color: var(--ink); overflow-wrap: anywhere; }
.acct-fine { font-size: 13px; line-height: 1.5; color: var(--muted); }
.acct-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.acct-big { font: 300 34px/1.1 var(--display); letter-spacing: -.02em; color: var(--ink); }
.acct-big small { font: 400 15px/1 var(--body); letter-spacing: 0; color: var(--muted); }
.acct-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.acct-meter { height: 8px; border-radius: 999px; background: var(--canvas); overflow: hidden; }
.acct-meter i { display: block; height: 100%; border-radius: inherit; background: var(--accent); }
.acct-devices { display: grid; margin: 0; padding: 0; list-style: none; border: 1px solid var(--line); border-radius: 12px; }
.acct-devices:empty { display: none; }
.acct-devices li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding: 10px 14px; font-size: 14.5px; }
.acct-devices li + li { border-top: 1px solid var(--line); }
.acct-devices span { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; color: var(--ink); }
.acct-devices small { color: var(--muted); font-size: 13px; }
.acct-who { grid-column: 1 / -1; font-size: 14px; color: var(--muted); }
.acct-who b { color: var(--ink); font-weight: 500; }
@media (max-width: 780px) { .acct-grid { grid-template-columns: minmax(0, 1fr); } }

/* Footer */
.foot { padding-top: 64px; border-top: 1px solid var(--line); overflow: hidden; }
.foot-grid { display: grid; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); gap: 32px; }
.foot-grid > div > p { margin-top: 14px; max-width: 34ch; font-size: 14px; color: var(--muted); }
.foot h4 { margin-bottom: 12px; font-size: 13px; font-weight: 500; color: var(--muted); }
.foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 14px; }
.foot ul a:hover { color: var(--accent-text); }
.legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; margin-top: 56px; padding-top: 20px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); }
.wordmark { margin-top: 32px; height: .74em; overflow: hidden; text-align: center; font: 300 clamp(96px, 25vw, 360px)/1 var(--display); letter-spacing: -.045em; color: var(--line); user-select: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}
@media (max-width: 980px) {
  .nav-links { display: none; }
  .doc-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .toc { position: static; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); }
  .toc ol { border-left: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
  .toc a { padding-left: 0; border-left: 0; }
  .foot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .wrap { padding-inline: 16px; }
  .nav-row { gap: 12px; }
  .nav-signin { padding: 0 10px; }
  .doc-head { padding-block: 44px 32px; }
  .toc ol { grid-template-columns: minmax(0, 1fr); }
  .doc .short, .doc .principles { grid-template-columns: minmax(0, 1fr); }
  .box dl { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .box dd { margin-bottom: 8px; }
  .foot-grid { grid-template-columns: minmax(0, 1fr); }
}
