/* config-weave landing page — self-contained styles.
   Tokens ported from the design's Forge design system (dark, forced — the
   page is dark regardless of OS preference). Component styles are the
   landing design's own; placeholders and the DC framework classes are gone.
   Loaded by the custom `landing` wdoc template via <link> in <head>. */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

/* ---- tokens (dark) ---- */
:root {
  --bg-0: #0B0D10; --bg-1: #11141A; --bg-2: #171B22; --bg-3: #1E232C; --bg-4: #252B36;
  --fg-0: #ECEEF2; --fg-1: #B7BDC8; --fg-2: #7C8593; --fg-3: #4E5664;
  --border-subtle: #1A1F27; --border: #262C36; --border-strong: #3A4250;
  --accent: oklch(0.62 0.16 250); --accent-hover: oklch(0.66 0.17 250);
  --accent-bg: oklch(0.62 0.16 250 / 0.14); --accent-fg: oklch(0.82 0.13 250);
  --accent-contrast: #FFFFFF;
  --success-fg: oklch(0.82 0.16 150);
  --warning-fg: oklch(0.86 0.13 80);
  --danger-bg: oklch(0.65 0.20 25 / 0.14); --danger-fg: oklch(0.78 0.16 25);
  --info-fg: oklch(0.82 0.12 230);
  --font-sans: 'IBM Plex Sans', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  --dur-1: 80ms;
  color-scheme: dark;
}

