/* ccnodes.net landing — schematic theme, self-contained (no external assets/CDN) */

/* ---------- design tokens ---------- */
:root,:root[data-theme="light"]{
  --bg:#f4f4f0;--panel:#fbfbf8;--ink:#11140f;--dim:#5a5f54;--faint:#8c9183;
  --line:#d3d4c8;--line-2:#bcbeb0;--accent:#0c7d55;--accent-soft:rgba(12,125,85,.07);
  --grid:rgba(17,20,15,.04);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0c0e0b;--panel:#12150f;--ink:#e8eadf;--dim:#9aa08c;--faint:#666c58;
  --line:#23271c;--line-2:#333827;--accent:#3ddc97;--accent-soft:rgba(61,220,151,.08);
  --grid:rgba(232,234,223,.035);
}}
:root[data-theme="dark"]{
  --bg:#0c0e0b;--panel:#12150f;--ink:#e8eadf;--dim:#9aa08c;--faint:#666c58;
  --line:#23271c;--line-2:#333827;--accent:#3ddc97;--accent-soft:rgba(61,220,151,.08);
  --grid:rgba(232,234,223,.035);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--ink);line-height:1.55;
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:34px 34px;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
.mono{font-family:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;}

/* reactive node-network backdrop (drawn by main.js) */
#net{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;}

.wrap{max-width:1080px;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line);
  background:color-mix(in srgb, var(--bg) 87%, transparent);backdrop-filter:blur(2px);}
.pad{padding:0 28px;}

/* nav */
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:10;}
.brand{display:flex;align-items:center;gap:9px;font-size:1.05rem;letter-spacing:-.01em;}
.brand strong{color:var(--accent);}
.brand-mark circle{fill:var(--accent);}
.brand-mark path{stroke:var(--faint);stroke-width:1.6;fill:none;}
.nav-r{display:flex;align-items:center;gap:20px;}
.nav-links{display:flex;gap:18px;}
.nav-links a{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);}
.nav-links a:hover{color:var(--accent);}
.toggle{display:inline-flex;border:1px solid var(--line);}
.toggle button{width:30px;height:26px;display:grid;place-items:center;background:transparent;border:0;border-right:1px solid var(--line);color:var(--faint);cursor:pointer;}
.toggle button:last-child{border-right:0;}
.toggle button svg{width:15px;height:15px;}
.toggle button[aria-pressed="true"]{color:var(--accent);background:var(--accent-soft);}

/* section labels */
.sec-tag{display:flex;align-items:center;gap:10px;padding:10px 28px;border-bottom:1px solid var(--line);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);}
.sec-tag b{color:var(--accent);font-weight:600;}

/* hero */
.hero{padding:64px 28px 56px;border-bottom:1px solid var(--line);}
.hero .ey{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 22px;}
.hero h1{font-size:clamp(2.3rem,5.6vw,4rem);line-height:1.04;letter-spacing:-.03em;font-weight:800;margin:0 0 22px;}
.hero h1 .em{color:var(--accent);}
.hero p{max-width:600px;color:var(--dim);font-size:1.08rem;margin:0 0 30px;}
.cta{display:flex;gap:0;border:1px solid var(--line-2);width:fit-content;}
.cta a{padding:13px 22px;font-size:.85rem;font-weight:600;letter-spacing:.02em;}
.cta a:first-child{background:var(--accent);color:var(--bg);}
.cta a:last-child{border-left:1px solid var(--line-2);color:var(--ink);}
.cta a:last-child:hover{background:var(--accent-soft);}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);}
.stats div{padding:24px 28px;border-right:1px solid var(--line);}
.stats div:last-child{border-right:0;}
.stats dt{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:8px;}
.stats dd{margin:0;font-size:2rem;font-weight:700;}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);}
.card{padding:30px 28px;border-right:1px solid var(--line);}
.card:last-child{border-right:0;}
.card-ico{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line-2);color:var(--accent);margin-bottom:18px;}
.card-ico svg{width:21px;height:21px;}
.card h3{margin:0 0 8px;font-size:1.08rem;}
.card p{margin:0;color:var(--dim);font-size:.93rem;}
.card .n{font-size:.7rem;color:var(--faint);letter-spacing:.1em;margin-bottom:14px;}

/* coins */
.coins{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);}
.coin{padding:24px 22px;border-right:1px solid var(--line);position:relative;display:block;}
.coin:last-child{border-right:0;}
.coin .badge{position:absolute;top:18px;right:18px;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);}
.coin.soon .badge{color:var(--faint);}
.coin.soon{opacity:.55;}
.sym{width:44px;height:44px;display:grid;place-items:center;font-size:1.5rem;font-weight:700;color:var(--c);border:1px solid color-mix(in srgb,var(--c) 40%,transparent);margin-bottom:14px;}
.coin h4{margin:0 0 4px;font-size:1.05rem;}
.coin .host{font-size:.74rem;color:var(--faint);}
.coin .go{display:block;margin-top:12px;font-size:.78rem;color:var(--accent);font-weight:600;}
.coin.soon .go{color:var(--faint);}

/* mission */
.mission{padding:56px 28px;border-bottom:1px solid var(--line);}
.mission h2{font-size:clamp(1.5rem,3vw,2.1rem);letter-spacing:-.02em;margin:0 0 14px;}
.mission .lede{max-width:680px;color:var(--dim);font-size:1.05rem;margin:0 0 28px;}
.road{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--line);}
.road li{padding:18px 0 18px 34px;border-bottom:1px solid var(--line);position:relative;color:var(--dim);}
.road li svg{position:absolute;left:0;top:20px;width:18px;height:18px;color:var(--accent);}
.road strong{color:var(--ink);}

/* footer */
.foot{padding:36px 28px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.foot .tag{color:var(--faint);font-size:.9rem;margin:8px 0 0;max-width:280px;}
.foot-links{display:flex;gap:18px;flex-wrap:wrap;}
.foot-links a{font-size:.8rem;color:var(--dim);}
.foot-b{padding:18px 28px;border-top:1px solid var(--line);font-size:.76rem;color:var(--faint);}
.foot-b a{color:var(--dim);border-bottom:1px solid var(--line-2);}
.foot-b a:hover{color:var(--accent);}

@media(max-width:820px){
  .stats,.cards{grid-template-columns:1fr;}
  .stats div,.card{border-right:0;border-bottom:1px solid var(--line);}
  .coins{grid-template-columns:repeat(2,1fr);}
  .nav-links{display:none;}
}
@media(max-width:480px){.coins{grid-template-columns:1fr;}.coin{border-right:0;border-bottom:1px solid var(--line);}}

/* --- §03 api access --- */
.api-cards .card a { color: var(--ink, inherit); text-decoration: underline; }
.api-cta { margin: 18px 0 8px; display: flex; gap: 22px; flex-wrap: wrap; font-size: 14px; }
.api-cta a:first-child { font-weight: 700; }
