/* Nodestacker legal pages (/privacy, /terms on nodestacker.com). Same tokens,
   type and marks as the node site (public/nodes-app.html): stark black and
   white, hierarchy from weight and rules rather than colour. */
:root{
  --paper:#FFFFFF; --ink:#0A0A0A; --ink-2:#3D3D3D; --ink-3:#767676;
  --rule:#E5E5E5; --wash:#F4F4F4; --mark-invert:0;
  --display:'Archivo Black',Impact,-apple-system,sans-serif;
  --mono:'Space Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --gutter:clamp(20px,5vw,56px);
}
@media (prefers-color-scheme:dark){
  :root{--paper:#0A0A0A; --ink:#FAFAFA; --ink-2:#B8B8B8; --ink-3:#8C8C8C;
    --rule:#262626; --wash:#141414; --mark-invert:1}
}

*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--paper);color:var(--ink-2);font-family:var(--sans);
  font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.wrap{max-width:1160px;margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}

/* The site bar only — the table of contents is also a <nav>, and must not
   inherit the sticky bar. */
body > nav{position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--rule)}
body > nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding-top:13px;padding-bottom:13px}
body > nav .brand img,footer img{height:22px;width:auto;filter:invert(var(--mark-invert))}
body > nav .links{display:flex;align-items:center;gap:clamp(12px,2.2vw,26px)}
body > nav .links a{font-family:var(--mono);font-size:11px;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--ink-3);text-decoration:none}
body > nav .links a:hover,body > nav .links a[aria-current="page"]{color:var(--ink)}
body > nav .links a.signin{color:var(--ink);border-bottom:2px solid var(--ink);padding-bottom:2px}

.legal{max-width:780px;padding-block:clamp(40px,7vw,80px)}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:3px;text-transform:uppercase;
  color:var(--ink);display:flex;align-items:center;gap:10px;margin-bottom:18px}
.eyebrow::before{content:"";width:24px;height:2px;background:currentColor}
h1{font-family:var(--display);font-weight:400;color:var(--ink);letter-spacing:-.025em;
  line-height:1;font-size:clamp(2.3rem,6vw,3.8rem);margin-bottom:14px}
.updated{font-family:var(--mono);font-size:12px;letter-spacing:.5px;color:var(--ink-3);margin-bottom:34px}
h2{font-family:var(--display);font-weight:400;color:var(--ink);letter-spacing:-.015em;line-height:1.15;
  font-size:clamp(1.25rem,2.6vw,1.6rem);margin:52px 0 14px;padding-top:18px;border-top:2px solid var(--ink);
  scroll-margin-top:72px}
h3{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
  color:var(--ink);margin:28px 0 10px}
p{margin-bottom:14px}
ul,ol{margin:0 0 16px;padding-left:22px}
li{margin-bottom:8px}
strong{color:var(--ink);font-weight:600}
code{font-family:var(--mono);font-size:.85em;background:var(--wash);padding:1px 5px}
.legal a{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
.callout{border:1px solid var(--ink);border-left-width:5px;padding:18px 20px;margin:22px 0 24px}
.callout p:last-child{margin-bottom:0}
.toc{background:var(--wash);padding:18px 22px 10px;margin:8px 0 0}
.toc ol{columns:2;column-gap:28px;margin:0}
.toc li{font-size:14px;margin-bottom:6px;break-inside:avoid}
.toc a{text-decoration:none!important}
@media(max-width:600px){.toc ol{columns:1}body > nav .links a:not(.signin){letter-spacing:1px}}

footer{border-top:2px solid var(--ink);padding-block:32px}
footer .wrap{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
footer img{height:16px}
footer .fl{display:flex;flex-wrap:wrap;gap:20px;font-family:var(--mono);font-size:11px;
  letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-3)}
footer .fl a{text-decoration:none}
footer .fl a:hover{color:var(--ink)}
