/* Fork map (/roadmap-issues/fork-map): the 2026-10-15 artifact, scoped under .fm; model space via html[data-space="model"]. */
.fm {
  --sheet: #f6f7f4; --sheet-2: #eceee8; --ink: #1d2226; --ink-2: #545c63; --line: #c9cdc4; --grid: #e2e5dd;
  --accent: #2f5d50;
  --js: #b8860b;  --js-bg: #f7ecc9;  --js-ink: #5e4304;
  --rs: #b5482a;  --rs-bg: #f6dcd2;  --rs-ink: #6b2414;
  --cpp: #2f62a8; --cpp-bg: #d8e4f4; --cpp-ink: #183a6b;
  --php: #6c5aa8; --php-bg: #e3def3; --php-ink: #3b2e6e;
  --c: #5c6b73;   --c-bg: #e1e6e8;   --c-ink: #2e3a40;
  --warn: #9a5b00; --warn-bg: #fbecd2;
  --f-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --f-body: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --f-mono: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --pen-1: 1px; --pen-2: 1.5px; --pen-3: 2px;
}
html[data-space="model"] .fm {
  --sheet: #14181b; --sheet-2: #1b2024; --ink: #e6e9e4; --ink-2: #a2aaa6; --line: #3a4247; --grid: #232a2e;
  --accent: #7fb9a6;
  --js: #e0b23c;  --js-bg: #3a2f12;  --js-ink: #f4dd9c;
  --rs: #e47a5a;  --rs-bg: #3d2119;  --rs-ink: #f6c3b2;
  --cpp: #6f9fe0; --cpp-bg: #182a42; --cpp-ink: #c4d9f5;
  --php: #a796e0; --php-bg: #2a2440; --php-ink: #dcd3f7;
  --c: #95a5ad;   --c-bg: #233036;   --c-ink: #d3dde1;
  --warn: #f0b25a; --warn-bg: #3b2c12;
  
}
.fm * { box-sizing: border-box; }
.fm { background: var(--sheet); color: var(--ink); font-family: var(--f-body); font-size: 1rem; line-height: 1.55; }
.fm .wrap { max-width: 78rem; margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); padding-block: 2rem 4rem; }
.fm h1, .fm h2, .fm h3 { font-family: var(--f-display); text-wrap: balance; margin: 0; line-height: 1.15; }
.fm h1 { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.4rem); font-stretch: 112%; font-weight: 800; letter-spacing: -0.01em; }
.fm h2 { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem); font-stretch: 108%; font-weight: 750; }
.fm h3 { font-size: 1.05rem; font-weight: 700; }
.fm p { margin: 0; }
.fm .lede { font-size: 1.12rem; color: var(--ink-2); max-width: 62ch; }
.fm .mono, .fm code { font-family: var(--f-mono); font-size: 0.86em; }
.fm .eyebrow { font-family: var(--f-mono); font-size: 0.85rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-2); }
.fm .muted { color: var(--ink-2); }
.fm section { display: grid; gap: 1.25rem; padding-block: 2.5rem; border-top: var(--pen-2) solid var(--ink); }
.fm .sec-head { display: grid; gap: 0.5rem; }
.fm .sec-head p { max-width: 68ch; color: var(--ink-2); }
.fm .titleblock { display: grid; grid-template-columns: 1fr auto; gap: 1.5rem; align-items: end; padding-bottom: 1.5rem; }
.fm .tb-strip { display: grid; grid-template-columns: repeat(4, minmax(0, auto)); border: var(--pen-2) solid var(--ink); font-size: 0.85rem; }
.fm .tb-strip div { padding: 0.35rem 0.7rem; border-left: var(--pen-1) solid var(--ink); min-width: 0; }
.fm .tb-strip div:first-child { border-left: 0; }
.fm .tb-strip b { display: block; font-family: var(--f-mono); font-weight: 400; font-size: 0.85rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-2); }
@media (max-width: 760px) {
.fm .titleblock { grid-template-columns: 1fr; }
.fm .tb-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fm .tb-strip div:nth-child(3) { border-left: 0; }
.fm .tb-strip div:nth-child(n+3) { border-top: var(--pen-1) solid var(--ink); }
 }
