/* =============================================================
   Unityzm Platform Roadmap — Sovereign Trust skin
   Scoped under `.rmx` so it never leaks into other pages.
   Source of truth: design_handoff_roadmap/prototype.
   ============================================================= */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Instrument+Serif:ital@0;1&display=swap');

.rmx {
  --ink-0:#ffffff; --ink-50:#fafafa; --ink-100:#f4f4f5; --ink-150:#ececee; --ink-200:#e4e4e7;
  --ink-300:#d4d4d8; --ink-400:#a1a1aa; --ink-500:#71717a; --ink-600:#52525b; --ink-700:#3f3f46;
  --ink-800:#27272a; --ink-900:#18181b; --ink-950:#09090b;
  --sov-50:#eef3fb; --sov-100:#d6e1f3; --sov-200:#adc1e6; --sov-300:#7d99d3; --sov-400:#4f72bb;
  --sov-500:#3253a0; --sov-600:#243f82; --sov-700:#1d3268; --sov-800:#172551; --sov-900:#111a3a;
  --emerald-50:#ecfdf5; --emerald-200:#a7f3d0; --emerald-500:#10b981; --emerald-600:#059669; --emerald-700:#047857;
  --amber-50:#fffbeb; --amber-200:#fde68a; --amber-500:#f59e0b; --amber-600:#d97706; --amber-700:#b45309;
  --rose-50:#fef2f2; --rose-200:#fecaca; --rose-500:#ef4444; --rose-600:#dc2626; --rose-700:#b91c1c;
  --sky-50:#f0f9ff; --sky-200:#bae6fd; --sky-500:#0ea5e9; --sky-600:#0284c7;
  --border:var(--ink-200); --border-strong:var(--ink-300); --input:var(--ink-200); --ring:var(--sov-500);
  --ledger-stripe:repeating-linear-gradient(135deg,transparent 0 6px,rgba(15,23,42,.035) 6px 7px);
  --radius-xs:2px; --radius-sm:4px; --radius:6px; --radius-md:8px; --radius-lg:10px; --radius-xl:14px;
  --shadow-xs:0 1px 0 rgba(9,9,11,.04);
  --shadow-sm:0 1px 2px rgba(9,9,11,.06),0 1px 1px rgba(9,9,11,.04);
  --shadow-md:0 4px 12px rgba(9,9,11,.08),0 2px 4px rgba(9,9,11,.04);
  --shadow-lg:0 12px 32px rgba(9,9,11,.10),0 4px 8px rgba(9,9,11,.04);
  --shadow-focus:0 0 0 3px color-mix(in oklab,var(--ring) 30%,transparent);
  --font-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;
  --font-serif:'Instrument Serif','Iowan Old Style',Georgia,serif;
  --tracking-mark:0.18em;
  /* responsive layout primitives — overridden per breakpoint at the end of this
     file so every `.wrap`/`.nav-inner` (and section wrap) scales in one place:
     gutter shrinks on phones, container widens on TV. */
  --rmx-maxw:1200px;
  --rmx-gutter:40px;

  background:var(--ink-0); color:var(--ink-900);
  font-family:var(--font-sans); font-feature-settings:'cv11','ss01';
  -webkit-font-smoothing:antialiased; min-height:100vh;
}
.rmx *, .rmx *::before, .rmx *::after { box-sizing:border-box; }
.rmx ::selection { background:color-mix(in oklab,var(--sov-600) 25%,transparent); }
.rmx a { color:inherit; }
.rmx .wrap { max-width:var(--rmx-maxw); margin:0 auto; padding:0 var(--rmx-gutter); }
.rmx .mono { font-family:var(--font-mono); font-variant-numeric:tabular-nums; }
.rmx .eyebrow { font:600 11px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); display:inline-flex; align-items:center; gap:9px; }
.rmx .eyebrow .dot { width:6px; height:6px; border-radius:999px; background:var(--emerald-500); box-shadow:0 0 0 3px color-mix(in oklab,var(--emerald-500) 18%,transparent); }
.rmx .ico { width:18px; height:18px; stroke-width:1.5; flex-shrink:0; }

/* nav */
.rmx .nav { position:sticky; top:0; z-index:60; height:60px; background:color-mix(in oklab,var(--ink-0) 86%,transparent); backdrop-filter:blur(8px); border-bottom:1px solid var(--border); }
.rmx .nav-inner { max-width:var(--rmx-maxw); margin:0 auto; padding:0 var(--rmx-gutter); height:100%; display:flex; align-items:center; gap:36px; }
.rmx .lockup { display:inline-flex; align-items:center; gap:11px; text-decoration:none; }
.rmx .lockup img { width:24px; height:24px; }
.rmx .lockup b { font:600 15px/1 var(--font-sans); letter-spacing:-.01em; color:var(--ink-950); }
.rmx .lockup span { font:500 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); padding-left:11px; border-left:1px solid var(--border-strong); }
.rmx .nav-links { display:flex; gap:28px; align-items:center; }
.rmx .nav-links a { font:500 13px/1 var(--font-sans); color:var(--ink-600); text-decoration:none; transition:color 120ms; }
.rmx .nav-links a:hover { color:var(--ink-950); }
.rmx .nav-links a.active { color:var(--ink-950); position:relative; }
.rmx .nav-links a.active::after { content:""; position:absolute; left:0; right:0; bottom:-23px; height:2px; background:var(--sov-600); }
.rmx .nav-right { margin-left:auto; display:flex; align-items:center; gap:8px; }

