/* fed-field-editor site — shared base, in the smisco.biz house style
   (palette + fonts shared with smisco.biz/ts6). Linked by index.html and the
   doc pages (readme/terms/privacy). */
:root{
  --bg:#0a0c11; --bg2:#0e121a; --panel:#12161f; --raised:#171c28;
  --ink:#e9ecf2; --dim:#9aa6b8; --faint:#5e6a7c;
  --line:rgba(255,255,255,.09); --line2:rgba(255,255,255,.05);
  --gold:#ffd166; --gold2:#f6b73c; --err:#ff5d6c;
  --blue:#5fb0ff; --cyan:#52cdd9; --green:#5ad29b;
  --maxw:1140px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"Familjen Grotesk",system-ui,sans-serif;
  font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(900px 520px at 82% -8%, rgba(255,209,102,.08), transparent 60%),
    radial-gradient(820px 600px at 4% 2%, rgba(95,176,255,.07), transparent 60%),
    radial-gradient(rgba(255,255,255,.028) 1px, transparent 1px);
  background-size:auto,auto,30px 30px;
}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px; position:relative; z-index:1}
a{color:var(--ink); text-decoration:none}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace}
::selection{background:rgba(255,209,102,.28); color:#fff}

/* top bar */
.topbar{
  position:sticky; top:0; z-index:30; backdrop-filter:blur(10px);
  background:linear-gradient(to bottom, rgba(10,12,17,.86), rgba(10,12,17,.55));
  border-bottom:1px solid var(--line2);
}
.topbar .wrap{display:flex; align-items:center; justify-content:space-between; height:60px}
.brand{font-family:"Syne",sans-serif; font-weight:800; font-size:19px; letter-spacing:-.01em; display:flex; align-items:center; gap:10px; color:var(--ink)}
.brand .tag{font-family:"IBM Plex Mono",monospace; font-weight:600; font-size:13px; color:var(--bg); background:var(--gold); padding:2px 7px; border-radius:6px}
.navlinks{display:flex; gap:26px; font-family:"IBM Plex Mono",monospace; font-size:13.5px; color:var(--dim)}
.navlinks a:hover{color:var(--ink)}
.navlinks .gh{color:var(--gold)}
@media(max-width:560px){.navlinks a.hide-sm{display:none}}

/* footer */
footer{border-top:1px solid var(--line2); padding:40px 0 64px; margin-top:60px}
.foot{display:flex; flex-wrap:wrap; gap:18px; align-items:center; justify-content:space-between; font-family:"IBM Plex Mono",monospace; font-size:13px; color:var(--faint)}
.foot a{color:var(--dim)} .foot a:hover{color:var(--gold)}
.foot .v{color:var(--gold)}

/* document pages (readme/terms/privacy) */
.doc{max-width:840px; margin:0 auto; padding:clamp(36px,6vw,64px) 28px clamp(56px,7vw,88px); position:relative; z-index:1}
.doc-eyebrow{font-family:"IBM Plex Mono",monospace; font-size:12.5px; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); margin:0 0 22px}
.prose{color:var(--ink); font-size:17px; line-height:1.72}
.prose>h1:first-child{font-family:"Syne",sans-serif; font-weight:800; font-size:clamp(34px,5.4vw,54px); letter-spacing:-.025em; line-height:1.05; margin:0 0 6px}
.prose h2{font-family:"Syne",sans-serif; font-weight:800; font-size:clamp(23px,3vw,31px); letter-spacing:-.015em; margin:54px 0 14px; padding-top:26px; border-top:1px solid var(--line2)}
.prose h3{font-family:"Syne",sans-serif; font-weight:700; font-size:20px; margin:34px 0 10px}
.prose p{margin:15px 0; color:var(--dim)}
.prose>h1:first-child + p{font-size:19px; color:var(--ink); margin-top:14px}
.prose strong{color:var(--ink); font-weight:600}
.prose em{color:var(--ink); font-style:italic}
.prose a{color:var(--gold)} .prose a:hover{text-decoration:underline}
.prose ul,.prose ol{margin:14px 0; padding-left:24px; color:var(--dim)}
.prose li{margin:8px 0}
.prose li::marker{color:var(--faint)}
.prose code{font-family:"IBM Plex Mono",monospace; font-size:.85em; background:rgba(255,255,255,.05); border:1px solid var(--line2); border-radius:6px; padding:1.5px 6px; color:var(--ink)}
.prose pre{background:#0b0e14; border:1px solid var(--line); border-radius:14px; padding:18px 20px; overflow-x:auto; margin:20px 0}
.prose pre code{background:none; border:none; padding:0; font-size:13.5px; line-height:1.75; color:var(--ink)}
.prose table{width:100%; border-collapse:collapse; font-size:15px; margin:20px 0; display:block; overflow-x:auto}
.prose thead th{font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--faint); font-weight:500; white-space:nowrap}
.prose th,.prose td{text-align:left; padding:10px 14px; border-bottom:1px solid var(--line2); vertical-align:top}
.prose tbody tr:hover{background:rgba(255,255,255,.018)}
.prose blockquote{border-left:3px solid var(--gold); margin:20px 0; padding:6px 0 6px 20px; color:var(--dim)}
.prose hr{border:none; border-top:1px solid var(--line2); margin:34px 0}
.doc-foot-note{margin-top:40px; padding-top:22px; border-top:1px solid var(--line2); font-family:"IBM Plex Mono",monospace; font-size:13px; color:var(--faint)}
.doc-foot-note a{color:var(--dim)} .doc-foot-note a:hover{color:var(--gold)}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