.fm .legend { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; align-items: center; font-size: 0.95rem; }
.fm .chip { display: inline-flex; align-items: center; gap: 0.4rem; }
.fm .sw { width: 0.95rem; height: 0.95rem; border-radius: 2px; border: var(--pen-2) solid; display: inline-block; flex: none; }
.fm .l-js { --l: var(--js);  --lb: var(--js-bg);  --li: var(--js-ink); }
.fm .l-rs { --l: var(--rs);  --lb: var(--rs-bg);  --li: var(--rs-ink); }
.fm .l-cpp { --l: var(--cpp); --lb: var(--cpp-bg); --li: var(--cpp-ink); }
.fm .l-php { --l: var(--php); --lb: var(--php-bg); --li: var(--php-ink); }
.fm .l-c { --l: var(--c);   --lb: var(--c-bg);   --li: var(--c-ink); }
.fm .sw { background: var(--lb); border-color: var(--l); }
.fm .facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); border: var(--pen-1) solid var(--line); }
.fm .fact { padding: 0.9rem 1rem; border-right: var(--pen-1) solid var(--line); border-bottom: var(--pen-1) solid var(--line); display: grid; gap: 0.15rem; align-content: start; }
.fm .fact .n { font-family: var(--f-display); font-stretch: 115%; font-weight: 750; font-size: 1.6rem; font-variant-numeric: tabular-nums; }
.fm .fact .d { font-size: 0.95rem; color: var(--ink-2); }
.fm .blk { background: var(--lb); border: var(--pen-1) solid var(--l); border-left: 4px solid var(--l); color: var(--li); padding: 0.45rem 0.6rem; border-radius: 2px; font-size: 0.95rem; line-height: 1.3; min-width: 0; }
.fm .blk b { display: block; font-weight: 700; color: var(--ink); font-size: 0.95rem; }
.fm .blk .s { font-family: var(--f-mono); font-size: 0.85rem; }
.fm .blk.legacy { border-style: dashed; border-left-style: solid; opacity: 0.85; }
.fm .stack { display: grid; gap: 0; border: var(--pen-2) solid var(--ink); background: var(--sheet); }
.fm .layer { display: grid; grid-template-columns: 12rem minmax(0, 1fr); border-top: var(--pen-1) solid var(--line); }
.fm .layer:first-child { border-top: 0; }
.fm .layer > .lab { padding: 0.8rem 0.9rem; border-right: var(--pen-1) solid var(--line); background: var(--sheet-2); display: grid; gap: 0.2rem; align-content: start; }
.fm .layer > .lab h3 { font-size: 0.95rem; }
.fm .layer > .lab p { font-size: 0.85rem; color: var(--ink-2); }
.fm .layer > .row { padding: 0.7rem; display: flex; flex-wrap: wrap; gap: 0.45rem; align-content: start; }
.fm .row .blk { flex: 1 1 10rem; }
@media (max-width: 640px) {
.fm .layer { grid-template-columns: 1fr; }
.fm .layer > .lab { border-right: 0; border-bottom: var(--pen-1) solid var(--line); }
 }
