/* Frameworks pages (/frameworks/ and its chapters). Linear's Method: a book, not a pitch.
   Minimal pass (24 Oct): Geist only, labels not sentences. */


.fr { --fr-col: 688px; --fr-serif: "Geist", ui-sans-serif, system-ui, sans-serif; --fr-dash: var(--fg-4); --fr-ink: var(--fg-2); }
.fr-col { max-width: calc(var(--fr-col) + 2 * var(--outer)); margin: 0 auto; padding: 0 var(--outer); }
.fr-serif { font-family: var(--fr-serif); font-weight: 560; }

/* ---------- index hero ---------- */
.fr-hero { padding: 200px 0 0; text-align: center; }
.fr-eyebrow { font-size: 13px; color: var(--fg-3); margin-bottom: 28px; }
.fr-hero h1 { font: 560 clamp(48px, 7vw, 96px)/1 var(--fr-serif); letter-spacing: -0.035em; }
.fr-lede { margin: 36px auto 0; max-width: 46ch; font-size: 17px; line-height: 27.2px; color: var(--fg-3); }

/* now and next: one quiet line */
.fr-status { margin: 40px auto 0; display: inline-flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 10px; font-size: 14px; color: var(--fg-3); }
.fr-status b { font-weight: 500; color: var(--fg-1); }
.fr-status b.dim { color: var(--fg-3); font-weight: 400; }
.fr-status > i { width: 1px; height: 14px; margin: 0 10px; background: var(--line-3); }
.fr-tag { justify-self: start; height: 22px; padding: 0 9px; border-radius: 999px; display: inline-flex; align-items: center; font-size: 12px; font-weight: 500; background: var(--bg-3); color: var(--fg-1); box-shadow: inset 0 0 0 1px var(--line-3); }
.fr-tag.next { background: transparent; color: var(--fg-3); box-shadow: inset 0 0 0 1px var(--line-3); }

/* ---------- line art ---------- */
.fr-art { display: block; width: 100%; height: auto; overflow: visible; }
.fr-art .d { fill: none; stroke: var(--fr-dash); stroke-width: 1; stroke-dasharray: 3 4; }
.fr-art .s { fill: none; stroke: var(--fr-ink); stroke-width: 1; }
.fr-art .k { fill: none; stroke: var(--fg-1); stroke-width: 1.25; }
.fr-art .h { stroke: color-mix(in srgb, var(--fg-3) 55%, transparent); stroke-width: 1; }
.fr-art .lbl { font: 400 11px/1 "Geist Mono", ui-monospace, monospace; fill: var(--fg-4); letter-spacing: 0; }
.fr-art .lbl.on { fill: var(--fg-1); }
.fr-art .gl-stop-a { stop-color: var(--fg-1); stop-opacity: 0; }
.fr-art .gl-stop-b { stop-color: var(--fg-1); stop-opacity: .9; }
.fr-hero-art .fr-art { overflow: hidden; }
.fr-hero-art { margin: 112px auto 0; max-width: 1280px; padding: 0 var(--outer); }
.fr-glint { animation: fr-read 16s linear infinite; animation-play-state: paused; }
.fr-hero-art.on .fr-glint { animation-play-state: running; }
@keyframes fr-read { from { transform: translateX(-160px); } to { transform: translateX(1120px); } }
.fr-ring { stroke-dasharray: 200; stroke-dashoffset: 200; transition: stroke-dashoffset calc(3 * var(--dur-draw)) var(--ease-spring) .3s; }
.seen .fr-ring, .fr-ring.drawn { stroke-dashoffset: 0; }

/* figures under the art */
.fr-counts { margin: 64px auto 0; display: flex; justify-content: center; flex-wrap: wrap; gap: 12px 48px; font-size: 14px; color: var(--fg-3); }
.fr-counts b { font-family: "Geist Mono", ui-monospace, monospace; font-weight: 400; color: var(--fg-1); margin-right: 8px; letter-spacing: 0; }

/* ---------- reading column ---------- */
.fr-read { padding-top: 160px; }
.fr-read-label { font-size: 13px; color: var(--fg-3); margin-bottom: 20px; display: flex; gap: 12px; }
.fr-read-label span { font-family: "Geist Mono", ui-monospace, monospace; color: var(--fg-4); letter-spacing: 0; }
.fr-read h2.fr-serif { font-size: clamp(32px, 4vw, 44px); line-height: 1.08; letter-spacing: -0.028em; }
.fr-body { margin-top: 40px; }
.fr-body > * + * { margin-top: 20px; }
.fr-body > p, .fr-body > ul > li { font-size: 17px; line-height: 27.2px; color: var(--fg-2); }
.fr-body > p b, .fr-body > ul > li b { color: var(--fg-1); font-weight: 500; }
.fr-body a:not(.fr-anchor):not(.fr-pn a) { color: var(--fg-1); text-decoration: underline; text-decoration-color: var(--fg-4); text-underline-offset: 3px; transition: text-decoration-color var(--dur-hover); }
.fr-body a:not(.fr-anchor):hover { text-decoration-color: var(--fg-1); }
.fr-body ul { margin: 20px 0 0; padding: 0 0 0 20px; }
.fr-body ul li + li { margin-top: 8px; }
.fr-body li::marker { color: var(--fg-4); }
.fr-body h2:not(.fr-serif), .fr-body h3 { position: relative; scroll-margin-top: 96px; font-size: 24px; line-height: 1.3; font-weight: 590; letter-spacing: -0.016em; color: var(--fg-1); }
.fr-body h2:not(.fr-serif) { margin-top: 72px; }
.fr-body h3 { margin-top: 56px; font-size: 20px; }
.fr-body h2 + p, .fr-body h3 + p { margin-top: 14px; }
.fr-anchor { position: absolute; left: -36px; top: 50%; width: 24px; height: 24px; margin-top: -12px; display: grid; place-items: center; border-radius: 6px; font-size: 15px; font-weight: 400; color: var(--fg-4); opacity: 0; transition: opacity var(--dur-hover), color var(--dur-hover), background var(--dur-hover); }
.fr-body h2:hover .fr-anchor, .fr-body h3:hover .fr-anchor, .fr-anchor:focus-visible { opacity: 1; }
.fr-anchor:hover { color: var(--fg-1); background: var(--bg-3); }
@media (max-width: 860px) { .fr-anchor { display: none; } }

