:root {
  --legal-bg: #000001;
  --legal-panel: #0a0a0e;
  --legal-panel-2: #101016;
  --legal-line: rgba(255,255,255,.09);
  --legal-text: #f4f4f7;
  --legal-muted: #a2a2ad;
  --legal-muted-2: #757582;
  --legal-red: #990000;
  --legal-purple: #5a54c4;
  --legal-purple-hi: #9693ff;
  --legal-green: #22c55e;
}

* { box-sizing: border-box; }
html { color-scheme: dark; scroll-behavior: smooth; }
body.legal-page {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 80% -5%, rgba(90,84,196,.14), transparent 30%),
    radial-gradient(circle at 15% 110%, rgba(153,0,0,.09), transparent 32%),
    var(--legal-bg);
  color: var(--legal-text);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}

.legal-topbar {
  position: sticky;
  z-index: 20;
  top: 0;
  border-bottom: 1px solid var(--legal-line);
  background: rgba(0,0,1,.84);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.legal-topbar-inner {
  display: flex;
  width: min(1180px, calc(100% - 36px));
  min-height: 70px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 0 auto;
}

.legal-brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: #fff;
  text-decoration: none;
}

.legal-brand img { width: 42px; height: 42px; object-fit: contain; }
.legal-brand span { display: grid; gap: 2px; }
.legal-brand strong { font-size: .86rem; font-weight: 900; letter-spacing: .04em; }
.legal-brand small { color: var(--legal-muted-2); font: 700 .58rem/1.1 "JetBrains Mono", monospace; letter-spacing: .09em; text-transform: uppercase; }

