:root{--ink:#17201c;--green:#1f5c4a;--mid:#3f6f61;--mute:#56675f;--line:#dfe6e2;--ground:#fbfcfb;--accent:#d98c6b;--rail-bg:#17201c;--rail-fg:#dde6e1;--rail-accent:#fff}
*{box-sizing:border-box}
html{background:var(--ground)}
body{margin:0;background:var(--ground);color:var(--ink);font-family:-apple-system,"Helvetica Neue",Inter,Arial,sans-serif;line-height:1.5;position:relative}
#fern{position:fixed;inset:40px 0 0 0;width:100%;height:calc(100% - 40px);z-index:0;pointer-events:none;opacity:.9}
.top,main,footer{position:relative;z-index:1}
.top{display:flex;align-items:center;gap:28px;flex-wrap:wrap;padding:14px clamp(16px,4vw,40px);border-bottom:1px solid var(--line);background:rgba(251,252,251,.9);backdrop-filter:blur(6px)}
.brand{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:18px;letter-spacing:-.01em;color:var(--green);text-decoration:none;padding:8px 0}.brand svg{width:22px;height:22px}
.tabs{display:flex;gap:4px}.tabs a{color:var(--mute);text-decoration:none;font-size:13px;padding:12px 10px;border-bottom:2px solid transparent}.tabs a.on,.tabs a:hover{color:var(--ink);border-color:var(--green)}
.eco-home{margin:0 0 0 auto;font-size:12px;color:var(--mute)}.eco-home a{color:var(--green);font-weight:600;text-decoration:none;display:inline-block;padding:12px 2px;margin:-12px -2px;border-bottom:1px solid var(--line)}.eco-home a:hover{border-color:var(--green)}.eco-home span{margin:0 6px;color:#b9c7c0}
main{max-width:1180px;margin:0 auto;padding:36px clamp(16px,4vw,40px) 60px}
.eyebrow{margin:0 0 14px;font:600 11px/1 ui-monospace,Menlo,monospace;letter-spacing:.2em;text-transform:uppercase;color:var(--mid)}.eyebrow span{color:var(--accent);margin:0 8px}
.lede h1{margin:0;font:400 clamp(28px,4vw,46px)/1.15 "Iowan Old Style",Palatino,Georgia,serif;letter-spacing:-.015em;max-width:26ch;color:var(--ink)}
.sub{margin:14px 0 0;max-width:62ch;color:var(--mute);font-size:15px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:30px 0 26px}
.kpis div{background:rgba(251,252,251,.96);padding:16px 18px}.kpis b{display:block;font:400 30px/1 "Iowan Old Style",Palatino,Georgia,serif;color:var(--green)}.kpis span{display:block;font-size:13px;margin-top:4px}.kpis em{display:block;font:400 11px/1.4 ui-monospace,Menlo,monospace;color:var(--mute);margin-top:4px}
.board{display:grid;grid-template-columns:200px minmax(0,1fr) 240px;gap:1px;background:var(--line);border:1px solid var(--line);margin:0 0 40px}
.board>*{background:rgba(251,252,251,.96);padding:18px}
.lbl{margin:0 0 10px;font:600 11px/1 ui-monospace,Menlo,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.filters ul{list-style:none;margin:0;padding:0}.filters li a{display:flex;align-items:center;gap:10px;padding:9px 6px;min-height:40px;text-decoration:none;color:var(--ink);font-size:14px;border-radius:4px}
.filters li a i{width:9px;height:9px;border-radius:50%;background:var(--c);flex:none}.filters li a b{margin-left:auto;font:400 11px ui-monospace,Menlo,monospace;color:var(--mute)}
.filters li a.on,.filters li a:hover{background:#eef4f1}
.fine{font:400 11px/1.5 ui-monospace,Menlo,monospace;color:var(--mute);margin:12px 0 0}
.map{margin:0;display:flex;flex-direction:column}.mhead{display:flex;align-items:baseline;gap:12px;font-size:13px;color:var(--mute);margin-bottom:8px}.mhead b{color:var(--ink);font-size:14px}
.chip{margin-left:auto;border:1px solid var(--line);border-radius:999px;padding:3px 10px;font:400 11px ui-monospace,Menlo,monospace}
#tree{width:100%;height:auto;display:block;flex:1}
.map figcaption{font:400 11px/1.5 ui-monospace,Menlo,monospace;color:var(--mute);margin-top:8px}
.entity h3{margin:0;font:400 26px/1 "Iowan Old Style",Palatino,Georgia,serif;color:var(--green)}.entity .tag{margin:6px 0 14px;font:400 11px ui-monospace,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.entity dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:13px}.entity dt{font:400 11px/1.7 ui-monospace,Menlo,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}.entity dd{margin:0}
.sh{display:grid;gap:4px;margin:0 0 14px}.sh h2{margin:0;font:400 24px/1.1 "Iowan Old Style",Palatino,Georgia,serif}.sh p{margin:0;color:var(--mute);font-size:14px;max-width:62ch}
.entries{margin:0 0 40px}.entries table{width:100%;border-collapse:collapse;font-size:14px;background:rgba(251,252,251,.96);border:1px solid var(--line)}
.entries th{text-align:left;font:600 11px/1 ui-monospace,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);padding:12px 14px;border-bottom:1px solid var(--line)}
.entries td{padding:13px 14px;border-bottom:1px solid var(--line)}.entries tr:last-child td{border-bottom:0}.entries .ghost td{color:var(--mute);font-style:italic}
.spark{display:inline-block;width:46px;height:12px;margin-right:8px;vertical-align:middle;background:linear-gradient(90deg,transparent 0 48%,var(--line) 48% 52%,transparent 52%),repeating-linear-gradient(90deg,var(--line) 0 2px,transparent 2px 6px) bottom/100% 1px no-repeat}
.graph{margin:0 0 40px}.gwrap{background:rgba(251,252,251,.96);border:1px solid var(--line);padding:16px}#net{width:100%;height:auto;display:block}
.about .cols{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;background:rgba(251,252,251,.96);border:1px solid var(--line);padding:20px 22px}.about p{margin:0;max-width:60ch;font-size:15px}
.links{display:flex;gap:18px;flex-wrap:wrap}.links a{color:var(--green);font-weight:600;text-decoration:none;border-bottom:1px solid var(--green);padding:10px 0;min-height:44px;display:inline-block}
footer{padding:18px clamp(16px,4vw,40px);font-size:13px;color:var(--mute);border-top:1px solid var(--line);background:rgba(251,252,251,.9)}
a:focus-visible{outline:2px solid var(--green);outline-offset:2px}
@media(max-width:900px){.board{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}.filters ul{display:grid;grid-template-columns:1fr 1fr}.about .cols{grid-template-columns:1fr}}
@media(max-width:600px){.tabs{order:3;width:100%;overflow-x:auto}.eco-home{margin-left:0}.entries table{font-size:13px}.entries th:nth-child(4),.entries td:nth-child(4),.entries th:nth-child(5),.entries td:nth-child(5){display:none}}
@media(prefers-reduced-motion:reduce){#fern{opacity:.6}}

/* ===== sign-in gate (Casey, 2026-10-04): the tree as the welcome figure, sign in on the page ===== */
.top .auth{margin-left:auto;display:flex;gap:8px;align-items:center}
.gbtn{display:inline-flex;align-items:center;min-height:40px;padding:10px 18px;border-radius:999px;border:1.5px solid var(--green);color:var(--green);text-decoration:none;font:600 14px -apple-system,"Helvetica Neue",Helvetica,Arial,sans-serif;background:transparent}
.gbtn.solid{background:var(--green);color:#fff}.gbtn:hover{border-color:var(--ink);color:var(--ink)}.gbtn.solid:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.gate{display:grid;justify-items:center;gap:10px;padding:26px clamp(16px,4vw,40px) 8px;text-align:center}
.gate svg{width:min(100%,760px);height:auto;display:block}
.gate-lbl{margin:0;font:600 11px ui-monospace,Menlo,Consolas,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.gate-cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.gate-fine{margin:0;font-size:12px;color:var(--mute)}
@media (max-width:700px){.top .auth{margin-left:0}}