/* ---- reset / base (defensive: win over any wdoc theme on .wdoc-body) ---- */
html { scroll-behavior: smooth; }
body, body.wdoc-body {
  margin: 0; padding: 0; max-width: none;
  background: var(--bg-0); color: var(--fg-0);
  font-family: var(--font-sans); overflow-x: hidden;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
.cw-page * { box-sizing: border-box; }
.cw-page h1, .cw-page h2, .cw-page h3, .cw-page h4, .cw-page p { margin: 0; }
.cw-page a { text-decoration: none; }
.cw-page img { display: block; }

/* ---- layout helpers ---- */
.wrap { max-width: 1140px; margin: 0 auto; padding: 0 28px; }
.section { padding: 112px 0; scroll-margin-top: 72px; }
.fx { display: flex; } .ac { align-items: center; } .jb { justify-content: space-between; }
.jc { justify-content: center; } .gap12 { gap: 12px; } .gap16 { gap: 16px; } .gap24 { gap: 24px; }
.eb { font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--fg-2); }
.lead { color: var(--fg-1); font-size: 17px; line-height: 1.7; max-width: 62ch; }
.muted { color: var(--fg-2); } .fg1 { color: var(--fg-1); } .mono { font-family: var(--font-mono); }
.grad { color: var(--accent-fg); }
.grad-on .grad { background: linear-gradient(90deg,#16E0CC,#1F9BEE,#2E73F2,#585BF2,#6E37F2); -webkit-background-clip: text; background-clip: text; color: transparent; }
.divwrap { border-top: 1px solid var(--border-subtle); }
.band { background: var(--bg-1); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }

/* ---- alpha banner ---- */
.banner { display: flex; align-items: center; justify-content: center; gap: 9px; text-align: center; padding: 9px 16px; font-size: 12.5px; line-height: 1.4; color: var(--fg-1); background: color-mix(in srgb, var(--warning-fg) 13%, var(--bg-0)); border-bottom: 1px solid color-mix(in srgb, var(--warning-fg) 28%, var(--border)); }
.banner svg { width: 15px; height: 15px; flex: none; color: var(--warning-fg); }
.banner strong { color: var(--warning-fg); font-weight: 600; }

/* ---- nav ---- */
.nav { position: sticky; top: 0; z-index: 50; height: 60px; border-bottom: 1px solid var(--border); background: color-mix(in srgb,var(--bg-0) 82%,transparent); backdrop-filter: blur(10px); }
.navinner { height: 60px; }
.brand { display: flex; align-items: center; gap: 11px; text-decoration: none; }
.brand img { height: 26px; display: block; }
.brandtxt { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; color: var(--fg-0); white-space: nowrap; }
.navlink { white-space: nowrap; color: var(--fg-1); font-size: 14px; text-decoration: none; transition: color var(--dur-1); }
.navlink:hover { color: var(--fg-0); }
.ver { font-family: var(--font-mono); font-size: 11.5px; color: var(--fg-2); border: 1px solid var(--border); border-radius: 5px; padding: 2px 7px; line-height: 1.3; }
.ghlink { display: inline-flex; align-items: center; gap: 7px; }
.ghlink svg { width: 15px; height: 15px; }

/* ---- buttons / pills ---- */
.btn { height: 38px; padding: 0 17px; border-radius: 6px; font-size: 14px; font-weight: 500; display: inline-flex; align-items: center; gap: 8px; border: 1px solid transparent; cursor: pointer; transition: background var(--dur-1),border-color var(--dur-1); white-space: nowrap; text-decoration: none; font-family: var(--font-sans); }
.btn svg { width: 16px; height: 16px; }
.btn-primary { background: var(--accent); color: var(--accent-contrast); }
.btn-primary:hover { background: var(--accent-hover); }
.btn-ghost { background: transparent; border-color: var(--border); color: var(--fg-0); }
.btn-ghost:hover { border-color: var(--border-strong); background: var(--bg-2); }
.pill { display: inline-flex; align-items: center; gap: 8px; height: 28px; padding: 0 12px; border: 1px solid var(--border); border-radius: 999px; background: var(--bg-1); font-size: 12px; color: var(--fg-1); }
.pdot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.grad-on .pdot { background: linear-gradient(90deg,#16E0CC,#6E37F2); }

/* ---- command box ---- */
.cmd { display: flex; align-items: center; gap: 11px; background: var(--bg-1); border: 1px solid var(--border); border-radius: 7px; padding: 0 15px; height: 46px; font-family: var(--font-mono); font-size: 13.5px; color: var(--fg-0); min-width: 0; }
.cmd .cdollar { color: var(--fg-3); flex: none; }
.cmd .ctxt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---- terminal + code ---- */
.term { background: #080A0E; border: 1px solid var(--border); border-radius: 9px; overflow: hidden; font-family: var(--font-mono); }
.termbar { display: flex; align-items: center; gap: 9px; height: 40px; padding: 0 14px; border-bottom: 1px solid var(--border); background: var(--bg-1); }
.fname { font-family: var(--font-mono); font-size: 12.5px; color: var(--fg-2); }
.wclchip { margin-left: auto; font-size: 10px; font-weight: 600; letter-spacing: .1em; color: var(--accent-fg); border: 1px solid var(--border); border-radius: 4px; padding: 2px 7px; background: var(--accent-bg); }
.tlabel { margin-left: auto; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--fg-3); }
.termbody { padding: 18px 20px; font-size: 13px; line-height: 1.95; white-space: pre; overflow-x: auto; color: var(--fg-1); margin: 0; tab-size: 2; }
.codebody { font-size: 12.5px; line-height: 1.85; }
.term + .term { margin-top: 16px; }
.ok { color: var(--success-fg); } .chg { color: var(--warning-fg); } .drift { color: var(--danger-fg); } .dim { color: var(--fg-3); } .prompt { color: var(--accent-fg); }
.cwk { color: var(--accent-fg); } .cws { color: var(--success-fg); } .cwa { color: var(--fg-1); } .cwt { color: var(--warning-fg); } .cwo { color: var(--info-fg); } .cwm { color: var(--fg-3); }

/* ---- steps ---- */
.step { display: flex; gap: 18px; padding: 22px 0; border-top: 1px solid var(--border-subtle); }
.snum { flex: none; width: 34px; height: 34px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg-2); display: flex; align-items: center; justify-content: center; font-family: var(--font-mono); font-size: 14px; color: var(--accent-fg); font-weight: 500; }
.codepill { display: inline-flex; align-items: center; height: 30px; padding: 0 11px; border-radius: 6px; background: #080A0E; border: 1px solid var(--border); font-family: var(--font-mono); font-size: 12.5px; color: var(--fg-0); margin-top: 10px; }
.codepill .cwk { margin-right: 6px; }

/* ---- package tree ---- */
.tree { font-family: var(--font-mono); font-size: 13px; padding: 8px; }
.trow { display: flex; align-items: center; gap: 9px; height: 32px; padding: 0 12px; border-radius: 6px; color: var(--fg-1); }
.trow svg { width: 15px; height: 15px; flex: none; color: var(--fg-2); }
.trow.on { background: var(--bg-2); color: var(--fg-0); }
.trow.on svg { color: var(--accent-fg); }
.tfold svg { color: var(--accent-fg); }
.ind1 { padding-left: 30px; } .ind2 { padding-left: 48px; }
.tnote { margin-left: auto; font-size: 11px; color: var(--fg-3); font-family: var(--font-sans); }
.capt { font-size: 12.5px; color: var(--fg-2); margin-top: 12px; }
.capt code { font-size: 12px; }

/* ---- features ---- */
.fgrid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: 9px; overflow: hidden; }
.fcell { background: var(--bg-1); padding: 30px 26px; transition: background var(--dur-1); }
.fcell:hover { background: var(--bg-2); }
.ficon { width: 40px; height: 40px; border-radius: 9px; display: flex; align-items: center; justify-content: center; background: var(--bg-2); border: 1px solid var(--border); color: var(--accent-fg); margin-bottom: 18px; }
.fcell:hover .ficon { border-color: var(--border-strong); }
.ficon svg { width: 20px; height: 20px; }
.ftitle { font-size: 16px; font-weight: 600; color: var(--fg-0); margin-bottom: 7px; }
.fdesc { font-size: 13.5px; color: var(--fg-2); line-height: 1.6; }
.fdesc code, .capt code, .lead code { font-family: var(--font-mono); font-size: 0.92em; background: var(--bg-2); border: 1px solid var(--border-subtle); padding: 1px 5px; border-radius: 4px; color: var(--fg-1); }

/* ---- static-binary proof ---- */
.chips { display: flex; gap: 8px; flex-wrap: wrap; }
.osc { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 14px; border: 1px solid var(--border); border-radius: 7px; background: var(--bg-2); font-size: 13px; color: var(--fg-0); }
.osc svg { width: 15px; height: 15px; color: var(--fg-1); }

/* ---- card ---- */
.card { background: var(--bg-1); border: 1px solid var(--border); border-radius: 12px; }

/* ---- cta ---- */
.cta { background: var(--bg-1); border: 1px solid var(--border); border-radius: 14px; padding: 56px 48px; text-align: center; position: relative; overflow: hidden; }
.ctaglow { position: absolute; inset: 0; opacity: .12; pointer-events: none; background: radial-gradient(760px 260px at 50% -30%,#1F9BEE,transparent 70%); }

/* ---- footer ---- */
.foot { border-top: 1px solid var(--border); padding: 48px 0 56px; }
.fcol h6 { margin: 0 0 14px; color: var(--fg-2); font-size: 13px; font-weight: 600; }
.flink { display: block; color: var(--fg-1); font-size: 13.5px; text-decoration: none; padding: 5px 0; transition: color var(--dur-1); }
.flink:hover { color: var(--fg-0); }
.cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; }

/* ---- grids ---- */
.heroGrid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items: center; }
.howGrid { display: grid; grid-template-columns: 1.04fr 0.96fr; gap: 48px; align-items: start; }
.proofGrid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }

@media (max-width: 920px) {
  .heroGrid, .howGrid, .proofGrid { grid-template-columns: 1fr; gap: 36px; }
  .fgrid { grid-template-columns: 1fr; }
  .cols { grid-template-columns: 1fr 1fr; gap: 28px; }
  .hidesm { display: none; }
  .section { padding: 72px 0; }
}