/* buttons */
.rmx .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:38px; padding:0 16px; border-radius:var(--radius); font:600 13px/1 var(--font-sans); letter-spacing:-.005em; border:1px solid transparent; cursor:pointer; text-decoration:none; white-space:nowrap; transition:background 120ms,border-color 120ms,transform 80ms,box-shadow 120ms; }
.rmx .btn:active { transform:translateY(1px); }
.rmx .btn:disabled { opacity:.55; cursor:default; }
.rmx .btn-primary { background:var(--sov-600); color:#fff; box-shadow:var(--shadow-xs); }
.rmx .btn-primary:hover { background:var(--sov-700); }
.rmx .btn-ghost { background:transparent; color:var(--ink-800); border-color:var(--border-strong); }
.rmx .btn-ghost:hover { background:var(--ink-50); }
.rmx .btn-quiet { background:transparent; color:var(--ink-700); }
.rmx .btn-quiet:hover { background:var(--ink-100); }
.rmx .btn-lg { height:46px; padding:0 22px; font-size:14px; }
.rmx .btn .ico { width:16px; height:16px; }

/* status badges */
/* display/width/height/flex are asserted here so a generic third-party `.progress`
   (or similar) global rule can never leak in and squash a badge into a thin bar. */
.rmx .st { display:inline-flex; align-items:center; align-self:flex-start; width:auto; height:auto; flex:0 0 auto; font:600 9px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; padding:4px 7px; border-radius:var(--radius-sm); white-space:nowrap; }
.rmx .st.shipped { background:var(--emerald-50); color:var(--emerald-700); border:1px solid var(--emerald-200); }
.rmx .st.inprog { background:var(--amber-50); color:var(--amber-700); border:1px solid var(--amber-200); }
.rmx .st.planned { background:var(--sky-50); color:var(--sky-600); border:1px solid var(--sky-200); }
.rmx .st.exploring { background:var(--ink-100); color:var(--ink-500); border:1px solid var(--border); }

/* hero */
.rmx .hero { position:relative; border-bottom:1px solid var(--border); overflow:hidden; }
.rmx .hero::before { content:""; position:absolute; inset:0; pointer-events:none; background-image:var(--ledger-stripe); -webkit-mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent); mask-image:linear-gradient(180deg,transparent,#000 30%,#000 70%,transparent); opacity:.8; }
.rmx .hero-grid { position:relative; display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center; padding:72px 0 76px; }
.rmx .hero h1 { font-family:var(--font-serif); font-weight:400; font-size:54px; line-height:1.06; letter-spacing:-.015em; color:var(--ink-950); margin:22px 0 20px; max-width:17ch; }
.rmx .hero h1 i { font-style:italic; color:var(--sov-700); }
.rmx .hero .lede { font:400 16px/1.6 var(--font-sans); color:var(--ink-600); max-width:50ch; margin:0 0 30px; }
.rmx .hero-cta { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.rmx .hero-note { margin-top:22px; font:500 12px/1.5 var(--font-sans); color:var(--ink-500); display:inline-flex; align-items:center; gap:8px; }
.rmx .hero-note svg { width:14px; height:14px; color:var(--emerald-600); }

/* build-ledger envelope */
.rmx .envelope { background:var(--ink-0); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-md); overflow:hidden; }
.rmx .env-head { display:flex; align-items:center; gap:10px; padding:14px 18px; border-bottom:1px solid var(--border); background:var(--ink-50); }
.rmx .env-head .tl { display:flex; gap:6px; }
.rmx .env-head .tl span { width:9px; height:9px; border-radius:999px; background:var(--ink-300); }
.rmx .env-head .title { font:600 12px/1 var(--font-mono); color:var(--ink-600); }
.rmx .env-head .scope { margin-left:auto; font:600 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--sov-600); }
.rmx .env-body { padding:18px 22px 8px; }
.rmx .env-amt { display:flex; align-items:baseline; gap:10px; margin-bottom:4px; }
.rmx .env-amt .v { font:600 28px/1 var(--font-mono); letter-spacing:-.01em; color:var(--ink-950); }
.rmx .env-amt .cur { font:600 12px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); }
.rmx .env-sub { font:500 12px/1.4 var(--font-sans); color:var(--ink-500); margin-bottom:16px; }
.rmx .gl-rows { border-top:1px solid var(--border); }
.rmx .gl-row { display:grid; grid-template-columns:70px 1fr auto; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid var(--ink-100); }
.rmx .gl-row:last-child { border-bottom:none; }
.rmx .gl-row .hash { font:500 11px/1 var(--font-mono); color:var(--sov-600); }
.rmx .gl-row .msg { font:500 12.5px/1.35 var(--font-sans); color:var(--ink-800); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rmx .gl-row .msg small { display:block; font:400 11px/1.3 var(--font-sans); color:var(--ink-500); margin-top:2px; }
.rmx .gl-row .when { font:500 11px/1 var(--font-mono); color:var(--ink-400); white-space:nowrap; }
.rmx .gl-row .ref { font:600 9px/1 var(--font-mono); color:var(--emerald-700); background:var(--emerald-50); border:1px solid var(--emerald-200); border-radius:var(--radius-sm); padding:3px 6px; margin-left:8px; }
.rmx .env-foot { display:flex; align-items:center; gap:8px; padding:12px 22px; border-top:1px solid var(--border); background:var(--ink-50); font:500 11px/1 var(--font-mono); color:var(--ink-500); }
.rmx .env-foot .hash { color:var(--ink-700); }

/* stat band */
.rmx .statband { border-bottom:1px solid var(--border); background:var(--ink-50); }
/* grid-auto-flow:row asserted to neutralise a leaked global `.stats` rule that
   sets auto-flow:column — without it, reducing the column count on smaller
   screens spills the items into content-sized implicit columns instead of rows. */
.rmx .stats { display:grid; grid-auto-flow:row; grid-template-columns:repeat(4,1fr); }
.rmx .stat { padding:28px 4px; border-right:1px solid var(--border); }
.rmx .stat:last-child { border-right:none; }
.rmx .stat b { display:block; font:600 28px/1 var(--font-sans); letter-spacing:-.02em; color:var(--ink-950); font-variant-numeric:tabular-nums; }
.rmx .stat span { display:block; font:500 12px/1.4 var(--font-sans); color:var(--ink-500); margin-top:9px; max-width:22ch; }

/* section scaffold */
.rmx section.block { padding:88px 0; border-bottom:1px solid var(--border); }
.rmx .sec-eyebrow { margin-bottom:16px; }
.rmx .sec-title { font:600 34px/1.12 var(--font-sans); letter-spacing:-.022em; color:var(--ink-950); margin:0; max-width:22ch; }
.rmx .sec-lede { font:400 16px/1.6 var(--font-sans); color:var(--ink-600); margin:16px 0 0; max-width:56ch; }
.rmx .sec-head-split { display:grid; grid-template-columns:1fr auto; align-items:end; gap:32px; }

/* story */
.rmx .story-grid { display:grid; grid-template-columns:230px minmax(0,1fr); gap:56px; align-items:start; margin-top:52px; }
.rmx .vrail { position:sticky; top:84px; }
.rmx .vrail h4 { font:600 11px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); margin:0 0 14px; }
.rmx .vrail a, .rmx .vrail button { display:block; width:100%; text-align:left; background:none; border:none; cursor:pointer; text-decoration:none; padding:9px 14px; border-left:2px solid var(--border); transition:border-color 120ms,background 120ms; }
.rmx .vrail a:hover, .rmx .vrail button:hover { background:var(--ink-50); border-left-color:var(--border-strong); }
.rmx .vrail a.now, .rmx .vrail button.now, .rmx .vrail .sel { border-left-color:var(--sov-600); background:var(--ink-50); }
.rmx .vrail .vv { font:600 11px/1 var(--font-mono); color:var(--sov-600); }
.rmx .vrail .vt { display:block; font:600 13px/1.25 var(--font-sans); color:var(--ink-900); margin-top:4px; }
.rmx .vrail .vm { display:block; font:500 10.5px/1.4 var(--font-mono); color:var(--ink-400); margin-top:3px; }
.rmx .vrail .vgen { margin-top:14px; }
.rmx .vdetail { border:1px solid var(--border); border-left:3px solid var(--sov-600); border-radius:var(--radius-md); padding:16px 18px; margin-bottom:28px; background:var(--ink-0); }
.rmx .vdetail .vh { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.rmx .vdetail b { font:600 14px/1.2 var(--font-sans); color:var(--ink-950); }
.rmx .vdetail p { font:400 13px/1.55 var(--font-sans); color:var(--ink-600); margin:8px 0 10px; }
.rmx .vdetail .vc { font:500 11px/1.5 var(--font-mono); color:var(--ink-500); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rmx .vdetail .vc b { color:var(--sov-600); font-weight:600; }

.rmx .chapters { display:flex; flex-direction:column; }
.rmx .chapter { padding:0 0 44px; margin-bottom:44px; border-bottom:1px solid var(--border); scroll-margin-top:84px; }
.rmx .chapter:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
.rmx .ch-head { display:grid; grid-template-columns:44px 1fr auto; gap:18px; align-items:baseline; }
.rmx .ch-head .n { font:600 12px/1 var(--font-mono); color:var(--sov-600); }
.rmx .ch-head .period { font:600 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); }
.rmx .ch-head h3 { font:600 22px/1.2 var(--font-sans); letter-spacing:-.015em; color:var(--ink-950); margin:8px 0 0; }
.rmx .ch-head h3 em { font-family:var(--font-serif); font-style:italic; font-weight:400; color:var(--ink-500); font-size:21px; margin-left:10px; letter-spacing:0; }
.rmx .ch-head .commits { font:500 11px/1 var(--font-mono); color:var(--ink-400); white-space:nowrap; }
.rmx .ch-narration { font:400 14.5px/1.65 var(--font-sans); color:var(--ink-600); margin:14px 0 22px; max-width:64ch; padding-left:62px; }
.rmx .milestones { margin-left:62px; border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden; }
.rmx .ms { display:grid; grid-template-columns:108px 1fr auto; gap:16px; align-items:center; padding:13px 18px; background:var(--ink-0); border-bottom:1px solid var(--ink-100); }
.rmx .ms:last-child { border-bottom:none; }
.rmx .ms:hover { background:var(--ink-50); }
.rmx .ms .d { font:500 11px/1.3 var(--font-mono); color:var(--ink-400); }
.rmx .ms .t { font:600 13.5px/1.3 var(--font-sans); color:var(--ink-900); }
.rmx .ms .t small { display:block; font:400 12px/1.45 var(--font-sans); color:var(--ink-500); margin-top:3px; }
@media (max-width:900px){ .rmx .story-grid{ grid-template-columns:1fr; gap:32px; } .rmx .vrail{ position:static; } .rmx .ch-narration,.rmx .milestones{ margin-left:0; padding-left:0; } }

/* branch graph band */
.rmx .graphband { background:var(--ink-950); color:#fff; border-bottom:1px solid var(--ink-800); position:relative; overflow:hidden; }
.rmx .graphband::before { content:""; position:absolute; inset:0; background-image:var(--ledger-stripe); opacity:.35; mix-blend-mode:screen; }
.rmx .graphband .inner { position:relative; padding:84px 0 88px; }
.rmx .graphband .sec-eyebrow { color:var(--sov-300); }
.rmx .graphband .eyebrow { color:var(--sov-300); }
.rmx .graphband .eyebrow .dot { background:var(--sov-300); box-shadow:0 0 0 3px rgba(125,153,211,.25); }
.rmx .graphband h2 { font-family:var(--font-serif); font-weight:400; font-size:40px; line-height:1.08; letter-spacing:-.01em; color:#fff; margin:14px 0 14px; }
.rmx .graphband h2 i { font-style:italic; color:var(--sov-300); }
.rmx .graphband .gb-lede { font:400 15px/1.65 var(--font-sans); color:rgba(255,255,255,.62); margin:0 0 44px; max-width:56ch; }
.rmx .gb-head { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.rmx .gb-head .btn-ghost { color:#fff; border-color:rgba(255,255,255,.25); }
.rmx .gb-head .btn-ghost:hover { background:rgba(255,255,255,.06); }
.rmx .lanes { display:flex; flex-direction:column; gap:0; border:1px solid rgba(255,255,255,.10); border-radius:var(--radius-md); overflow:hidden; background:rgba(255,255,255,.03); }
.rmx .lane, .rmx .lane-months { display:grid; grid-template-columns:250px repeat(5,1fr); align-items:center; }
.rmx .lane-months { border-bottom:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.03); }
.rmx .lane-months span { font:600 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:rgba(255,255,255,.45); padding:12px 0 12px 6px; border-left:1px solid rgba(255,255,255,.07); }
.rmx .lane-months .lbl { font:600 10px/1 var(--font-sans); color:rgba(255,255,255,.45); padding-left:20px; border-left:none; }
.rmx .lane { border-bottom:1px solid rgba(255,255,255,.06); min-height:44px; }
.rmx .lane:last-child { border-bottom:none; }
.rmx .lane .name { font:500 12px/1.3 var(--font-mono); color:rgba(255,255,255,.78); padding:0 18px 0 20px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rmx .lane .cells { display:grid; grid-template-columns:repeat(5,1fr); grid-column:2 / 7; align-self:stretch; align-items:center; }
.rmx .lane .cells > i { border-left:1px solid rgba(255,255,255,.07); height:100%; grid-row:1; }
.rmx .lane .bar { grid-row:1; height:8px; border-radius:999px; position:relative; margin:0 10px; }
.rmx .lane .bar::before { content:""; position:absolute; left:-4px; top:50%; transform:translateY(-50%); width:8px; height:8px; border-radius:999px; background:inherit; box-shadow:0 0 0 3px rgba(255,255,255,.08); }
.rmx .lane.main-spine .bar { height:3px; }
.rmx .lane.main-spine .bar::before { display:none; }
.rmx .lane.main-spine .name { color:var(--emerald-500); font-weight:600; }
.rmx .graph-legend { display:flex; gap:22px; margin-top:18px; font:500 11px/1 var(--font-mono); color:rgba(255,255,255,.5); flex-wrap:wrap; }
.rmx .graph-legend i { display:inline-block; width:14px; height:4px; border-radius:999px; vertical-align:middle; margin-right:7px; }
.rmx .dag { overflow-x:auto; border:1px solid rgba(255,255,255,.10); border-radius:var(--radius-md); background:rgba(255,255,255,.02); padding:10px 0; }
.rmx .dag-row { height:22px; display:flex; align-items:center; gap:8px; font:500 11px/1 var(--font-mono); white-space:nowrap; padding-right:12px; color:rgba(255,255,255,.85); }
.rmx .dag-row .rsub { color:rgba(255,255,255,.85); overflow:hidden; text-overflow:ellipsis; flex:1; min-width:0; }
.rmx .dag-row .rmeta { color:rgba(255,255,255,.4); }
.rmx .dag-row .rhash { color:var(--sov-300); }
.rmx .dag-row .rpill { font:600 9px/1 var(--font-mono); border-radius:var(--radius-sm); padding:1px 5px; border:1px solid; }

/* worked days */
.rmx .cal-card { margin-top:44px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--ink-0); padding:26px 28px; }
.rmx .cal-scroll { overflow-x:auto; }
.rmx .cal-grid { display:flex; gap:3px; min-width:max-content; }
.rmx .cal-week { display:flex; flex-direction:column; gap:3px; }
.rmx .cal-day { width:12px; height:12px; border-radius:3px; background:var(--ink-100); }
.rmx .cal-day[data-l="1"] { background:#d1fae5; }
.rmx .cal-day[data-l="2"] { background:#6ee7b7; }
.rmx .cal-day[data-l="3"] { background:var(--emerald-500); }
.rmx .cal-day[data-l="4"] { background:var(--emerald-700); }
.rmx .cal-foot { display:flex; align-items:center; justify-content:space-between; margin-top:16px; }
.rmx .cal-legend { display:inline-flex; align-items:center; gap:4px; font:500 11px/1 var(--font-sans); color:var(--ink-500); }
.rmx .cal-legend .cal-day { width:11px; height:11px; }

/* decomposed commits */
.rmx .commitlist { display:flex; flex-direction:column; gap:12px; margin-top:44px; }
.rmx .commit { border:1px solid var(--border); border-radius:var(--radius-md); background:var(--ink-0); padding:16px 20px; }
.rmx .commit:hover { border-color:var(--border-strong); }
.rmx .c-head { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.rmx .c-head .hash { font:500 12px/1 var(--font-mono); color:var(--sov-600); }
.rmx .c-head .scopetag { font:600 9px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; padding:4px 7px; border-radius:var(--radius-sm); background:var(--ink-100); color:var(--ink-600); border:1px solid var(--border); }
.rmx .c-head .subject { font:600 13.5px/1.3 var(--font-sans); color:var(--ink-900); }
.rmx .c-head .meta { margin-left:auto; font:500 11px/1 var(--font-mono); color:var(--ink-400); white-space:nowrap; }
.rmx .c-msg { margin-top:10px; }
.rmx .c-msg summary { font:600 9px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-400); cursor:pointer; }
.rmx .c-msg pre { margin:8px 0 0; font:400 11.5px/1.5 var(--font-mono); color:var(--ink-600); white-space:pre-wrap; background:var(--ink-50); border:1px solid var(--border); border-radius:var(--radius-sm); padding:10px 12px; max-height:220px; overflow:auto; }
.rmx .c-ai { display:grid; grid-template-columns:18px 1fr; gap:12px; margin-top:13px; padding-top:13px; border-top:1px solid var(--ink-100); }
.rmx .c-ai .mark { width:18px; height:18px; border-radius:999px; background:var(--emerald-50); border:1px solid var(--emerald-200); display:inline-flex; align-items:center; justify-content:center; margin-top:1px; }
.rmx .c-ai .mark svg { width:10px; height:10px; stroke-width:2.4; color:var(--emerald-600); }
.rmx .c-ai p { font:400 13.5px/1.6 var(--font-sans); color:var(--ink-700); margin:0; max-width:72ch; }
.rmx .c-ai p.muted { color:var(--ink-400); }
.rmx .c-refs { display:flex; gap:6px; margin-top:10px; flex-wrap:wrap; align-items:center; }
.rmx .c-refs .lbl { font:600 9px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-400); margin-right:2px; }
.rmx .c-refs a, .rmx .c-refs span.ref { font:500 11px/1 var(--font-mono); color:var(--sov-700); background:var(--sov-50); border:1px solid var(--sov-200); border-radius:var(--radius-sm); padding:4px 8px; text-decoration:none; }
.rmx .c-refs a:hover { background:var(--sov-100); }

/* what's next */
.rmx .next-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden; margin-top:44px; }
.rmx .next { background:var(--ink-0); padding:24px 26px; display:flex; flex-direction:column; min-height:150px; }
.rmx .next:hover { background:var(--ink-50); }
.rmx .next .nh { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:10px; }
.rmx .next h3 { font:600 14.5px/1.3 var(--font-sans); letter-spacing:-.005em; color:var(--ink-950); margin:0; }
.rmx .next p { font:400 12.5px/1.55 var(--font-sans); color:var(--ink-600); margin:0; flex:1; }
.rmx .next .eta { margin-top:16px; font:500 11px/1 var(--font-mono); color:var(--ink-400); }
@media (max-width:1040px){ .rmx .next-grid{ grid-template-columns:repeat(2,1fr); } }

/* guide dock */
.rmx .guide-fab { position:fixed; right:28px; bottom:28px; z-index:70; display:inline-flex; align-items:center; gap:9px; height:44px; padding:0 20px; border-radius:999px; background:var(--ink-950); color:#fff; border:1px solid var(--ink-800); font:600 13px/1 var(--font-sans); cursor:pointer; box-shadow:var(--shadow-lg); transition:transform 120ms,background 120ms; }
.rmx .guide-fab:hover { transform:translateY(-1px); background:var(--ink-900); }
.rmx .guide-fab .gdot { width:7px; height:7px; border-radius:999px; background:var(--emerald-500); box-shadow:0 0 0 3px rgba(16,185,129,.25); }
.rmx .guide { position:fixed; right:28px; bottom:84px; z-index:70; width:min(400px,calc(100vw - 56px)); max-height:70vh; overflow-y:auto; background:var(--ink-0); border:1px solid var(--border); border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); }
.rmx .g-head { display:flex; align-items:center; gap:10px; padding:16px 20px; border-bottom:1px solid var(--border); background:var(--ink-50); border-radius:var(--radius-xl) var(--radius-xl) 0 0; }
.rmx .g-head b { font:600 13px/1 var(--font-sans); color:var(--ink-950); }
.rmx .g-head .backend { margin-left:auto; font:600 9px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--sov-700); background:var(--sov-50); border:1px solid var(--sov-200); padding:4px 7px; border-radius:var(--radius-sm); }
.rmx .g-body { padding:18px 20px 20px; }
.rmx .g-tour { background:var(--ink-50); border:1px solid var(--border); border-radius:var(--radius-md); padding:16px 18px; }
.rmx .g-tour .step { font:600 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); }
.rmx .g-tour h4 { font:600 15px/1.3 var(--font-sans); color:var(--ink-950); margin:8px 0 8px; }
.rmx .g-tour p { font:400 13px/1.6 var(--font-sans); color:var(--ink-600); margin:0; }
.rmx .g-tour .g-nav { display:flex; gap:8px; margin-top:14px; }
.rmx .g-tour .g-nav .btn { height:32px; padding:0 12px; font-size:12px; }
.rmx .g-ask { display:flex; gap:8px; margin-top:14px; }
.rmx .g-ask input { flex:1; height:38px; border:1px solid var(--input); border-radius:var(--radius); padding:0 12px; font:400 13px/1 var(--font-sans); color:var(--ink-900); background:var(--ink-0); }
.rmx .g-ask input:focus { outline:none; border-color:var(--ring); box-shadow:var(--shadow-focus); }
.rmx .g-ask input::placeholder { color:var(--ink-400); }
.rmx .g-answer { margin-top:12px; background:var(--ink-50); border:1px solid var(--border); border-radius:var(--radius-md); padding:12px 14px; font:400 13px/1.55 var(--font-sans); color:var(--ink-700); white-space:pre-wrap; }
.rmx .g-answer .saved { display:block; margin-top:8px; font:500 10px/1 var(--font-mono); color:var(--ink-400); }

/* footer */
.rmx footer { background:var(--ink-50); border-top:1px solid var(--border); padding:56px 0 40px; }
.rmx .foot-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; }
.rmx .foot-brand .lockup { margin-bottom:16px; }
.rmx .foot-brand p { font:400 13px/1.6 var(--font-sans); color:var(--ink-500); margin:0; max-width:38ch; }
.rmx .foot-col h5 { font:600 11px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); margin:4px 0 16px; }
.rmx .foot-col a { display:block; font:500 13px/1 var(--font-sans); color:var(--ink-700); text-decoration:none; margin-bottom:12px; transition:color 120ms; }
.rmx .foot-col a:hover { color:var(--ink-950); }
.rmx .foot-bar { display:flex; align-items:center; justify-content:space-between; margin-top:48px; padding-top:22px; border-top:1px solid var(--border); }
.rmx .foot-bar span { font:400 12px/1.5 var(--font-sans); color:var(--ink-500); }
.rmx .foot-bar .mono { font:500 11px/1 var(--font-mono); color:var(--ink-400); }

