/* Shared shell for the MagicKeyPen legal pages (privacy.html, terms.html).
   Brand tokens, nav and footer are kept byte-consistent with the landing
   page (index.html); the legal pages add a calm, readable long-form prose
   layout on top. index.html stays self-contained and is intentionally left
   untouched — this file is the single source for the two legal pages only. */

:root {
  color-scheme: light dark;
  --bg:        #0B0B2D;
  --stroke:    rgba(155, 160, 220, 0.13);
  --text:      #EDEEFB;
  --muted:     #9EA2C6;
  --faint:     #6C6F97;
  --accent:    #46C6E6;
  --surface:   rgba(255, 255, 255, 0.035);
  --grad-text: linear-gradient(115deg, #43DCE6 0%, #6F9BFF 42%, #B06BF0 72%, #F55CB0 100%);
  --maxw:      1000px;
  --prose:     720px;
}

@media (prefers-color-scheme: light) {
  :root {
    --bg:        #EEF0F6;
    --stroke:    rgba(24, 26, 74, 0.10);
    --text:      #16183C;
    --muted:     #565A80;
    --faint:     #8A8EAF;
    --accent:    #0E8FA6;
    --surface:   rgba(24, 26, 74, 0.035);
    --grad-text: linear-gradient(115deg, #10A5B8 0%, #2E7BE6 42%, #7B3FD1 72%, #D81B6A 100%);
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Helvetica, Arial, sans-serif;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 28px; }
a { color: inherit; text-decoration: none; }

.grad-text { background: var(--grad-text); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* nav — mirrors index.html */
nav { border-bottom: 1px solid var(--stroke); position: relative; z-index: 20; }
nav .wrap { display: flex; align-items: center; justify-content: space-between; height: 68px; }
.brand { display: flex; align-items: center; gap: 11px; font-weight: 600; font-size: 16px; letter-spacing: -0.01em; }
.brand img { width: 26px; height: 26px; border-radius: 7px; }
.nav-links { display: flex; align-items: center; gap: 30px; font-size: 14.5px; color: var(--muted); }
.nav-links a { white-space: nowrap; }
.nav-links a:hover { color: var(--text); }
@media (max-width: 560px) {
  nav .wrap { gap: 12px; }
  .brand span { font-size: 15px; }
  .nav-links { gap: 16px; font-size: 13px; }
}
@media (max-width: 380px) { .brand span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } }

/* ---------- long-form legal prose ---------- */
main.legal { padding: 56px 0 8px; }
.prose { max-width: var(--prose); margin: 0 auto; }
.prose h1 { font-size: clamp(30px, 4vw, 40px); line-height: 1.15; letter-spacing: -0.02em; font-weight: 680; margin: 0 0 12px; }
.prose .updated { color: var(--muted); font-size: 14px; margin: 0 0 40px; }
.prose h2 { font-size: 21px; line-height: 1.25; letter-spacing: -0.01em; font-weight: 660; margin: 40px 0 12px; }
.prose h3 { font-size: 16.5px; line-height: 1.3; font-weight: 640; margin: 26px 0 8px; }
.prose p { color: var(--text); font-size: 16.5px; line-height: 1.7; margin: 0 0 16px; }
.prose ul, .prose ol { color: var(--text); font-size: 16.5px; line-height: 1.7; padding-left: 24px; margin: 0 0 16px; }
.prose li { margin: 0 0 8px; }
.prose li::marker { color: var(--faint); }
.prose a { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
.prose a:hover { filter: brightness(1.1); }
.prose strong { font-weight: 640; }
/* A field the product owner must fill before publishing (entity, email, date,
   jurisdiction, …). Deliberately conspicuous so none ship unfilled. */
.prose .ph {
  background: rgba(245, 92, 176, 0.14);
  color: var(--text);
  border: 1px dashed rgba(245, 92, 176, 0.5);
  border-radius: 5px;
  padding: 0 5px;
  font-size: 0.92em;
  font-style: italic;
}
/* the "short version" callout at the top of each document */
.prose .callout {
  background: var(--surface);
  border: 1px solid var(--stroke);
  border-radius: 12px;
  padding: 20px 22px;
  margin: 0 0 36px;
}
.prose .callout p:last-child { margin-bottom: 0; }
.prose .callout h2 { margin-top: 0; }

/* footer — mirrors index.html, plus a legal-link cluster */
footer { border-top: 1px solid var(--stroke); padding: 40px 0; margin-top: 64px; }
footer .wrap { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; }
footer .brand img { width: 24px; height: 24px; }
footer .muted { color: var(--muted); font-size: 14px; }
.foot-meta { display: flex; flex-direction: column; gap: 4px; align-items: flex-end; text-align: right; }
.legal-links { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 14px; color: var(--muted); }
.legal-links a:hover { color: var(--text); }
.legal-links .sep { color: var(--faint); }
@media (max-width: 560px) { .foot-meta { align-items: flex-start; text-align: left; } }