.fm .apps { display: grid; gap: 0.35rem; width: 100%; }
.fm .app { display: grid; grid-template-columns: 6.6rem minmax(0, 1fr) 4.4rem; gap: 0.6rem; align-items: center; font-size: 0.9rem; }
.fm .app .nm { font-weight: 650; }
.fm .app .num { font-family: var(--f-mono); font-size: 0.85rem; text-align: right; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.fm .bar { display: flex; height: 1.05rem; border: var(--pen-1) solid var(--js); border-radius: 2px; overflow: hidden; background: var(--sheet); }
.fm .bar i { display: block; height: 100%; }
.fm .bar .ui { background: var(--js); }
.fm .bar .pure { background: var(--js-bg); }
.fm .bar .cp { background: repeating-linear-gradient(135deg, var(--js-bg) 0 4px, var(--sheet) 4px 7px); }
.fm .bar-key { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; font-size: 0.85rem; color: var(--ink-2); margin-top: 0.35rem; }
.fm .bar-key span { display: inline-flex; gap: 0.35rem; align-items: center; }
.fm .bar-key i { width: 1.4rem; height: 0.7rem; display: inline-block; border: var(--pen-1) solid var(--js); border-radius: 1px; }
.fm .patterns { display: grid; grid-template-columns: repeat(auto-fill, minmax(22rem, 1fr)); gap: 1rem; }
@media (max-width: 420px) {
.fm .patterns { grid-template-columns: 1fr; }
 }
.fm .pat { border: var(--pen-1) solid var(--line); background: var(--sheet); display: grid; grid-template-rows: auto 1fr; min-width: 0; }
.fm .pat header { padding: 0.75rem 0.9rem 0.6rem; display: grid; gap: 0.25rem; border-bottom: var(--pen-1) solid var(--line); }
.fm .pat header .eyebrow { font-size: 0.85rem; }
.fm .pat header p { font-size: 0.95rem; color: var(--ink-2); }
.fm .pat dl { margin: 0; display: grid; }
.fm .pat dl > div { display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); gap: 0.6rem; padding: 0.5rem 0.9rem; border-top: var(--pen-1) solid var(--grid); font-size: 0.95rem; }
.fm .pat dl > div:first-child { border-top: 0; }
.fm .pat dt { font-family: var(--f-mono); font-size: 0.85rem; font-weight: 600; padding-top: 0.15rem; color: var(--li); }
.fm .pat dt::before { content: ""; display: inline-block; width: 0.55rem; height: 0.55rem; background: var(--l); border-radius: 1px; margin-right: 0.35rem; vertical-align: 0.05rem; }
.fm .pat dd { margin: 0; min-width: 0; }
.fm .tablewrap { overflow-x: auto; border: var(--pen-2) solid var(--ink); }
.fm table { border-collapse: collapse; width: 100%; min-width: 52rem; font-size: 0.95rem; }
.fm th, .fm td { text-align: left; vertical-align: top; padding: 0.6rem 0.8rem; border-top: var(--pen-1) solid var(--line); }
.fm thead th { border-top: 0; background: var(--sheet-2); font-family: var(--f-display); font-weight: 750; font-size: 0.95rem; }
.fm tbody th { font-weight: 600; width: 10rem; color: var(--ink-2); font-size: 0.9rem; }
.fm td + td, .fm th + td, .fm th + th { border-left: var(--pen-1) solid var(--line); }
.fm .tag { display: inline-block; font-family: var(--f-mono); font-size: 0.85rem; padding: 0.05rem 0.35rem; border: var(--pen-1) solid var(--l); color: var(--li); background: var(--lb); border-radius: 2px; margin: 0.1rem 0.15rem 0.1rem 0; white-space: nowrap; }
.fm .matrix { display: grid; grid-template-columns: 7rem repeat(2, minmax(0, 1fr)); border: var(--pen-2) solid var(--ink); }
.fm .mx-h { background: var(--sheet-2); padding: 0.7rem 0.9rem; border-bottom: var(--pen-1) solid var(--ink); display: grid; gap: 0.15rem; }
.fm .mx-h + .mx-h { border-left: var(--pen-1) solid var(--line); }
.fm .mx-h p { font-size: 0.9rem; color: var(--ink-2); }
.fm .mx-r { padding: 0.9rem; border-top: var(--pen-1) solid var(--line); background: var(--sheet-2); display: grid; align-content: start; gap: 0.35rem; font-family: var(--f-display); font-weight: 800; font-stretch: 112%; font-size: 1.25rem; }
.fm .mx-r .sw { width: 1.4rem; height: 1.4rem; }
.fm .cell { padding: 0.9rem; border-top: var(--pen-1) solid var(--line); border-left: var(--pen-1) solid var(--line); display: grid; gap: 0.7rem; align-content: start; min-width: 0; }
.fm .cell h3 { font-size: 1rem; }
.fm .cell .alias { font-family: var(--f-mono); font-size: 0.85rem; color: var(--ink-2); }
.fm .mix { display: flex; height: 1.6rem; border: var(--pen-1) solid var(--ink); border-radius: 2px; overflow: hidden; }
.fm .mix i { display: flex; align-items: center; justify-content: center; background: var(--l); color: var(--sheet); font-family: var(--f-mono); font-size: 0.85rem; font-style: normal; font-weight: 600; overflow: hidden; white-space: nowrap; }
.fm .cell ul { margin: 0; padding-left: 1.1rem; display: grid; gap: 0.3rem; font-size: 0.95rem; }
.fm .cell .k { font-family: var(--f-mono); font-size: 0.85rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-2); }
.fm .cell .grp { display: grid; gap: 0.3rem; }
@media (max-width: 900px) {
.fm .matrix { grid-template-columns: 1fr; }
.fm .mx-h.corner { display: none; }
.fm .mx-h + .mx-h { border-left: 0; }
.fm .mx-h { border-bottom: 0; border-top: var(--pen-1) solid var(--line); }
.fm .mx-h:nth-child(2) { border-top: 0; }
.fm .mx-r { grid-auto-flow: column; justify-content: start; align-items: center; }
.fm .cell { border-left: 0; }
.fm .mx-h.cols { display: none; }
.fm .cell::before { content: attr(data-col); font-family: var(--f-mono); font-size: 0.85rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-2); }
 }
