:root { --bg:#0A0C0D; --panel:#101315; --ink:#ECEEEF; --body:#B4BBC0; --muted:#8B9298; --line:#1F2427; --g:#4ADE2E; --g2:#39B322; --ease:cubic-bezier(.16,1,.3,1); color-scheme:dark; }
* { box-sizing:border-box; margin:0; }
::selection { background:#245E17; color:#fff; }
html { scroll-behavior:smooth; scroll-padding-top:104px; scrollbar-color:#22282B var(--bg); }
body { background:radial-gradient(1200px 700px at 75% -10%, #10221A 0%, transparent 60%), radial-gradient(900px 600px at -10% 30%, #0E1B1D 0%, transparent 60%), linear-gradient(180deg, #0B100F 0%, #0A0C0D 55%, #0A0C0D 100%); background-color:var(--bg); color:var(--ink); font:16px/1.6 Geist, sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden; min-height:100vh; }
::-webkit-scrollbar { width:10px; } ::-webkit-scrollbar-track { background:var(--bg); } ::-webkit-scrollbar-thumb { background:#22282B; border-radius:10px; border:2px solid var(--bg); }
:focus-visible { outline:2px solid var(--g); outline-offset:3px; border-radius:4px; }
.wrap { max-width:1240px; margin:0 auto; padding:0 40px; position:relative; z-index:2; }
.mono { font-family:'Geist Mono', monospace; }
.skip { position:absolute; left:16px; top:-60px; z-index:20; padding:8px 14px; border-radius:10px; background:var(--g); color:#06130C; font-weight:600; font-size:14px; text-decoration:none; }
.skip:focus { top:12px; }

/* ambient background */
.ambient { position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.ambient .orb { position:absolute; border-radius:50%; filter:blur(90px); opacity:.45; }
.ambient .o1 { width:620px; height:620px; background:radial-gradient(circle, rgba(74,222,46,.18), transparent 65%); top:-220px; right:-160px; animation:drift1 26s ease-in-out infinite alternate; }
.ambient .o2 { width:520px; height:520px; background:radial-gradient(circle, rgba(57,179,34,.12), transparent 65%); top:48%; left:-240px; animation:drift2 32s ease-in-out infinite alternate; }
@keyframes drift1 { to { transform:translate(-160px,120px) scale(1.15); } }
@keyframes drift2 { to { transform:translate(180px,-90px) scale(1.1); } }
.ambient .dots { position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px); background-size:28px 28px; -webkit-mask-image:radial-gradient(ellipse 70% 45% at 70% 8%, #000 20%, transparent 75%); mask-image:radial-gradient(ellipse 70% 45% at 70% 8%, #000 20%, transparent 75%); }
.ambient::after { content:""; position:absolute; inset:0; opacity:.06; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* nav (same as home) */
.navbar { position:sticky; top:14px; z-index:10; }
nav.top { display:flex; justify-content:space-between; align-items:center; margin-top:14px; padding:8px 8px 8px 18px; border-radius:16px; border:1px solid rgba(255,255,255,.07); background:rgba(14,18,19,.55); backdrop-filter:blur(16px) saturate(140%); -webkit-backdrop-filter:blur(16px) saturate(140%); box-shadow:0 1px 0 rgba(255,255,255,.05) inset, 0 20px 40px -24px rgba(0,0,0,.8); transition:background .4s, border-color .4s; }
.navbar.scrolled nav.top { background:rgba(12,15,16,.82); border-color:rgba(255,255,255,.1); }
.logo { display:flex; align-items:center; gap:10px; font-weight:600; letter-spacing:-0.02em; font-size:18px; color:var(--ink); text-decoration:none; }
.logo i { width:22px; height:22px; border-radius:6px; background:conic-gradient(from 0deg, var(--g), #B7F5A6, var(--g2), var(--g)); animation:spin 8s linear infinite; position:relative; }
.logo i::after { content:""; position:absolute; inset:5px; border-radius:3px; background:#0E1213; }
@keyframes spin { to { transform:rotate(360deg); } }
nav.top ul { display:flex; gap:4px; list-style:none; padding:0; font-size:14px; }
nav.top ul a { display:block; padding:8px 14px; border-radius:10px; color:#A9B0B5; text-decoration:none; transition:color .25s, background .25s; }
nav.top ul a:hover { color:var(--ink); background:rgba(255,255,255,.05); }
.nav-r { display:flex; align-items:center; gap:14px; }
.sys { display:flex; align-items:center; gap:8px; font:500 12px 'Geist Mono'; color:#8B9298; letter-spacing:.03em; }
.sys i { width:7px; height:7px; border-radius:50%; background:var(--g); box-shadow:0 0 8px var(--g); animation:blink 2s steps(2) infinite; }
@keyframes blink { 50% { opacity:.2; } }
.cta { position:relative; display:inline-flex; align-items:center; gap:8px; padding:9px 14px; border-radius:10px; background:var(--g); color:#06130C; font-weight:600; font-size:14px; text-decoration:none; overflow:hidden; white-space:nowrap; box-shadow:0 0 0 1px rgba(74,222,46,.4), 0 8px 24px -8px rgba(74,222,46,.6); transition:transform .3s var(--ease), box-shadow .3s; }
.cta::after { content:""; position:absolute; top:0; bottom:0; width:40%; left:-60%; background:linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent); animation:shine 3.8s 1.5s ease-in-out infinite; }
@keyframes shine { 0% { left:-60%; } 40%,100% { left:130%; } }
.cta:hover { transform:translateY(-1px); box-shadow:0 0 0 1px rgba(74,222,46,.6), 0 12px 30px -8px rgba(74,222,46,.8); }
.cta.ghost { background:rgba(255,255,255,.04); color:var(--ink); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.cta.ghost::after { display:none; }
.cta.ghost:hover { background:rgba(255,255,255,.08); }

/* legal header */
.lhead { padding:72px 0 48px; border-bottom:1px solid var(--line); }
.eyebrow { display:flex; flex-wrap:wrap; align-items:center; gap:10px; font:500 12.5px 'Geist Mono'; color:var(--muted); letter-spacing:.04em; }
.eyebrow b { padding:3px 9px; border-radius:99px; background:rgba(74,222,46,.12); color:var(--g); font-weight:500; }
.lhead h1 { margin-top:22px; font-weight:500; font-size:clamp(36px,5vw,60px); line-height:1.04; letter-spacing:-0.04em; max-width:18ch; color:#E6EAEC; }
.updated { margin-top:16px; font:500 13px 'Geist Mono'; color:var(--muted); }
.summary { margin-top:22px; max-width:68ch; color:var(--body); font-size:17px; line-height:1.7; }
.meta { margin-top:30px; display:flex; flex-wrap:wrap; gap:12px 40px; padding-top:22px; border-top:1px solid var(--line); max-width:72ch; }
.meta dt { font:500 11.5px 'Geist Mono'; color:var(--muted); letter-spacing:.05em; text-transform:uppercase; }
.meta dd { margin-top:4px; font-size:14px; color:var(--ink); }
.policies { margin-top:30px; display:inline-flex; flex-wrap:wrap; gap:4px; padding:4px; border:1px solid var(--line); border-radius:12px; background:rgba(16,19,21,.7); }
.policies a { padding:8px 14px; border-radius:8px; font-size:14px; color:var(--muted); text-decoration:none; transition:color .25s, background .25s; }
.policies a:hover { color:var(--ink); }
.policies a[aria-current="page"] { color:var(--ink); background:#1C2124; box-shadow:inset 0 0 0 1px #2A3136; }

/* legal body */
.lbody { display:grid; grid-template-columns:250px minmax(0,1fr); gap:64px; padding:56px 0 96px; align-items:start; }
.lbody > aside { position:sticky; top:104px; }
.toc { max-height:calc(100vh - 128px); overflow:auto; scrollbar-width:thin; }
.toc summary { list-style:none; cursor:pointer; font:500 12px 'Geist Mono'; color:var(--muted); letter-spacing:.05em; text-transform:uppercase; }
.toc summary::-webkit-details-marker { display:none; }
.toc ol { list-style:none; padding:0; margin-top:16px; display:grid; gap:2px; }
.toc a { display:flex; gap:12px; padding:6px 10px; border-radius:8px; font-size:13.5px; line-height:1.45; color:var(--muted); text-decoration:none; border-left:2px solid transparent; transition:color .25s, background .25s, border-color .25s; }
.toc a span { font:500 11px 'Geist Mono'; padding-top:2px; color:#5A6267; flex-shrink:0; }
.toc a:hover { color:var(--ink); background:rgba(255,255,255,.03); }
.toc a.on { color:var(--ink); border-left-color:var(--g); background:rgba(74,222,46,.05); }
.toc a.on span { color:var(--g); }

.doc { max-width:72ch; color:var(--body); font-size:15.5px; line-height:1.75; }
.doc section { padding:34px 0; border-bottom:1px solid var(--line); }
.doc section:first-child { padding-top:0; }
.doc h2 { display:flex; align-items:baseline; gap:14px; font-weight:500; font-size:23px; line-height:1.25; letter-spacing:-0.02em; color:var(--ink); }
.doc h2 .n { font:500 12px 'Geist Mono'; color:var(--g); letter-spacing:.02em; flex-shrink:0; }
.doc h3 { margin-top:22px; font-weight:600; font-size:15.5px; color:var(--ink); }
.doc p, .doc ul, .doc ol { margin-top:14px; }
.doc ul, .doc ol { padding-left:22px; }
.doc li { margin-top:8px; padding-left:4px; }
.doc li::marker { color:#4A5157; }
.doc strong { color:var(--ink); font-weight:600; }
.doc a, .contact a, .lost a.inline { color:var(--g); text-decoration:underline; text-decoration-color:rgba(74,222,46,.35); text-underline-offset:3px; overflow-wrap:anywhere; transition:text-decoration-color .25s, color .25s; }
.doc a:hover, .contact a:hover { color:#7FE36A; text-decoration-color:currentColor; }
.doc code { font:500 13.5px 'Geist Mono'; color:var(--ink); padding:1px 6px; border-radius:5px; background:#14181A; border:1px solid var(--line); }
.note { margin-top:16px; padding:16px 18px; border-radius:12px; border:1px solid var(--line); background:rgba(16,19,21,.7); }
.note p:first-child { margin-top:0; }

.contact { margin-top:44px; display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:28px 30px; border-radius:14px; border:1px solid var(--line); background:rgba(16,19,21,.6); max-width:72ch; }
.contact .k { font:500 12px 'Geist Mono'; color:var(--muted); margin-bottom:8px; letter-spacing:.03em; }
.contact p, .contact address { font-size:14.5px; font-style:normal; line-height:1.7; color:var(--ink); }

/* subtle fade-in */
.js .fade { opacity:0; transform:translateY(14px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.js .fade.in { opacity:1; transform:none; }

/* 404 */
.lost { padding:110px 0 120px; max-width:720px; }
.lost .code { font:500 13px 'Geist Mono'; color:var(--g); letter-spacing:.06em; }
.lost h1 { margin-top:18px; font-weight:500; font-size:clamp(38px,5.4vw,64px); line-height:1.02; letter-spacing:-0.042em; color:#E6EAEC; max-width:14ch; }
.lost p { margin-top:20px; color:var(--body); font-size:17px; max-width:52ch; }
.lost .actions { margin-top:30px; display:flex; flex-wrap:wrap; gap:10px; }
.lost ul { list-style:none; padding:24px 0 0; margin-top:44px; border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); gap:10px 24px; font-size:14.5px; }
.lost ul a { color:var(--ink); text-decoration:none; } .lost ul a:hover { color:var(--g); }

/* footer (same as home) */
footer { border-top:1px solid var(--line); padding:48px 0 40px; font-size:14px; line-height:1.9; }
.f-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:32px; }
.f-brand p { margin-top:14px; color:var(--muted); max-width:34ch; line-height:1.6; }
footer .addr { color:var(--muted); display:inline-block; line-height:1.6; margin-top:4px; }
.f-bottom { margin-top:40px; padding-top:20px; border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:16px; font-size:12.5px; color:#6B7378; }
.f-bottom .mono { letter-spacing:.08em; text-transform:uppercase; font-size:11.5px; }
footer .k { font:500 12px 'Geist Mono'; color:var(--muted); margin-bottom:8px; }
footer a { color:var(--ink); text-decoration:none; } footer a:hover { color:var(--g); }

@media (max-width: 1024px) {
  .f-grid { grid-template-columns:1fr 1fr; }

}
@media (max-width: 1000px) {
  .lbody { grid-template-columns:minmax(0,1fr); gap:32px; padding-top:36px; }
  .lbody > aside { position:static; }
  .toc { max-height:none; padding:16px 18px; border:1px solid var(--line); border-radius:14px; background:rgba(16,19,21,.7); }
  .toc summary { display:flex; justify-content:space-between; align-items:center; }
  .toc summary::after { content:"+"; font-size:16px; color:var(--g); }
  .toc[open] summary::after { content:"\2212"; }
}
@media (max-width: 760px) {
  .wrap { padding:0 16px; }
  nav.top { padding:6px 6px 6px 14px; }
  nav.top ul { display:none; }
  .cta { padding:8px 12px; font-size:13.5px; }
  .lhead { padding:48px 0 36px; }
  .summary { font-size:16px; }
  .doc { font-size:15px; }
  .doc h2 { font-size:20px; }
  .contact { grid-template-columns:1fr; padding:22px; }
  .lost { padding:72px 0 88px; }
  .lost ul { grid-template-columns:1fr 1fr; }
}
@media (max-width: 420px) {
  .f-grid { grid-template-columns:1fr; gap:24px; }
  .f-bottom { flex-direction:column; }
  .policies { display:flex; }
  .policies a { flex:1; text-align:center; padding:8px 8px; font-size:13px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation:none !important; transition:none !important; }
  .js .fade { opacity:1 !important; transform:none !important; }
}