/* dark mode (tokens flipped on the scope) */
html[data-theme="dark"] .rmx {
  --ink-0:#09090b; --ink-50:#111113; --ink-100:#1b1b1e; --ink-150:#202023; --ink-200:#27272a;
  --ink-300:#3f3f46; --ink-400:#71717a; --ink-500:#a1a1aa; --ink-600:#d4d4d8; --ink-700:#e4e4e7;
  --ink-800:#f4f4f5; --ink-900:#fafafa; --ink-950:#ffffff;
  --border:#232327; --border-strong:#3f3f46;
  --emerald-50:rgba(16,185,129,.12); --emerald-200:rgba(16,185,129,.35); --emerald-600:#34d399; --emerald-700:#6ee7b7;
  --amber-50:rgba(245,158,11,.12); --amber-200:rgba(245,158,11,.35); --amber-700:#fbbf24;
  --rose-50:rgba(239,68,68,.12); --rose-200:rgba(239,68,68,.35);
  --sky-50:rgba(14,165,233,.12); --sky-200:rgba(14,165,233,.35); --sky-600:#38bdf8;
  --sov-50:rgba(79,114,187,.14); --sov-100:rgba(79,114,187,.22); --sov-200:rgba(79,114,187,.45); --sov-700:#7d99d3;
  --ledger-stripe:repeating-linear-gradient(135deg,transparent 0 6px,rgba(255,255,255,.045) 6px 7px);
  --shadow-xs:0 1px 0 rgba(0,0,0,.4); --shadow-sm:0 1px 2px rgba(0,0,0,.5);
  --shadow-md:0 4px 12px rgba(0,0,0,.5),0 2px 4px rgba(0,0,0,.4);
  --shadow-lg:0 12px 32px rgba(0,0,0,.6),0 4px 8px rgba(0,0,0,.4);
}
html[data-theme="dark"] .rmx .btn-primary { background:var(--sov-500); }
html[data-theme="dark"] .rmx .btn-primary:hover { background:var(--sov-400); }
html[data-theme="dark"] .rmx .gl-row .hash,
html[data-theme="dark"] .rmx .vrail .vv,
html[data-theme="dark"] .rmx .ch-head .n,
html[data-theme="dark"] .rmx .c-head .hash,
html[data-theme="dark"] .rmx .env-head .scope { color:var(--sov-300); }
html[data-theme="dark"] .rmx .nav-links a.active::after { background:var(--sov-300); }
html[data-theme="dark"] .rmx .hero h1 i { color:var(--sov-300); }
html[data-theme="dark"] .rmx .vrail a.now, html[data-theme="dark"] .rmx .vrail .sel { border-left-color:var(--sov-300); }
html[data-theme="dark"] .rmx .graphband { background:#050506; border-bottom-color:#232327; }
html[data-theme="dark"] .rmx .guide-fab { background:var(--ink-100); border-color:var(--ink-200); }
html[data-theme="dark"] .rmx .cal-day[data-l="1"] { background:#0e4429; }
html[data-theme="dark"] .rmx .cal-day[data-l="2"] { background:#006d32; }
html[data-theme="dark"] .rmx .cal-day[data-l="3"] { background:#26a641; }
html[data-theme="dark"] .rmx .cal-day[data-l="4"] { background:#39d353; }

@media (max-width:1040px){
  .rmx .hero-grid{ grid-template-columns:1fr; gap:40px; }
  .rmx .stats{ grid-template-columns:repeat(2,1fr); }
  .rmx .sec-head-split{ grid-template-columns:1fr; align-items:start; }
  .rmx .foot-grid{ grid-template-columns:1fr 1fr; }
  .rmx .lane,.rmx .lane-months{ grid-template-columns:170px repeat(5,1fr); }
}

/* =============================================================
   Discussion dialog (net-new in roadmap v2)
   ============================================================= */
.rmx .rdx-overlay { position:fixed; inset:0; z-index:80; background:rgba(9,9,11,.55); display:flex; align-items:center; justify-content:center; padding:32px; }
.rmx .rdx { width:min(1020px,100%); height:min(680px,calc(100vh - 64px)); background:var(--ink-0); border:1px solid var(--border); border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); display:grid; grid-template-rows:auto 1fr; overflow:hidden; }
.rmx .rdx-head { display:flex; align-items:center; gap:14px; padding:16px 22px; border-bottom:1px solid var(--border); background:var(--ink-50); }
.rmx .rdx-head b { font:600 15px/1 var(--font-sans); letter-spacing:-.01em; color:var(--ink-950); }
.rmx .rdx-head .rdx-sub { font:400 12px/1 var(--font-sans); color:var(--ink-500); }
.rmx .rdx-agentschips { margin-left:auto; display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.rmx .rdx-close { width:32px; height:32px; border-radius:var(--radius); border:1px solid var(--border-strong); background:transparent; color:var(--ink-600); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; margin-left:8px; }
.rmx .rdx-close:hover { background:var(--ink-100); }
.rmx .rdx-close svg { width:14px; height:14px; stroke-width:2; }
.rmx .mn { font:600 11px/1 var(--font-mono); border-radius:var(--radius-sm); padding:2px 6px; white-space:nowrap; }
.rmx .mn-mutale { color:var(--sov-700); background:var(--sov-50); border:1px solid var(--sov-200); }
.rmx .mn-bwalya { color:var(--emerald-700); background:var(--emerald-50); border:1px solid var(--emerald-200); }
.rmx .mn-lombe { color:var(--amber-700); background:var(--amber-50); border:1px solid var(--amber-200); }
.rmx .mn-chileshe { color:var(--rose-700); background:var(--rose-50); border:1px solid var(--rose-200); }
.rmx .rdx-body { display:grid; grid-template-columns:286px 1fr; min-height:0; }
.rmx .rdx-side { border-right:1px solid var(--border); background:var(--ink-50); overflow-y:auto; padding:18px; display:flex; flex-direction:column; gap:18px; }
.rmx .rdx-side h5 { font:600 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); margin:0 0 -8px; }
.rmx .rdx-join { border:1px solid var(--border); border-radius:var(--radius-md); background:var(--ink-0); padding:14px 15px; }
.rmx .rdx-join label { display:block; font:600 12px/1.3 var(--font-sans); color:var(--ink-900); margin-bottom:9px; }
.rmx .rdx-join .row { display:flex; gap:6px; }
.rmx .rdx-join input { flex:1; min-width:0; height:34px; border:1px solid var(--input); border-radius:var(--radius); padding:0 10px; font:500 12.5px/1 var(--font-mono); color:var(--ink-900); background:var(--ink-0); }
.rmx .rdx-join input:focus { outline:none; border-color:var(--ring); box-shadow:var(--shadow-focus); }
.rmx .rdx-join .btn { height:34px; padding:0 12px; font-size:12px; }
.rmx .rdx-join small { display:block; font:400 10.5px/1.5 var(--font-sans); color:var(--ink-500); margin-top:8px; }
.rmx .rdx-join .err { font:500 11px/1.4 var(--font-sans); color:var(--rose-600); margin-top:7px; }
.rmx .rdx-me { display:flex; align-items:center; gap:10px; border:1px solid var(--emerald-200); background:var(--emerald-50); border-radius:var(--radius-md); padding:11px 13px; }
.rmx .rdx-me .av { width:28px; height:28px; border-radius:999px; background:var(--emerald-600); color:#fff; font:600 11px/1 var(--font-sans); display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
.rmx .rdx-me .who b { display:block; font:600 12px/1.2 var(--font-sans); color:var(--ink-950); }
.rmx .rdx-me .who span { font:500 10.5px/1.4 var(--font-mono); color:var(--ink-500); }
.rmx .rdx-me .leave { margin-left:auto; font:500 11px/1 var(--font-sans); color:var(--ink-500); background:none; border:none; cursor:pointer; text-decoration:underline; }
.rmx .rdx-threads { display:flex; flex-direction:column; gap:6px; }
.rmx .rdx-thread { text-align:left; background:var(--ink-0); border:1px solid var(--border); border-radius:var(--radius-md); padding:11px 13px; cursor:pointer; width:100%; }
.rmx .rdx-thread:hover { border-color:var(--border-strong); }
.rmx .rdx-thread.active { border-color:var(--sov-200); box-shadow:0 0 0 1px var(--sov-200); }
.rmx .rdx-thread .tt { display:flex; align-items:center; gap:8px; }
.rmx .rdx-thread .tt b { font:600 12.5px/1.3 var(--font-sans); color:var(--ink-950); flex:1; min-width:0; }
.rmx .rdx-thread .tag { font:600 9px/1 var(--font-mono); color:var(--sov-700); background:var(--sov-50); border:1px solid var(--sov-200); border-radius:var(--radius-sm); padding:3px 5px; flex-shrink:0; }
.rmx .rdx-thread .tm { display:block; font:400 11px/1.45 var(--font-sans); color:var(--ink-500); margin-top:5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rmx .rdx-thread .tc { display:block; font:500 10px/1 var(--font-mono); color:var(--ink-400); margin-top:7px; }
.rmx .rdx-agents { display:flex; flex-direction:column; gap:6px; }
.rmx .rdx-agent { display:flex; align-items:center; gap:10px; border:1px solid var(--border); background:var(--ink-0); border-radius:var(--radius-md); padding:9px 12px; }
.rmx .rdx-agent .av { width:26px; height:26px; border-radius:var(--radius-sm); font:600 11px/1 var(--font-mono); display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
.rmx .rdx-agent.mutale .av { background:var(--sov-50); color:var(--sov-700); border:1px solid var(--sov-200); }
.rmx .rdx-agent.bwalya .av { background:var(--emerald-50); color:var(--emerald-700); border:1px solid var(--emerald-200); }
.rmx .rdx-agent.lombe .av { background:var(--amber-50); color:var(--amber-700); border:1px solid var(--amber-200); }
.rmx .rdx-agent.chileshe .av { background:var(--rose-50); color:var(--rose-700); border:1px solid var(--rose-200); }
.rmx .rdx-agent .who b { display:block; font:600 12px/1.2 var(--font-mono); color:var(--ink-950); }
.rmx .rdx-agent .who span { font:400 10.5px/1.4 var(--font-sans); color:var(--ink-500); }
.rmx .rdx-agent .live { margin-left:auto; width:6px; height:6px; border-radius:999px; background:var(--emerald-500); box-shadow:0 0 0 2px color-mix(in oklab,var(--emerald-500) 20%,transparent); }
.rmx .rdx-main { display:grid; grid-template-rows:auto 1fr auto; min-height:0; }
.rmx .rdx-thread-head { display:flex; align-items:center; gap:10px; padding:14px 22px; border-bottom:1px solid var(--border); }
.rmx .rdx-thread-head b { font:600 14px/1.25 var(--font-sans); color:var(--ink-950); }
.rmx .rdx-thread-head .tag { font:600 9px/1 var(--font-mono); color:var(--sov-700); background:var(--sov-50); border:1px solid var(--sov-200); border-radius:var(--radius-sm); padding:3px 5px; }
.rmx .rdx-thread-head .meta { margin-left:auto; font:500 11px/1 var(--font-mono); color:var(--ink-400); }
.rmx .rdx-msgs { overflow-y:auto; padding:20px 22px; display:flex; flex-direction:column; gap:16px; }
.rmx .rdx-msg { display:grid; grid-template-columns:32px 1fr; gap:12px; }
.rmx .rdx-msg .av { width:32px; height:32px; border-radius:999px; background:var(--ink-150); color:var(--ink-600); border:1px solid var(--border); font:600 11px/1 var(--font-sans); display:inline-flex; align-items:center; justify-content:center; }
.rmx .rdx-msg.me .av { background:var(--emerald-600); color:#fff; border-color:transparent; }
.rmx .rdx-msg .ln { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.rmx .rdx-msg .ln b { font:600 12.5px/1 var(--font-sans); color:var(--ink-950); }
.rmx .rdx-msg .ln .ph { font:500 10.5px/1 var(--font-mono); color:var(--ink-400); }
.rmx .rdx-msg .ln .t { font:500 10.5px/1 var(--font-mono); color:var(--ink-400); margin-left:auto; }
.rmx .rdx-msg p { font:400 13px/1.6 var(--font-sans); color:var(--ink-700); margin:5px 0 0; max-width:64ch; overflow-wrap:break-word; }
.rmx .rdx-msg.agent .av { border-radius:var(--radius-sm); font-family:var(--font-mono); }
.rmx .rdx-msg.agent.mutale .av { background:var(--sov-50); color:var(--sov-700); border:1px solid var(--sov-200); }
.rmx .rdx-msg.agent.bwalya .av { background:var(--emerald-50); color:var(--emerald-700); border:1px solid var(--emerald-200); }
.rmx .rdx-msg.agent.lombe .av { background:var(--amber-50); color:var(--amber-700); border:1px solid var(--amber-200); }
.rmx .rdx-msg.agent.chileshe .av { background:var(--rose-50); color:var(--rose-700); border:1px solid var(--rose-200); }
.rmx .rdx-msg.agent .ln b { font-family:var(--font-mono); }
.rmx .rdx-msg.agent .scope { font:600 9px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; padding:3px 6px; border-radius:var(--radius-sm); }
.rmx .rdx-msg.agent.mutale .scope { background:var(--sov-50); color:var(--sov-700); border:1px solid var(--sov-200); }
.rmx .rdx-msg.agent.bwalya .scope { background:var(--emerald-50); color:var(--emerald-700); border:1px solid var(--emerald-200); }
.rmx .rdx-msg.agent.lombe .scope { background:var(--amber-50); color:var(--amber-700); border:1px solid var(--amber-200); }
.rmx .rdx-msg.agent.chileshe .scope { background:var(--rose-50); color:var(--rose-700); border:1px solid var(--rose-200); }
.rmx .rdx-msg.agent .bubble { margin-top:5px; border:1px solid var(--border); border-left-width:2px; border-radius:var(--radius-md); padding:10px 14px; background:var(--ink-50); }
.rmx .rdx-msg.agent.mutale .bubble { border-left-color:var(--sov-400); }
.rmx .rdx-msg.agent.bwalya .bubble { border-left-color:var(--emerald-500); }
.rmx .rdx-msg.agent.lombe .bubble { border-left-color:var(--amber-500); }
.rmx .rdx-msg.agent.chileshe .bubble { border-left-color:var(--rose-500); }
.rmx .rdx-msg.agent .bubble p { margin:0; color:var(--ink-700); }
.rmx .rdx-msg .typing { display:inline-flex; gap:4px; padding:12px 14px; }
.rmx .rdx-msg .typing i { width:5px; height:5px; border-radius:999px; background:var(--ink-400); animation:rdx-blink 1s infinite; }
.rmx .rdx-msg .typing i:nth-child(2) { animation-delay:.15s; }
.rmx .rdx-msg .typing i:nth-child(3) { animation-delay:.3s; }
@keyframes rdx-blink { 0%,60%,100% { opacity:.3; } 30% { opacity:1; } }
.rmx .rdx-composer { border-top:1px solid var(--border); padding:14px 22px 16px; position:relative; }
.rmx .rdx-composer .row { display:flex; gap:8px; }
.rmx .rdx-composer input { flex:1; min-width:0; height:40px; border:1px solid var(--input); border-radius:var(--radius); padding:0 13px; font:400 13px/1 var(--font-sans); color:var(--ink-900); background:var(--ink-0); }
.rmx .rdx-composer input:focus { outline:none; border-color:var(--ring); box-shadow:var(--shadow-focus); }
.rmx .rdx-composer input:disabled { background:var(--ink-50); cursor:not-allowed; }
.rmx .rdx-composer .hint { display:flex; gap:6px; align-items:center; font:400 11px/1 var(--font-sans); color:var(--ink-500); margin-top:9px; flex-wrap:wrap; }
.rmx .rdx-composer .locked { font:500 11px/1.4 var(--font-sans); color:var(--ink-500); margin-top:9px; }
@media (max-width:820px){
  .rmx .rdx-overlay { padding:12px; }
  .rmx .rdx-body { grid-template-columns:1fr; }
  .rmx .rdx-side { display:none; }
}

/* ============================================================================
   Marketing pages — platform / solutions / developers / pricing / about / contact
   Shared sovereign skin; all colours via tokens so dark mode flips automatically.
   ============================================================================ */
.rmx .hero-solo { position:relative; border-bottom:1px solid var(--border); overflow:hidden; }
.rmx .hero-solo::before { content:""; position:absolute; inset:0; pointer-events:none; background-image:var(--ledger-stripe); -webkit-mask-image:linear-gradient(180deg,transparent,#000 30%,#000 80%,transparent); mask-image:linear-gradient(180deg,transparent,#000 30%,#000 80%,transparent); opacity:.7; }
.rmx .hero-solo .wrap { position:relative; padding:78px var(--rmx-gutter) 60px; }
.rmx .hero-solo h1 { font-family:var(--font-serif); font-weight:400; font-size:54px; line-height:1.05; letter-spacing:-.015em; color:var(--ink-950); margin:20px 0 18px; max-width:20ch; }
.rmx .hero-solo h1 i { font-style:italic; color:var(--sov-700); }
.rmx .hero-solo .lede { font:400 17px/1.62 var(--font-sans); color:var(--ink-600); max-width:62ch; margin:0 0 28px; }

.rmx .capgroup { padding:60px 0; border-bottom:1px solid var(--border); }
.rmx .capgroup:last-of-type { border-bottom:none; }
.rmx .cap-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden; margin-top:32px; }
.rmx .cap { background:var(--ink-0); padding:24px 26px; display:flex; flex-direction:column; min-height:172px; transition:background 120ms; }
.rmx .cap:hover { background:var(--ink-50); }
.rmx .cap h3 { font:600 15px/1.3 var(--font-sans); letter-spacing:-.005em; color:var(--ink-950); margin:0 0 9px; }
.rmx .cap p { font:400 12.5px/1.58 var(--font-sans); color:var(--ink-600); margin:0; flex:1; }
.rmx .cap .proof { margin-top:16px; font:500 10.5px/1 var(--font-mono); color:var(--sov-600); display:inline-flex; align-items:center; gap:6px; word-break:break-all; }
.rmx .cap .proof::before { content:"→"; color:var(--ink-400); }
@media (max-width:1040px){ .rmx .cap-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:680px){ .rmx .cap-grid{ grid-template-columns:1fr; } }

.rmx .tiers { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:40px; }
.rmx .tier { background:var(--ink-0); border:1px solid var(--border); border-radius:var(--radius-md); padding:28px 26px; display:flex; flex-direction:column; }
.rmx .tier.featured { border-color:var(--sov-400); box-shadow:var(--shadow-md); }
.rmx .tier .tname { font:600 11px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--sov-600); }
.rmx .tier .price { font:600 34px/1 var(--font-sans); letter-spacing:-.02em; color:var(--ink-950); margin:16px 0 4px; font-variant-numeric:tabular-nums; }
.rmx .tier .price small { font:500 13px/1 var(--font-sans); color:var(--ink-500); letter-spacing:0; }
.rmx .tier .tsub { font:400 13px/1.5 var(--font-sans); color:var(--ink-600); margin:0 0 18px; min-height:42px; }
.rmx .tier ul { list-style:none; margin:0 0 22px; padding:0; flex:1; }
.rmx .tier li { font:400 13px/1.5 var(--font-sans); color:var(--ink-700); padding:8px 0 8px 24px; position:relative; border-top:1px solid var(--ink-100); }
.rmx .tier li:first-child { border-top:none; }
.rmx .tier li::before { content:"✓"; position:absolute; left:0; color:var(--emerald-600); font-weight:700; }
@media (max-width:900px){ .rmx .tiers{ grid-template-columns:1fr; } }

.rmx .rows { display:flex; flex-direction:column; border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden; margin-top:32px; }
.rmx .row2 { display:grid; grid-template-columns:248px 1fr; gap:24px; padding:20px 24px; background:var(--ink-0); border-bottom:1px solid var(--ink-100); }
.rmx .row2:last-child { border-bottom:none; }
.rmx .row2:hover { background:var(--ink-50); }
.rmx .row2 .rk { font:600 13.5px/1.35 var(--font-sans); color:var(--ink-950); }
.rmx .row2 .rk small { display:block; font:500 10.5px/1.3 var(--font-mono); color:var(--sov-600); margin-top:6px; }
.rmx .row2 .rv { font:400 13.5px/1.6 var(--font-sans); color:var(--ink-600); }
.rmx .row2 .rv code { font-family:var(--font-mono); font-size:12px; background:var(--ink-100); border:1px solid var(--border); border-radius:4px; padding:2px 6px; color:var(--ink-800); }
@media (max-width:680px){ .rmx .row2{ grid-template-columns:1fr; gap:8px; } }

.rmx .codeblock { background:#0b0b0d; border:1px solid #26262b; border-radius:var(--radius-md); padding:20px 22px; overflow-x:auto; margin-top:18px; }
.rmx .codeblock pre { margin:0; font:400 12.5px/1.7 var(--font-mono); color:#e4e4e7; white-space:pre; }
.rmx .codeblock .cm { color:#7d99d3; }
.rmx .codeblock .ck { color:#6ee7b7; }

.rmx .contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:40px; align-items:start; }
.rmx .field { margin-bottom:16px; }
.rmx .field label { display:block; font:600 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); margin-bottom:8px; }
.rmx .field input, .rmx .field textarea, .rmx .field select { width:100%; border:1px solid var(--input); border-radius:var(--radius); padding:11px 13px; font:400 14px/1.4 var(--font-sans); color:var(--ink-900); background:var(--ink-0); }
.rmx .field input:focus, .rmx .field textarea:focus, .rmx .field select:focus { outline:none; border-color:var(--ring); box-shadow:var(--shadow-focus); }
.rmx .field textarea { min-height:120px; resize:vertical; }
.rmx .contact-aside { background:var(--ink-50); border:1px solid var(--border); border-radius:var(--radius-md); padding:26px 28px; }
.rmx .contact-aside h4 { font:600 11px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); margin:0 0 14px; }
.rmx .contact-aside p { font:400 13.5px/1.6 var(--font-sans); color:var(--ink-700); margin:0 0 16px; }
.rmx .contact-aside .cl { display:flex; align-items:center; gap:10px; font:500 13px/1.4 var(--font-sans); color:var(--ink-800); margin-bottom:12px; }
.rmx .contact-aside .cl svg { width:15px; height:15px; color:var(--sov-600); flex-shrink:0; }
@media (max-width:760px){ .rmx .contact-grid{ grid-template-columns:1fr; gap:28px; } }

.rmx .ctaband { padding:72px 0; text-align:center; border-bottom:1px solid var(--border); }
.rmx .ctaband h2 { font-family:var(--font-serif); font-weight:400; font-size:38px; line-height:1.1; letter-spacing:-.01em; color:var(--ink-950); margin:0 0 14px; }
.rmx .ctaband p { font:400 16px/1.6 var(--font-sans); color:var(--ink-600); max-width:54ch; margin:0 auto 26px; }
.rmx .ctaband .hero-cta { justify-content:center; }

/* ============================================================================
   Editions library — books on a shelf (/editions) + the per-edition novel
   ============================================================================ */
.rmx .lib { padding:46px 0 70px; }
.rmx .shelf-label { font:600 11px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); margin:0 0 26px; }
.rmx .shelf-label.up { margin-top:48px; }
.rmx .shelf { display:flex; gap:30px; align-items:flex-end; flex-wrap:wrap; padding:0 6px; }
.rmx .shelf-base { height:13px; margin:2px 0 0; border-radius:0 0 5px 5px; background:linear-gradient(var(--ink-200),var(--ink-300)); box-shadow:0 14px 22px -12px rgba(0,0,0,.45); }
.rmx .book-slot { position:relative; text-decoration:none; flex:0 0 auto; }

/* the book */
.rmx .book { position:relative; width:150px; height:222px; border-radius:3px 7px 7px 3px; background:linear-gradient(140deg,var(--bk-a),var(--bk-b)); color:#fff; overflow:hidden; box-shadow:0 2px 0 rgba(0,0,0,.25),0 16px 26px -14px rgba(0,0,0,.55); transition:transform .2s ease, box-shadow .2s ease; }
.rmx .book::after { content:""; position:absolute; inset:0; background:linear-gradient(135deg,rgba(255,255,255,.16),transparent 42%); pointer-events:none; }
.rmx .book::before { content:""; position:absolute; top:4px; bottom:4px; right:0; width:5px; background:repeating-linear-gradient(var(--bk-spine) 0 1px, rgba(255,255,255,.35) 1px 3px); opacity:.5; }
.rmx .book-slot:hover .book { transform:translateY(-10px) rotate(-1.2deg); box-shadow:0 2px 0 rgba(0,0,0,.25),0 26px 36px -16px rgba(0,0,0,.6); }
.rmx .bc-spine { position:absolute; left:0; top:0; bottom:0; width:13px; background:var(--bk-spine); box-shadow:inset -2px 0 5px rgba(0,0,0,.35); }
.rmx .bc-face { position:relative; height:100%; padding:18px 15px 15px 26px; display:flex; flex-direction:column; }
.rmx .bc-icon { font-size:24px; line-height:1; }
.rmx .bc-name { font-family:var(--font-serif); font-weight:400; font-size:22px; line-height:1.05; letter-spacing:-.01em; margin-top:auto; color:#fff; }
.rmx .bc-tag { font:400 10.5px/1.4 var(--font-sans); color:rgba(255,255,255,.82); margin-top:9px; }
.rmx .bc-foot { font:600 8.5px/1 var(--font-sans); letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.62); margin-top:11px; }
.rmx .book-active { position:absolute; top:-10px; right:-6px; z-index:4; font:600 9px/1 var(--font-mono); color:var(--emerald-700); background:var(--emerald-50); border:1px solid var(--emerald-200); border-radius:999px; padding:4px 8px; }

/* upcoming / empty */
.rmx .book-upcoming { background:linear-gradient(140deg,#3f3f46,#52525b); filter:saturate(.4); }
.rmx .bc-soon { margin-top:11px; font:600 8.5px/1 var(--font-sans); letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.7); border:1px solid rgba(255,255,255,.3); border-radius:999px; padding:4px 8px; align-self:flex-start; }
.rmx .book-empty { background:none; border:2px dashed var(--border-strong); box-shadow:none; }
.rmx .book-empty::after, .rmx .book-empty::before { display:none; }

/* hover detail above the book */
.rmx .book-pop { position:absolute; left:50%; bottom:calc(100% + 16px); transform:translateX(-50%) translateY(6px); width:240px; background:var(--ink-0); border:1px solid var(--border); border-radius:var(--radius-md); box-shadow:var(--shadow-lg); padding:16px 17px; opacity:0; visibility:hidden; transition:opacity .16s ease, transform .16s ease; z-index:6; }
.rmx .book-pop::after { content:""; position:absolute; left:50%; top:100%; transform:translateX(-50%); border:7px solid transparent; border-top-color:var(--ink-0); filter:drop-shadow(0 1px 0 var(--border)); }
.rmx .book-slot:hover .book-pop { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.rmx .book-pop b { font:600 14px/1.2 var(--font-sans); color:var(--ink-950); }
.rmx .book-pop p { font:400 12px/1.5 var(--font-sans); color:var(--ink-600); margin:6px 0 10px; }
.rmx .book-pop ul { list-style:none; margin:0 0 12px; padding:0; }
.rmx .book-pop li { font:500 11.5px/1.5 var(--font-sans); color:var(--ink-700); padding:5px 0 5px 16px; position:relative; border-top:1px solid var(--ink-100); }
.rmx .book-pop li::before { content:""; position:absolute; left:2px; top:11px; width:5px; height:5px; border-radius:999px; background:var(--sov-400); }
.rmx .book-pop .bp-open { font:600 11.5px/1 var(--font-sans); color:var(--sov-600); }

/* the novel */
.rmx .novel-hero { position:relative; overflow:hidden; background:linear-gradient(155deg,var(--bk-a),var(--bk-b)); color:#fff; }
.rmx .novel-hero::before { content:""; position:absolute; inset:0; background-image:var(--ledger-stripe); opacity:.4; mix-blend-mode:screen; }
.rmx .nh-grid { position:relative; display:grid; grid-template-columns:1.25fr .75fr; gap:40px; align-items:center; padding:54px 0 60px; }
.rmx .novel-back { display:inline-block; font:600 12px/1 var(--font-sans); color:rgba(255,255,255,.85); text-decoration:none; margin-bottom:20px; }
.rmx .nh-eyebrow { font:600 11px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:rgba(255,255,255,.7); }
.rmx .nh-copy h1 { font-family:var(--font-serif); font-weight:400; font-size:56px; line-height:1.03; letter-spacing:-.015em; color:#fff; margin:14px 0 12px; }
.rmx .nh-tag { font:400 17px/1.5 var(--font-sans); color:rgba(255,255,255,.85); margin:0 0 22px; max-width:42ch; }
.rmx .nh-meta { display:flex; flex-wrap:wrap; gap:22px; margin-bottom:18px; }
.rmx .nh-meta span { font:400 12.5px/1 var(--font-sans); color:rgba(255,255,255,.7); }
.rmx .nh-meta b { font-weight:600; color:#fff; }
.rmx .nh-price { font:500 13px/1 var(--font-mono); color:rgba(255,255,255,.78); margin:0 0 26px; }
.rmx .nh-cta .btn-primary { background:#fff; color:#09090b; }
.rmx .nh-cta .btn-primary:hover { background:rgba(255,255,255,.88); }
/* out-specify the dark-mode .btn-primary override (this button sits on a coloured hero) */
html[data-theme="dark"] .rmx .nh-cta .btn-primary { background:#fff; color:#09090b; }
.rmx .nh-cta .btn-ghost { color:#fff; border-color:rgba(255,255,255,.4); }
.rmx .nh-book { display:flex; justify-content:center; }
.rmx .book-lg { width:228px; height:330px; }
.rmx .book-lg .bc-name { font-size:30px; }
.rmx .book-lg .bc-tag { font-size:12px; }

.rmx .novel-intro { border-bottom:1px solid var(--border); background:var(--ink-50); }
.rmx .novel-intro .wrap { padding:34px var(--rmx-gutter); }
.rmx .novel-intro p { font:400 18px/1.6 var(--font-serif); font-style:italic; color:var(--ink-700); margin:0; max-width:64ch; }
.rmx .novel-compliance { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:18px; }
.rmx .novel-compliance .cl-lbl { font:600 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); }
.rmx .novel-compliance .cl-tag { font:600 11px/1 var(--font-sans); color:var(--sov-700); background:var(--sov-50); border:1px solid var(--sov-200); border-radius:999px; padding:5px 11px; }

.rmx .novel .chapters { padding:60px 0; }
.rmx .novel .chapter { display:grid; grid-template-columns:210px 1fr; gap:46px; align-items:center; padding:30px 0; border-bottom:1px solid var(--ink-100); }
.rmx .novel .chapter:last-child { border-bottom:none; }
.rmx .novel .chapter.flip { grid-template-columns:1fr 210px; }
.rmx .novel .chapter.flip .ch-art { order:2; }
.rmx .ch-art { width:210px; height:210px; border-radius:50%; background:linear-gradient(150deg,var(--bk-a),var(--bk-b)); display:flex; align-items:center; justify-content:center; color:#fff; box-shadow:0 16px 30px -14px rgba(0,0,0,.5); position:relative; overflow:hidden; }
.rmx .ch-art::after { content:""; position:absolute; inset:0; background:linear-gradient(140deg,rgba(255,255,255,.18),transparent 50%); }
.rmx .ch-art svg { width:98px; height:98px; position:relative; }
.rmx .ch-no { font:600 11px/1 var(--font-mono); color:var(--ink-400); }
.rmx .ch-copy h3 { font:600 24px/1.2 var(--font-sans); letter-spacing:-.015em; color:var(--ink-950); margin:10px 0 12px; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.rmx .ch-mode { font:600 9px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; padding:5px 8px; border-radius:var(--radius-sm); }
.rmx .ch-mode.pub { background:var(--sky-50); color:var(--sky-600); border:1px solid var(--sky-200); }
.rmx .ch-mode.int { background:var(--amber-50); color:var(--amber-700); border:1px solid var(--amber-200); }
.rmx .ch-mode.on { background:var(--emerald-50); color:var(--emerald-700); border:1px solid var(--emerald-200); }
.rmx .ch-copy p { font:400 15.5px/1.65 var(--font-sans); color:var(--ink-600); margin:0; max-width:60ch; }
@media (max-width:760px){
  .rmx .nh-grid { grid-template-columns:1fr; }
  .rmx .nh-book { display:none; }
  .rmx .novel .chapter, .rmx .novel .chapter.flip { grid-template-columns:1fr; gap:20px; justify-items:start; }
  .rmx .chapter.flip .ch-art { order:0; }
}

.rmx .logos { display:flex; gap:26px; flex-wrap:wrap; align-items:center; margin-top:30px; }
.rmx .logos span { font:600 11px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-400); }

/* national flag + flag-colour badges (Sovereign / National edition) */
.rmx .natl { display:inline-flex; align-items:center; gap:12px; }
.rmx .natl-flag { width:46px; height:31px; object-fit:cover; border-radius:3px; box-shadow:0 2px 6px rgba(0,0,0,.25); border:1px solid rgba(0,0,0,.12); flex-shrink:0; }
.rmx .natl-meta { display:flex; flex-direction:column; gap:6px; }
.rmx .natl-name { font:600 12.5px/1 var(--font-sans); color:var(--ink-900); }
.rmx .natl-badges { display:inline-flex; gap:5px; }
.rmx .natl-sw { width:13px; height:13px; border-radius:3px; box-shadow:inset 0 0 0 1px rgba(0,0,0,.18); }
.rmx .natl.on-dark .natl-name { color:#fff; }
.rmx .natl.on-dark .natl-flag { border-color:rgba(255,255,255,.3); }
.rmx .natl.on-dark .natl-sw { box-shadow:inset 0 0 0 1px rgba(255,255,255,.4); }
.rmx .nh-natl { margin:0 0 20px; }
.rmx .eb-natl { margin-top:14px; }
.rmx .auth-natl { margin-top:20px; }

/* global breadcrumbs (under the nav, rooted at Home) */
.rmx .crumbs { border-bottom:1px solid var(--border); background:color-mix(in oklab,var(--ink-50) 70%,transparent); }
.rmx .crumbs .wrap { display:flex; align-items:center; flex-wrap:wrap; gap:2px; padding:11px var(--rmx-gutter); }
.rmx .crumbs a, .rmx .crumbs .crumb-cur { font:500 12px/1 var(--font-sans); text-decoration:none; }
.rmx .crumb-home { display:inline-flex; align-items:center; gap:6px; color:var(--ink-600); }
.rmx .crumb-home:hover { color:var(--ink-950); }
.rmx .crumb-home svg { width:14px; height:14px; }
.rmx .crumb-seg { display:inline-flex; align-items:center; gap:2px; }
.rmx .crumb-sep { color:var(--ink-300); margin:0 7px; font-size:12px; }
.rmx .crumb-link { color:var(--ink-600); }
.rmx .crumb-link:hover { color:var(--ink-950); }
.rmx .crumb-cur { color:var(--ink-950); font-weight:600; }

/* /platform edition-aware band */
.rmx .ed-band { position:relative; overflow:hidden; background:linear-gradient(150deg,var(--bk-a),var(--bk-b)); color:#fff; border-bottom:1px solid var(--border); }
.rmx .ed-band::before { content:""; position:absolute; inset:0; background-image:var(--ledger-stripe); opacity:.4; mix-blend-mode:screen; }
.rmx .ed-band .wrap { position:relative; display:grid; grid-template-columns:1fr auto; gap:30px; align-items:center; padding:30px var(--rmx-gutter); }
.rmx .ed-band .eb-eyebrow { font:600 11px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:rgba(255,255,255,.75); }
.rmx .ed-band h2 { font-family:var(--font-serif); font-weight:400; font-size:30px; line-height:1.1; letter-spacing:-.01em; color:#fff; margin:10px 0 8px; }
.rmx .ed-band p { font:400 14px/1.55 var(--font-sans); color:rgba(255,255,255,.82); margin:0; max-width:62ch; }
.rmx .ed-band .eb-side { display:flex; flex-direction:column; align-items:flex-end; gap:14px; }
.rmx .ed-band .eb-meta { display:flex; gap:18px; }
.rmx .ed-band .eb-meta span { font:400 12px/1 var(--font-sans); color:rgba(255,255,255,.7); }
.rmx .ed-band .eb-meta b { font-weight:600; color:#fff; }
/* fixed #09090b (not --ink-950, which inverts to white in dark mode) since the button is always white */
.rmx .ed-band .eb-btn { background:#fff; color:#09090b; white-space:nowrap; }
.rmx .ed-band .eb-btn:hover { background:rgba(255,255,255,.88); }
@media (max-width:760px){ .rmx .ed-band .wrap { grid-template-columns:1fr; } .rmx .ed-band .eb-side { align-items:flex-start; } }

/* ── Rollout schedule + running environment ─────────────────────────────── */
.rmx .rollout-band { background:var(--ink-50); border-bottom:1px solid var(--border); }
.rmx .rollout-band .wrap { padding:26px var(--rmx-gutter); }
.rmx .rb-head { display:flex; justify-content:space-between; align-items:flex-end; gap:18px; flex-wrap:wrap; }
.rmx .rb-badges { display:flex; align-items:center; gap:10px; }
.rmx .rb-env { display:inline-flex; align-items:center; gap:7px; font:600 12px/1 var(--font-sans); padding:7px 12px; border-radius:999px; border:1px solid var(--border); color:var(--ink-700); background:var(--ink-0); }
.rmx .rb-env .dot { width:7px; height:7px; border-radius:50%; background:currentColor; }
.rmx .rb-env-production { color:#16794a; border-color:rgba(22,121,74,.35); background:rgba(22,121,74,.08); }
.rmx .rb-env-staging { color:#9a6b00; border-color:rgba(154,107,0,.35); background:rgba(154,107,0,.08); }
.rmx .rb-env-development { color:#1f6feb; border-color:rgba(31,111,235,.35); background:rgba(31,111,235,.08); }
.rmx .rb-ver { font:600 12px/1 var(--font-mono,var(--font-sans)); padding:7px 12px; border-radius:999px; border:1px solid var(--border); color:var(--ink-700); }
.rmx .rb-deployed { font:500 11px/1 var(--font-mono,var(--font-sans)); padding:7px 10px; border-radius:999px; border:1px solid var(--border); color:var(--ink-500); display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
.rmx .rb-timeline { list-style:none; margin:20px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.rmx .rb-step { position:relative; padding:14px 16px; border-radius:14px; border:1px solid var(--border); background:var(--ink-0); display:flex; flex-direction:column; gap:5px; }
.rmx .rb-step::before { content:""; position:absolute; left:16px; top:14px; width:8px; height:8px; border-radius:50%; background:var(--ink-300); }
.rmx .rb-step .rb-when { padding-left:18px; font:700 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); }
.rmx .rb-step .rb-cohort { font:600 16px/1.1 var(--font-sans); color:var(--ink-900); }
.rmx .rb-step .rb-date { font:400 13px/1 var(--font-sans); color:var(--ink-600); }
.rmx .rb-step.rb-live { border-color:rgba(22,121,74,.35); background:rgba(22,121,74,.06); }
.rmx .rb-step.rb-live::before { background:#16794a; box-shadow:0 0 0 3px rgba(22,121,74,.18); }
.rmx .rb-step.rb-live .rb-when { color:#16794a; }
@media (max-width:760px){ .rmx .rb-timeline { grid-template-columns:1fr 1fr; } }
@media (max-width:460px){ .rmx .rb-timeline { grid-template-columns:1fr; } }

.rmx .blist { list-style:none; margin:14px 0 0; padding:0; }
.rmx .blist li { font:400 12px/1.5 var(--font-sans); color:var(--ink-600); padding:6px 0 6px 18px; position:relative; border-top:1px solid var(--ink-100); }
.rmx .blist li:first-child { border-top:none; }
.rmx .blist li::before { content:""; position:absolute; left:3px; top:12px; width:5px; height:5px; border-radius:999px; background:var(--sov-400); }
.rmx .cap.tall { min-height:auto; }

/* ============================================================================
   Sovereign SSO auth — split-screen brand panel + form card (/auth/*)
   ============================================================================ */
.rmx.auth, .rmx .auth { min-height:100vh; display:grid; grid-template-columns:1.05fr 0.95fr; }
/* fixed dark in both themes (a token would invert in dark mode) */
.rmx .auth-brand { position:relative; background:#0b0b0d; color:#fff; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; padding:52px 56px; }
/* edition-branded: the panel takes the edition's accent gradient */
.rmx .auth-brand.branded { background:linear-gradient(158deg,var(--bk-a),var(--bk-b)); }
.rmx .auth-ed-chip { display:inline-flex; align-items:center; gap:7px; font:600 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:#fff; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.25); border-radius:999px; padding:6px 12px; margin-bottom:18px; }
.rmx .auth-ed-chip .dot { width:6px; height:6px; border-radius:999px; background:#fff; }
.rmx .auth-home { display:inline-flex; align-items:center; gap:6px; font:600 12px/1 var(--font-sans); color:var(--ink-500); text-decoration:none; margin-bottom:22px; transition:color 120ms; }
.rmx .auth-home:hover { color:var(--ink-950); }
.rmx .auth-home svg { width:14px; height:14px; }
.rmx .auth-brand::before { content:""; position:absolute; inset:0; background-image:var(--ledger-stripe); opacity:.4; mix-blend-mode:screen; }
.rmx .auth-brand > * { position:relative; }
.rmx .auth-brand .lockup b { color:#fff; }
.rmx .auth-brand .lockup span { color:rgba(255,255,255,.6); border-left-color:rgba(255,255,255,.25); }
.rmx .auth-brand .bquote { font-family:var(--font-serif); font-weight:400; font-size:34px; line-height:1.18; letter-spacing:-.01em; color:#fff; max-width:16ch; }
.rmx .auth-brand .bquote i { font-style:italic; color:var(--sov-300); }
.rmx .auth-brand .bsub { font:400 14px/1.6 var(--font-sans); color:rgba(255,255,255,.6); max-width:42ch; margin-top:18px; }
.rmx .auth-brand .bfoot { display:flex; gap:28px; }
.rmx .auth-brand .bfoot .bf { }
.rmx .auth-brand .bfoot b { display:block; font:600 16px/1 var(--font-sans); color:#fff; }
.rmx .auth-brand .bfoot span { display:block; font:500 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:rgba(255,255,255,.45); margin-top:7px; }

.rmx .auth-form { display:flex; align-items:center; justify-content:center; padding:48px 40px; background:var(--ink-0); }
.rmx .auth-card { width:100%; max-width:404px; }
.rmx .auth-tenant { display:inline-flex; align-items:center; gap:7px; font:600 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--sov-700); background:var(--sov-50); border:1px solid var(--sov-200); border-radius:999px; padding:5px 11px; margin-bottom:22px; }
.rmx .auth-tenant .dot { width:6px; height:6px; border-radius:999px; background:var(--emerald-500); }
.rmx .auth-card .eyebrow { margin-bottom:14px; }
.rmx .auth-card h1 { font-family:var(--font-serif); font-weight:400; font-size:34px; line-height:1.1; letter-spacing:-.015em; color:var(--ink-950); margin:0 0 10px; }
.rmx .auth-card h1 i { font-style:italic; color:var(--sov-700); }
.rmx .auth-sub { font:400 14.5px/1.6 var(--font-sans); color:var(--ink-600); margin:0 0 26px; }
.rmx .auth-form-fields { display:flex; flex-direction:column; gap:18px; }
/* every auth input shares the field look (covers bare inputs e.g. magic-link) */
.rmx .auth-card input:not([type=checkbox]) { width:100%; border:1px solid var(--input); border-radius:var(--radius); padding:11px 13px; font:400 14px/1.4 var(--font-sans); color:var(--ink-900); background:var(--ink-0); }
.rmx .auth-card input:not([type=checkbox]):focus { outline:none; border-color:var(--ring); box-shadow:var(--shadow-focus); }
.rmx .auth-remember { display:flex; align-items:center; gap:9px; font:400 13px/1 var(--font-sans); color:var(--ink-600); cursor:pointer; }
.rmx .auth-remember input { width:15px; height:15px; accent-color:var(--sov-600); }
.rmx .magic-row { display:flex; gap:8px; margin-top:10px; }
.rmx .magic-row input { flex:1; }
.rmx .magic-row .btn { flex:0 0 auto; }
.rmx .auth-sep { display:flex; align-items:center; gap:12px; margin:22px 0 4px; font:500 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-400); }
.rmx .auth-sep::before, .rmx .auth-sep::after { content:""; flex:1; height:1px; background:var(--border); }

/* input status (extends .field) */
.rmx .field { margin-bottom:0; }
.rmx .field .lbl-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.rmx .field .lbl-row label { margin-bottom:0; }
.rmx .field .iwrap { position:relative; }
.rmx .field .iwrap .sic { position:absolute; top:50%; right:11px; transform:translateY(-50%); width:16px; height:16px; pointer-events:none; }
.rmx .field.ok input { border-color:var(--emerald-500); }
.rmx .field.ok .sic { color:var(--emerald-600); }
.rmx .field.error input { border-color:var(--rose-500); }
.rmx .field.error .sic { color:var(--rose-600); }
.rmx .field .smsg { margin-top:7px; font:500 11px/1.4 var(--font-sans); }
.rmx .field.ok .smsg { color:var(--emerald-700); }
.rmx .field.error .smsg { color:var(--rose-700); }
.rmx .field .hint { margin-top:7px; font:400 11px/1.4 var(--font-sans); color:var(--ink-400); }
.rmx .field .flink { font:500 12px/1 var(--font-sans); color:var(--sov-600); text-decoration:none; }
.rmx .field .flink:hover { color:var(--sov-700); }

/* password meter */
.rmx .pmeter { display:flex; flex-direction:column; gap:9px; margin-top:12px; }
.rmx .pmeter .bars { display:flex; gap:5px; }
.rmx .pmeter .bars i { height:4px; flex:1; border-radius:999px; background:var(--ink-200); }
.rmx .pmeter .bars i.on.critical { background:var(--rose-500); }
.rmx .pmeter .bars i.on.warn { background:var(--amber-500); }
.rmx .pmeter .bars i.on.ok { background:var(--emerald-500); }
.rmx .pmeter .plabel { font:600 11px/1 var(--font-sans); }
.rmx .pmeter .plabel.critical { color:var(--rose-600); }
.rmx .pmeter .plabel.warn { color:var(--amber-700); }
.rmx .pmeter .plabel.ok { color:var(--emerald-700); }
.rmx .pmeter ul { list-style:none; margin:2px 0 0; padding:0; display:flex; flex-direction:column; gap:5px; }
.rmx .pmeter li { display:flex; align-items:center; gap:8px; font:400 11px/1.3 var(--font-sans); color:var(--ink-400); }
.rmx .pmeter li.met { color:var(--emerald-700); }
.rmx .pmeter li .chk { width:13px; height:13px; border-radius:999px; background:var(--ink-150); display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
.rmx .pmeter li.met .chk { background:color-mix(in oklab,var(--emerald-500) 20%,transparent); color:var(--emerald-600); }
.rmx .pmeter li .chk svg { width:8px; height:8px; }

/* banners + scope switcher + alt link */
.rmx .auth-banner { border-radius:var(--radius-md); padding:11px 13px; font:500 12px/1.45 var(--font-sans); margin-bottom:4px; }
.rmx .auth-banner.err { background:var(--rose-50); color:var(--rose-700); border:1px solid var(--rose-200); }
.rmx .auth-banner.info { background:var(--sky-50); color:var(--sky-600); border:1px solid var(--sky-200); }
.rmx .auth-flash { display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
.rmx .auth-scope { margin-bottom:22px; }
.rmx .auth-scope .sprompt { font:600 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); margin:0 0 9px; }
.rmx .auth-scope .seg { display:inline-flex; width:100%; gap:2px; padding:3px; background:var(--ink-100); border:1px solid var(--border); border-radius:var(--radius); }
.rmx .auth-scope .seg a { flex:1; min-width:0; text-align:center; padding:7px 6px; border-radius:var(--radius-sm); font:600 11px/1.2 var(--font-sans); color:var(--ink-600); text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition:background 120ms,color 120ms; }
.rmx .auth-scope .seg a:hover { color:var(--ink-950); }
.rmx .auth-scope .seg a.on { background:var(--ink-0); color:var(--ink-950); box-shadow:var(--shadow-xs); }
.rmx .auth-alt { margin-top:26px; text-align:center; font:400 13.5px/1.5 var(--font-sans); color:var(--ink-500); }
.rmx .auth-alt a { color:var(--sov-600); text-decoration:none; font-weight:600; }
.rmx .auth-alt a:hover { color:var(--sov-700); }
.rmx .auth-note { margin-top:12px; text-align:center; font:400 11px/1.5 var(--font-sans); color:var(--ink-400); }
.rmx .auth-chip { width:48px; height:48px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; font-size:22px; }
.rmx .auth-chip.ok { background:var(--emerald-50); color:var(--emerald-700); border:1px solid var(--emerald-200); }
.rmx .auth-chip .spin { width:18px; height:18px; border-radius:999px; border:2px solid var(--ink-200); border-top-color:var(--sov-500); animation:rmx-spin 0.7s linear infinite; }

/* invite-only wall — the message, the request form, and the way back in for a
   member. Sits inside .auth-card, so inputs already carry the field look; only
   the textarea and the wall's own frame need declaring. */
.rmx .auth-invite-only { border:1px solid var(--border); border-radius:var(--radius-md); background:var(--ink-50); padding:22px 20px; }
.rmx .auth-invite-only__icon { font-size:22px; line-height:1; margin-bottom:10px; }
.rmx .auth-invite-only__title { font-family:var(--font-serif); font-weight:400; font-size:21px; line-height:1.15; letter-spacing:-.01em; color:var(--ink-950); margin:0 0 8px; }
.rmx .auth-invite-only__message { font:400 13.5px/1.6 var(--font-sans); color:var(--ink-600); margin:0; cursor:default; }

.rmx .auth-invite-only__request { margin-top:20px; padding-top:18px; border-top:1px solid var(--border); display:flex; flex-direction:column; gap:13px; }
.rmx .auth-invite-only__request-title { font:600 10px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); margin:0; }
.rmx .auth-invite-only__field { display:flex; flex-direction:column; gap:6px; }
.rmx .auth-invite-only__field > span { font:500 12px/1 var(--font-sans); color:var(--ink-700); }
.rmx .auth-invite-only__field > span i { font-style:normal; font-weight:400; color:var(--ink-400); }
.rmx .auth-invite-only__field textarea { width:100%; border:1px solid var(--input); border-radius:var(--radius); padding:11px 13px; font:400 14px/1.5 var(--font-sans); color:var(--ink-900); background:var(--ink-0); resize:vertical; }
.rmx .auth-invite-only__field textarea:focus { outline:none; border-color:var(--ring); box-shadow:var(--shadow-focus); }

/* One confirmation for every outcome — see invite_only_banner/1. */
.rmx .auth-invite-only__done { margin-top:20px; padding-top:18px; border-top:1px solid var(--border); }
.rmx .auth-invite-only__done p { font:500 13.5px/1.6 var(--font-sans); color:var(--emerald-700); margin:0; }

.rmx .auth-invite-only__member { margin-top:18px; padding-top:16px; border-top:1px solid var(--border); font:400 13px/1.5 var(--font-sans); color:var(--ink-500); margin-bottom:0; }
.rmx .auth-invite-only__signin { background:none; border:0; padding:0; font:600 13px/1.5 var(--font-sans); color:var(--sov-600); cursor:pointer; }
.rmx .auth-invite-only__signin:hover { color:var(--sov-700); }
@keyframes rmx-spin { to { transform:rotate(360deg); } }

/* ============================================================================
   Dev tools flyout + "in development" badge (dev-only, on /platform)
   ============================================================================ */
.rmx .dev-badge { position:fixed; top:70px; right:16px; z-index:65; display:inline-flex; align-items:center; gap:7px; font:600 11px/1 var(--font-sans); letter-spacing:.02em; color:var(--amber-700); background:var(--amber-50); border:1px solid var(--amber-200); border-radius:999px; padding:7px 13px; box-shadow:var(--shadow-sm); }
.rmx .dev-badge .dot { width:6px; height:6px; border-radius:999px; background:var(--amber-500); box-shadow:0 0 0 3px color-mix(in oklab,var(--amber-500) 22%,transparent); }

/* bg uses --ink-950 (flips per theme); text uses --ink-0 (flips opposite) so the
   pill stays dark-on-light in light mode and light-on-dark in dark mode. */
.rmx .dev-fab { position:fixed; top:70px; left:16px; z-index:65; display:inline-flex; align-items:center; gap:8px; height:36px; padding:0 14px; border-radius:999px; background:var(--ink-950); color:var(--ink-0); border:1px solid var(--border-strong); font:600 12px/1 var(--font-sans); cursor:pointer; box-shadow:var(--shadow-md); transition:transform 120ms; }
.rmx .dev-fab:hover { transform:translateY(-1px); }
.rmx .dev-fab svg { width:15px; height:15px; }
.rmx .dev-scrim { position:fixed; inset:0; z-index:70; background:rgba(9,9,11,.35); backdrop-filter:blur(1px); }
.rmx .dev-panel { position:fixed; top:0; left:0; bottom:0; z-index:71; width:min(440px,92vw); background:var(--ink-0); border-right:1px solid var(--border); box-shadow:var(--shadow-lg); transform:translateX(-102%); transition:transform 180ms ease; display:flex; flex-direction:column; }
.rmx .dev-panel.open { transform:translateX(0); }
.rmx .dev-head { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--border); background:var(--ink-50); }
.rmx .dev-head b { font:600 13px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-600); }
.rmx .dev-head button { background:none; border:none; cursor:pointer; color:var(--ink-400); font-size:15px; }
.rmx .dev-head button:hover { color:var(--ink-900); }
.rmx .dev-msg { margin:14px 20px 0; padding:10px 12px; border-radius:var(--radius); font:500 12px/1.4 var(--font-sans); }
.rmx .dev-msg.ok { background:var(--emerald-50); color:var(--emerald-700); border:1px solid var(--emerald-200); }
.rmx .dev-msg.error { background:var(--rose-50); color:var(--rose-700); border:1px solid var(--rose-200); }
.rmx .dev-body { flex:1; overflow-y:auto; padding:8px 20px 24px; }
.rmx .dev-sec { padding:18px 0; border-bottom:1px solid var(--ink-100); }
.rmx .dev-sec:last-child { border-bottom:none; }
.rmx .dev-sec h4 { font:600 11px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); margin:0 0 10px; }
.rmx .dev-doc { font:400 12px/1.5 var(--font-sans); color:var(--ink-500); margin:0 0 12px; }
.rmx .dev-cur { font:400 14px/1 var(--font-sans); color:var(--ink-900); margin:0 0 6px; }
.rmx .dev-cur code { font-family:var(--font-mono); font-size:11px; color:var(--sov-600); background:var(--sov-50); border:1px solid var(--sov-200); border-radius:var(--radius-sm); padding:2px 6px; margin-left:6px; }
.rmx .dev-eds { display:flex; flex-wrap:wrap; gap:6px; }
.rmx .dev-ed { font:600 11.5px/1 var(--font-sans); color:var(--ink-700); background:var(--ink-0); border:1px solid var(--border); border-radius:999px; padding:7px 12px; cursor:pointer; transition:border-color 120ms,background 120ms; }
.rmx .dev-ed:hover { border-color:var(--border-strong); }
.rmx .dev-ed.on { background:var(--sov-600); color:#fff; border-color:var(--sov-600); }
.rmx .dev-checks { display:flex; flex-direction:column; gap:7px; }
.rmx .dev-check { display:flex; align-items:center; gap:9px; font:500 12.5px/1.3 var(--font-sans); color:var(--ink-700); }
.rmx .dev-check .ci { width:16px; height:16px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; font:700 10px/1 var(--font-sans); background:var(--amber-50); color:var(--amber-700); border:1px solid var(--amber-200); flex-shrink:0; }
.rmx .dev-check.ok .ci { background:var(--emerald-50); color:var(--emerald-700); border-color:var(--emerald-200); }
.rmx .dev-check .dev-fix { margin-left:auto; font:500 11px/1 var(--font-sans); color:var(--sov-600); text-decoration:none; }
.rmx .dev-actions { display:flex; flex-direction:column; gap:8px; }
.rmx .dev-action { display:flex; align-items:flex-start; gap:12px; padding:12px; border:1px solid var(--border); border-radius:var(--radius-md); background:var(--ink-0); }
.rmx .dev-action.warn { border-color:var(--amber-200); background:var(--amber-50); }
.rmx .dev-action.danger { border-color:var(--rose-200); background:var(--rose-50); }
.rmx .dev-action .da-info { flex:1; min-width:0; }
.rmx .dev-action .da-info b { font:600 13px/1.2 var(--font-sans); color:var(--ink-950); }
.rmx .dev-action .da-info p { font:400 11.5px/1.5 var(--font-sans); color:var(--ink-600); margin:4px 0 0; }
.rmx .dev-action .da-cmd { display:block; margin-top:8px; font-family:var(--font-mono); font-size:11px; color:var(--ink-800); background:var(--ink-100); border:1px solid var(--border); border-radius:var(--radius-sm); padding:6px 8px; white-space:pre-wrap; word-break:break-all; user-select:all; }
.rmx .dev-run { flex:0 0 auto; align-self:flex-start; font:600 11.5px/1 var(--font-sans); color:var(--ink-0); background:var(--ink-900); border:none; border-radius:var(--radius); padding:8px 14px; cursor:pointer; }
.rmx .dev-run:hover { background:var(--ink-950); }

/* prod: missing-config flow banner */
.rmx .prod-config { background:var(--amber-50); border-bottom:1px solid var(--amber-200); }
.rmx .prod-config .wrap { padding:18px var(--rmx-gutter); }
.rmx .prod-config .pc-card p { font:400 14px/1.55 var(--font-sans); color:var(--ink-700); margin:10px 0 14px; max-width:70ch; }
.rmx .prod-config .pc-items { display:flex; flex-wrap:wrap; gap:8px; }
.rmx .prod-config .pc-item { display:inline-flex; flex-direction:column; gap:2px; padding:9px 13px; background:var(--ink-0); border:1px solid var(--amber-200); border-radius:var(--radius-md); text-decoration:none; }
.rmx .prod-config .pc-item b { font:600 12.5px/1 var(--font-sans); color:var(--ink-950); }
.rmx .prod-config .pc-item span { font:500 11px/1 var(--font-sans); color:var(--sov-600); }

/* full-screen sovereign status screen (setup complete, etc.) */
.rmx .sov-screen { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:48px 24px; text-align:center; }
.rmx .sov-screen .inner { max-width:440px; display:flex; flex-direction:column; align-items:center; }
.rmx .sov-screen h1 { font-family:var(--font-serif); font-weight:400; font-size:40px; line-height:1.08; letter-spacing:-.015em; color:var(--ink-950); margin:22px 0 8px; }
.rmx .sov-screen p { font:400 15px/1.6 var(--font-sans); color:var(--ink-600); margin:0 0 24px; max-width:42ch; }

@media (max-width:900px){
  .rmx.auth, .rmx .auth { grid-template-columns:1fr; }
  .rmx .auth-brand { display:none; }
  .rmx .auth-form { min-height:100vh; padding:40px 24px; }
}

/* ============================================================================
   RESPONSIVE SYSTEM — phone · tablet · desktop · TV
   Authoritative (appended last). Scales the whole marketing skin — including the
   "/" platform page — across device classes by overriding the layout primitives
   (--rmx-gutter / --rmx-maxw), fluidly scaling headings, stacking grids, and
   swapping the desktop nav for a JS-free hamburger.
   ============================================================================ */

/* ---- Fluid headings: shrink on small screens, desktop max preserved ---- */
.rmx .hero-solo h1, .rmx .hero h1 { font-size:clamp(1.9rem, 1.15rem + 4vw, 3.375rem); }
.rmx .ctaband h2 { font-size:clamp(1.55rem, 1.1rem + 2.4vw, 2.375rem); }
.rmx .ed-band h2 { font-size:clamp(1.4rem, 1.1rem + 1.5vw, 1.875rem); }
.rmx .sec-title { font-size:clamp(1.5rem, 1.05rem + 2vw, 2.125rem); }
.rmx .graphband h2 { font-size:clamp(1.75rem, 1.2rem + 2.4vw, 2.5rem); }

/* ---- Long monospace proofs never blow out a narrow cap card ---- */
.rmx .cap .proof, .rmx .gl-row .hash { overflow-wrap:anywhere; }

/* ---- Nav machinery: hidden on desktop; .nav-menu collapses to flow ---- */
.rmx .nav-toggle, .rmx .nav-burger { display:none; }
.rmx .nav-menu { display:contents; }

/* ============================ TABLET (≤1024px) ============================ */
@media (max-width:1024px){
  .rmx { --rmx-gutter:32px; }
  .rmx section.block { padding:64px 0; }
  .rmx .capgroup { padding:48px 0; }
  .rmx .hero-solo .wrap { padding-top:56px; padding-bottom:48px; }
  .rmx .nav-links { gap:20px; }
  .rmx .lockup span { display:none; }
}

/* ===================== PHONE / SMALL TABLET (≤880px) ===================== */
@media (max-width:880px){
  /* desktop nav → hamburger dropdown (anchored to the sticky .nav) */
  .rmx .nav-burger {
    display:inline-flex; flex-direction:column; justify-content:center; gap:5px;
    margin-left:auto; width:42px; height:42px; padding:0 9px; border-radius:var(--radius);
    border:1px solid var(--border-strong); background:var(--ink-0); cursor:pointer;
  }
  .rmx .nav-burger span { display:block; width:100%; height:2px; background:var(--ink-800); border-radius:2px; transition:transform .2s, opacity .2s; }
  .rmx .nav-menu {
    display:none; position:absolute; top:60px; left:0; right:0; z-index:60;
    flex-direction:column; gap:18px; padding:18px var(--rmx-gutter) 22px;
    background:var(--ink-0); border-bottom:1px solid var(--border); box-shadow:var(--shadow-lg);
  }
  .rmx .nav-toggle:checked ~ .nav-menu { display:flex; }
  .rmx .nav-toggle:checked ~ .nav-burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .rmx .nav-toggle:checked ~ .nav-burger span:nth-child(2){ opacity:0; }
  .rmx .nav-toggle:checked ~ .nav-burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .rmx .nav-links { flex-direction:column; align-items:stretch; gap:0; width:100%; }
  .rmx .nav-links a { padding:13px 4px; border-bottom:1px solid var(--ink-100); font-size:15px; }
  .rmx .nav-links a.active::after { display:none; }
  .rmx .nav-right { width:100%; margin-left:0; flex-direction:column; align-items:stretch; gap:10px; }
  .rmx .nav-right .btn { width:100%; height:44px; }
}

/* ============================ PHONE (≤640px) ============================ */
@media (max-width:640px){
  .rmx { --rmx-gutter:20px; }
  .rmx .hero-solo .wrap { padding-top:40px; padding-bottom:36px; }
  .rmx section.block { padding:48px 0; }
  .rmx .capgroup { padding:36px 0; }
  .rmx .ctaband { padding:48px 0; }
  /* stat band → 2 clean columns */
  .rmx .stats { grid-template-columns:repeat(2,1fr); }
  .rmx .stat { padding:22px 10px; }
  .rmx .stat:nth-child(2n){ border-right:none; }
  .rmx .stat:nth-child(-n+2){ border-bottom:1px solid var(--border); }
  /* footer → 2 cols, brand full width */
  .rmx .foot-grid { grid-template-columns:1fr 1fr; gap:28px 24px; }
  .rmx .foot-brand { grid-column:1 / -1; }
  /* hero + CTA buttons stack full-width for easy tapping */
  .rmx .hero-cta { flex-direction:column; align-items:stretch; width:100%; }
  .rmx .hero-cta .btn { width:100%; }
  /* edition band button may wrap on tiny screens */
  .rmx .ed-band .eb-meta { flex-wrap:wrap; gap:10px 18px; }
  .rmx .ed-band .eb-btn { white-space:normal; text-align:left; }
}

/* ========================= SMALL PHONE (≤420px) ========================= */
@media (max-width:420px){
  .rmx { --rmx-gutter:16px; }
  .rmx .stats { grid-template-columns:1fr; }
  .rmx .stat { border-right:none; border-bottom:1px solid var(--border); }
  .rmx .stat:nth-child(-n+2){ border-bottom:1px solid var(--border); }
  .rmx .stat:last-child { border-bottom:none; }
  .rmx .foot-grid { grid-template-columns:1fr; gap:24px; }
  .rmx .foot-bar { flex-direction:column; align-items:flex-start; gap:8px; }
}

/* ============================ TV / LARGE (≥1600px) ============================ */
@media (min-width:1600px){
  .rmx { --rmx-maxw:1360px; }
  .rmx .hero-solo h1, .rmx .hero h1 { font-size:64px; }
  .rmx .sec-title { font-size:40px; }
  .rmx .ctaband h2 { font-size:46px; }
  .rmx .hero-solo .lede, .rmx .hero .lede { font-size:18px; }
  .rmx .hero-solo .wrap { padding-top:104px; padding-bottom:84px; }
  .rmx section.block, .rmx .capgroup { padding:104px 0; }
  .rmx .stat b { font-size:34px; }
  .rmx .stat span { font-size:13px; }
  .rmx .cap { min-height:188px; }
}

/* ============================== 4K TV (≥2200px) ============================== */
@media (min-width:2200px){
  .rmx { --rmx-maxw:1640px; --rmx-gutter:56px; }
  .rmx .hero-solo h1, .rmx .hero h1 { font-size:76px; }
  .rmx .sec-title { font-size:46px; }
  .rmx .hero-solo .lede, .rmx .hero .lede { font-size:20px; }
  .rmx .sec-lede { font-size:18px; }
  .rmx .cap h3 { font-size:17px; }
  .rmx .cap p { font-size:14px; }
}

/* Respect reduced-motion for the burger animation + hover transitions */
@media (prefers-reduced-motion:reduce){
  .rmx .nav-burger span, .rmx .btn, .rmx .cap, .rmx .next { transition:none; }
}

/* ============================================================================
   ENGINE — tier-visibility contract + app-styled mobile tab bar
   Driven by UnityzmWeb.Components.Responsive / ResponsiveRegistry. Hide rules use
   min/max-width boundaries (never display:revert) so an element's own display
   type is preserved when it is shown.
   ============================================================================ */

/* show-from: hidden until the tier's min-width is reached */
@media (max-width:640px){  .rmx [data-show-from="tablet"]  { display:none !important; } }
@media (max-width:1024px){ .rmx [data-show-from="desktop"] { display:none !important; } }
@media (max-width:1599px){ .rmx [data-show-from="tv"]      { display:none !important; } }

/* hide-from: hidden once the tier's min-width is reached */
@media (min-width:641px){  .rmx [data-hide-from="tablet"]  { display:none !important; } }
@media (min-width:1025px){ .rmx [data-hide-from="desktop"] { display:none !important; } }
@media (min-width:1600px){ .rmx [data-hide-from="tv"]      { display:none !important; } }

/* Graded capability groups on the platform page: 3 on phone, 4 on tablet, all ≥desktop */
@media (max-width:1024px){ .rmx .capgroup[data-grp="5"] { display:none; } }
@media (max-width:640px){  .rmx .capgroup[data-grp="4"] { display:none; } }

/* ---- app-styled mobile bottom tab bar (phone only) ---- */
.rmx .mtab { display:none; }
@media (max-width:640px){
  .rmx .mtab {
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:75;
    align-items:stretch; gap:2px;
    padding:6px 8px calc(8px + env(safe-area-inset-bottom, 0px));
    background:color-mix(in oklab, var(--ink-0) 88%, transparent);
    backdrop-filter:blur(14px) saturate(1.2); -webkit-backdrop-filter:blur(14px) saturate(1.2);
    border-top:1px solid var(--border);
  }
  .rmx .mtab-item {
    flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:4px; padding:7px 4px; text-decoration:none; color:var(--ink-500);
    border-radius:var(--radius-md); transition:color .15s, background .15s;
  }
  .rmx .mtab-item svg { width:22px; height:22px; }
  .rmx .mtab-item span { font:600 10px/1 var(--font-sans); letter-spacing:.01em; }
  .rmx .mtab-item.active { color:var(--sov-600); background:var(--sov-50); }
  .rmx .mtab-item:active { background:var(--ink-100); }
  /* keep the footer clear of the fixed bar */
  .rmx footer { padding-bottom:calc(40px + 60px + env(safe-area-inset-bottom, 0px)); }
}
html[data-theme="dark"] .rmx .mtab-item.active { color:var(--sov-300); }

/* ── Landing Blog (A1) — vault-backed build-story posts ────────────────────── */
.rmx .tag { display:inline-flex; align-items:center; height:22px; padding:0 9px; border-radius:999px; background:var(--sov-50); color:var(--sov-700); border:1px solid color-mix(in oklab,var(--sov-600) 16%,transparent); font:600 10.5px/1 var(--font-sans); letter-spacing:.02em; text-transform:lowercase; }
.rmx .blog-tags { display:flex; flex-wrap:wrap; gap:6px; }
.rmx .blog-dot { color:var(--ink-400); }

/* Author by-line */
.rmx .blog-author { display:inline-flex; align-items:center; gap:10px; }
.rmx .blog-avatar { flex:none; width:32px; height:32px; border-radius:999px; background-size:cover; background-position:center; background-color:var(--ink-100); border:1px solid var(--border); display:inline-flex; align-items:center; justify-content:center; }
.rmx .blog-avatar--initial { font:600 13px/1 var(--font-sans); color:var(--sov-700); background:var(--sov-50); }
.rmx .blog-author--lg .blog-avatar { width:46px; height:46px; }
.rmx .blog-author--lg .blog-avatar--initial { font-size:18px; }
.rmx .blog-author-meta { display:flex; flex-direction:column; gap:2px; min-width:0; }
.rmx .blog-author-name { font:600 13px/1.2 var(--font-sans); color:var(--ink-950); }
.rmx .blog-author--lg .blog-author-name { font-size:15px; }
.rmx .blog-author-headline { font:400 11.5px/1.2 var(--font-sans); color:var(--ink-500); }
.rmx .blog-author--lg .blog-author-headline { font-size:13px; }

/* Index feed */
.rmx .blog-empty { padding:24px 0 8px; }
.rmx .blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:8px; }
@media (max-width:1040px){ .rmx .blog-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:680px){ .rmx .blog-grid{ grid-template-columns:1fr; } }
.rmx .blog-card { display:flex; flex-direction:column; background:var(--ink-0); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; text-decoration:none; box-shadow:var(--shadow-xs); transition:box-shadow 140ms,border-color 140ms,transform 80ms; }
.rmx .blog-card:hover { box-shadow:var(--shadow-md); border-color:var(--border-strong); transform:translateY(-2px); }
.rmx .blog-card-hero { height:158px; background-size:cover; background-position:center; background-color:var(--ink-100); border-bottom:1px solid var(--border); }
.rmx .blog-card-hero--blank { background-image:var(--ledger-stripe); background-color:var(--sov-50); }
.rmx .blog-card-body { display:flex; flex-direction:column; gap:10px; padding:18px 20px 20px; flex:1; }
.rmx .blog-card-title { font:600 17px/1.32 var(--font-sans); letter-spacing:-.012em; color:var(--ink-950); margin:0; }
.rmx .blog-card-summary { font:400 13px/1.55 var(--font-sans); color:var(--ink-600); margin:0; flex:1; }
.rmx .blog-part-tag { display:inline-block; align-self:flex-start; font:600 10px/1 var(--font-mono); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--sov-600); background:var(--sov-50); border:1px solid var(--sov-100); border-radius:999px; padding:4px 8px; }
.rmx .blog-card-hero--blank .blog-part-num { display:flex; align-items:center; justify-content:center; height:100%; font-family:var(--font-serif); font-size:38px; color:var(--sov-300); }
.rmx .blog-card-meta { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin-top:6px; font:500 11.5px/1 var(--font-sans); color:var(--ink-500); }

/* Single article — LinkedIn-style */
.rmx .blog-article { border-bottom:1px solid var(--border); }
.rmx .blog-article-wrap { max-width:760px; padding-top:40px; padding-bottom:64px; }
.rmx .blog-back { display:inline-block; margin-bottom:24px; font:500 12.5px/1 var(--font-sans); color:var(--ink-500); text-decoration:none; }
.rmx .blog-back:hover { color:var(--ink-950); }
.rmx .blog-article-head { display:flex; flex-direction:column; gap:16px; padding-bottom:8px; }
.rmx .blog-article-title { font-family:var(--font-serif); font-weight:400; font-size:42px; line-height:1.08; letter-spacing:-.015em; color:var(--ink-950); margin:8px 0 0; }
.rmx .blog-article-summary { font:400 17px/1.55 var(--font-sans); color:var(--ink-600); margin:0; max-width:60ch; }
.rmx .blog-article-meta { display:flex; align-items:center; flex-wrap:wrap; gap:7px; font:500 12.5px/1 var(--font-sans); color:var(--ink-500); }
.rmx .blog-article-hero { width:100%; aspect-ratio:16/7; margin:28px 0 8px; border-radius:var(--radius-lg); background-size:cover; background-position:center; background-color:var(--ink-100); border:1px solid var(--border); }
.rmx .blog-prose { margin-top:28px; }
.rmx .blog-prose > :first-child { margin-top:0; }
.rmx .blog-share { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:40px; padding-top:24px; border-top:1px solid var(--border); }
.rmx .blog-share-label { font:600 11px/1 var(--font-sans); letter-spacing:var(--tracking-mark); text-transform:uppercase; color:var(--ink-500); margin-right:4px; }
.rmx .blog-share-link { flex:1; min-width:180px; height:38px; padding:0 12px; border:1px solid var(--border); border-radius:var(--radius); background:var(--ink-50); color:var(--ink-600); font:500 12px/1 var(--font-mono); }
@media (max-width:680px){ .rmx .blog-article-title{ font-size:32px; } }

html[data-theme="dark"] .rmx .tag { background:color-mix(in oklab,var(--sov-500) 22%,transparent); color:var(--sov-200); border-color:color-mix(in oklab,var(--sov-400) 30%,transparent); }
html[data-theme="dark"] .rmx .blog-card,
html[data-theme="dark"] .rmx .blog-share-link { background:color-mix(in oklab,var(--ink-0) 4%,transparent); }
html[data-theme="dark"] .rmx .blog-avatar--initial { background:color-mix(in oklab,var(--sov-500) 22%,transparent); color:var(--sov-200); }
html[data-theme="dark"] .rmx .blog-card-hero--blank { background-color:color-mix(in oklab,var(--sov-500) 14%,transparent); }
/* The title needs NO dark override: the light rule already uses --ink-950, which
   the dark block defines as #ffffff. The override that used to sit here set it to
   --ink-50, written as if that meant "lightest" — but the whole ink scale INVERTS
   in dark, where --ink-50 is #111113. Near-black on a #09090b page: contrast 1.05,
   invisible. A dark override naming a numbered token is fighting the mechanism
   that already handles dark mode, which is why the fix is to delete it. */

/* --sov-300..600 are NOT redefined in the dark block (only 50/100/200/700), so
   text coloured with --sov-600 keeps its light navy #243f82 and disappears. Same
   reason the .gl-row/.vrail/.ch-head cluster above is overridden to --sov-300;
   these two were simply missed. --sov-300 is deliberate: --sov-200 is translucent
   in dark and unfit for text. */
html[data-theme="dark"] .rmx .blog-part-tag { color:var(--sov-300); }

/* Opens + distinct readers. Deliberately quiet: these sit inside an existing meta
   row next to the by-line and reading time, and a counter that shouts competes
   with the headline it is meant to support. Tabular numerals so a column of
   cards does not jitter as the digits change. */
.rmx .blog-counts { display:inline-flex; align-items:center; gap:7px; font-variant-numeric:tabular-nums; color:var(--ink-500); }
.rmx .blog-index-views { margin-top:14px; font:500 12.5px/1 var(--font-sans); font-variant-numeric:tabular-nums; color:var(--ink-500); }

/* Brand-mark hero. Painted from CSS rather than inline precisely so the dark rule
   below can reach it — see Blog.Components.hero_style/1. `contain` and a padded,
   tinted plate because the mark is a logo, not photography: stretching it to fill
   a 16:7 band the way a cover image does would distort it. */
.rmx .blog-hero--brand {
  background-image:url('/images/brand/unityzm-mono-black-54d18364131689a502b446b0261fc9bd.svg?vsn=d');
  background-size:auto 46%;
  background-repeat:no-repeat;
  background-position:center;
  background-color:var(--ink-50);
}
.rmx .blog-card-hero.blog-hero--brand { background-size:auto 38%; }
html[data-theme="dark"] .rmx .blog-hero--brand {
  background-image:url('/images/brand/unityzm-mono-white-7b3aee5ce9db221087d51f753b23e16f.svg?vsn=d');
  background-color:color-mix(in oklab,var(--ink-0) 4%,transparent);
}
html[data-theme="dark"] .rmx .auth-invite-only__signin { color:var(--sov-300); }
/* Hover brightens to white rather than to --sov-700: that token IS redefined in
   dark, to the same #7d99d3 the base now uses, so keeping it would leave the
   hover state visually identical to rest. */
html[data-theme="dark"] .rmx .auth-invite-only__signin:hover { color:var(--ink-950); }

/* The main mark swaps with the theme. Both images are in the markup and one is
   hidden here, because this skin has no JavaScript and must be right in the
   first byte. Sized by the existing `.lockup img` rule above. */
.rmx .lockup .mark-dark { display:none; }
html[data-theme="dark"] .rmx .lockup .mark-light { display:none; }
html[data-theme="dark"] .rmx .lockup .mark-dark { display:inline-block; }