.legal-topnav { display: flex; align-items: center; gap: 6px; }
.legal-topnav a {
  padding: 9px 11px;
  border-radius: 9px;
  color: #a7a7b1;
  font-size: .78rem;
  font-weight: 700;
  text-decoration: none;
}
.legal-topnav a:hover,
.legal-topnav a.active { background: rgba(255,255,255,.045); color: #fff; }
.legal-topnav a.primary {
  margin-left: 4px;
  border: 1px solid rgba(143,143,255,.22);
  background: linear-gradient(120deg, rgba(153,0,0,.22), rgba(90,84,196,.26));
  color: #fff;
}

.legal-shell {
  display: grid;
  width: min(1180px, calc(100% - 36px));
  grid-template-columns: 220px minmax(0, 820px);
  justify-content: center;
  gap: 46px;
  margin: 0 auto;
  padding: 58px 0 86px;
}

.legal-toc {
  position: sticky;
  top: 98px;
  align-self: start;
  display: grid;
  gap: 5px;
}
.legal-toc strong { margin-bottom: 7px; color: #d7d7dd; font: 800 .67rem/1 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; }
.legal-toc a { padding: 7px 9px; border-radius: 8px; color: #747481; font-size: .72rem; font-weight: 650; line-height: 1.3; text-decoration: none; }
.legal-toc a:hover { background: rgba(255,255,255,.035); color: #cfcfd7; }

.legal-document { min-width: 0; }
.legal-kicker { color: #9f9bff; font: 800 .67rem/1 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; }
.legal-document h1 { margin: 13px 0 10px; font-size: clamp(2.35rem, 6vw, 4.5rem); line-height: .98; letter-spacing: -.055em; }
.legal-lead { max-width: 720px; margin: 0; color: #b6b6c0; font-size: 1.05rem; line-height: 1.75; }
.legal-effective { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 22px; color: #747481; font: 700 .7rem/1.5 "JetBrains Mono", monospace; }
.legal-effective span { display: inline-flex; align-items: center; gap: 7px; }
.legal-effective i { width: 6px; height: 6px; border-radius: 50%; background: var(--legal-green); box-shadow: 0 0 9px rgba(34,197,94,.55); }

.legal-notice {
  margin: 28px 0 4px;
  padding: 17px 18px;
  border: 1px solid rgba(143,143,255,.18);
  border-radius: 14px;
  background: rgba(90,84,196,.065);
  color: #bcbccc;
  font-size: .84rem;
  line-height: 1.7;
}
.legal-notice strong { color: #fff; }

.legal-section { padding: 34px 0 4px; scroll-margin-top: 90px; }
.legal-section + .legal-section { border-top: 1px solid rgba(255,255,255,.055); margin-top: 27px; }
.legal-section h2 { margin: 0 0 14px; color: #f4f4f7; font-size: 1.33rem; letter-spacing: -.02em; }
.legal-section h3 { margin: 24px 0 9px; color: #dcdce3; font-size: .98rem; }
.legal-section p,
.legal-section li { color: var(--legal-muted); font-size: .89rem; line-height: 1.78; }
.legal-section p { margin: 0 0 13px; }
.legal-section ul { margin: 9px 0 15px; padding-left: 21px; }
.legal-section li + li { margin-top: 7px; }
.legal-section a { color: #b6b3ff; text-decoration: underline; text-underline-offset: 3px; }
.legal-section code { color: #d6d5ff; font-family: "JetBrains Mono", monospace; font-size: .82em; }
.legal-section .legal-caps { color: #bdbdc7; font-size: .78rem; font-weight: 750; line-height: 1.8; text-transform: uppercase; }

.legal-footer {
  border-top: 1px solid var(--legal-line);
  background: rgba(255,255,255,.012);
}
.legal-footer-inner {
  display: flex;
  width: min(1180px, calc(100% - 36px));
  min-height: 82px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 0 auto;
  color: #666672;
  font-size: .7rem;
}
.legal-footer-links { display: flex; flex-wrap: wrap; gap: 14px; }
.legal-footer a { color: #8d8d99; text-decoration: none; }
.legal-footer a:hover { color: #fff; }

/* Acceptance gate */
body.legal-accept-page { display: grid; min-height: 100vh; place-items: center; padding: 28px; }
.legal-accept-card {
  width: min(720px, 100%);
  overflow: hidden;
  border: 1px solid rgba(143,143,255,.19);
  border-radius: 24px;
  background:
    radial-gradient(circle at 100% 0, rgba(90,84,196,.14), transparent 36%),
    radial-gradient(circle at 0 100%, rgba(153,0,0,.08), transparent 42%),
    #09090d;
  box-shadow: 0 34px 110px rgba(0,0,0,.58);
}
.legal-accept-head { padding: 30px 30px 22px; border-bottom: 1px solid var(--legal-line); }
.legal-accept-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 26px; }
.legal-accept-brand img { width: 48px; height: 48px; }
.legal-accept-brand span { display: grid; gap: 2px; }
.legal-accept-brand strong { font-size: .9rem; letter-spacing: .04em; }
.legal-accept-brand small { color: #6f6f7b; font: 700 .58rem/1.2 "JetBrains Mono", monospace; letter-spacing: .08em; }
.legal-accept-badge { display: inline-flex; padding: 6px 9px; border: 1px solid rgba(34,197,94,.18); border-radius: 999px; background: rgba(34,197,94,.055); color: #7ad79a; font: 800 .62rem/1 "JetBrains Mono", monospace; letter-spacing: .08em; }
.legal-accept-head h1 { margin: 13px 0 10px; font-size: clamp(2rem, 7vw, 3.6rem); line-height: 1; letter-spacing: -.05em; }
.legal-accept-head p { margin: 0; color: #a5a5af; line-height: 1.7; }
.legal-accept-body { padding: 24px 30px 30px; }
.legal-accept-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 22px; }
.legal-accept-summary div { padding: 13px; border: 1px solid var(--legal-line); border-radius: 12px; background: rgba(255,255,255,.018); }
.legal-accept-summary span { display: block; color: #646470; font: 700 .58rem/1 "JetBrains Mono", monospace; letter-spacing: .08em; text-transform: uppercase; }
.legal-accept-summary strong { display: block; margin-top: 7px; color: #e7e7eb; font-size: .8rem; }
.legal-checks { display: grid; gap: 11px; }
.legal-check { display: flex; align-items: flex-start; gap: 12px; padding: 14px; border: 1px solid var(--legal-line); border-radius: 13px; background: rgba(255,255,255,.018); cursor: pointer; }
.legal-check input { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 1px; accent-color: #6d67df; }
.legal-check span { color: #a3a3ad; font-size: .8rem; line-height: 1.55; }
.legal-check strong { color: #ececf1; }
.legal-check a { color: #b9b6ff; }
.legal-accept-error { margin-bottom: 14px; padding: 12px 14px; border: 1px solid rgba(239,68,68,.2); border-radius: 11px; background: rgba(239,68,68,.07); color: #ffb0b0; font-size: .78rem; }
.legal-accept-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 20px; }
.legal-accept-actions small { max-width: 360px; color: #676773; line-height: 1.45; }
.legal-accept-button { min-height: 46px; padding: 0 18px; border: 1px solid rgba(143,143,255,.28); border-radius: 11px; background: linear-gradient(120deg, #840000, #504bb4); color: #fff; cursor: pointer; font-weight: 850; }
.legal-accept-button:hover { filter: brightness(1.08); }
.legal-accept-cancel { display: inline-block; margin-top: 16px; color: #6f6f7b; font-size: .73rem; text-decoration: none; }
.legal-accept-cancel:hover { color: #fff; }

@media (max-width: 860px) {
  .legal-shell { grid-template-columns: 1fr; gap: 10px; padding-top: 34px; }
  .legal-toc { position: static; display: flex; overflow-x: auto; padding-bottom: 8px; }
  .legal-toc strong { display: none; }
  .legal-toc a { flex: 0 0 auto; border: 1px solid rgba(255,255,255,.06); }
}

@media (max-width: 650px) {
  .legal-topbar-inner { width: min(100% - 24px, 1180px); min-height: 62px; }
  .legal-brand img { width: 36px; height: 36px; }
  .legal-brand small { display: none; }
  .legal-topnav a:not(.primary) { display: none; }
  .legal-shell { width: min(100% - 28px, 1180px); padding-bottom: 58px; }
  .legal-document h1 { font-size: 2.55rem; }
  .legal-accept-page { padding: 12px; }
  .legal-accept-head,
  .legal-accept-body { padding-left: 20px; padding-right: 20px; }
  .legal-accept-summary { grid-template-columns: 1fr; }
  .legal-accept-actions { align-items: stretch; flex-direction: column-reverse; }
  .legal-accept-button { width: 100%; }
  .legal-footer-inner { width: min(100% - 28px, 1180px); align-items: flex-start; flex-direction: column; padding: 22px 0; }
}