.fm .mixrow { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 0.8rem; align-items: center; font-size: 0.95rem; }
.fm .mixes { display: grid; gap: 0.5rem; }
@media (max-width: 520px) {
.fm .mixrow { grid-template-columns: 1fr; gap: 0.25rem; }
 }
.fm .finds { display: grid; grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); gap: 0; border: var(--pen-1) solid var(--line); }
@media (max-width: 420px) {
.fm .finds { grid-template-columns: 1fr; }
 }
.fm .find { padding: 1rem; border-right: var(--pen-1) solid var(--line); border-bottom: var(--pen-1) solid var(--line); display: grid; gap: 0.45rem; align-content: start; min-width: 0; }
.fm .find h3 { font-size: 1rem; }
.fm .find p { font-size: 0.95rem; color: var(--ink-2); }
.fm .find .langs { display: flex; flex-wrap: wrap; gap: 0.2rem; }
.fm .note { border: var(--pen-1) solid var(--warn); background: var(--warn-bg); padding: 0.75rem 0.9rem; font-size: 0.95rem; border-radius: 2px; max-width: 70ch; }
.fm .note b { color: var(--warn); }
.fm .claims { display: grid; gap: 0; border: var(--pen-1) solid var(--line); }
.fm .claim { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-top: var(--pen-1) solid var(--line); }
.fm .claim:first-child { border-top: 0; }
.fm .claim > div { padding: 0.65rem 0.9rem; font-size: 0.95rem; min-width: 0; }
.fm .claim > div + div { border-left: var(--pen-1) solid var(--line); color: var(--ink-2); }
.fm .claim q { font-style: italic; color: var(--ink); }
@media (max-width: 640px) {
.fm .claim { grid-template-columns: 1fr; }
.fm .claim > div + div { border-left: 0; border-top: var(--pen-1) dashed var(--line); }
 }
.fm footer { padding-top: 1.5rem; border-top: var(--pen-2) solid var(--ink); font-size: 0.9rem; color: var(--ink-2); display: grid; gap: 0.4rem; }
.fm a { color: var(--accent); }
.fm :focus-visible { outline: var(--pen-3) solid var(--accent); outline-offset: 2px; }

.fm .fm-back { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; padding-block: 1.5rem 0; font-size: 0.95rem; }