/* labels: flow, result terms, ticks, points */
.fr-sub, .fr-body > p.fr-sub { font-size: 15px; line-height: 23px; color: var(--fg-3); }
.fr-body > p.fr-sub { margin-top: 14px; }
.fr-flow { margin-top: 18px !important; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.fr-flow .fr-chip { height: 28px; font-size: 13px; padding: 0 10px; }
.fr-flow .ap-av.round { width: 18px; height: 18px; font-size: 8px; margin-left: -4px; }
.fr-pick { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.fr-pick span { height: 28px; padding: 0 10px; display: inline-flex; align-items: center; border-radius: 6px; font-size: 13px; color: var(--fg-2); box-shadow: inset 0 0 0 1px var(--line-2); }
.fr-arrow { width: 24px; height: 1px; background: var(--fg-4); position: relative; }
.fr-arrow::after { content: ""; position: absolute; right: 0; top: -3px; width: 6px; height: 6px; border-top: 1px solid var(--fg-4); border-right: 1px solid var(--fg-4); transform: rotate(45deg); }
.fr-chip .ai-mark { --ai-mark-h: 12px; --ai-mark-size: 20px; margin-left: -6px; }
.fr-res { margin-top: 18px !important; padding: 0 !important; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.fr-res li { margin: 0 !important; height: 30px; padding: 0 12px; display: inline-flex; align-items: center; gap: 8px; border-radius: 8px; font-size: 14px !important; line-height: 1 !important; color: var(--fg-1) !important; box-shadow: inset 0 0 0 1px var(--line-2); }
.fr-res i { width: 8px; height: 8px; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--fg-3); }
.fr-res .ip i { background: var(--ok); box-shadow: none; }
.fr-res .ccw i { background: linear-gradient(90deg, var(--ok) 50%, transparent 50%); box-shadow: inset 0 0 0 1px var(--ok); }
.fr-res .nip i { background: var(--red); box-shadow: none; }
.fr-res .nt i { background: repeating-linear-gradient(135deg, var(--fg-3) 0 1px, transparent 1px 3px); }
.fr-body ul.fr-ticks { margin-top: 18px; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.fr-body ul.fr-ticks li { margin: 0; padding: 12px 0 12px 26px; position: relative; border-bottom: 1px solid var(--line-2); font-size: 15px; line-height: 22px; color: var(--fg-2); }
.fr-body ul.fr-ticks li::before { content: ""; position: absolute; left: 2px; top: 19px; width: 10px; height: 5px; border-left: 1.25px solid var(--fg-3); border-bottom: 1.25px solid var(--fg-3); transform: rotate(-45deg); }
.fr-id, .fr-meta code { font: 400 13px/1 "Geist Mono", ui-monospace, monospace; letter-spacing: 0; color: var(--fg-1); margin-right: 6px; }
.fr-meta code { margin: 0; }
.fr-body ul.fr-pts { margin: 10px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px; }
.fr-body ul.fr-pts li { margin: 0; min-height: 26px; padding: 5px 9px; display: inline-flex; align-items: center; border-radius: 6px; font-size: 13px; line-height: 16px; color: var(--fg-2); background: var(--bg-1); box-shadow: inset 0 0 0 1px var(--line-2); }
.fr-more-btn { appearance: none; border: 0; height: 26px; min-width: 32px; padding: 0 8px; border-radius: 6px; font: inherit; font-size: 12px; font-variant-numeric: tabular-nums; color: var(--fg-2); background: none; box-shadow: inset 0 0 0 1px var(--line-3); cursor: pointer; transition: color var(--dur-hover); }
.fr-more-btn:hover { color: var(--fg-1); }
[data-fr-hide] { display: none !important; }
.fr-sg { color: var(--cu); font-size: 13px; }
.fr-sheet { border-radius: 6px; padding: 12px 14px; background: #fff; color: #1a1a1a; box-shadow: inset 0 0 0 1px #0000001f; font-size: 14px; line-height: 22px; }
/* a request Enpasse drafted: shared .doc-page (copper while suggested, normal surface once accepted), never white */
.fr-draft { padding: 12px 14px; font-size: 14px; line-height: 22px; }
.fr-u { text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--cu) 60%, transparent); text-decoration-thickness: 1px; text-underline-offset: 4px; }
.fr-foot { margin-top: auto; }
.fr-line .ap-av.round { width: 20px; height: 20px; font-size: 8.5px; }

/* lineage chain */
.fr-chain { margin-top: 28px !important; list-style: none; padding: 20px !important; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 0; border-radius: 10px; background: var(--bg-1); box-shadow: inset 0 0 0 1px var(--line-2); }
.fr-chain li { display: inline-flex; align-items: center; margin: 0 !important; font: 400 12px/1 "Geist Mono", ui-monospace, monospace !important; letter-spacing: 0; color: var(--fg-3) !important; }
.fr-chain li span { height: 26px; padding: 0 10px; display: inline-flex; align-items: center; border-radius: 6px; box-shadow: inset 0 0 0 1px var(--line-3); background: var(--bg); }
.fr-chain li.on span { color: var(--fg-1); box-shadow: inset 0 0 0 1px var(--fg-3); }
.fr-chain li + li::before { content: ""; width: 18px; height: 1px; margin: 0 4px; background: var(--fg-4); }

/* ---------- contents ---------- */
.fr-toc { padding-top: 160px; }
.fr-toc-head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.fr-toc-head h2 { font-size: 13px; font-weight: 500; color: var(--fg-1); }
.fr-toc-head span { font-size: 13px; color: var(--fg-4); }
.fr-part { padding: 28px 0 20px; border-bottom: 1px solid var(--line); }
.fr-part h3 { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 12px; align-items: baseline; font-size: 13px; line-height: 19.5px; font-weight: 500; color: var(--fg-1); margin-bottom: 8px; }
.fr-part h3 span { font-family: "Geist Mono", ui-monospace, monospace; font-weight: 400; color: var(--fg-4); letter-spacing: 0; }
.fr-row { position: relative; display: grid; grid-template-columns: 56px minmax(0, 1fr) 40px; gap: 12px; padding: 8px 0; scroll-margin-top: 96px; }
.fr-row .n { font: 400 13px/24px "Geist Mono", ui-monospace, monospace; color: var(--fg-4); letter-spacing: 0; }
.fr-row .t { font-size: 16px; line-height: 24px; color: var(--fg-2); }
.fr-row .w { margin-top: 2px; font-size: 13px; line-height: 20px; color: var(--fg-4); max-width: 58ch; }
.fr-row .go { justify-self: end; align-self: start; margin-top: 4px; width: 16px; height: 16px; color: var(--fg-4); transition: color var(--dur-hover), transform var(--dur-hover) var(--ease-spring); }
a.fr-row::after { content: ""; position: absolute; inset: 2px -12px; border-radius: 8px; background: var(--bg-2); opacity: 0; transition: opacity var(--dur-hover); z-index: -1; }
a.fr-row { isolation: isolate; }
a.fr-row .t { color: var(--fg-1); }
a.fr-row:hover::after { opacity: 1; }
a.fr-row:hover .go { color: var(--fg-1); transform: translateX(3px); }
.fr-row .rd { display: inline-flex; margin-left: 10px; font-size: 12px; color: var(--fg-3); }
.fr-row.next .t { color: var(--fg-3); }
.fr-row.next .fr-tag { margin-left: 10px; vertical-align: 2px; }
@media (max-width: 520px) { .fr-row, .fr-part h3 { grid-template-columns: 44px minmax(0, 1fr); } .fr-row .go { display: none; } }

.fr-more summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 12px; align-items: center; font-size: 13px; font-weight: 500; color: var(--fg-3); transition: color var(--dur-hover); }
.fr-more summary::-webkit-details-marker { display: none; }
.fr-more summary:hover { color: var(--fg-1); }
.fr-more[open] summary { color: var(--fg-1); margin-bottom: 8px; }
.fr-plus { justify-self: start; height: 22px; padding: 0 7px; display: inline-grid; place-items: center; border-radius: 6px; font: 400 12px/1 "Geist Mono", ui-monospace, monospace; color: var(--fg-2); box-shadow: inset 0 0 0 1px var(--line-3); }
@media (max-width: 520px) { .fr-more summary { grid-template-columns: 44px minmax(0, 1fr); } }

/* ---------- closing note ---------- */
.fr-note { padding-bottom: 40px; }
.fr-legal, .fr-body > .fr-legal { margin-top: 96px; padding: 24px 0 64px; border-top: 1px solid var(--line); font-size: 12px; line-height: 18px; color: var(--fg-4); }

/* ---------- chapter page ---------- */
.fr-ch-head { padding-top: 160px; }
.fr-crumb { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: var(--fg-3); }
.fr-crumb a { transition: color var(--dur-hover); }
.fr-crumb a:hover { color: var(--fg-1); }
.fr-crumb i { font-style: normal; color: var(--fg-4); }
.fr-ch-head h1 { margin-top: 28px; font: 560 clamp(40px, 6vw, 60px)/1.05 var(--fr-serif); letter-spacing: -0.03em; }
.fr-meta { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 8px 28px; font-size: 13px; color: var(--fg-3); }
.fr-meta b { font-weight: 400; color: var(--fg-4); margin-right: 6px; }
.fr-ch-art { margin-top: 64px; }
.fr-ch-art .fr-art { max-width: 688px; }
.fr-ch .fr-body { margin-top: 64px; }
.fr-onpage { margin-top: 48px !important; padding: 16px 0 !important; list-style: none; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 6px 22px; }
.fr-onpage li { margin: 0 !important; font-size: 14px !important; line-height: 22px !important; }
.fr-onpage a { color: var(--fg-3) !important; text-decoration: none !important; transition: color var(--dur-hover); }
.fr-onpage a:hover { color: var(--fg-1) !important; }

/* sub-requirement groups */
.fr-groups { margin-top: 28px !important; border-top: 1px solid var(--line); }
.fr-group { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.fr-group > span { font: 400 14px/24px "Geist Mono", ui-monospace, monospace; color: var(--fg-1); letter-spacing: 0; }
.fr-group h4 { margin: 0; font-size: 16px; line-height: 24px; font-weight: 500; color: var(--fg-1); }

/* methods row */
.fr-methods { margin-top: 28px !important; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.fr-methods > div { padding: 20px; }
.fr-methods > div:nth-child(even) { border-left: 1px solid var(--line); }
.fr-methods > div:nth-child(n+3) { border-top: 1px solid var(--line); }
.fr-methods h4 { margin: 0; display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; color: var(--fg-1); }
.fr-methods h4 svg { width: 16px; height: 16px; fill: none; stroke: var(--fg-3); stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
.fr-methods p { margin-top: 6px !important; font-size: 14px !important; line-height: 21px !important; color: var(--fg-3) !important; }
@media (max-width: 640px) { .fr-methods { grid-template-columns: 1fr; } .fr-methods > div:nth-child(even) { border-left: 0; } .fr-methods > div + div { border-top: 1px solid var(--line); } }

/* the 8.3.6 run: steps above one product card */
.fr-run { margin-top: 32px !important; }
.fr-steps { display: flex; gap: 2px; padding: 3px; border-radius: 10px; background: var(--bg-1); box-shadow: inset 0 0 0 1px var(--line-2); overflow-x: auto; scrollbar-width: none; }
.fr-steps::-webkit-scrollbar { display: none; }
.fr-steps button { flex: 1 0 auto; height: 32px; padding: 0 12px; border: 0; border-radius: 7px; background: transparent; color: var(--fg-3); font-size: 13px; cursor: pointer; white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; transition: color var(--dur-hover), background var(--dur-hover); }
.fr-steps button span { font-family: "Geist Mono", ui-monospace, monospace; font-size: 11px; color: var(--fg-4); letter-spacing: 0; }
.fr-steps button:hover { color: var(--fg-1); }
.fr-steps button[aria-selected="true"] { background: var(--bg-3); color: var(--fg-1); box-shadow: var(--glass); }
.fr-steps button[aria-selected="true"] span { color: var(--fg-2); }
.fr-card { position: relative; margin-top: 12px; border-radius: 12px; background: linear-gradient(#ffffff04, #ffffff04), var(--panel); box-shadow: inset 0 0 0 1px var(--line-3), 0 24px 48px -24px #0006; overflow: hidden; }
:root[data-theme="light"] .fr-card { box-shadow: inset 0 0 0 1px var(--line-3), 0 16px 32px -20px #0002; }
.fr-card-bar { height: 44px; padding: 0 16px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--line-2); font-size: 13px; color: var(--fg-3); }
.fr-card-bar b { font-family: "Geist Mono", ui-monospace, monospace; font-weight: 400; color: var(--fg-1); letter-spacing: 0; }
.fr-card-bar .sp { margin-left: auto; }
.fr-state { padding: 20px; min-height: 196px; display: flex; flex-direction: column; gap: 14px; }
.fr-state[hidden] { display: none; }
.fr-state.enter { animation: fr-in var(--dur-enter) var(--ease-spring); }
@keyframes fr-in { from { opacity: 0; filter: blur(4px); transform: translateY(8px); } to { opacity: 1; filter: none; transform: none; } }
.fr-k { font-size: 12px; color: var(--fg-4); }
.fr-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; color: var(--fg-2); }
.fr-chip { height: 22px; padding: 0 8px; border-radius: 6px; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--fg-2); background: var(--bg-3); box-shadow: inset 0 0 0 1px var(--line-2); white-space: nowrap; }
.fr-chip.ok { color: var(--ok); background: var(--ok-tint); }
.fr-chip.amb { color: var(--fg-2); background: var(--bg-3); }
.fr-chip.cu { color: var(--cu); background: var(--cu-tint); }
.fr-chip i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.fr-chip.mono { font-family: "Geist Mono", ui-monospace, monospace; letter-spacing: 0; }
.fr-why { font-size: 14px; line-height: 21px; color: var(--fg-2); }
.fr-acts { margin-top: auto; display: flex; flex-wrap: wrap; gap: 6px; }
.fr-acts span { height: 28px; padding: 0 12px; border-radius: 999px; display: inline-flex; align-items: center; font-size: 12px; color: var(--fg-2); background: var(--bg-3); box-shadow: var(--glass); }
.fr-acts span.pri { background: var(--inv); color: var(--inv-fg); box-shadow: none; }
.fr-stamp { margin-top: auto; display: flex; align-items: center; gap: 10px; padding-top: 14px; border-top: 1px solid var(--line-2); font-size: 13px; color: var(--fg-3); }
.fr-stamp .av { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 10px; font-weight: 600; color: var(--fg-1); background: var(--bg-4); box-shadow: inset 0 0 0 1px var(--line-3); }
.fr-stamp b { color: var(--fg-1); font-weight: 500; }
.fr-run .src-excerpt { font-size: 14px; }
.fr-cap { margin-top: 12px !important; font-size: 13px !important; line-height: 20px !important; color: var(--fg-4) !important; }

/* evidence types: chips, detail on hover */
.fr-body ul.fr-ev { margin-top: 18px; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.fr-body ul.fr-ev li { margin: 0; height: 30px; padding: 0 12px; display: inline-flex; align-items: center; border-radius: 8px; font-size: 14px; line-height: 1; color: var(--fg-1); box-shadow: inset 0 0 0 1px var(--line-2); cursor: default; }
.fr-body ul.fr-ev li:hover { background: var(--bg-1); }
.fr-body ul.fr-ev .fr-more-btn { height: 30px; }

/* quoted aside */
.fr-aside { margin-top: 56px !important; padding: 24px 24px 22px; border-radius: 12px; background: var(--bg-1); box-shadow: inset 0 0 0 1px var(--line-2); }
.fr-aside { padding: 20px 20px 18px; }
.fr-aside p { font-size: 14px; line-height: 20px; color: var(--fg-1); font-weight: 500; }
.fr-aside ul.fr-pts li { background: var(--bg); }

/* previous and next */
.fr-pn { margin-top: 96px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.fr-pn a { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; border: 1px solid var(--border); border-radius: 8px; transition: background var(--dur-hover), border-color var(--dur-hover); }
.fr-pn a:hover { background: var(--bg-1); border-color: var(--line-3); }
.fr-pn a span { font: 400 12px/1 "Geist Mono", ui-monospace, monospace; color: var(--fg-4); letter-spacing: 0; }
.fr-pn a b { font-size: 15px; line-height: 22px; font-weight: 500; color: var(--fg-1); }
.fr-pn a.nx { text-align: right; align-items: flex-end; }
@media (max-width: 560px) { .fr-pn { grid-template-columns: 1fr; } }

@media (max-width: 640px) {
  .fr-hero { padding-top: 152px; }
  .fr-hero-art { margin-top: 72px; }
  .fr-read, .fr-toc { padding-top: 112px; }
}
@media (max-width: 640px) { .fr-hero-art { padding: 0 4px; } .fr-art .lbl { font-size: 15px; } }
@media (prefers-reduced-motion: reduce) {
  .fr-glint { display: none; }
  .fr-ring { stroke-dashoffset: 0; transition: none; }
  .fr-state.enter { animation: none; }
}

/* phone pass (24 Oct): touch-size jump links, crumbs and step tabs; step numbers readable */
@media (max-width: 860px) {
  .fr-onpage { gap: 0 18px; padding: 8px 0 !important; }
  .fr-onpage a { display: inline-flex; align-items: center; min-height: 40px; }
  .fr-crumb { gap: 0 8px; align-items: center; }
  .fr-crumb a { display: inline-flex; align-items: center; min-height: 40px; }
  .fr-steps button { height: 40px; }
  .fr-steps button span { font-size: 12px; }
  .fr p a:not(.fr-anchor) { padding: 10px 0; }
}

/* ---------- round 2: the Assess surface, a product screen in place of line art ---------- */
.fr-stage { margin: 88px auto 0; max-width: 1280px; padding: 0 var(--outer); }
.fr-app { border-radius: 12px; background: var(--bg-1); box-shadow: inset 0 0 0 1px var(--line-2); overflow: hidden; text-align: left; font-size: 13px; color: var(--fg-2); }
:root[data-theme="light"] .fr-app { background: var(--bg); box-shadow: inset 0 0 0 1px var(--line-3); }
.fr-app code, .fr-app kbd { font: 400 12px/1 "Geist Mono", ui-monospace, monospace; letter-spacing: 0; }
.fr-app-top { height: 40px; padding: 0 16px; display: flex; align-items: center; gap: 14px; border-bottom: 1px solid var(--line-2); color: var(--fg-3); }
.fr-app-top > span:nth-child(2) { color: var(--fg-1); font-weight: 500; }
.fr-dots { display: inline-flex; gap: 6px; } .fr-dots i { width: 9px; height: 9px; border-radius: 50%; background: var(--bg-4); }
.fr-crumb-i::before { content: "/"; margin-right: 14px; color: var(--fg-4); }
.fr-app-k { margin-left: auto; display: inline-flex; gap: 4px; }
.fr-app-k kbd { height: 20px; min-width: 20px; padding: 0 5px; display: inline-grid; place-items: center; border-radius: 5px; color: var(--fg-3); box-shadow: inset 0 0 0 1px var(--line-3); font-size: 11px; }
.fr-app-body { display: grid; grid-template-columns: 236px minmax(0, 1fr) 300px; min-height: 384px; }
.fr-app-ch .fr-app-body { grid-template-columns: minmax(0, 1fr) 280px; min-height: 0; }
.fr-rail { border-right: 1px solid var(--line-2); padding: 8px; display: flex; flex-direction: column; gap: 1px; }
.fr-rl { appearance: none; border: 0; background: none; font: inherit; text-align: left; height: 28px; padding: 0 8px; border-radius: 6px; display: grid; grid-template-columns: 22px minmax(0, 1fr) 14px; align-items: center; gap: 8px; color: var(--fg-3); cursor: pointer; transition: background-color .2s, color .2s; }
.fr-rl span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fr-rl code { color: var(--fg-4); }
.fr-rl:hover { color: var(--fg-1); }
.fr-rl.on { background: var(--bg-3); color: var(--fg-1); }
.fr-rl.on code { color: var(--fg-2); }
.fr-pg { width: 14px; height: 14px; flex: none; }
.fr-pg circle { fill: none; stroke: var(--fg-4); stroke-width: 1.25; }
.fr-pg .f { fill: var(--fg-2); stroke: none; }
.fr-pg circle.f { fill: var(--fg-2); }
.fr-main { min-width: 0; display: flex; flex-direction: column; }
.fr-bar { height: 40px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line-2); color: var(--fg-3); }
.fr-bar [data-head] { display: inline-flex; align-items: center; gap: 12px; }
.fr-bar b { color: var(--fg-1); font-weight: 500; }
.fr-bar code { color: var(--fg-1); }
.fr-prog { display: inline-flex; align-items: center; gap: 8px; color: var(--fg-2); font-variant-numeric: tabular-nums; }
.fr-list { flex: 1; }
.fr-li { appearance: none; border: 0; background: none; font: inherit; width: 100%; text-align: left; height: 40px; padding: 0 16px; display: grid; grid-template-columns: 14px 64px minmax(0, 1fr) auto 20px; align-items: center; gap: 12px; border-bottom: 1px solid var(--line-2); color: var(--fg-2); cursor: pointer; transition: background-color .2s; }
.fr-li[hidden] { display: none; }
.fr-li code { color: var(--fg-3); }
.fr-li-t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fr-li:hover { background: color-mix(in srgb, var(--fg-1) 3%, transparent); }
.fr-li.on { background: color-mix(in srgb, var(--fg-1) 5%, transparent); color: var(--fg-1); }
.fr-li.on code { color: var(--fg-1); }
.fr-li-p { font-style: normal; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; font-size: 8.5px; font-weight: 600; color: var(--fg-2); background: var(--bg-3); box-shadow: inset 0 0 0 1px var(--line-3); }
.fr-list.enter .fr-li { animation: fr-row .45s var(--ease-spring) both; animation-delay: calc(var(--i, 0) * 45ms); }
@keyframes fr-row { from { opacity: 0; transform: translateY(6px); } }
/* status icons: the word is on hover (title) */
.fr-st { width: 14px; height: 14px; border-radius: 50%; position: relative; box-shadow: inset 0 0 0 1.25px var(--fg-4); }
.fr-st.ip, .fr-st.ccw { background: var(--fg-2); box-shadow: none; }
.fr-st.ip::after, .fr-st.ccw::after { content: ""; position: absolute; left: 4px; top: 4.5px; width: 5px; height: 2.5px; border-left: 1.25px solid var(--bg); border-bottom: 1.25px solid var(--bg); transform: rotate(-45deg); }
.fr-st.ccw { box-shadow: 0 0 0 1.5px var(--bg-1), 0 0 0 2.5px var(--fg-3); }
.fr-st.nip { box-shadow: inset 0 0 0 1.25px var(--fg-1); background: linear-gradient(45deg, transparent 45%, var(--fg-1) 45% 55%, transparent 55%), linear-gradient(-45deg, transparent 45%, var(--fg-1) 45% 55%, transparent 55%); background-size: 8px 8px; background-position: center; background-repeat: no-repeat; }
.fr-st.na { box-shadow: inset 0 0 0 1.25px var(--fg-3); background: linear-gradient(135deg, transparent 46%, var(--fg-3) 46% 54%, transparent 54%); }
.fr-st.nt { box-shadow: inset 0 0 0 1.25px var(--fg-4); background: radial-gradient(circle, var(--fg-4) 0 20%, transparent 22%); }
.fr-st.s { box-shadow: inset 0 0 0 1.25px var(--cu); background: radial-gradient(circle, var(--cu) 0 30%, transparent 32%); }
.fr-st.g { box-shadow: inset 0 0 0 1.25px var(--fg-3); background: linear-gradient(90deg, var(--fg-3) 50%, transparent 50%); }
.fr-st.o { box-shadow: inset 0 0 0 1.25px var(--fg-4); background: none; border: 0; }
.fr-res-c { height: 20px; padding: 0 7px; display: inline-flex; align-items: center; gap: 4px; border-radius: 5px; font-size: 11.5px; color: var(--fg-2); box-shadow: inset 0 0 0 1px var(--line-3); white-space: nowrap; }
.fr-res-c.nip { color: var(--fg-1); box-shadow: inset 0 0 0 1px var(--fg-3); }
.fr-res-c.na, .fr-res-c.nt, .fr-res-c.g { color: var(--fg-3); }
.fr-res-c.s { color: var(--cu); box-shadow: inset 0 0 0 1px var(--cu-line); }
.fr-res-c .ai-mark { --ai-mark-h: 10px; --ai-mark-size: 18px; margin-left: -5px; }
.fr-side { border-left: 1px solid var(--line-2); padding: 16px 18px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.fr-side-h code { font-size: 13px; color: var(--fg-1); }
.fr-side-t { font-size: 14px; line-height: 20px; color: var(--fg-1); font-weight: 500; }
.fr-props { margin: 0; display: grid; gap: 9px; }
.fr-props > div { display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 10px; }
.fr-props dt { color: var(--fg-4); }
.fr-props dd { margin: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; color: var(--fg-2); }
.fr-props dd b { color: var(--fg-1); font-weight: 500; }
.fr-props .ai-mark { --ai-mark-h: 11px; }
.fr-props .ap-av.round { width: 18px; height: 18px; font-size: 8px; }
.fr-sheet-h { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 6px; font: 400 11px/1 "Geist Mono", ui-monospace, monospace; color: #6b6b70; letter-spacing: 0; }
.fr-sheet-sm { font-size: 12.5px; line-height: 19px; padding: 10px 12px; }
/* chapter list: groups with folds */
.fr-grp-h { height: 34px; padding: 0 16px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--line-2); background: color-mix(in srgb, var(--fg-1) 2%, transparent); color: var(--fg-3); font-size: 12.5px; }
.fr-grp-h code { color: var(--fg-1); }
.fr-grp-h .fr-pg { margin-left: auto; }
.fr-grp-n { font-variant-numeric: tabular-nums; color: var(--fg-2); }
.fr-more-row { appearance: none; border: 0; border-bottom: 1px solid var(--line-2); background: none; font: inherit; width: 100%; height: 34px; padding: 0 16px 0 106px; text-align: left; font-size: 12.5px; color: var(--fg-4); cursor: pointer; }
.fr-more-row:hover { color: var(--fg-1); }
.fr-ch-art .fr-app { max-width: none; }
.fr-ch .fr-ch-art { margin-left: calc(50% - min(50vw, 600px) + var(--outer)); margin-right: calc(50% - min(50vw, 600px) + var(--outer)); }

/* section 6 list, contents examples, evidence list */
.fr-s6 { margin-top: 18px !important; border-top: 1px solid var(--line); }
.fr-s6 > div { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line-2); font-size: 15px; color: var(--fg-2); }
.fr-s6 b { margin-left: auto; font: 400 13px/1 "Geist Mono", ui-monospace, monospace; color: var(--fg-1); letter-spacing: 0; }
.fr-row .x { margin-top: 0; max-height: 0; overflow: hidden; opacity: 0; font-size: 13.5px; line-height: 20px; color: var(--fg-3); max-width: 60ch; transition: max-height .4s var(--ease-spring), opacity .3s, margin-top .3s; }
.fr-row:hover .x, .fr-row:focus-within .x, .fr-row:target .x { max-height: 80px; opacity: 1; margin-top: 6px; }
@media (hover: none) { .fr-row .x { max-height: none; opacity: 1; margin-top: 6px; } }
.fr-body ul.fr-evl { margin-top: 18px; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.fr-body ul.fr-evl li { margin: 0; display: grid; grid-template-columns: 40px minmax(0, 220px) minmax(0, 1fr); align-items: baseline; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line-2); font-size: 15px; line-height: 22px; }
.fr-evl code { font: 400 11px/1 "Geist Mono", ui-monospace, monospace; color: var(--fg-4); letter-spacing: 0; }
.fr-evl b { font-weight: 500; color: var(--fg-1); }
.fr-evl span { font-size: 13.5px; color: var(--fg-3); }
.fr-methods code, .fr-body p code { font: 400 13px/1 "Geist Mono", ui-monospace, monospace; letter-spacing: 0; color: var(--fg-1); }
.fr-body ul.fr-ticks li b { font-weight: 500; color: var(--fg-1); }
.fr-card-bar .sp { display: inline-flex; align-items: center; gap: 8px; }
.fr-card-bar .ap-av.round, .fr-line .ap-av.round { width: 20px; height: 20px; font-size: 8.5px; }
.fr-run .fr-sheet { font-size: 14px; }

@media (max-width: 1080px) {
  .fr-app-body { grid-template-columns: 200px minmax(0, 1fr); }
  .fr-app-body > .fr-side { display: none; }
  .fr-app-ch .fr-app-body { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  .fr-app-body { grid-template-columns: minmax(0, 1fr); }
  .fr-rail { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line-2); scrollbar-width: none; }
  .fr-rail::-webkit-scrollbar { display: none; }
  .fr-rl { grid-template-columns: auto 14px; flex: none; }
  .fr-rl span { display: none; }
  .fr-li { grid-template-columns: 14px 56px minmax(0, 1fr) 20px; padding: 0 12px; gap: 10px; }
  .fr-li .fr-res-c { display: none; }
  .fr-more-row { padding-left: 92px; }
  .fr-body ul.fr-evl li { grid-template-columns: 34px minmax(0, 1fr); }
  .fr-evl span { grid-column: 2; }
  .fr-app-k { display: none; }
  .fr-stage { padding: 0 16px; margin-top: 64px; }
}
@media (prefers-reduced-motion: reduce) { .fr-list.enter .fr-li { animation: none; } .fr-row .x { transition: none; } }

.fr-procs { display: grid; gap: 6px; padding-top: 12px; border-top: 1px solid var(--line-2); }
.fr-procs .fr-k { margin-bottom: 2px; }
.fr-proc { display: grid; grid-template-columns: 14px 72px minmax(0, 1fr); align-items: center; gap: 10px; color: var(--fg-2); }
.fr-proc code { color: var(--fg-3); }
@media (max-width: 720px) {
  .fr-app-body { min-height: 0; grid-template-rows: auto auto; }
  .fr-rail { padding: 6px 8px; align-items: center; }
  .fr-list { min-height: 200px; }
}

/* ============ Invention round: group by section or by status, rows travel into bands ============ */
.fg { margin: 28px 0 0 !important; border-radius: 12px; background: var(--bg-1); box-shadow: inset 0 0 0 1px var(--line-2); overflow: hidden; font-size: 13px; }
.fg-bar { height: 48px; padding: 0 10px 0 16px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--line-2); }
.fg-bar b { font-weight: 500; color: var(--fg-1); }
.fg-dim { color: var(--fg-3); font-size: 12px; }
.fg-seg { margin-left: auto; display: inline-flex; align-items: center; gap: 2px; padding: 2px; border-radius: 8px; box-shadow: inset 0 0 0 1px var(--line); }
.fg-l { font-size: 12px; color: var(--fg-4); padding: 0 6px; }
.fg-seg button { all: unset; cursor: pointer; padding: 5px 10px; border-radius: 6px; font-size: 12.5px; color: var(--fg-3); transition: background var(--dur-hover), color var(--dur-hover); }
.fg-seg button[aria-pressed="true"] { background: var(--bg-4); color: var(--fg-1); }
.fg-seg button:focus-visible { outline: 2px solid var(--fg-3); outline-offset: 1px; }
.fg-list { position: relative; }
.fg-r, .fg-band { position: absolute; left: 0; right: 0; height: 36px; display: grid; align-items: center; padding: 0 16px; transition: transform .7s var(--ease-swap), opacity .4s; }
.fg-r { grid-template-columns: 14px 64px minmax(0, 1fr); gap: 10px; color: var(--fg-1); border-bottom: 1px solid var(--line-2); }
.fg-r code { font-family: "Geist Mono", ui-monospace, monospace; font-size: 12px; color: var(--fg-2); }
.fg-t { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fg-band { height: 32px; grid-template-columns: 14px auto auto; justify-content: start; gap: 10px; font-size: 12px; color: var(--fg-2); background: var(--line-2); border-bottom: 1px solid var(--line-2); }
.fg-band b { font-weight: 500; }
.fg-band span { color: var(--fg-4); font-variant-numeric: tabular-nums; }
.fg-band.gone { opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .fg * { transition: none !important; } }

/* ============ Invention round: the finding follows the rule ============ */
.fq { margin: 28px 0 0 !important; border-radius: 12px; background: var(--bg-1); box-shadow: inset 0 0 0 1px var(--line-2); font-size: 13px; overflow: hidden; }
.fq-h { height: 46px; padding: 0 16px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid var(--line-2); }
.fq-h b { font-weight: 500; color: var(--fg-1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fq-try { margin-left: auto; font-size: 12px; color: var(--fg-3); white-space: nowrap; }
.fq-proc { display: grid; grid-template-columns: 64px 80px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 52px; padding: 0 16px; border-bottom: 1px solid var(--line-2); }
.fq-m { color: var(--fg-3); }
.fq-seg, .fq-fs { justify-self: end; display: inline-flex; gap: 2px; padding: 2px; border-radius: 8px; box-shadow: inset 0 0 0 1px var(--line); }
.fq-seg button, .fq-fs button { all: unset; cursor: pointer; padding: 5px 10px; border-radius: 6px; font-size: 12.5px; color: var(--fg-3); white-space: nowrap; transition: background var(--dur-hover), color var(--dur-hover), box-shadow var(--dur-hover); }
.fq-seg button:hover, .fq-fs button:hover { color: var(--fg-1); }
.fq-seg button[aria-pressed="true"] { background: var(--bg-4); color: var(--fg-1); }
.fq-seg button[data-v="u"][aria-pressed="true"] { color: var(--amber); }
.fq-seg button:focus-visible, .fq-fs button:focus-visible { outline: 2px solid var(--fg-3); outline-offset: 1px; }
.fq-gap { display: flex; align-items: center; gap: 8px; height: 0; padding: 0 16px; overflow: hidden; color: var(--amber); font-size: 12.5px; transition: height .4s var(--ease-spring), border-color .4s; border-bottom: 1px solid transparent; }
.fq-gap b { font-weight: 500; font-family: "Geist Mono", ui-monospace, monospace; font-size: 12px; }
.fq-gap svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.3; flex: none; }
.fq.gap .fq-gap { height: 42px; border-bottom-color: var(--line-2); }
.fq-find { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 0 16px; }
.fq-l { color: var(--fg-3); }
.fq-fs { margin-left: auto; }
.fq-fs button[aria-pressed="true"] { background: var(--fg-1); color: var(--bg); }
.fq-fs button.no { box-shadow: inset 0 0 0 1px var(--red); color: var(--red); }
.fq-say { min-height: 40px; margin: 0 !important; padding: 0 16px 14px; display: flex; align-items: center; gap: 8px; font-size: 12.5px !important; line-height: 1.4 !important; color: var(--fg-3) !important; }
.fq-say.no { color: var(--red) !important; }
.fq-say svg { width: 14px; height: 14px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.3; stroke-linejoin: round; stroke-linecap: round; }
.fq-fs button.press, .fq-seg button.press { background: var(--bg-4); }
@media (max-width: 640px) {
  .fq-proc { grid-template-columns: 58px minmax(0, 1fr); row-gap: 0; padding: 10px 14px; }
  .fq-proc .fq-seg { grid-column: 1 / -1; justify-self: start; margin-top: 8px; }
  .fq-find { flex-wrap: wrap; padding: 12px 14px; }
  .fq-fs { margin-left: 0; }
  .fq-h, .fq-say { padding-left: 14px; padding-right: 14px; }
  .fq-h b { font-size: 12.5px; }
}

/* ============ Linear round: the Old parts ring, restored above Contents. One lit arc, the part being read; it
   moves to the next part only when that part's contents row is reached (700 ms in-out). Bottom fades into the page. ============ */
.fr-hero-art.fr-ring-sticky { position: sticky; top: 72px; z-index: 2; margin: 24px calc(-1 * var(--outer)) 8px; padding: 12px var(--outer) 0; background: linear-gradient(var(--bg) 82%, transparent); }
.fr-ring-sticky .fr-art { overflow: hidden; -webkit-mask-image: linear-gradient(#000 50%, rgba(0,0,0,.3)); mask-image: linear-gradient(#000 50%, rgba(0,0,0,.3)); }
.fr-art .d.p { stroke: color-mix(in srgb, var(--fg-1) 8%, transparent); stroke-dasharray: none; }
.fr-lit { fill: none; stroke: var(--fg-1); stroke-width: 1.25; transition: transform .7s cubic-bezier(.645,.045,.355,1); }
.fr-art [data-part] { transition: fill .7s cubic-bezier(.645,.045,.355,1); }
.fr-glint { animation: fr-read 16s linear infinite; animation-play-state: paused; }
.fr-hero-art.on .fr-glint { animation-play-state: running; }
@keyframes fr-read { from { transform: translateX(-160px); } to { transform: translateX(1120px); } }
.fr-ring { stroke-dasharray: 200; stroke-dashoffset: 200; transition: stroke-dashoffset 2.2s var(--ease-enter) .4s; }
.seen .fr-ring, .fr-ring.drawn { stroke-dashoffset: 0; }
.fr-ring-sticky { padding-bottom: 32px !important; }
@media (max-width: 640px) { .fr-hero-art.fr-ring-sticky { position: relative; top: auto; padding: 0 4px 24px; margin: 16px 0 0; } .fr-art .lbl { font-size: 15px; } }
@media (prefers-reduced-motion: reduce) { .fr-glint { display: none; } .fr-ring { stroke-dashoffset: 0; transition: none; } .fr-lit, .fr-art [data-part] { transition: none; } }

/* ============ Linear round, B4 (requirement 8): 29 sub-requirements, one in focus. Rows blur and fade by distance
   from the row that matches the part of the chapter on screen. Wide screens: a quiet rail beside the text. ============ */
.fr-dof-rail { margin: 8px 0 32px; }
.fr-dof { margin: 0; }
.fr-dof-h { display: flex; align-items: baseline; gap: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--line-2); font-size: 13px; color: var(--fg-4); }
.fr-dof-h b { color: var(--fg-1); font-weight: 500; }
.fr-dof-l { list-style: none; margin: 0 !important; padding: 0 !important; }
.fr-dof-l li { --d: 3; display: grid; grid-template-columns: 14px 52px minmax(0, 1fr); gap: 10px; align-items: center; padding: 9px 0; margin: 0 !important; font-size: 13px; line-height: 1.35; color: var(--fg-2);
  filter: blur(calc(min(var(--d), 3) * 1px)); opacity: max(.2, calc(1 - var(--d) * .2)); transition: filter .3s ease-out, opacity .3s ease-out; }
.fr-dof-l code { font: 400 12px/1 "Geist Mono", ui-monospace, monospace; color: var(--fg-3); letter-spacing: 0; }
.fr-dof-l li.on { color: var(--fg-1); }
.fr-dof-l li.on code { color: var(--fg-1); }
.fr-dof-l small { display: block; margin-top: 2px; font-size: 12px; color: var(--fg-3); }
.fr-dof-l li:not(.on) small { display: none; }
@media (min-width: 1240px) {
  .fr-dof-rail { position: sticky; top: 140px; height: 0; margin: 0; z-index: 1; }
  .fr-dof { position: absolute; left: calc(100% + 56px); top: 0; width: 248px; }
}
@media (prefers-reduced-motion: reduce) { .fr-dof-l li { transition: none; } }
.fr-spec { margin-top: 28px; }

/* Frameworks, simplified (founder, 25 Oct): only what is supported. Scoped to .fr-simple. */
.fr-simple .fr-toc { padding-top: 120px; }
.fr-simple .fr-row .fr-tag { margin-left: 10px; vertical-align: 2px; }
.fr-simple .fr-support { padding-bottom: 120px; }
