:root{
  --bg:#FFFFFF; --bg2:#F8FAFC; --bg3:#F1F5F9; --ink:#0F172A;
  --brand:#3678F9; --brand-deep:#1D4ED8; --brand-soft:#60A5FA;
  --cyan:#38BDF8; --cyan-soft:#7DD3FC;
  --violet:#7C5CFC; --green:#22C55E; --red:#EF4444; --rose:#E11D48;
  --gold:#E6B450; --amber:#F59E0B;
  --surface:rgba(255,255,255,.72); --edge:rgba(15,23,42,.08);
  --t900:#0F172A; --t600:#475569; --t500:#64748B; --t400:#94A3B8;
  --page-bg:#F0EEE9;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; background:var(--bg); color:var(--t900); overflow-x:hidden; }
body, .mn{ font-family:'Manrope', system-ui, -apple-system, sans-serif; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
.mono{ font-family:'JetBrains Mono', ui-monospace, monospace; }
::selection{ background:rgba(54,120,249,.18); color:#0F172A; }

/* scrollbar */
::-webkit-scrollbar{ width:11px; height:11px; }
::-webkit-scrollbar-track{ background:#F1F5F9; }
::-webkit-scrollbar-thumb{ background:linear-gradient(#3678F9,#1D4ED8); border-radius:99px; border:3px solid #F1F5F9; }

/* glass */
.glass{ background:var(--surface); backdrop-filter:blur(16px) saturate(140%); -webkit-backdrop-filter:blur(16px) saturate(140%); }
.glass-edge{ box-shadow: inset 0 1px 0 rgba(255,255,255,.75), 0 12px 34px rgba(15,23,42,.08), 0 0 0 1px rgba(15,23,42,.06); }
.ring-soft{ box-shadow:0 0 0 1px rgba(15,23,42,.10), 0 8px 22px rgba(15,23,42,.10); }

/* gradient text */
.grad-brand{ background:linear-gradient(100deg,#38BDF8 0%,#3678F9 45%,#1D4ED8 100%); -webkit-background-clip:text; background-clip:text; color:transparent !important; }
.grad-gold{ background:linear-gradient(100deg,#E6B450,#D4A017 60%,#B45309); -webkit-background-clip:text; background-clip:text; color:transparent !important; }

/* LIGHT THEME: remap dark-theme text/bg utilities → slate on light */
body .text-white{ color:#0F172A; }
body .text-slate-200{ color:#334155; }
body .text-slate-300{ color:#475569; }
body .text-slate-400{ color:#64748B; }
body .text-slate-500{ color:#94A3B8; }
body .hover\:text-white:hover{ color:#0F172A; }
body .bg-white\/5{ background-color:rgba(15,23,42,.04); }
body .bg-white\/10{ background-color:rgba(15,23,42,.10); }
body .hover\:bg-white\/5:hover{ background-color:rgba(15,23,42,.05); }
body .hover\:bg-white\/10:hover{ background-color:rgba(15,23,42,.08); }

/* map grid (light app mockups) */
.lmap{ background-image:
    linear-gradient(rgba(54,120,249,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(54,120,249,.05) 1px,transparent 1px);
  background-size:30px 30px,30px 30px; }

.grain{ position:fixed; inset:0; pointer-events:none; z-index:80; opacity:.03; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* reveal — content is always visible; entrance handled statically for reliability */
.reveal{ opacity:1; }

@keyframes floaty{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-14px) } }
@keyframes floatySlow{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-9px) } }
@keyframes auroraShift{ 0%,100%{ transform:translate3d(0,0,0) rotate(0deg) } 50%{ transform:translate3d(2%,-3%,0) rotate(4deg) } }
@keyframes haloPulse{ 0%,100%{ opacity:.7; transform:scale(1) } 50%{ opacity:1; transform:scale(1.05) } }
@keyframes spin{ to{ transform:rotate(360deg) } }
.float{ animation:floaty 5.5s ease-in-out infinite; }
.floatS{ animation:floatySlow 6.5s ease-in-out infinite; }

/* ── prose (legal pages) ── */
.prose{ color:#334155; font-size:16px; line-height:1.72; }
.prose p{ margin:0 0 1.05em; }
.prose strong{ color:#0F172A; font-weight:700; }
.prose a{ color:#1D4ED8; font-weight:600; text-decoration:none; border-bottom:1px solid rgba(29,78,216,.3); }
.prose a:hover{ border-bottom-color:#1D4ED8; }
.prose ul{ margin:0 0 1.2em; padding:0; list-style:none; }
.prose ul li{ position:relative; padding-left:1.5em; margin:0 0 .6em; }
.prose ul li::before{ content:""; position:absolute; left:.1em; top:.62em; width:6px; height:6px; border-radius:99px; background:#3678F9; }
.prose ol{ margin:0 0 1.2em; padding-left:1.3em; }
.prose ol li{ margin:0 0 .55em; padding-left:.2em; }
.prose h3{ font-family:'Manrope',sans-serif; color:#0F172A; font-weight:800; font-size:15px; letter-spacing:.01em; margin:1.6em 0 .55em; }

/* anchor offset under sticky nav */
.legal-sec{ scroll-margin-top:120px; }

/* TOC active */
.toc-link{ display:block; padding:7px 12px; border-radius:10px; font-size:13.5px; font-weight:600; color:#64748B; border-left:2px solid transparent; transition:all .2s; }
.toc-link:hover{ color:#1D4ED8; background:rgba(54,120,249,.05); }
.toc-link.active{ color:#1D4ED8; background:rgba(54,120,249,.08); border-left-color:#3678F9; }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; }
  .reveal{ opacity:1 !important; transform:none !important; }
  html{ scroll-behavior:auto; }
}
