/* rivnode — holding site
   Palette locked to brand: navy-slate ground, azure→cyan node, teal ring. */

:root{
  --ink:#0B1017;
  --ink2:#0E1620;
  --panel:#16202B;
  --line:rgba(255,255,255,.075);
  --line2:rgba(255,255,255,.14);
  --tx:#E6EDF3;
  --tx2:#A5B4C2;
  --tx3:#6E8093;
  --tx4:#4C5C6C;
  --node-a:#4FA6EA;
  --node-b:#1FBEC2;
  --ring:#2BBFA0;
  --warn:#C08334;

  --sans:ui-sans-serif,-apple-system,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono","Cascadia Mono","Roboto Mono",Menlo,Consolas,monospace;

  --measure:64ch;
}

*{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--ink);
  color:var(--tx2);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}

/* faint vertical seam echoing a tree edge, behind everything */
body::before{
  content:"";
  position:fixed; inset:0;
  background:
    radial-gradient(900px 500px at 22% -8%, rgba(79,166,234,.10), transparent 62%),
    radial-gradient(700px 420px at 88% 4%, rgba(31,190,194,.06), transparent 60%);
  pointer-events:none;
}

.wrap{
  position:relative;
  max-width:760px;
  margin:0 auto;
  padding:0 26px;
}

/* ── masthead ─────────────────────────────────────────── */

header.top{
  border-bottom:1px solid var(--line);
  background:rgba(11,16,23,.72);
  backdrop-filter:blur(8px);
  position:sticky; top:0; z-index:10;
}
.top-in{
  max-width:760px; margin:0 auto; padding:0 26px;
  height:58px; display:flex; align-items:center; gap:12px;
}
.wordmark{
  font-weight:640; font-size:17px; letter-spacing:-.015em; color:var(--tx);
  text-decoration:none;
}
.wordmark i{font-style:normal;color:var(--node-a)}
.top-in nav{margin-left:auto;display:flex;gap:18px}
.top-in nav a{
  font-family:var(--mono); font-size:11.5px; letter-spacing:.04em;
  color:var(--tx3); text-decoration:none;
}
.top-in nav a:hover{color:var(--tx)}

/* ── hero ─────────────────────────────────────────────── */

.hero{padding:74px 0 56px}

.mark{display:block;margin:0 0 34px}

.eyebrow{
  font-family:var(--mono); font-size:11px; letter-spacing:.17em;
  text-transform:uppercase; color:var(--tx4); margin:0 0 16px;
}

h1{
  font-size:clamp(30px,5.4vw,44px);
  line-height:1.08; letter-spacing:-.028em; font-weight:660;
  color:var(--tx); margin:0 0 20px;
}

.lede{font-size:18px;line-height:1.6;color:var(--tx2);max-width:var(--measure);margin:0}
.lede + .lede{margin-top:16px}

.mantra{
  font-family:var(--mono); font-size:12px; letter-spacing:.06em;
  color:var(--node-b); margin:26px 0 0;
}

/* ── sections ─────────────────────────────────────────── */

section{padding:44px 0;border-top:1px solid var(--line)}

h2{
  font-size:13px; font-family:var(--mono); font-weight:600;
  letter-spacing:.13em; text-transform:uppercase;
  color:var(--tx3); margin:0 0 20px;
}

h3{font-size:16px;font-weight:620;color:var(--tx);margin:26px 0 7px}

p{max-width:var(--measure);margin:0 0 15px}
p:last-child{margin-bottom:0}

a{color:var(--node-a)}
a:hover{color:var(--node-b)}

ul{max-width:var(--measure);margin:0 0 15px;padding-left:0;list-style:none}
li{position:relative;padding-left:20px;margin-bottom:9px}
li::before{
  content:""; position:absolute; left:2px; top:.68em;
  width:5px; height:5px; border-radius:50%; background:var(--node-a);
}
ul.plain li::before{background:var(--tx4)}

/* the "is not" list — the distinguishing content, marked as denial */
ul.isnot li::before{
  content:""; background:none;
  left:1px; top:.52em;
  width:9px; height:2px; border-radius:0;
  background:var(--tx4);
}

strong,b{color:var(--tx);font-weight:600}

/* ── spec table ───────────────────────────────────────── */

dl.spec{
  margin:0; max-width:var(--measure);
  border-top:1px solid var(--line);
}
dl.spec div{
  display:grid; grid-template-columns:190px 1fr; gap:18px;
  padding:11px 0; border-bottom:1px solid var(--line);
}
dl.spec dt{
  font-family:var(--mono); font-size:11.5px; letter-spacing:.04em;
  color:var(--tx3); padding-top:2px;
}
dl.spec dd{margin:0;color:var(--tx2)}
@media (max-width:560px){
  dl.spec div{grid-template-columns:1fr;gap:3px}
}

/* ── status notice ────────────────────────────────────── */

.notice{
  max-width:var(--measure);
  background:rgba(192,131,52,.08);
  border:1px solid rgba(192,131,52,.28);
  border-radius:9px;
  padding:15px 17px;
  color:#DCBC8B;
  font-size:14.5px; line-height:1.55;
}
.notice b{color:#F0D6A8}

.callout{
  max-width:var(--measure);
  background:var(--ink2);
  border:1px solid var(--line);
  border-left:2px solid var(--ring);
  border-radius:0 8px 8px 0;
  padding:15px 17px;
  font-size:14.5px;
}

/* ── footer ───────────────────────────────────────────── */

footer{
  border-top:1px solid var(--line);
  padding:32px 0 60px;
  font-size:13.5px; color:var(--tx3);
}
footer .links{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 16px}
footer .links a{
  font-family:var(--mono); font-size:11.5px; letter-spacing:.04em;
  color:var(--tx3); text-decoration:none;
}
footer .links a:hover{color:var(--tx)}
footer .fine{font-size:12.5px;color:var(--tx4);max-width:var(--measure)}

/* ── legal-page typography ────────────────────────────── */

.doc{padding:56px 0 20px}
.doc h1{font-size:clamp(25px,4vw,32px);margin-bottom:8px}
.doc .updated{
  font-family:var(--mono); font-size:11px; letter-spacing:.06em;
  color:var(--tx4); margin:0 0 34px;
}
.doc section{padding:30px 0}
.doc section:first-of-type{border-top:1px solid var(--line)}
.doc h2{
  font-family:var(--sans); font-size:17px; text-transform:none;
  letter-spacing:-.01em; color:var(--tx); font-weight:620; margin-bottom:12px;
}
.doc h2 span{
  font-family:var(--mono); font-size:11.5px; color:var(--tx4);
  letter-spacing:.06em; margin-right:10px;
}

/* ── a11y floor ───────────────────────────────────────── */

a:focus-visible,
.wordmark:focus-visible{
  outline:2px solid var(--ring);
  outline-offset:3px;
  border-radius:2px;
}

/* edges draw in on load; disabled for reduced motion */
.edge{
  stroke-dasharray:120;
  stroke-dashoffset:120;
  animation:draw .9s cubic-bezier(.4,0,.2,1) forwards;
}
.edge.e2{animation-delay:.13s}
.edge.e3{animation-delay:.26s}
@keyframes draw{to{stroke-dashoffset:0}}

.node-pulse{animation:fade .6s ease .5s both}
@keyframes fade{from{opacity:0}to{opacity:1}}

@media (prefers-reduced-motion:reduce){
  .edge{animation:none;stroke-dashoffset:0}
  .node-pulse{animation:none;opacity:1}
  *{transition:none!important}
}
