/* Platform design system, version 3. Keep this file the same in both repositories.
   Base: the Nexus Foundry public grammar. Black or white canvas, hairline structure, 5 px radii, IBM Plex
   Sans and Mono, mono labels, count bands, numbered sections, hairline cell grids, plain tables, an inverted
   closing band. No shadows, glows, blur or background images. Colour appears only as a pale gradient on
   figures, rules, dots and bars, one per network (set in brand.css).
   Two designs on top, chosen by data-design:
     diwan    IDCDC: the register. A sticky index rail beside each entry, ruled rows, girih line art.
     contour  KCO: the field. Full-width alternating bands, cell grids, larger display type, contour line art.
   Colour is the shared Nexus Standards system (decision D28); each network's design profile is content/site/design.json.
   Everything is scoped to .pf so pages sit inside any theme. Component rules are one class stronger than
   theme selectors (".pf .pf-x"); headings take the platform's type inside .pf. Colour mode follows the
   WordPress theme (BuddyX: data-bx-mode, light-mode or dark-mode on <html>), else the reader's choice or
   the system setting. */

.pf {
  --pf-font: "IBM Plex Sans", "Noto Sans", "Vazirmatn", "Estedad", "Noto Sans Armenian", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans Devanagari", "Noto Sans Syriac Eastern", "Noto Sans Mandaic", "PingFang SC", "Hiragino Sans", "Apple SD Gothic Neo", "Microsoft YaHei UI", "Yu Gothic UI", "Malgun Gothic", "Noto Sans CJK SC", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif;
  --pf-mono: "IBM Plex Mono", "Noto Sans", "Vazirmatn", "Estedad", "Noto Sans Armenian", "Noto Sans Georgian", "Noto Sans Hebrew", "Noto Sans Devanagari", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --pf-r-xs: 4px; --pf-r-sm: 5px; --pf-r: 6px; --pf-r-lg: 6px; --pf-pill: 4px;
  --pf-radius: var(--pf-r); --pf-radius-sm: var(--pf-r-sm);
  --pf-gap: clamp(16px, 2vw, 24px); --pf-max: 1280px; --pf-top: 0px; --pf-top-h: 64px;
  --pf-focus: var(--pf-ink);
  --pf-ease: cubic-bezier(.2, 0, 0, 1);
  /* Nexus Standards colour system (decision D28): the network gradient, and the inner-page hue of the current site
     (defaults to the network's; each service subsite sets its own at the end of this file). */
  --pf-area-a-l: #ff0044; --pf-area-b-l: #ff5a2a; --pf-area-c-l: #ffa100; --pf-area-ink-l: #d6003a;
  --pf-area-a-d: #ff4d6d; --pf-area-b-d: #ff8a4c; --pf-area-c-d: #ffc233; --pf-area-ink-d: #ff6b81;
  --pf-area-grad: linear-gradient(90deg, var(--pf-area-a), var(--pf-area-b) 55%, var(--pf-area-c));
  --pf-nxs-grad: linear-gradient(90deg, var(--pf-nxs-a), var(--pf-nxs-b) 55%, var(--pf-nxs-c));
  --pf-nxs-fig: linear-gradient(90deg, var(--pf-nxs-r), var(--pf-nxs-o));
  color: var(--pf-ink-2); background: var(--pf-canvas); font-family: var(--pf-font); font-size: 16px; line-height: 1.6;
  max-width: var(--pf-max); margin-inline: auto; padding: var(--pf-top) 20px 0; box-sizing: border-box;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility;
}

.pf { --pf-canvas: #ffffff; --pf-surface: #ffffff; --pf-alt: #fafafa; --pf-elevated: #fafafa; --pf-muted-bg: #f4f4f5; --pf-hover: #f3f3f3; --pf-line: rgba(0, 0, 0, .1); --pf-line-strong: rgba(0, 0, 0, .2); --pf-ink: #000000; --pf-ink-2: #262626; --pf-ink-3: #525252; --pf-ink-4: #737373; --pf-primary-bg: #000000; --pf-primary-ink: #ffffff; --pf-primary-hover: #262626; --pf-ok: #1e7e46; --pf-pend: #b45309; --pf-crit: #c62828; --pf-grad: var(--pf-area-grad); --pf-grad-soft: linear-gradient(90deg, var(--pf-area-a), var(--pf-area-c)); --pf-tint-a: var(--pf-area-ink); --pf-tint-b: var(--pf-area-c); --pf-nxs-a: #ff0044; --pf-nxs-b: #ff5a2a; --pf-nxs-c: #ffa100; --pf-nxs-r: #d6003a; --pf-nxs-o: #c2410c; --pf-c1: #d6003a; --pf-c2: #c2410c; --pf-c3: #946200; --pf-c4: #2563eb; --pf-c5: #0f7a5f; --pf-c6: #6b2fc0; --pf-c7: #a21caf; --pf-c8: #0e7490; --pf-seq-1: #ffd27a; --pf-seq-2: #ffa100; --pf-seq-3: #ff7a1a; --pf-seq-4: #ff3d3a; --pf-seq-5: #d6003a; --pf-area-a: var(--pf-area-a-l); --pf-area-b: var(--pf-area-b-l); --pf-area-c: var(--pf-area-c-l); --pf-area-ink: var(--pf-area-ink-l); }
@media (prefers-color-scheme: dark) { html:not(.light-mode):not([data-bx-mode="light"]) .pf:not([data-theme="light"]) { --pf-canvas: #000000; --pf-surface: #000000; --pf-alt: #0a0a0a; --pf-elevated: #111111; --pf-muted-bg: #141414; --pf-hover: rgba(255, 255, 255, .04); --pf-line: rgba(255, 255, 255, .1); --pf-line-strong: rgba(255, 255, 255, .2); --pf-ink: #ffffff; --pf-ink-2: #d4d4d4; --pf-ink-3: #a3a3a3; --pf-ink-4: #858585; --pf-primary-bg: #ffffff; --pf-primary-ink: #000000; --pf-primary-hover: #e5e5e5; --pf-ok: #81c995; --pf-pend: #fdd663; --pf-crit: #f28b82; --pf-grad: var(--pf-area-grad); --pf-grad-soft: linear-gradient(90deg, var(--pf-area-a), var(--pf-area-c)); --pf-tint-a: var(--pf-area-b); --pf-tint-b: var(--pf-area-c); --pf-nxs-a: #ff4d6d; --pf-nxs-b: #ff8a4c; --pf-nxs-c: #ffc233; --pf-nxs-r: #ff6b81; --pf-nxs-o: #ffb347; --pf-c1: #ff6b81; --pf-c2: #ff8a3d; --pf-c3: #ffc233; --pf-c4: #6ea8ff; --pf-c5: #5fd3b0; --pf-c6: #c59bff; --pf-c7: #f0abfc; --pf-c8: #67e8f9; --pf-seq-1: #ffe7a8; --pf-seq-2: #ffc233; --pf-seq-3: #ff9a4c; --pf-seq-4: #ff7066; --pf-seq-5: #ff4d6d; --pf-area-a: var(--pf-area-a-d); --pf-area-b: var(--pf-area-b-d); --pf-area-c: var(--pf-area-c-d); --pf-area-ink: var(--pf-area-ink-d); } }
html.dark-mode .pf:not([data-theme="light"]), html[data-bx-mode="dark"] .pf:not([data-theme="light"]), body.dark-mode .pf:not([data-theme="light"]), body.buddyx-dark-theme .pf:not([data-theme="light"]), html[data-theme="dark"] .pf:not([data-theme="light"]), .pf[data-theme="dark"] { --pf-canvas: #000000; --pf-surface: #000000; --pf-alt: #0a0a0a; --pf-elevated: #111111; --pf-muted-bg: #141414; --pf-hover: rgba(255, 255, 255, .04); --pf-line: rgba(255, 255, 255, .1); --pf-line-strong: rgba(255, 255, 255, .2); --pf-ink: #ffffff; --pf-ink-2: #d4d4d4; --pf-ink-3: #a3a3a3; --pf-ink-4: #858585; --pf-primary-bg: #ffffff; --pf-primary-ink: #000000; --pf-primary-hover: #e5e5e5; --pf-ok: #81c995; --pf-pend: #fdd663; --pf-crit: #f28b82; --pf-grad: var(--pf-area-grad); --pf-grad-soft: linear-gradient(90deg, var(--pf-area-a), var(--pf-area-c)); --pf-tint-a: var(--pf-area-b); --pf-tint-b: var(--pf-area-c); --pf-nxs-a: #ff4d6d; --pf-nxs-b: #ff8a4c; --pf-nxs-c: #ffc233; --pf-nxs-r: #ff6b81; --pf-nxs-o: #ffb347; --pf-c1: #ff6b81; --pf-c2: #ff8a3d; --pf-c3: #ffc233; --pf-c4: #6ea8ff; --pf-c5: #5fd3b0; --pf-c6: #c59bff; --pf-c7: #f0abfc; --pf-c8: #67e8f9; --pf-seq-1: #ffe7a8; --pf-seq-2: #ffc233; --pf-seq-3: #ff9a4c; --pf-seq-4: #ff7066; --pf-seq-5: #ff4d6d; --pf-area-a: var(--pf-area-a-d); --pf-area-b: var(--pf-area-b-d); --pf-area-c: var(--pf-area-c-d); --pf-area-ink: var(--pf-area-ink-d); }
/* Interactive modules: charts with a table toggle, the homepage globe, "Find your country", At a glance, the Academy
   explorer, the timeline scrubber, the calendar strip, story cards, pull quotes and icon rows (scripts/lib/modules.mjs,
   site/assets/modules.js). Tokens only, both themes, logical properties for RTL. Sequential tones step one hue. */
.pf .pf-seq-0 { --seq: var(--pf-tint-a); }
.pf .pf-seq-1 { --seq: color-mix(in srgb, var(--pf-tint-a) 72%, var(--pf-canvas)); }
.pf .pf-seq-2 { --seq: color-mix(in srgb, var(--pf-tint-a) 50%, var(--pf-canvas)); }
.pf .pf-seq-3 { --seq: color-mix(in srgb, var(--pf-tint-a) 32%, var(--pf-canvas)); }
.pf .pf-seq-4 { --seq: color-mix(in srgb, var(--pf-ink) 18%, var(--pf-canvas)); }
.pf .pf-chart, .pf .pf-calstrip, .pf .pf-globe { margin: 24px 0; padding: 20px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-surface); min-width: 0; }
.pf .pf-chart-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 0 24px; }
.pf .pf-chart-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.pf .pf-chart-grid > .pf-chart { margin-block: 12px; }
.pf .pf-chart__head { display: grid; gap: 4px; margin: 0 0 16px; }
.pf .pf-chart__title { color: var(--pf-ink); font-size: 16px; font-weight: 600; line-height: 1.35; }
.pf .pf-chart__cap { color: var(--pf-ink-3); font-size: 13.5px; line-height: 1.5; }
.pf .pf-chart__bars { display: grid; gap: 2px; list-style: none; margin: 0; padding: 0; }
.pf .pf-chart__row { display: grid; grid-template-columns: minmax(0, 11em) minmax(40px, 1fr) auto; align-items: center; gap: 4px 12px; padding: 5px 4px; border-radius: var(--pf-r-xs); font-size: 13.5px; line-height: 1.35; }
.pf .pf-chart__label { min-width: 0; overflow-wrap: anywhere; color: var(--pf-ink-2); }
.pf .pf-chart__label a { color: var(--pf-ink); text-decoration: none; }
.pf .pf-chart__label a:hover { text-decoration: underline; }
.pf .pf-chart__label .pf-flag { margin-inline-end: 6px; }
.pf .pf-chart__val { color: var(--pf-ink); font-family: var(--pf-mono); font-size: 12.5px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pf .pf-chart__track { position: relative; display: block; height: 12px; }
.pf .pf-chart__bar { display: block; height: 100%; inline-size: max(calc(var(--v) * 100%), 3px); border-start-end-radius: 4px; border-end-end-radius: 4px; background: var(--pf-tint-a); }
.pf .pf-chart__range { position: absolute; inset-block: 0; inset-inline-start: calc(var(--a) * 100%); inline-size: max(calc((var(--b) - var(--a)) * 100%), 6px); border-radius: 4px; background: var(--pf-tint-a); }
.pf .pf-chart__stack { display: flex; height: 100%; inline-size: max(calc(var(--v) * 100%), 3px); }
.pf .pf-chart__seg { flex: var(--w) 1 0; min-inline-size: 3px; background: var(--seq); border-inline-end: 2px solid var(--pf-surface); }
.pf .pf-chart__seg:last-child { border-inline-end: 0; border-start-end-radius: 4px; border-end-end-radius: 4px; }
.pf .pf-chart__row.is-hl { background: var(--pf-muted-bg); }
.pf .pf-chart__row.is-hl .pf-chart__label { color: var(--pf-ink); font-weight: 600; }
.pf .pf-chart__row.is-hover { background: var(--pf-hover); }
.pf .pf-chart.is-compare .pf-chart__row:not(.is-on) { display: none; }
.pf .pf-chart__cmp { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 12px; font-size: 13.5px; }
.pf .pf-chart__cmp select, .pf .pf-combo__q, .pf .pf-explorer__search input { min-height: 40px; padding: 6px 10px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); background: var(--pf-canvas); color: var(--pf-ink); font: inherit; font-size: 15px; }
.pf .pf-chart__key { display: flex; flex-wrap: wrap; gap: 4px 16px; list-style: none; margin: 0 0 12px; padding: 0; color: var(--pf-ink-2); font-size: 13px; }
.pf .pf-chart__key li { display: inline-flex; align-items: center; gap: 6px; }
.pf .pf-chart__sw { inline-size: 12px; block-size: 12px; border-radius: 3px; background: var(--seq); }
.pf .pf-chart__cols { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); align-items: end; gap: 4px; list-style: none; margin: 0; padding: 0; }
.pf .pf-chart__col { display: grid; justify-items: center; gap: 4px; min-width: 0; }
.pf .pf-chart__col .pf-chart__label { font-size: 11.5px; color: var(--pf-ink-3); }
.pf .pf-chart__colbar { display: flex; align-items: flex-end; inline-size: 100%; max-inline-size: 36px; block-size: 120px; }
.pf .pf-chart__colbar span { display: block; inline-size: 100%; block-size: max(calc(var(--v) * 100%), 2px); border-start-start-radius: 4px; border-start-end-radius: 4px; background: var(--pf-tint-a); }
.pf .pf-chart__note { margin: 12px 0 0; color: var(--pf-ink-3); font-size: 13px; }
.pf .pf-chart__src { margin: 14px 0 0; color: var(--pf-ink-3); font-size: 12.5px; line-height: 1.5; }
.pf .pf-chart__src-h { color: var(--pf-ink-2); font-weight: 600; margin-inline-end: 4px; }
.pf .pf-chart__table { margin: 12px 0 0; border-block-start: 1px solid var(--pf-line); padding-block-start: 10px; }
.pf .pf-chart__table > summary { min-height: 32px; display: inline-flex; align-items: center; color: var(--pf-ink); font-size: 13.5px; font-weight: 500; cursor: pointer; }
.pf .pf-chart__table > summary:focus-visible, .pf .pf-story summary:focus-visible, .pf .pf-explorer summary:focus-visible, .pf .pf-combo__all > summary:focus-visible { outline: 2px solid var(--pf-focus); outline-offset: 2px; }
.pf .pf-chart__table .pf-table-wrap { margin-block-start: 8px; }
/* The globe */
.pf .pf-globe { margin-block: 8px 24px; padding: 0; overflow: hidden; }
.pf .pf-globe__head { display: grid; gap: 4px; padding: 18px 20px 0; }
.pf .pf-globe__body { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
.pf .pf-globe__stage { display: grid; grid-template-rows: auto auto; min-width: 0; padding: 12px 16px 10px; }
.pf .pf-globe__frame { position: relative; display: grid; place-items: center; block-size: clamp(300px, 46vw, 440px); }
.pf .pf-globe__poster { inline-size: auto; block-size: 92%; max-inline-size: 100%; }
.pf .pf-globe__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding-block-start: 8px; }
.pf .pf-globe__sea { fill: var(--pf-muted-bg); stroke: var(--pf-line); }
.pf .pf-globe__land { fill: color-mix(in srgb, var(--pf-ink) 14%, var(--pf-canvas)); }
.pf .pf-globe__lo { fill: color-mix(in srgb, var(--pf-tint-a) 55%, transparent); stroke: var(--pf-tint-a); stroke-width: 1; }
.pf .pf-globe__hi { fill: none; stroke: var(--pf-tint-a); stroke-width: 1.2; }
.pf .pf-globe__none { fill: none; stroke: var(--pf-ink-3); stroke-width: 1; }
.pf .pf-globe__map { position: absolute; inset: 0; }
.pf .pf-globe__map .maplibregl-canvas:focus-visible { outline: 2px solid var(--pf-focus); outline-offset: -2px; }
.pf .pf-globe__key { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 0; color: var(--pf-ink-3); font-size: 12px; pointer-events: none; }
.pf .pf-globe__k { display: inline-block; inline-size: 10px; block-size: 10px; border-radius: 50%; }
.pf .pf-globe__k--fig { background: color-mix(in srgb, var(--pf-tint-a) 55%, transparent); border: 1px solid var(--pf-tint-a); }
.pf .pf-globe__k--none { border: 1px solid var(--pf-ink-3); margin-inline-start: 6px; }
.pf .pf-globe__spin { min-height: 32px; padding: 4px 10px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); background: var(--pf-canvas); color: var(--pf-ink); font: inherit; font-size: 12.5px; cursor: pointer; }
.pf .pf-globe__spin[aria-pressed="true"] { background: var(--pf-muted-bg); }
.pf .pf-globe__side { display: grid; align-content: start; gap: 16px; padding: 20px; border-inline-start: 1px solid var(--pf-line); }
.pf .pf-globe__views { display: grid; gap: 6px; margin: 0; padding: 0; border: 0; font-size: 14px; }
.pf .pf-globe__views legend { margin-block-end: 6px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.pf .pf-globe__views label { display: flex; gap: 8px; align-items: baseline; min-height: 28px; cursor: pointer; }
.pf .pf-globe__vt { margin: 0 0 4px; color: var(--pf-ink); font-size: 14px; font-weight: 600; }
.pf .pf-globe__cap { margin: 0; color: var(--pf-ink-3); font-size: 13px; line-height: 1.5; }
.pf .pf-globe__tables { margin: 0; padding: 10px 20px 16px; }
.pf .pf-globe__tables .pf-globe__view { margin-block-start: 12px; }
.pf .pf-globe__nofig { color: var(--pf-ink-3); }
.pf .pf-globe__pop .maplibregl-popup-content { padding: 12px 28px 12px 14px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); background: var(--pf-canvas); color: var(--pf-ink-2); font: 13px/1.45 var(--pf-font); box-shadow: none; }
.pf .pf-globe__pop .maplibregl-popup-tip { display: none; }
.pf .pf-globe__pop .maplibregl-popup-close-button { min-width: 24px; min-height: 24px; color: var(--pf-ink); }
.pf .pf-globe__pop ul { display: grid; gap: 8px; list-style: none; margin: 8px 0 0; padding: 0; }
.pf .pf-globe__pop li { display: grid; }
.pf .pf-globe__pop strong { color: var(--pf-ink); }
.pf .pf-globe__pt { margin: 0; font-weight: 600; }
.pf .pf-globe__ps { color: var(--pf-ink-3); font-size: 12px; }
@media (max-width: 760px) { .pf .pf-globe__body { grid-template-columns: 1fr; } .pf .pf-globe__side { border-inline-start: 0; border-block-start: 1px solid var(--pf-line); } .pf .pf-globe__frame { block-size: min(86vw, 360px); } }
/* Find your country */
.pf .pf-combo { display: grid; gap: 6px; position: relative; }
.pf .pf-combo__label { color: var(--pf-ink); font-size: 14px; font-weight: 600; }
.pf .pf-combo__box { position: relative; }
.pf .pf-combo__q { inline-size: 100%; box-sizing: border-box; }
.pf .pf-combo__lb { position: absolute; z-index: 5; inset-inline: 0; inset-block-start: calc(100% + 4px); max-block-size: 260px; overflow: auto; list-style: none; margin: 0; padding: 4px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); background: var(--pf-canvas); }
.pf .pf-combo__lb [role="option"] { padding: 8px 10px; border-radius: var(--pf-r-xs); color: var(--pf-ink); font-size: 14px; cursor: pointer; }
.pf .pf-combo__lb [role="option"][aria-selected="true"], .pf .pf-combo__lb [role="option"]:hover { background: var(--pf-muted-bg); outline: 1px solid var(--pf-ink-3); }
.pf .pf-combo__none { padding: 8px 10px; color: var(--pf-ink-3); font-size: 14px; }
.pf .pf-combo__all > summary { color: var(--pf-ink-3); font-size: 13px; cursor: pointer; }
.pf .pf-combo__list { columns: 2 10em; margin: 8px 0 0; padding: 0; list-style: none; font-size: 13.5px; }
.pf .pf-combo__list li { padding: 2px 0; break-inside: avoid; }
/* At a glance */
.pf .pf-glance { margin: 8px 0 24px; padding: 18px 20px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-alt); }
.pf .pf-glance__h, .pf .pf-glance__sub { margin: 0 0 12px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.pf[dir="rtl"] .pf-glance__h, .pf[dir="rtl"] .pf-glance__sub { font-family: var(--pf-font); font-size: 13px; letter-spacing: 0; text-transform: none; }
.pf .pf-glance__items { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 8px; list-style: none; margin: 0; padding: 0; }
.pf .pf-glance__in { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; gap: 0 10px; align-items: center; padding: 10px 12px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-surface); color: inherit; text-decoration: none; }
.pf a.pf-glance__in:hover { border-color: var(--pf-ink-3); }
.pf .pf-glance__i { grid-row: span 2; color: var(--pf-tint-a); }
.pf .pf-glance__i .pf-icon { inline-size: 22px; block-size: 22px; }
.pf .pf-glance__v { color: var(--pf-ink); font-size: 22px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.2; }
.pf .pf-glance__v--text { font-size: 15px; }
.pf .pf-glance__l { color: var(--pf-ink-3); font-size: 12.5px; line-height: 1.35; }
.pf .pf-glance__extra { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 0 24px; margin-block-start: 12px; }
.pf .pf-glance__extra .pf-chart { margin-block: 8px; }
.pf .pf-glance__next { padding-block-start: 14px; }
.pf .pf-glance__days { list-style: none; margin: 0; padding: 0; }
/* Icon row and pull quote */
.pf .pf-iconrow { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 4px 0 0; padding: 0; }
.pf .pf-iconrow a { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 6px 12px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-surface); color: var(--pf-ink); font-size: 13.5px; text-decoration: none; }
.pf .pf-iconrow a:hover { border-color: var(--pf-ink-3); }
.pf .pf-iconrow .pf-icon { inline-size: 16px; block-size: 16px; color: var(--pf-tint-a); }
.pf .pf-pull { margin: 8px 0 24px; padding-inline-start: 20px; border-inline-start: 3px solid var(--pf-tint-a); }
.pf .pf-pull blockquote { margin: 0; }
.pf .pf-pull p { margin: 0; max-width: 46ch; color: var(--pf-ink); font-size: clamp(19px, 2.2vw, 24px); font-weight: 500; line-height: 1.4; letter-spacing: -.01em; }
.pf .pf-pull figcaption { margin-block-start: 8px; color: var(--pf-ink-3); font-size: 13px; }
/* Academy explorer */
.pf .pf-explorer { margin: 24px 0; }
.pf .pf-explorer__bar { display: grid; gap: 12px; margin-block-end: 12px; }
.pf .pf-explorer__search { display: grid; gap: 6px; margin: 0; max-inline-size: 420px; font-size: 14px; font-weight: 600; color: var(--pf-ink); }
.pf .pf-explorer__facs { display: flex; flex-wrap: wrap; gap: 6px; }
.pf .pf-explorer__facs button { min-height: 32px; padding: 4px 10px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-surface); color: var(--pf-ink-2); font: inherit; font-size: 13px; cursor: pointer; }
.pf .pf-explorer__facs button[aria-pressed="true"] { border-color: var(--pf-ink); background: var(--pf-ink); color: var(--pf-canvas); }
.pf .pf-explorer__count { margin: 0; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 12px; }
.pf .pf-explorer__tree { list-style: none; margin: 0; padding: 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-explorer__fac { border-block-end: 1px solid var(--pf-line); }
.pf .pf-explorer__fac summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; padding: 14px 4px; cursor: pointer; }
.pf .pf-explorer__ft { color: var(--pf-ink); font-size: 16px; font-weight: 600; }
.pf .pf-explorer__fn { color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 12px; }
.pf .pf-explorer__fs { margin: 0 4px 12px; font-size: 14px; }
.pf .pf-explorer__fs a { display: inline-block; padding-block: 4px; color: var(--pf-ink-2); line-height: 1.6; }
.pf .pf-explorer__depts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 4px 24px; list-style: none; margin: 0 0 16px; padding: 0 4px; }
.pf .pf-explorer__dt { margin: 8px 0 4px; font-size: 13px; font-weight: 600; }
.pf .pf-explorer__dt a { color: var(--pf-ink-3); text-decoration: none; }
.pf .pf-explorer__discs { list-style: none; margin: 0; padding: 0; }
.pf .pf-explorer__disc { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 8px; padding: 6px 0; border-block-start: 1px solid var(--pf-line); font-size: 14px; }
.pf .pf-explorer__disc a { color: var(--pf-ink); text-decoration: none; }
.pf .pf-explorer__disc a:hover { text-decoration: underline; }
.pf .pf-explorer__meta { display: inline-flex; gap: 8px; color: var(--pf-ink-3); font-size: 12px; }
.pf .pf-explorer__st--open { color: var(--pf-ok); }
/* Timeline scrubber */
.pf .pf-scrub { margin: 16px 0 24px; }
.pf .pf-scrub__eras { position: relative; block-size: 8px; margin-block-end: 12px; border-radius: 4px; background: var(--pf-muted-bg); }
.pf .pf-scrub__era { position: absolute; inset-block: 0; inset-inline-start: calc(var(--a) * 100%); inline-size: calc(var(--w) * 100%); background: var(--seq); border-inline-end: 2px solid var(--pf-canvas); opacity: .55; }
.pf .pf-scrub__era.is-on { opacity: 1; }
.pf .pf-scrub.is-live .pf-scrub__eras::after { content: ""; position: absolute; inset-block: -4px; inset-inline-start: calc(var(--at, 1) * 100%); inline-size: 2px; background: var(--pf-ink); }
.pf .pf-scrub__ctl { display: flex; align-items: center; gap: 12px; margin-block-end: 16px; }
.pf .pf-scrub__ctl input { flex: 1 1 auto; accent-color: var(--pf-ink); min-height: 32px; }
.pf .pf-scrub__list { list-style: none; margin: 0; padding: 0; }
.pf .pf-scrub__item { display: grid; grid-template-columns: 7.5em minmax(0, 1fr); gap: 0 16px; padding: 12px 0; border-block-end: 1px solid var(--pf-line); }
.pf .pf-scrub.is-live .pf-scrub__item { display: none; }
.pf .pf-scrub.is-live .pf-scrub__item.is-on { display: grid; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); padding: 16px; background: var(--pf-alt); }
.pf .pf-scrub__year { margin: 0; color: var(--pf-ink); font-family: var(--pf-mono); font-size: 14px; font-variant-numeric: tabular-nums; }
.pf .pf-scrub__title { margin: 0 0 4px; color: var(--pf-ink); font-weight: 600; }
.pf .pf-scrub__text { margin: 0 0 4px; font-size: 14.5px; }
.pf .pf-scrub__eraname { margin: 0; color: var(--pf-ink-3); font-size: 12.5px; }
/* Calendar strip */
.pf .pf-calstrip__months { display: grid; grid-template-columns: repeat(12, minmax(84px, 1fr)); gap: 4px; overflow-x: auto; list-style: none; margin: 0; padding: 0 0 6px; }
.pf .pf-calstrip__m { display: grid; align-content: start; gap: 6px; min-width: 0; padding: 8px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); }
.pf .pf-calstrip__m.is-empty { background: var(--pf-alt); }
.pf .pf-calstrip__m.is-now { border-color: var(--pf-ink); }
.pf .pf-calstrip__mn { margin: 0; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.pf .pf-calstrip__m.is-now .pf-calstrip__mn { color: var(--pf-ink); font-weight: 600; }
.pf .pf-calstrip__bar { display: block; block-size: 6px; border-radius: 3px; background: var(--pf-muted-bg); }
.pf .pf-calstrip__bar span { display: block; block-size: 100%; inline-size: calc(var(--v) * 100%); border-radius: 3px; background: var(--pf-tint-a); }
.pf .pf-calstrip__days { list-style: none; margin: 0; padding: 0; font-size: 12.5px; line-height: 1.35; }
.pf .pf-calstrip__days li + li { margin-block-start: 4px; }
.pf .pf-calstrip__days a { color: var(--pf-ink); }
/* Story cards */
.pf .pf-stories { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 8px; list-style: none; margin: 16px 0 0; padding: 0; }
.pf .pf-story { border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-surface); }
.pf .pf-story summary { display: grid; gap: 4px; padding: 14px 16px; cursor: pointer; }
.pf .pf-story__title { color: var(--pf-ink); font-weight: 600; }
.pf .pf-story__lead { color: var(--pf-ink-3); font-size: 13.5px; line-height: 1.45; }
.pf .pf-story__body { padding: 0 16px 14px; font-size: 14px; }
.pf .pf-story__list { list-style: none; margin: 0; padding: 0; }
.pf .pf-story__list li { padding: 6px 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-story__name { color: var(--pf-ink); font-weight: 500; }
.pf .pf-story__note { color: var(--pf-ink-3); }
@media (forced-colors: active) { .pf .pf-chart__bar, .pf .pf-chart__seg, .pf .pf-chart__range, .pf .pf-chart__colbar span, .pf .pf-calstrip__bar span, .pf .pf-chart__sw { forced-color-adjust: none; background: CanvasText; } }
@media (prefers-reduced-motion: reduce) { .pf .pf-mod * { transition: none !important; animation: none !important; } }

/* Academy structure: the faculties index, departments, fields, the A to Z of disciplines, the "Learn in the Academy"
   block on service pages and the honesty line (scripts/lib/academy.mjs). Tokens only; logical properties for RTL. */
.pf .pf-acad-facs { list-style: none; margin: 0; padding: 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-acad-fac { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 0 16px; padding: 22px 0; border-block-end: 1px solid var(--pf-line); }
.pf .pf-acad-fac__n { margin: 4px 0 0; color: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 11px; letter-spacing: .1em; }
.pf .pf-acad-fac__title { margin: 0 0 6px; color: var(--pf-ink); font-size: 20px; font-weight: 600; letter-spacing: -.01em; line-height: 1.3; }
.pf .pf-acad-fac__title a { color: inherit; text-decoration: none; }
.pf .pf-acad-fac__title a:hover { text-decoration: underline; }
.pf .pf-acad-fac__text { margin: 0 0 8px; max-width: 72ch; color: var(--pf-ink-2); font-size: 15px; }
.pf .pf-acad-fac__counts { margin: 0 0 12px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 12px; }
.pf .pf-acad-depts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 0 24px; list-style: none; margin: 0; padding: 0; }
.pf .pf-acad-depts li { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 10px; padding: 8px 0; border-block-start: 1px solid var(--pf-line); font-size: 14px; line-height: 1.45; }
.pf .pf-acad-depts a { color: var(--pf-ink); font-weight: 500; text-decoration: none; }
.pf .pf-acad-depts a:hover { text-decoration: underline; }
.pf .pf-acad-depts__n, .pf .pf-acad-index__where, .pf .pf-acad-rel__meta { color: var(--pf-ink-3); font-size: 12.5px; }
.pf .pf-acad-fields { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.pf .pf-acad-fields li { padding: 6px 10px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-alt); color: var(--pf-ink-2); font-size: 14px; }
.pf .pf-acad-az ol { display: flex; flex-wrap: wrap; gap: 4px; list-style: none; margin: 0 0 8px; padding: 0; }
.pf .pf-acad-az a { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 36px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); color: var(--pf-ink); font-family: var(--pf-mono); font-size: 13px; text-decoration: none; }
.pf .pf-acad-az a:hover { border-color: var(--pf-ink-3); }
.pf .pf-acad-index, .pf .pf-acad-rel__list { list-style: none; margin: 0; padding: 0; }
.pf .pf-acad-index li, .pf .pf-acad-rel__list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; padding: 10px 0; border-block-end: 1px solid var(--pf-line); font-size: 14.5px; line-height: 1.45; }
.pf .pf-acad-index a, .pf .pf-acad-rel__list a { flex: 1 1 auto; color: var(--pf-ink); font-weight: 500; text-decoration: none; }
.pf .pf-acad-index a:hover, .pf .pf-acad-rel__list a:hover { text-decoration: underline; }
.pf .pf-acad-rel { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 8px 32px; }
.pf .pf-acad-rel__col { min-width: 0; }
.pf .pf-acad-rel .pf-h3 { margin: 0 0 6px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.pf[dir="rtl"] .pf-acad-rel .pf-h3, .pf[dir="rtl"] .pf-acad-fac__counts, .pf[dir="rtl"] .pf-acad-fac__n { font-family: var(--pf-font); letter-spacing: 0; text-transform: none; }
.pf .pf-acad-rel__meta { flex-basis: 100%; order: 2; }
.pf .pf-acad-honest { margin: 16px 0 0; padding-inline-start: 12px; border-inline-start: 2px solid var(--pf-line-strong); color: var(--pf-ink-3); font-size: 13.5px; line-height: 1.5; }
.pf .pf-acad-counts { display: inline-flex; flex-wrap: wrap; gap: 0 8px; }
.pf .pf-acad-count + .pf-acad-count::before { content: "·"; margin-inline-end: 8px; color: var(--pf-ink-4); }
.pf .pf-acad-count__n { font-variant-numeric: tabular-nums; }
.pf .pf-acad-anchor { display: block; scroll-margin-block-start: calc(var(--pf-top-h) + 16px); }

/* Homepage bands: the safety promise under the hero, Now, journeys, count cells, the Academy, language chips,
   the click-to-load map, the grouped main menu and site search. Tokens only; logical properties for RTL.
   Overrides of later base rules carry one more class so they win wherever they sit in the file. */
.pf .pf-promise { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 8px; padding: 12px 16px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-alt); color: var(--pf-ink-2); font-size: 14px; }
.pf .pf-promise .pf-icon { color: var(--pf-ok); }
.pf .pf-promise a { font-weight: 500; }
.pf .pf-now { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); border-block-start: 1px solid var(--pf-line); border-inline-start: 1px solid var(--pf-line); }
.pf .pf-now__col { min-width: 0; padding: 20px 20px 22px; border-inline-end: 1px solid var(--pf-line); border-block-end: 1px solid var(--pf-line); }
.pf .pf-now .pf-h3 { margin: 0 0 14px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.pf[dir="rtl"] .pf-now .pf-h3 { font-family: var(--pf-font); font-size: 13px; letter-spacing: 0; text-transform: none; }
.pf .pf-now__days, .pf .pf-now__list, .pf .pf-now__areas, .pf .pf-academy__facs { list-style: none; margin: 0; padding: 0; }
.pf .pf-now__days li, .pf .pf-now__list li, .pf .pf-academy__facs li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; padding: 10px 0; border-block-end: 1px solid var(--pf-line); font-size: 14.5px; line-height: 1.45; }
.pf .pf-now__days li:last-child, .pf .pf-now__list li:last-child { border-block-end: 0; }
.pf .pf-now__days a, .pf .pf-now__list a { flex: 1 1 auto; color: var(--pf-ink); font-weight: 500; text-decoration: none; }
.pf .pf-now__days a:hover, .pf .pf-now__list a:hover { text-decoration: underline; }
.pf .pf-now__when, .pf .pf-now__cal { color: var(--pf-ink-3); font-size: 12.5px; }
.pf .pf-now__days .pf-now__when { flex-basis: 100%; color: var(--pf-ink-2); font-family: var(--pf-mono); font-size: 12px; }
.pf .pf-now__cal { flex-basis: 100%; font-size: 12px; }
.pf .pf-now__days .pf-status { order: -1; }
.pf .pf-now__id { flex: none; min-width: 34px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 12px; }
.pf .pf-now__days li[hidden] { display: none; }
.pf .pf-now__q { flex: 1 1 60%; color: var(--pf-ink); }
.pf .pf-now__count { margin: 12px 0 0; color: var(--pf-ink-3); font-size: 13px; }
.pf .pf-now__areas { margin-block-start: 12px; }
.pf .pf-now__areas li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 8px; padding: 7px 0; border-block-start: 1px solid var(--pf-line); font-size: 13.5px; }
.pf .pf-now__areas li > span { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.pf .pf-journeys { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); list-style: none; margin: 0; padding: 0; border-block-start: 1px solid var(--pf-line); border-inline-start: 1px solid var(--pf-line); }
.pf .pf-journey { display: flex; flex-direction: column; min-width: 0; padding: 20px; border-inline-end: 1px solid var(--pf-line); border-block-end: 1px solid var(--pf-line); }
.pf .pf-journey__n { margin: 0 0 18px; color: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 11px; }
.pf .pf-journey__title { margin: 0 0 6px; color: var(--pf-ink); font-size: 17px; font-weight: 600; letter-spacing: -.01em; }
.pf .pf-journey__text { margin: 0 0 16px; color: var(--pf-ink-3); font-size: 14px; line-height: 1.5; }
.pf .pf-journey__steps { margin: auto 0 0; padding: 0; list-style: none; counter-reset: pf-step; }
.pf .pf-journey__steps li { counter-increment: pf-step; display: flex; gap: 10px; padding: 8px 0; border-block-start: 1px solid var(--pf-line); font-size: 14px; line-height: 1.4; }
.pf .pf-journey__steps li::before { content: counter(pf-step); flex: none; display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--pf-muted-bg); color: var(--pf-ink); font-family: var(--pf-mono); font-size: 11px; }
.pf .pf-journey__steps a { color: var(--pf-ink); text-decoration: none; }
.pf .pf-journey__steps a:hover { text-decoration: underline; }
.pf .pf-hstats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 124px), 1fr)); list-style: none; margin: 0 0 20px; padding: 0; border-block-start: 1px solid var(--pf-line); border-inline-start: 1px solid var(--pf-line); }
.pf .pf-hstat { position: relative; min-width: 0; border-inline-end: 1px solid var(--pf-line); border-block-end: 1px solid var(--pf-line); }
.pf .pf-hstat__in { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 18px 18px 20px; color: inherit; text-decoration: none; }
.pf a.pf-hstat__in:hover { background: var(--pf-hover); }
.pf a.pf-hstat__in:hover .pf-hstat__label { color: var(--pf-ink); text-decoration: underline; }
.pf .pf-hstat::before { content: ""; position: absolute; inset-block-start: -1px; inset-inline-start: 0; width: 28px; height: 2px; background: var(--pf-grad); }
.pf .pf-hstat__value { color: var(--pf-ink); font-family: var(--pf-head, var(--pf-font)); font-size: clamp(24px, 2.4vw, 32px); font-weight: 600; letter-spacing: -.02em; line-height: 1.1; unicode-bidi: plaintext; }
.pf .pf-hstat__value--text { font-size: clamp(18px, 1.6vw, 21px); line-height: 1.5; }
.pf .pf-hstat__label { color: var(--pf-ink-2); font-size: 13.5px; line-height: 1.35; }
.pf .pf-hstat__note { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--pf-ink-3); font-size: 12.5px; }
.pf .pf-academy { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.pf .pf-academy__main .pf-stack { margin-block-end: 16px; }
.pf .pf-academy__facs { margin-block-start: 8px; }
.pf .pf-academy__facs a { flex: 1 1 auto; color: var(--pf-ink); font-weight: 500; }
.pf .pf-featured { position: relative; padding: 22px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-alt); overflow: hidden; }
.pf .pf-featured::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--pf-grad); }
.pf .pf-featured .pf-eyebrow { margin-block-end: 14px; }
.pf .pf-featured__title { margin: 0 0 10px; font-size: 20px; font-weight: 600; letter-spacing: -.015em; line-height: 1.25; }
.pf .pf-featured__title a { color: var(--pf-ink); text-decoration: none; }
.pf .pf-featured__title a:hover { text-decoration: underline; }
.pf .pf-featured p { font-size: 14.5px; }
.pf .pf-featured__meta { display: flex; flex-wrap: wrap; gap: 6px; }
.pf .pf-featured__meta .pf-status { unicode-bidi: isolate; }
.pf .pf-featured__langs { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0 0; padding-block-start: 14px; border-block-start: 1px solid var(--pf-line); }
.pf .pf-tag { display: inline-flex; padding: 2px 8px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-xs); background: var(--pf-canvas); color: var(--pf-ink-2); font-size: 12.5px; }
.pf .pf-langchips { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 8px 0 0; padding: 0; }
.pf .pf-langchips a { display: inline-flex; align-items: baseline; gap: 8px; padding: 6px 10px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); color: var(--pf-ink-2); font-size: 13px; text-decoration: none; transition: border-color .12s var(--pf-ease); }
.pf .pf-langchips a:hover { border-color: var(--pf-ink-3); color: var(--pf-ink); }
.pf .pf-langchips__native { color: var(--pf-ink); font-size: 15px; font-weight: 500; }
.pf .pf-live__poster { display: grid; place-items: center; height: 100%; padding: 16px; }
.pf .pf-live__poster .pf-map { max-height: 100%; width: auto; max-width: 100%; }
.pf .pf-live__map:has(.pf-live__poster) { position: relative; }
.pf .pf-live__map:has(.pf-live__poster) .pf-live__msg { position: absolute; inset: auto 0 0; padding: 10px 16px; background: color-mix(in srgb, var(--pf-canvas) 86%, transparent); }
.pf .pf-live__gate { position: absolute; inset-block-end: 16px; inset-inline: 16px; z-index: 3; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 12px 14px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); background: var(--pf-canvas); }
.pf .pf-live__gate[hidden], .pf .pf-live__tools[hidden] { display: none; }
.pf .pf-live__gate-note { flex: 1 1 260px; margin: 0; color: var(--pf-ink-2); font-size: 13px; line-height: 1.45; }
.pf .pf-live__gate .pf-btn { min-height: 38px; }
/* Grouped main menu: groups open a panel under the bar (a mega panel for the areas). */
.pf .pf-sitenav.pf-sitenav--groups { overflow: visible; -webkit-mask: none; mask: none; }
.pf .pf-sitenav--groups > ul { padding-inline-end: 0; }
.pf .pf-menu { display: flex; }
.pf .pf-menu summary { position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 0 10px; color: var(--pf-ink-3); font-size: 13.5px; font-weight: 500; white-space: nowrap; cursor: pointer; list-style: none; }
.pf .pf-menu summary::-webkit-details-marker { display: none; }
.pf .pf-menu summary::after { content: ""; width: 6px; height: 6px; margin-block-start: -3px; border-inline-end: 1.5px solid currentColor; border-block-end: 1.5px solid currentColor; transform: rotate(45deg); transition: transform .12s var(--pf-ease); }
.pf .pf-menu[open] summary::after { margin-block-start: 3px; transform: rotate(225deg); }
.pf .pf-menu summary:hover, .pf .pf-menu[open] summary, .pf .pf-menu summary[data-current] { color: var(--pf-ink); }
.pf .pf-menu summary[data-current]::before { content: ""; position: absolute; inset-inline: 10px; bottom: -1px; height: 2px; background: var(--pf-grad); }
.pf .pf-sitenav .pf-menu__panel { position: absolute; inset-inline: 0; top: 100%; z-index: 30; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 2px 16px; height: auto; margin: 0; padding: 16px 20px 20px; border-block: 1px solid var(--pf-line-strong); background: var(--pf-canvas); list-style: none; }
.pf .pf-sitenav .pf-menu__panel--wide { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.pf .pf-sitenav .pf-menu__panel li { display: flex; flex-direction: column; padding: 6px 0; }
.pf .pf-sitenav .pf-menu__panel a { padding: 4px 0; color: var(--pf-ink); font-size: 14.5px; white-space: normal; }
.pf .pf-sitenav .pf-menu__panel a[aria-current="page"]::after { display: none; }
.pf .pf-sitenav .pf-menu__panel a:hover { text-decoration: underline; }
.pf .pf-menu__text { color: var(--pf-ink-3); font-size: 12.5px; line-height: 1.4; }
.pf .pf-searchlink { display: inline-grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); color: var(--pf-ink-2); }
.pf .pf-searchlink:hover { border-color: var(--pf-ink-3); color: var(--pf-ink); }
.pf .pf-search { display: flex; gap: 8px; max-width: 720px; margin: 0 0 16px; }
.pf .pf-search__q { flex: 1 1 auto; min-width: 0; min-height: 44px; padding: 0 14px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); background: var(--pf-canvas); color: var(--pf-ink); font: inherit; }
.pf .pf-search__status { color: var(--pf-ink-3); font-size: 13px; }
.pf .pf-search__out { list-style: none; margin: 0; padding: 0; max-width: 760px; }
.pf .pf-search__hit { padding: 14px 0; border-block-end: 1px solid var(--pf-line); }
.pf .pf-search__hit a { color: var(--pf-ink); font-weight: 600; }
.pf .pf-search__hit p { margin: 4px 0 0; color: var(--pf-ink-2); font-size: 14px; }
.pf .pf-search__hit mark { background: var(--pf-muted-bg); color: var(--pf-ink); }
.pf .pf-search__nojs[hidden] { display: none; }
@media (max-width: 900px) { .pf .pf-academy { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 720px) {
  .pf .pf-sitenav.pf-sitenav--groups > ul { flex-wrap: wrap; row-gap: 0; }
  .pf .pf-sitenav.pf-sitenav--groups a, .pf .pf-menu summary { min-height: 40px; padding-inline: 8px; }
  .pf .pf-sitenav .pf-menu__panel { max-height: 70vh; overflow: auto; padding-inline: 16px; }
  .pf .pf-live__gate { inset-inline: 10px; inset-block-end: 10px; }
}
.pf *, .pf *::before, .pf *::after { box-sizing: border-box; }
.pf p, .pf ul, .pf ol, .pf dl, .pf figure { margin: 0 0 1em; }
.pf a { color: var(--pf-ink); text-decoration-color: var(--pf-line-strong); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: text-decoration-color .12s var(--pf-ease); }
.pf a:hover { color: var(--pf-ink); text-decoration-color: currentColor; }
.pf :focus-visible { outline: 2px solid var(--pf-focus); outline-offset: 2px; border-radius: var(--pf-r-xs); }
.pf ::selection { background: var(--pf-ink); color: var(--pf-canvas); }
/* Arabic script: Vazirmatn (Vazir) for text, Estedad (Yekan manner) for headings. */
.pf[dir="rtl"] { --pf-font: "Vazirmatn", "Estedad", "IBM Plex Sans", "Noto Sans Hebrew", "Noto Sans Syriac Eastern", "Noto Sans Mandaic", system-ui, sans-serif; --pf-head: "Estedad", "Vazirmatn", "IBM Plex Sans", "Noto Sans Hebrew", "Noto Sans Syriac Eastern", "Noto Sans Mandaic", system-ui, sans-serif; line-height: 1.85; }
/* Kurdish in the Arabic-based script: Estedad throughout, on Kurdish pages and on Kurdish text in any page;
   it carries every Kurdish letter (ڕ ڵ ێ ۆ ە ڤ ڎ ڒ ݔ). */
.pf:is([lang="ckb"], [lang="sdh"], [lang="hac"], [lang="lki"]), .pf :is([lang="ckb"], [lang="sdh"], [lang="hac"], [lang="lki"], [lang|="ku-Arab"], [lang|="kmr-Arab"]) { --pf-font: "Estedad", "Vazirmatn", "IBM Plex Sans", system-ui, sans-serif; --pf-head: var(--pf-font); --pf-mono: "Estedad", "IBM Plex Mono", ui-monospace, monospace; font-family: var(--pf-font); }
.pf[dir="rtl"] a { text-underline-position: under; }
/* One modern face per script. Script fonts first on their own pages; Plex keeps Latin digits and names. */
.pf[lang="he"] { --pf-font: "Noto Sans Hebrew", "IBM Plex Sans", system-ui, sans-serif; }
.pf[lang="hy"] { --pf-font: "Noto Sans Armenian", "IBM Plex Sans", system-ui, sans-serif; }
.pf[lang="ka"] { --pf-font: "Noto Sans Georgian", "IBM Plex Sans", system-ui, sans-serif; }
.pf[lang="hi"] { --pf-font: "Noto Sans Devanagari", "IBM Plex Sans", system-ui, sans-serif; line-height: 1.75; }
.pf[lang|="zh"] { --pf-font: "IBM Plex Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif; line-height: 1.75; }
.pf[lang="ja"] { --pf-font: "IBM Plex Sans", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Meiryo", "Noto Sans CJK JP", sans-serif; line-height: 1.75; }
.pf[lang="ko"] { --pf-font: "IBM Plex Sans", "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans CJK KR", sans-serif; line-height: 1.7; word-break: keep-all; }
.pf:is([lang|="zh"], [lang="ja"], [lang="ko"], [lang="hi"]) :is(.pf-eyebrow, .pf-chip, .pf-status, .pf-signal dt, .pf-table thead th) { letter-spacing: 0; text-transform: none; }
/* Devanagari and CJK headings keep their natural spacing: negative tracking makes conjuncts and ideographs touch. */
.pf:is([lang|="zh"], [lang="ja"], [lang="ko"], [lang="hi"]) :is(h1, h2, h3, .pf-h1, .pf-h2, .pf-lede) { letter-spacing: 0; }
.pf[lang="hi"] :is(h1, .pf-h1) { line-height: 1.3; }
.pf bdi, .pf .pf-num, .pf .pf-figure__value, .pf .pf-signal dd, .pf .pf-legend, .pf .pf-tile__value { unicode-bidi: plaintext; }
.pf .pf-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pf .pf-icon { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.pf .pf-netfoot { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(160px, 1fr) minmax(0, 3.2fr); gap: 32px 40px; margin-block-start: 64px; padding: 40px 0 48px; border-block-start: 1px solid var(--pf-line); font-size: 13px; }
.pf .pf-netfoot__h { margin: 0 0 14px; color: var(--pf-ink-4); }
.pf .pf-netfoot ul { list-style: none; margin: 0; padding: 0; }
.pf .pf-netfoot li { margin-block-end: 8px; }
.pf .pf-netfoot a { color: var(--pf-ink-3); text-decoration: none; }
.pf .pf-netfoot a:hover { color: var(--pf-ink); text-decoration: underline; }
.pf .pf-netfoot__regions { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 14px 28px; margin: 0; }
.pf .pf-netfoot__regions dt { margin: 0 0 4px; color: var(--pf-ink-2); font-weight: 500; }
.pf .pf-netfoot__regions dd { margin: 0; line-height: 1.75; }
.pf .pf-netfoot__regions dd a { display: inline-block; margin-inline-end: 10px; white-space: nowrap; }

/* Theme guard: WordPress themes (BuddyX Pro, Elementor kits) style headings with selectors such as
   ".elementor-kit-N h2". Inside .pf, headings take the platform's type; component rules are one class
   stronger, so they still win. */
.pf :is(h1, h2, h3, h4, h5, h6) { font-family: var(--pf-head, var(--pf-font)); letter-spacing: inherit; line-height: inherit; text-transform: none; }

/* Account actions: pages carry a guest and a member version; the member version shows only when the
   Site Kit marks a signed-in visitor (body.pf-auth-member). */
body:not(.pf-auth-member) .pf [data-pf-auth="member"] { display: none !important; }

/* Mono labels: eyebrows, indices, meta, table heads. 11 px, tracked, upper case (not in Arabic script). */
.pf :is(.pf-eyebrow, .pf-num, .pf-card__meta, .pf-chip, .pf-status, .pf-signal dt, .pf-netfoot__h, .pf-table thead th, .pf-crumbs, .pf-figure__measure, .pf-toc__h, .pf-toc a, .pf-tile__eyebrow, .pf-fact dt, .pf-filters__label, .pf-key__value, .pf-bars__value, .pf-timeline__year) {
  font-family: var(--pf-mono); font-size: 11px; font-weight: 500; letter-spacing: .14em; line-height: 1.4; text-transform: uppercase; font-variant-numeric: tabular-nums;
}
.pf[dir="rtl"] :is(.pf-eyebrow, .pf-num, .pf-card__meta, .pf-chip, .pf-status, .pf-signal dt, .pf-netfoot__h, .pf-table thead th, .pf-crumbs, .pf-figure__measure, .pf-toc__h, .pf-toc a, .pf-tile__eyebrow, .pf-fact dt, .pf-filters__label) { letter-spacing: 0; text-transform: none; font-family: var(--pf-font); font-size: 13px; }

/* ---------- Top bar: a 2 px rule in the network's hues, mark, navigation, languages, appearance ---------- */
.pf .pf-top { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 8px 24px; min-height: var(--pf-top-h); margin-inline: -20px; padding: 0 20px; background: var(--pf-canvas); border-block-end: 1px solid var(--pf-line); }
.pf .pf-top::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: var(--pf-grad); }
.pf .pf-brand { display: inline-flex; align-items: center; gap: 10px; flex: none; color: var(--pf-ink); font-size: 15px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; text-decoration: none; }
.pf .pf-brand:hover { color: var(--pf-ink); }
.pf .pf-brand .pf-mark { width: 20px; height: 20px; fill: var(--pf-ink); stroke: none; }
.pf[data-design="contour"] .pf-brand .pf-mark { width: 36px; height: 14px; fill: none; stroke: var(--pf-ink); stroke-width: 2; }
.pf .pf-sitenav { flex: 1 1 auto; align-self: stretch; min-width: 0; overflow-x: auto; scrollbar-width: none; -webkit-mask: linear-gradient(90deg, #000 calc(100% - 28px), transparent); mask: linear-gradient(90deg, #000 calc(100% - 28px), transparent); }
.pf[dir="rtl"] .pf-sitenav { -webkit-mask: linear-gradient(270deg, #000 calc(100% - 28px), transparent); mask: linear-gradient(270deg, #000 calc(100% - 28px), transparent); }
.pf .pf-sitenav::-webkit-scrollbar { display: none; }
.pf .pf-sitenav ul { display: flex; gap: 4px; height: 100%; list-style: none; margin: 0; padding: 0; padding-inline-end: 28px; }
.pf .pf-sitenav li { display: flex; }
.pf .pf-sitenav a { position: relative; display: inline-flex; align-items: center; padding: 0 10px; color: var(--pf-ink-3); font-size: 13.5px; font-weight: 500; white-space: nowrap; text-decoration: none; transition: color .12s var(--pf-ease); }
.pf .pf-sitenav a:hover { color: var(--pf-ink); }
.pf .pf-sitenav a[aria-current="page"] { color: var(--pf-ink); }
.pf .pf-sitenav a[aria-current="page"]::after { content: ""; position: absolute; inset-inline: 10px; bottom: -1px; height: 2px; background: var(--pf-grad); }
.pf .pf-top__tools { display: flex; align-items: center; gap: 8px; flex: none; }
.pf .pf-langs { position: relative; }
.pf .pf-langs summary { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); color: var(--pf-ink-2); font-size: 13px; font-weight: 500; cursor: pointer; list-style: none; }
.pf .pf-langs summary::-webkit-details-marker { display: none; }
.pf .pf-langs summary:hover { border-color: var(--pf-ink-3); color: var(--pf-ink); }
.pf .pf-langs__count { font-family: var(--pf-mono); font-size: 11px; color: var(--pf-ink-4); }
.pf .pf-langs ul { position: absolute; inset-inline-end: 0; top: calc(100% + 6px); z-index: 30; min-width: 220px; max-height: 70vh; overflow: auto; list-style: none; margin: 0; padding: 4px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); background: var(--pf-canvas); }
.pf .pf-langs li a { display: flex; padding: 8px 12px; border-radius: var(--pf-r-xs); color: var(--pf-ink-2); font-size: 14.5px; text-decoration: none; }
.pf .pf-langs li a:hover { background: var(--pf-hover); color: var(--pf-ink); }
.pf .pf-langs li a[aria-current="true"] { color: var(--pf-ink); font-weight: 600; }
.pf .pf-theme { display: inline-flex; gap: 0; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); overflow: hidden; }
.pf .pf-theme[hidden] { display: none; }
.pf .pf-theme button { min-height: 0; appearance: none; font: inherit; font-size: 13px; line-height: 1; display: inline-grid; place-items: center; width: 34px; height: 34px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--pf-ink-3); cursor: pointer; }
.pf .pf-theme button + button { border-inline-start: 1px solid var(--pf-line); }
.pf .pf-theme button:hover { color: var(--pf-ink); background: var(--pf-hover); }
.pf .pf-theme button[aria-pressed="true"] { background: var(--pf-primary-bg); color: var(--pf-primary-ink); }
.pf .pf-crumbs ol { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 20px 0 0; padding: 0; color: var(--pf-ink-4); }
.pf .pf-crumbs li + li::before { content: "/"; margin-inline-end: 8px; }
.pf .pf-crumbs a { color: var(--pf-ink-3); text-decoration: none; }
.pf .pf-crumbs a:hover { color: var(--pf-ink); }
.pf .pf-note { display: flex; gap: 12px; align-items: baseline; margin: 16px 0; padding: 12px 16px; border: 1px solid var(--pf-line); border-inline-start: 2px solid var(--pf-ink-4); border-radius: var(--pf-r-sm); background: var(--pf-elevated); font-size: 14px; color: var(--pf-ink-2); }
.pf .pf-note--pending { border-inline-start-color: var(--pf-pend); }
.pf .pf-note--info { border-inline-start-color: var(--pf-ink); }
.pf .pf-note p { margin: 0; }

/* ---------- Hero: text first, one record beside it. No background. ---------- */
.pf .pf-hero { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 64px); align-items: start; padding-block: clamp(48px, 7vw, 96px) clamp(40px, 5vw, 72px); }
.pf .pf-hero:not(:has(.pf-hero__aside)) { grid-template-columns: minmax(0, 1fr); }
.pf .pf-hero__art { display: none; }
.pf .pf-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 24px; color: var(--pf-ink-3); }
.pf .pf-eyebrow::before { content: ""; flex: none; width: 24px; height: 2px; background: var(--pf-grad); }
.pf .pf-h1 { margin: 0 0 24px; color: var(--pf-ink); font-size: clamp(40px, 4.4vw, 60px); line-height: 1.04; font-weight: 500; letter-spacing: -.035em; max-width: 20ch; text-wrap: balance; }
.pf .pf-hero--compact .pf-h1 { font-size: clamp(34px, 3.6vw, 48px); }
.pf[dir="rtl"] .pf-h1 { letter-spacing: 0; line-height: 1.35; font-weight: 600; }
.pf .pf-lede { max-width: 62ch; margin: 0; font-size: clamp(16px, 1.3vw, 18px); line-height: 1.65; color: var(--pf-ink-3); text-wrap: pretty; }
.pf .pf-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-block: 32px 0; }
.pf .pf-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 20px; border-radius: var(--pf-r-sm); border: 1px solid var(--pf-primary-bg); background: var(--pf-primary-bg); color: var(--pf-primary-ink) !important; font-size: 14px; font-weight: 500; line-height: 1; text-decoration: none; transition: background .12s var(--pf-ease), border-color .12s var(--pf-ease); }
.pf .pf-btn:not(.pf-btn--ghost)::after { content: "→"; transition: transform .12s var(--pf-ease); }
.pf[dir="rtl"] .pf-btn:not(.pf-btn--ghost)::after { content: "←"; }
.pf .pf-btn:hover { background: var(--pf-primary-hover); border-color: var(--pf-primary-hover); }
.pf .pf-btn:hover::after { transform: translateX(2px); }
.pf[dir="rtl"] .pf-btn:hover::after { transform: translateX(-2px); }
.pf .pf-btn--ghost, .pf .pf-actions .pf-btn + .pf-btn { background: transparent; color: var(--pf-ink) !important; border-color: var(--pf-line-strong); }
.pf .pf-btn--ghost:hover, .pf .pf-actions .pf-btn + .pf-btn:hover { background: var(--pf-hover); border-color: var(--pf-ink-3); }
.pf .pf-actions .pf-btn + .pf-btn::after { content: none; }
.pf .pf-signin { margin-block: 14px 0; font-size: 14px; color: var(--pf-ink-3); }

/* The record beside the hero: register rows in a hairline panel. */
.pf .pf-signals { display: grid; margin: 0; }
.pf .pf-signal { padding: 14px 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-signal dt { color: var(--pf-ink-3); margin-block-end: 8px; }
.pf .pf-signal dd { margin: 0; color: var(--pf-ink); font-family: var(--pf-mono); font-size: 28px; font-weight: 500; letter-spacing: -.02em; line-height: 1; font-variant-numeric: tabular-nums; }
.pf .pf-signal--text dd { font-family: var(--pf-font); font-size: 17px; letter-spacing: -.01em; line-height: 1.35; }
.pf .pf-hero__aside { position: relative; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-canvas); overflow: hidden; }
.pf .pf-hero__aside::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: var(--pf-grad); }
.pf .pf-hero__aside .pf-signals { padding: 4px 20px; }
.pf .pf-hero__aside .pf-signal { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 16px 0; }
.pf .pf-hero__aside .pf-signal:first-child { border-block-start: 0; }
.pf .pf-hero__aside .pf-signal dt { flex: none; margin: 0; }
.pf .pf-hero__aside .pf-signal dd { font-size: 24px; min-width: 0; text-align: end; overflow-wrap: anywhere; }
.pf .pf-hero__aside .pf-signal--text dd { font-size: 15px; }
.pf .pf-hero__aside .pf-figures { grid-template-columns: 1fr; gap: 0; border: 0; border-radius: 0; background: none; padding: 0 20px; }
.pf .pf-hero__aside .pf-figure { border: 0; border-block-end: 1px solid var(--pf-line); padding: 16px 0; }
.pf .pf-hero__aside .pf-figure:last-child { border-block-end: 0; }
/* Count band: a row of figures divided by hairlines, framed above and below. */
.pf .pf-strip { margin-block: 0; }
.pf .pf-strip :is(.pf-signals, .pf-figures) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 0; border: 0; border-block: 1px solid var(--pf-line); border-radius: 0; background: none; }
.pf .pf-strip :is(.pf-signal, .pf-figure) { min-width: 0; padding: 28px 0; padding-inline-end: 24px; border: 0; border-radius: 0; background: none; }
.pf .pf-strip :is(.pf-signal, .pf-figure) + :is(.pf-signal, .pf-figure) { padding-inline-start: 24px; border-inline-start: 1px solid var(--pf-line); }
.pf .pf-strip .pf-signal dd { margin-block-start: 16px; font-size: clamp(28px, 2.6vw, 36px); overflow-wrap: anywhere; }
.pf .pf-strip .pf-signal--text dd { font-size: 18px; }

/* ---------- Sections: mono index, a 24 px rule, the title; body below or beside ---------- */
.pf .pf-section { padding-block: clamp(48px, 5.5vw, 76px); border-block-start: 1px solid var(--pf-line); }
.pf .pf-h2 { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; margin: 0 0 16px; color: var(--pf-ink); font-size: clamp(28px, 2.8vw, 40px); line-height: 1.1; font-weight: 500; letter-spacing: -.028em; text-wrap: balance; }
.pf[dir="rtl"] .pf-h2 { letter-spacing: 0; line-height: 1.4; font-weight: 600; }
.pf .pf-h3 { margin: 32px 0 12px; color: var(--pf-ink); font-size: 16px; font-weight: 600; letter-spacing: -.01em; }
.pf .pf-num { display: inline-flex; align-items: center; gap: 12px; color: var(--pf-ink-3); }
.pf .pf-num::after { content: ""; width: 24px; height: 1px; background: var(--pf-line-strong); }
.pf .pf-intro { max-width: 60ch; margin-block-end: 28px; color: var(--pf-ink-3); font-size: 16.5px; line-height: 1.6; text-wrap: pretty; }
.pf .pf-section > p:not([class]) { max-width: 68ch; }
.pf .pf-more { margin-block: 24px 0; }
.pf .pf-more a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 14px; font-weight: 500; text-decoration: none; }
.pf .pf-more a::after { content: "→"; transition: transform .12s var(--pf-ease); }
.pf .pf-more a:hover::after { transform: translateX(3px); }
.pf[dir="rtl"] .pf-more a::after { content: "←"; }
.pf .pf-more-note { margin-block: 14px 0; font-size: 13.5px; color: var(--pf-ink-3); }

/* ---------- Cards: hairline frames on the canvas; a 2 px rule in the hues grows across on hover ---------- */
.pf .pf-cards { display: grid; gap: 12px; list-style: none; margin: 0; padding: 0; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.pf .pf-cards--2 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 400px), 1fr)); }
.pf .pf-cards--4 { grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }
.pf .pf-card { position: relative; display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 20px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-canvas); overflow: hidden; transition: border-color .18s var(--pf-ease), background .18s var(--pf-ease); }
.pf .pf-card::before { content: ""; position: absolute; inset-block-start: 0; inset-inline-start: 0; width: 24px; height: 2px; background: var(--pf-grad); transition: width .18s var(--pf-ease); }
.pf .pf-card:has(a):hover { border-color: var(--pf-line-strong); }
.pf .pf-card:has(a):hover::before { width: 100%; }
.pf .pf-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; padding-inline-end: 24px; color: var(--pf-ink-3); }
.pf .pf-card__title { margin: 0; padding-inline-end: 24px; color: var(--pf-ink); font-size: 16px; line-height: 1.35; font-weight: 600; letter-spacing: -.01em; }
.pf .pf-card__title a { color: inherit; text-decoration: none; }
.pf .pf-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pf .pf-card__title a::before { content: "→"; position: absolute; inset-block-start: 18px; inset-inline-end: 18px; color: var(--pf-ink-4); font-size: 14px; font-weight: 400; transition: color .12s var(--pf-ease), transform .12s var(--pf-ease); }
.pf[dir="rtl"] .pf-card__title a::before { content: "←"; }
.pf .pf-card:hover .pf-card__title a::before { color: var(--pf-ink); transform: translateX(2px); }
.pf[dir="rtl"] .pf-card:hover .pf-card__title a::before { transform: translateX(-2px); }
.pf .pf-card__text { margin: 0; font-size: 14px; line-height: 1.55; color: var(--pf-ink-3); }
.pf .pf-card__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: auto 0 0; padding-block-start: 12px; font-family: var(--pf-mono); font-size: 11.5px; color: var(--pf-ink-3); }

/* Figures with sources: the measure and the source always beside the value. */
.pf .pf-figures { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 1px; list-style: none; margin: 0; padding: 0; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-line); overflow: hidden; }
.pf .pf-figure { padding: 20px; background: var(--pf-canvas); }
.pf .pf-figure__value { margin: 0 0 8px; color: var(--pf-ink); font-size: 20px; font-weight: 500; line-height: 1.25; letter-spacing: -.015em; font-variant-numeric: tabular-nums; }
.pf .pf-figure__measure { margin: 0 0 10px; color: var(--pf-ink-3); }
.pf .pf-figure__source { margin: 0; font-size: 13px; color: var(--pf-ink-3); }

/* Labels and states: text with a dot. Colour is never the only signal. */
.pf .pf-chip, .pf .pf-status { display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-xs); color: var(--pf-ink-2); font-size: 10.5px; letter-spacing: .08em; line-height: 1.5; white-space: nowrap; vertical-align: middle; }
.pf .pf-chip::before, .pf .pf-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--pf-ink-4); }
.pf .pf-chip--verified::before, .pf .pf-status--ok::before { background: var(--pf-ok); }
.pf .pf-chip--to-verify::before, .pf .pf-status--pending::before { background: var(--pf-pend); }

/* Tables: mono heads, hairline rows. */
.pf .pf-table-wrap { overflow-x: auto; margin-block: 8px 20px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); }
.pf .pf-table { margin: 0; border: 0; width: 100%; border-collapse: collapse; font-size: 14px; }
.pf .pf-table th, .pf .pf-table td { border: 0; padding: 12px 16px; text-align: start; vertical-align: top; border-block-end: 1px solid var(--pf-line); }
.pf .pf-table thead th { border-block-end-color: var(--pf-line-strong); color: var(--pf-ink-3); background: var(--pf-elevated); }
.pf .pf-table tbody th { color: var(--pf-ink); font-weight: 500; }
.pf .pf-table tbody tr:hover > * { background: var(--pf-hover); }
.pf .pf-table tr:last-child > * { border-block-end: 0; }
.pf .pf-table small { color: var(--pf-ink-3); }

/* Timeline, lists, steps, details */
.pf .pf-timeline { list-style: none; margin: 0; padding: 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-timeline__item { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 24px; padding-block: 20px; border-block-end: 1px solid var(--pf-line); }
.pf .pf-timeline__year { margin: 0; padding-block-start: 4px; color: var(--pf-ink); }
.pf .pf-timeline__title { margin: 0 0 4px; color: var(--pf-ink); font-size: 17px; font-weight: 600; letter-spacing: -.01em; }
.pf .pf-timeline__item p { margin: 0 0 6px; }
.pf .pf-timeline__era { font-size: 13px; color: var(--pf-ink-3); }
.pf .pf-list { padding-inline-start: 1.1em; }
.pf .pf-list li { margin-block-end: 10px; padding-inline-start: 6px; }
.pf .pf-list li::marker { color: var(--pf-ink-4); }
.pf .pf-steps { counter-reset: s; list-style: none; padding: 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-steps li { counter-increment: s; position: relative; padding-block: 14px; padding-inline-start: 48px; border-block-end: 1px solid var(--pf-line); }
.pf .pf-steps li::before { content: counter(s, decimal-leading-zero); position: absolute; inset-inline-start: 0; top: 16px; font-family: var(--pf-mono); font-size: 12px; color: var(--pf-ink-3); }
.pf .pf-details { border-block-end: 1px solid var(--pf-line); }
.pf .pf-details:first-of-type { border-block-start: 1px solid var(--pf-line); }
.pf .pf-details summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 52px; padding: 14px 0; color: var(--pf-ink); font-weight: 500; cursor: pointer; list-style: none; }
.pf .pf-details summary::-webkit-details-marker { display: none; }
.pf .pf-details summary::after { content: "+"; flex: none; font-family: var(--pf-mono); color: var(--pf-ink-3); transition: transform .18s var(--pf-ease); }
.pf .pf-details[open] summary::after { transform: rotate(45deg); }
.pf .pf-details__body { padding: 0 0 18px; color: var(--pf-ink-2); max-width: 70ch; }
.pf .pf-empty { color: var(--pf-ink-3); }
.pf .pf-native { color: var(--pf-ink-3); }

/* Maps: build-time SVG in neutrals; tiers step from ink to hairline (labelled in the legend). */
.pf .pf-figure-map { margin: 8px 0 24px; padding: clamp(12px, 2vw, 24px); border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); }
.pf .pf-figure-map:has(.pf-live) { padding: 0; border: 0; border-radius: 0; }
.pf .pf-map { display: block; width: 100%; height: auto; max-height: 560px; }
.pf .pf-map__sphere { fill: var(--pf-elevated); stroke: var(--pf-line); stroke-width: .6; }
.pf .pf-map__c, .pf .pf-map__n { fill: var(--pf-muted-bg); stroke: var(--pf-line-strong); stroke-width: .5; vector-effect: non-scaling-stroke; }
.pf .pf-map__c--t0 { fill: var(--pf-ink); }
.pf .pf-map__c--t1 { fill: color-mix(in srgb, var(--pf-ink) 64%, var(--pf-canvas)); }
.pf .pf-map__c--t2 { fill: color-mix(in srgb, var(--pf-ink) 34%, var(--pf-canvas)); }
.pf .pf-map__c--t3 { fill: color-mix(in srgb, var(--pf-ink) 16%, var(--pf-canvas)); }
.pf .pf-map__c--focus { fill: color-mix(in srgb, var(--pf-ink) 22%, var(--pf-canvas)); stroke: var(--pf-ink); stroke-width: 1; }
.pf .pf-map__city circle { fill: var(--pf-canvas); stroke: var(--pf-ink); stroke-width: 2; }
.pf .pf-map__city text { fill: var(--pf-ink); font-family: var(--pf-font); font-size: 13px; font-weight: 500; paint-order: stroke; stroke: var(--pf-canvas); stroke-width: 3.5px; stroke-linejoin: round; }
.pf[dir="rtl"] .pf-map__city text { direction: rtl; unicode-bidi: plaintext; }
.pf .pf-figure-map figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-block-start: 16px; padding-block-start: 12px; border-block-start: 1px solid var(--pf-line); font-size: 12.5px; color: var(--pf-ink-3); }
.pf .pf-figure-map figcaption p { margin: 0; max-width: 72ch; }
.pf .pf-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none; margin: 0; padding: 0; font-family: var(--pf-mono); font-size: 11.5px; }
.pf .pf-legend li { display: inline-flex; align-items: center; gap: 6px; }
.pf[dir="rtl"] :is(.pf-legend, .pf-ring__month, .pf-donut__label, .pf-feature__n, .pf-h3__count, .pf-netfoot__h) { font-family: var(--pf-font); letter-spacing: 0; text-transform: none; }
.pf .pf-swatch { width: 12px; height: 12px; border-radius: 2px; background: var(--pf-muted-bg); outline: 1px solid var(--pf-line-strong); outline-offset: -1px; }
.pf .pf-swatch--t0 { background: var(--pf-ink); }
.pf .pf-swatch--t1 { background: color-mix(in srgb, var(--pf-ink) 64%, var(--pf-canvas)); }
.pf .pf-swatch--t2 { background: color-mix(in srgb, var(--pf-ink) 34%, var(--pf-canvas)); }
.pf .pf-swatch--t3 { background: color-mix(in srgb, var(--pf-ink) 16%, var(--pf-canvas)); }
.pf .pf-swatch--city { width: 10px; height: 10px; border-radius: 50%; background: var(--pf-canvas); outline: 2px solid var(--pf-ink); outline-offset: -2px; }

/* ---------- Charts: hairline frames; the hues appear only as bars, segments and dots ---------- */
.pf .pf-tone-0 { --tone: var(--pf-tint-a); }
.pf .pf-tone-1 { --tone: var(--pf-tint-b); }
.pf .pf-tone-2 { --tone: color-mix(in srgb, var(--pf-ink) 30%, var(--pf-canvas)); }
.pf .pf-tone-3 { --tone: color-mix(in srgb, var(--pf-ink) 14%, var(--pf-canvas)); }
.pf .pf-key { display: grid; gap: 10px; list-style: none; margin: 0; padding: 0; }
.pf .pf-key li { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: 10px; font-size: 13.5px; color: var(--pf-ink-2); }
.pf .pf-key__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--tone); }
.pf .pf-key__value { color: var(--pf-ink); }
.pf .pf-donut { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 28px; margin: 0; }
.pf .pf-donut svg { display: block; }
.pf .pf-donut__track { fill: none; stroke: var(--pf-line); stroke-width: 3; }
.pf .pf-donut__arc { fill: none; stroke: var(--tone); stroke-width: 3; }
.pf .pf-donut__value { fill: var(--pf-ink); font-family: var(--pf-mono); font-size: 8px; font-weight: 500; letter-spacing: -.02em; text-anchor: middle; dominant-baseline: middle; }
.pf .pf-donut__label { fill: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 2.6px; letter-spacing: .1em; text-anchor: middle; text-transform: uppercase; }
.pf .pf-bars { display: grid; gap: 0; list-style: none; margin: 0; padding: 0; }
.pf .pf-bars__row { display: grid; grid-template-columns: minmax(140px, 1.3fr) minmax(0, 2.4fr) 4ch; align-items: center; gap: 16px; padding-block: 9px; border-block-end: 1px solid var(--pf-line); font-size: 14px; }
.pf .pf-bars__row:last-child { border-block-end: 0; }
.pf .pf-bars__label { color: var(--pf-ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pf .pf-bars__label a { color: inherit; text-decoration: none; }
.pf .pf-bars__label a:hover { color: var(--pf-ink); text-decoration: underline; }
.pf .pf-bars__track { position: relative; height: 4px; border-radius: 2px; background: var(--pf-line); overflow: hidden; }
.pf .pf-bars__fill { position: absolute; inset-block: 0; inset-inline-start: 0; width: calc(var(--v) * 100%); border-radius: inherit; background: var(--pf-grad); }
.pf .pf-bars__value { color: var(--pf-ink); text-align: end; }
.pf .pf-bars__value small { margin-inline-start: 6px; color: var(--pf-ink-3); font-size: 11px; }
.pf .pf-stack__bar { display: flex; gap: 2px; height: 6px; margin: 0 0 16px; border-radius: 3px; overflow: hidden; }
.pf .pf-stack__seg { flex: 0 0 var(--v); background: var(--tone); }
.pf .pf-stack .pf-key { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.pf .pf-ring { margin: 0; }
.pf .pf-ring svg { display: block; width: 100%; max-width: 340px; height: auto; margin-inline: auto; }
.pf .pf-ring__track { fill: none; stroke: var(--pf-line-strong); stroke-width: 1; }
.pf .pf-ring__tick { stroke: var(--pf-line); stroke-width: 1; }
.pf .pf-ring__month { fill: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 8.5px; letter-spacing: .1em; text-anchor: middle; dominant-baseline: middle; text-transform: uppercase; }
.pf .pf-ring__dot { fill: var(--pf-tint-a); stroke: var(--pf-canvas); stroke-width: 2; }
.pf .pf-ring a:hover .pf-ring__dot, .pf .pf-ring a:focus .pf-ring__dot { fill: var(--pf-ink); }
.pf .pf-ribbon { display: flex; gap: 1px; list-style: none; margin: 0 0 32px; padding: 0; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-line); overflow: hidden; }
.pf .pf-ribbon__era { position: relative; flex: var(--v) 1 0; min-width: 84px; display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; padding: 28px 12px 12px; background: var(--pf-canvas); }
.pf .pf-ribbon__era::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: var(--tone); }
.pf .pf-ribbon__label { color: var(--pf-ink); font-size: 13px; font-weight: 600; line-height: 1.25; }
.pf .pf-ribbon__span { color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11px; }

/* Bento: tiles in a hairline cell grid. */
.pf .pf-bento { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: dense; gap: 1px; list-style: none; margin: 0; padding: 0; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-line); overflow: hidden; }
.pf .pf-tile { position: relative; display: flex; flex-direction: column; gap: 6px; min-width: 0; padding: 24px; background: var(--pf-canvas); }
.pf .pf-tile--wide { grid-column: span 2; }
.pf .pf-tile--tall { grid-row: span 2; }
.pf .pf-tile--full { grid-column: 1 / -1; }
.pf .pf-tile__eyebrow { margin: 0; color: var(--pf-ink-3); }
.pf .pf-tile__value { margin: 12px 0 0; color: var(--pf-ink); font-family: var(--pf-mono); font-size: clamp(32px, 3vw, 44px); font-weight: 500; letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.pf .pf-tile__title { margin: 0; color: var(--pf-ink); font-size: 15px; font-weight: 600; letter-spacing: -.01em; }
.pf .pf-tile__title a { color: inherit; text-decoration: none; }
.pf .pf-tile__title a::after { content: ""; position: absolute; inset: 0; }
.pf .pf-tile:has(a):hover { background: var(--pf-hover); }
.pf .pf-tile__text { margin: 0; color: var(--pf-ink-3); font-size: 14px; }
.pf .pf-tile :is(.pf-donut, .pf-bars, .pf-stack, .pf-ring) { margin-block-start: 20px; }

/* ---------- Inner-page grammar ---------- */
.pf .pf-toc { margin-block: 0; }
.pf .pf-toc__h { margin: 0 0 10px; color: var(--pf-ink-4); }
.pf .pf-toc ol { list-style: none; margin: 0; padding: 0; }
.pf .pf-toc a { display: flex; gap: 10px; align-items: baseline; color: var(--pf-ink-3); text-decoration: none; }
.pf .pf-toc a:hover { color: var(--pf-ink); }
.pf .pf-toc__n { color: var(--pf-ink-4); }
.pf .pf-section[id] { scroll-margin-top: calc(var(--pf-top-h) + 64px); }

.pf .pf-facts { display: grid; grid-template-columns: minmax(140px, max-content) minmax(0, 1fr); margin: 16px 0 0; padding: 0 20px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); }
.pf .pf-fact { display: contents; }
.pf .pf-fact dt, .pf .pf-fact dd { padding: 14px 0; border-block-end: 1px solid var(--pf-line); }
.pf .pf-fact:last-child :is(dt, dd) { border-block-end: 0; }
.pf .pf-fact dt { padding-inline-end: 24px; padding-block-start: 17px; color: var(--pf-ink-3); }
.pf .pf-fact dd { margin: 0; color: var(--pf-ink); }

.pf .pf-outcomes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 1px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-line); overflow: hidden; }
.pf .pf-outcomes li { position: relative; padding: 18px 20px; padding-inline-start: 48px; background: var(--pf-canvas); color: var(--pf-ink); }
.pf .pf-outcomes li::before { content: "✓"; position: absolute; inset-inline-start: 20px; top: 18px; font-family: var(--pf-mono); color: var(--pf-ink-3); font-size: 13px; }
.pf .pf-modules { list-style: none; margin: 0; padding: 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-module { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; align-items: baseline; padding-block: 20px; border-block-end: 1px solid var(--pf-line); }
.pf .pf-module__n { color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 13px; font-variant-numeric: tabular-nums; }
.pf .pf-module__title { margin: 0 0 4px; color: var(--pf-ink); font-size: 16.5px; font-weight: 600; letter-spacing: -.01em; }
.pf .pf-module p { margin: 0; color: var(--pf-ink-3); font-size: 14.5px; }
.pf .pf-asks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 1px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-line); overflow: hidden; }
.pf .pf-asks li { display: flex; flex-direction: column; gap: 16px; padding: 24px; background: var(--pf-canvas); }
.pf .pf-asks__n { color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 12px; }
.pf .pf-asks__n::before { content: "0"; }
.pf .pf-asks p { margin: 0; color: var(--pf-ink); font-size: 16px; line-height: 1.5; }
/* Pathway route: a vertical stepper; the capstone is filled. */
.pf .pf-route { list-style: none; margin: 0; padding: 0; }
.pf .pf-route__step { position: relative; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 16px; padding-block: 0 24px; }
.pf .pf-route__step::before { content: ""; position: absolute; inset-inline-start: 15px; top: 36px; bottom: 4px; width: 1px; background: var(--pf-line-strong); }
.pf .pf-route__step:last-child::before { display: none; }
.pf .pf-route__n { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); background: var(--pf-canvas); font-family: var(--pf-mono); font-size: 12px; color: var(--pf-ink); }
.pf .pf-route__step--cap .pf-route__n { background: var(--pf-primary-bg); color: var(--pf-primary-ink); border-color: var(--pf-primary-bg); }
.pf .pf-route__title { margin: 4px 0 4px; font-size: 16.5px; font-weight: 600; color: var(--pf-ink); letter-spacing: -.01em; }
.pf .pf-route__title a { color: inherit; text-decoration: none; }
.pf .pf-route__title a:hover { text-decoration: underline; }
.pf .pf-route p { margin: 0 0 6px; color: var(--pf-ink-3); }
.pf .pf-agenda { list-style: none; margin: 0; padding: 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-agenda li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 12px 0; border-block-end: 1px solid var(--pf-line); color: var(--pf-ink); }
.pf .pf-agenda__t { font-family: var(--pf-mono); font-size: 12.5px; color: var(--pf-ink-3); font-variant-numeric: tabular-nums; }
.pf .pf-milestones { list-style: none; margin: 0; padding: 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-milestone { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 14px 0; padding-inline-start: 32px; border-block-end: 1px solid var(--pf-line); color: var(--pf-ink); }
.pf .pf-milestone__mark { position: absolute; inset-inline-start: 2px; top: calc(50% - 6px); width: 12px; height: 12px; border-radius: 50%; border: 1.5px solid var(--pf-ink-4); }
.pf .pf-milestone--done .pf-milestone__mark { background: var(--pf-ink); border-color: var(--pf-ink); }
.pf .pf-milestone--in-progress .pf-milestone__mark { border-color: var(--pf-ink); background: conic-gradient(var(--pf-ink) 0 50%, transparent 50% 100%); }
.pf .pf-milestone__title { flex: 1 1 240px; }
.pf .pf-evidence { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 12px; }
.pf .pf-evidence li { padding-block: 4px; padding-inline: 20px 0; border-inline-start: 2px solid var(--pf-line-strong); }
.pf .pf-evidence p { margin: 0 0 8px; color: var(--pf-ink); }
.pf .pf-evidence__source { font-size: 13px; color: var(--pf-ink-3) !important; margin: 0 !important; }
.pf .pf-datebox { margin: 0; }
.pf .pf-datebox time { display: inline-grid; justify-items: center; min-width: 64px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); overflow: hidden; text-align: center; }
.pf .pf-datebox__m { display: block; width: 100%; padding: 4px 8px; border-block-end: 1px solid var(--pf-line); background: var(--pf-elevated); color: var(--pf-ink-2); font-family: var(--pf-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; }
.pf .pf-datebox__d { display: block; padding: 6px 8px 0; font-family: var(--pf-mono); font-size: 26px; font-weight: 500; letter-spacing: -.02em; line-height: 1.1; color: var(--pf-ink); font-variant-numeric: tabular-nums; }
.pf .pf-datebox__w { display: block; padding: 0 8px 6px; font-size: 11.5px; color: var(--pf-ink-3); }
.pf .pf-datebox time:not(:has(.pf-datebox__w)) .pf-datebox__d { padding-block-end: 8px; }
.pf :is(.pf-hero__aside, .pf-strip) .pf-datebox { margin: 16px 20px 4px; }
.pf :is(.pf-hero__aside, .pf-strip) .pf-datebox time { min-width: 96px; }
.pf :is(.pf-hero__aside, .pf-strip) .pf-datebox__d { font-size: 40px; }
.pf :is(.pf-cards--events, .pf-cards--days) .pf-card__meta { display: flex; align-items: center; gap: 12px; }
.pf .pf-filters { display: grid; gap: 12px; margin-block: 0 24px; padding-block: 16px; border-block: 1px solid var(--pf-line); }
.pf .pf-filters[hidden] { display: none; }
.pf .pf-filters__group { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pf .pf-filters__label { min-width: 80px; margin-inline-end: 8px; color: var(--pf-ink-4); }
.pf .pf-filters button { min-height: 32px; appearance: none; margin: 0; padding: 0 10px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-xs); background: transparent; color: var(--pf-ink-3); font: 500 12.5px/1 var(--pf-font); cursor: pointer; transition: border-color .12s var(--pf-ease), color .12s var(--pf-ease); }
.pf .pf-filters button:hover { border-color: var(--pf-ink-3); color: var(--pf-ink); }
.pf .pf-filters button[aria-pressed="true"] { border-color: var(--pf-ink); background: var(--pf-primary-bg); color: var(--pf-primary-ink); }
.pf .pf-filters__count { margin: 0; font-family: var(--pf-mono); font-size: 11.5px; color: var(--pf-ink-4); }
.pf .pf-card[hidden] { display: none !important; }

/* Closing band: inverted, one invitation. */
.pf .pf-closing { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px; margin-block-start: 64px; padding: clamp(40px, 5vw, 64px); border-radius: var(--pf-r-sm); background: var(--pf-primary-bg); color: var(--pf-primary-ink); overflow: hidden; }
.pf .pf-closing::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: var(--pf-grad); }
.pf .pf-closing__title { margin: 0 0 8px; color: var(--pf-primary-ink); font-size: clamp(26px, 2.6vw, 36px); font-weight: 500; letter-spacing: -.028em; line-height: 1.12; }
.pf[dir="rtl"] .pf-closing__title { letter-spacing: 0; line-height: 1.4; }
.pf .pf-closing p { margin: 0; max-width: 60ch; color: color-mix(in srgb, var(--pf-primary-ink) 68%, transparent); font-size: 16px; }
.pf .pf-closing .pf-actions { margin: 0; }
.pf .pf-closing .pf-btn { background: var(--pf-primary-ink); border-color: var(--pf-primary-ink); color: var(--pf-primary-bg) !important; }
.pf .pf-closing .pf-btn:hover { background: color-mix(in srgb, var(--pf-primary-ink) 88%, var(--pf-primary-bg)); }
.pf .pf-closing :is(.pf-btn--ghost, .pf-actions .pf-btn + .pf-btn) { background: transparent; color: var(--pf-primary-ink) !important; border-color: color-mix(in srgb, var(--pf-primary-ink) 30%, transparent); }
.pf .pf-closing a:not(.pf-btn) { color: var(--pf-primary-ink); }

/* Membership and join */
.pf .pf-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 16px 48px; }
.pf .pf-split .pf-h3 { margin-block-start: 0; }
.pf .pf-split--viz { align-items: center; margin-block: 0 32px; padding: clamp(20px, 3vw, 32px); border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); }
.pf .pf-split--viz .pf-list { columns: 2 200px; }
.pf .pf-routes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-line); overflow: hidden; }
.pf .pf-route-card { display: flex; flex-direction: column; gap: 8px; padding: 24px; background: var(--pf-canvas); }
.pf .pf-route-card__title { margin: 0; color: var(--pf-ink); font-size: 16.5px; font-weight: 600; letter-spacing: -.01em; }
.pf .pf-route-card p { margin: 0; color: var(--pf-ink-3); font-size: 14.5px; }
.pf .pf-route-card__go { margin-block-start: auto !important; padding-block-start: 12px; }
.pf .pf-route-card--main { position: relative; grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; column-gap: 32px; padding: clamp(28px, 3.5vw, 40px); }
.pf .pf-route-card--main::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: var(--pf-grad); }
.pf .pf-route-card--main .pf-route-card__title { flex: 1 0 100%; font-size: clamp(22px, 2.2vw, 30px); font-weight: 500; letter-spacing: -.025em; }
.pf .pf-route-card--main p:not(.pf-route-card__go) { flex: 1 1 360px; font-size: 16px; color: var(--pf-ink-2); }
.pf .pf-route-card--main .pf-route-card__go { margin: 0 !important; padding: 0; }
.pf .pf-joinsteps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 1px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-line); overflow: hidden; }
.pf .pf-joinsteps li { position: relative; padding: 24px 20px; background: var(--pf-canvas); }
.pf .pf-joinsteps__n { display: block; margin-block-end: 20px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 12px; }
.pf .pf-joinsteps__n::before { content: "0"; }
.pf .pf-joinsteps li:first-child::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: var(--pf-grad); }
.pf .pf-joinsteps__title { margin: 0 0 6px; color: var(--pf-ink); font-size: 16px; font-weight: 600; }
.pf .pf-joinsteps p { margin: 0; color: var(--pf-ink-3); font-size: 14.5px; }
/* Accounts (agent accounts): the member's start page. The Site Kit sets data-pf-done="1" on a step the member has
   done; the static page shows every step as "To do". */
.pf .pf-start__steps { margin-block-end: 28px; }
.pf .pf-start__state { margin-block-start: 12px !important; font-family: var(--pf-mono); font-size: 11px !important; letter-spacing: .1em; text-transform: uppercase; }
.pf .pf-start__step[data-pf-done="1"] .pf-start__todo, .pf .pf-start__step:not([data-pf-done="1"]) .pf-start__done { display: none; }
.pf .pf-start__step[data-pf-done="1"] .pf-start__state { color: var(--pf-ok); }
.pf .pf-start__go { margin-block-start: 8px !important; }
.pf .pf-start__go a { color: var(--pf-ink); font-weight: 600; }
.pf[dir="rtl"] .pf-start__state { letter-spacing: 0; text-transform: none; font-family: var(--pf-font); font-size: 13px !important; }
.pf .pf-top__tools .pf-acctlink + .pf-acctlink { margin-inline-start: 0; }
.pf .pf-cards--credentials .pf-card { min-height: 0; }
.pf .pf-cards--classes .pf-card__foot { font-family: var(--pf-font); font-size: 13.5px; color: var(--pf-ink-2); }

   block grouped by region. */

/* =================== Diwan: the register (IDCDC) ===================
   Each section is an entry in a register: a sticky index rail on the start side holds the number and
   title; the body runs beside it. Card lists become ruled rows. */
.pf[data-design="diwan"] .pf-section { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: clamp(32px, 5vw, 64px); }
.pf[data-design="diwan"] .pf-section > * { grid-column: 2; min-width: 0; }
.pf[data-design="diwan"] .pf-section > .pf-h2 { grid-column: 1; grid-row: 1 / span 20; align-self: start; position: sticky; top: calc(var(--pf-top-h) + 32px); font-size: clamp(24px, 2.2vw, 30px); letter-spacing: -.022em; }
.pf[data-design="diwan"] .pf-cards { display: block; border-block-start: 1px solid var(--pf-line); }
.pf[data-design="diwan"] .pf-cards > .pf-card { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "meta meta" "title text" "foot text"; column-gap: 32px; row-gap: 6px; padding: 18px 0; border: 0; border-block-end: 1px solid var(--pf-line); border-radius: 0; background: transparent; overflow: visible; }
.pf[data-design="diwan"] .pf-cards > .pf-card::before { inset-block-start: auto; inset-block-end: -1px; width: 0; height: 1px; }
.pf[data-design="diwan"] .pf-cards > .pf-card:has(a):hover::before { width: 100%; }
.pf[data-design="diwan"] .pf-card__meta { grid-area: meta; }
.pf[data-design="diwan"] .pf-card__title { grid-area: title; }
.pf[data-design="diwan"] .pf-card__text { grid-area: text; }
.pf[data-design="diwan"] .pf-card__foot { grid-area: foot; padding: 4px 0 0; }
.pf[data-design="diwan"] .pf-card__title a::before { inset-block-start: 18px; inset-inline-end: 0; }
.pf[data-design="diwan"] .pf-toc { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: clamp(32px, 5vw, 64px); padding-block: 32px; border-block-start: 1px solid var(--pf-line); }
.pf[data-design="diwan"] .pf-toc ol { columns: 2 240px; column-gap: 32px; }
.pf[data-design="diwan"] .pf-toc li { break-inside: avoid; border-block-start: 1px solid var(--pf-line); }
.pf[data-design="diwan"] .pf-toc a { min-height: 44px; align-items: center; letter-spacing: .1em; }
.pf[data-design="diwan"] .pf-routes { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* =================== Contour: the field (KCO) ===================
   Full-width bands that alternate canvas and alt, cell grids for cards, larger display type, the
   contents as a sticky tab bar with a hued underline. */
.pf[data-design="contour"] .pf-h1 { font-size: clamp(44px, 6vw, 84px); max-width: 16ch; letter-spacing: -.045em; line-height: 1; }
.pf[data-design="contour"][dir="rtl"] .pf-h1 { letter-spacing: 0; line-height: 1.3; }
.pf[data-design="contour"] .pf-section { padding-block: clamp(56px, 6vw, 88px); }
.pf[data-design="contour"] .pf-section:nth-of-type(even) { background: var(--pf-alt); box-shadow: 0 0 0 100vmax var(--pf-alt); clip-path: inset(0 -100vmax); }
.pf[data-design="contour"] .pf-section:nth-of-type(even) :is(.pf-card, .pf-figure, .pf-tile, .pf-outcomes li, .pf-asks li, .pf-route-card, .pf-joinsteps li, .pf-ribbon__era) { background: var(--pf-alt); }
.pf[data-design="contour"] .pf-h2 { font-size: clamp(30px, 3.4vw, 48px); letter-spacing: -.035em; max-width: 22ch; }
.pf[data-design="contour"][dir="rtl"] .pf-h2 { letter-spacing: 0; }
.pf[data-design="contour"] .pf-cards { gap: 1px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-line); overflow: hidden; }
.pf[data-design="contour"] .pf-cards > .pf-card { border: 0; border-radius: 0; padding: 24px; }
.pf[data-design="contour"] .pf-cards > .pf-card:has(a):hover { background: var(--pf-hover); }
.pf[data-design="contour"] .pf-toc { position: sticky; top: var(--pf-top-h); z-index: 10; display: flex; align-items: stretch; gap: 24px; min-height: 48px; margin-inline: -20px; padding: 0 20px; background: var(--pf-canvas); border-block: 1px solid var(--pf-line); overflow-x: auto; scrollbar-width: none; }
.pf[data-design="contour"] .pf-toc__h { display: flex; align-items: center; margin: 0; flex: none; }
.pf[data-design="contour"] .pf-toc ol { display: flex; gap: 20px; flex: none; }
.pf[data-design="contour"] .pf-toc li { display: flex; }
.pf[data-design="contour"] .pf-toc a { position: relative; align-items: center; white-space: nowrap; }
.pf[data-design="contour"] .pf-toc a:hover::after { content: ""; position: absolute; inset-inline: 0; bottom: -1px; height: 2px; background: var(--pf-grad); }
.pf[data-design="contour"] .pf-toc__n { display: none; }
.pf[data-design="contour"] .pf-strip { display: flex; flex-wrap: wrap; gap: 0 24px; align-items: stretch; }
.pf[data-design="contour"] .pf-strip > .pf-datebox { display: flex; align-items: center; margin: 0; }
.pf[data-design="contour"] .pf-strip > :is(.pf-signals, .pf-figures) { flex: 1 1 480px; }
.pf[data-design="contour"] .pf-closing { padding: clamp(48px, 6vw, 80px); }
.pf[data-design="contour"] .pf-closing__title { font-size: clamp(30px, 3.4vw, 48px); letter-spacing: -.035em; }

/* Progress panel: one learner's state, drawn by the Site Kit; the static page carries the fallback. */
.pf .pf-progress { position: relative; padding: clamp(20px, 3vw, 28px); border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); overflow: hidden; }
.pf .pf-progress::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: var(--pf-grad); }
.pf .pf-progress__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px; margin-block-end: 20px; }
.pf .pf-progress__head p { margin: 0; }
.pf .pf-progress__eyebrow { color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.pf .pf-progress__state { display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-xs); color: var(--pf-ink-2); font-family: var(--pf-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; }
.pf .pf-progress__state::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--pf-ink-4); }
.pf .pf-progress__state--in-progress::before { background: var(--pf-pend); }
.pf .pf-progress__state--completed::before { background: var(--pf-ok); }
.pf .pf-progress__lede { max-width: 56ch; margin: 0; color: var(--pf-ink-2); }
.pf .pf-progress .pf-actions { margin-block: 20px 0; }
.pf .pf-progress__value { margin: 0 0 12px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 14px; font-variant-numeric: tabular-nums; }
.pf .pf-progress__value span { color: var(--pf-ink); font-size: clamp(36px, 4vw, 52px); font-weight: 500; letter-spacing: -.03em; line-height: 1; }
.pf .pf-progress__note { margin: 16px 0 0; color: var(--pf-ink-4); font-size: 12.5px; }
.pf .pf-meter { position: relative; height: 4px; border-radius: 2px; background: var(--pf-line); overflow: hidden; }
.pf .pf-meter__fill { position: absolute; inset-block: 0; inset-inline-start: 0; border-radius: inherit; background: var(--pf-grad); }
.pf .pf-facts--panel { margin-block-start: 20px; padding: 0; border: 0; border-block-start: 1px solid var(--pf-line); border-radius: 0; }
.pf .pf-facts--panel .pf-fact:last-child :is(dt, dd) { border-block-end: 0; }
.pf .pf-checklist { list-style: none; margin: 20px 0 0; padding: 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-checklist__item { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 12px; align-items: baseline; padding: 12px 0; border-block-end: 1px solid var(--pf-line); color: var(--pf-ink); }
.pf .pf-checklist__n { color: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 12px; }
.pf .pf-checklist__state { color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.pf .pf-checklist__item--completed .pf-checklist__n, .pf .pf-checklist__item--completed .pf-checklist__state { color: var(--pf-ok); }

/* Teaching team: people as initials and name, never a photo from a third party. */
.pf .pf-people { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 12px; }
.pf .pf-person { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 16px; align-items: start; padding: 20px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); }
.pf .pf-person__mark { display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--pf-r-sm); background: var(--pf-primary-bg); color: var(--pf-primary-ink); font-family: var(--pf-mono); font-size: 15px; font-weight: 500; letter-spacing: .04em; }
.pf .pf-person--open { border-style: dashed; border-color: var(--pf-line-strong); }
.pf .pf-person--open .pf-person__mark { background: transparent; color: var(--pf-ink-3); border: 1px dashed var(--pf-line-strong); font-size: 20px; }
.pf .pf-person__name { margin: 2px 0 2px; color: var(--pf-ink); font-size: 16px; font-weight: 600; letter-spacing: -.01em; }
.pf .pf-person__name a { color: inherit; text-decoration: none; }
.pf .pf-person__name a:hover { text-decoration: underline; }
.pf .pf-person__role { margin: 0 0 8px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.pf .pf-person__bio { margin: 0; color: var(--pf-ink-3); font-size: 14px; }
.pf .pf-team + .pf-facts { margin-block-start: 0; }
.pf[dir="rtl"] :is(.pf-progress__eyebrow, .pf-progress__state, .pf-checklist__state, .pf-person__role) { letter-spacing: 0; text-transform: none; font-family: var(--pf-font); font-size: 13px; }

/* Embedded: platform content inside another view (a Tutor lesson). No page frame of its own. */
.pf.pf--embed { max-width: none; margin: 0; padding: 0; background: transparent; font-size: inherit; }
.pf .pf-lesson__head { position: relative; margin-block-end: 24px; padding-block-end: 24px; border-block-end: 1px solid var(--pf-line); }
.pf .pf-lesson__head .pf-eyebrow { margin-block-end: 16px; }
.pf .pf-lesson__title { margin: 0 0 12px; color: var(--pf-ink); font-size: clamp(26px, 2.6vw, 36px); font-weight: 500; letter-spacing: -.028em; line-height: 1.12; }
.pf[dir="rtl"] .pf-lesson__title { letter-spacing: 0; line-height: 1.4; font-weight: 600; }
.pf .pf-lesson .pf-lede { font-size: 17px; }
.pf .pf-lesson__map { list-style: none; margin: 0 0 24px; padding: 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-lesson__map li { position: relative; display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 12px; padding: 10px 0; border-block-end: 1px solid var(--pf-line); color: var(--pf-ink-3); font-size: 15px; }
.pf .pf-lesson__map li[aria-current="step"] { color: var(--pf-ink); font-weight: 600; }
.pf .pf-lesson__map li[aria-current="step"]::before { content: ""; position: absolute; inset-block: 8px; inset-inline-start: -12px; width: 2px; background: var(--pf-grad); }
.pf .pf-lesson__n { color: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 12px; font-weight: 400; font-variant-numeric: tabular-nums; }

/* Pastel: one soft wash of the network's two hues, used sparingly (record panel, a lead cell, the main
   route). Never behind running text blocks, never a glow. */
.pf { --pf-pastel: linear-gradient(135deg, color-mix(in srgb, var(--pf-tint-a) 10%, var(--pf-canvas)) 0%, color-mix(in srgb, var(--pf-tint-b) 8%, var(--pf-canvas)) 55%, var(--pf-canvas) 100%); }
.pf .pf-hero__aside { background: var(--pf-pastel); }
.pf .pf-route-card--main { background: var(--pf-pastel); }

/* Feature cells: index, title, line; the lead cell spans two and takes the pastel wash. */
.pf .pf-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-flow: dense; list-style: none; margin: 0 0 24px; padding: 0; border-block-start: 1px solid var(--pf-line); border-inline-start: 1px solid var(--pf-line); border-start-start-radius: var(--pf-r-sm); }
.pf .pf-feature { position: relative; display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 22px 22px 24px; border-inline-end: 1px solid var(--pf-line); border-block-end: 1px solid var(--pf-line); background: var(--pf-canvas); transition: background .15s var(--pf-ease); }
.pf .pf-feature::before { content: ""; position: absolute; inset-block-start: -1px; inset-inline-start: 0; width: 0; height: 2px; background: var(--pf-grad); transition: width .18s var(--pf-ease); }
.pf .pf-feature:has(a):hover { background: var(--pf-hover); }
.pf .pf-feature:has(a):hover::before { width: 100%; }
.pf .pf-feature__n { color: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 11px; letter-spacing: .1em; }
.pf .pf-feature__title { margin: 4px 0 0; color: var(--pf-ink); font-size: 16px; font-weight: 600; letter-spacing: -.01em; line-height: 1.35; }
.pf .pf-feature__title a { color: inherit; text-decoration: none; }
.pf .pf-feature__title a::after { content: ""; position: absolute; inset: 0; }
.pf .pf-feature:has(a) .pf-feature__title::after { content: "→"; position: absolute; inset-block-start: 20px; inset-inline-end: 20px; color: var(--pf-ink-4); font-weight: 400; transition: transform .12s var(--pf-ease), color .12s var(--pf-ease); }
.pf[dir="rtl"] .pf-feature:has(a) .pf-feature__title::after { content: "←"; }
.pf .pf-feature:has(a):hover .pf-feature__title::after { color: var(--pf-ink); transform: translateX(2px); }
.pf .pf-feature__text { margin: 0; color: var(--pf-ink-3); font-size: 14px; line-height: 1.55; }
.pf .pf-feature__foot { margin: auto 0 0; padding-block-start: 8px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11.5px; }
.pf .pf-feature--span2 { grid-column: span 2; }
.pf .pf-feature--span3 { grid-column: 1 / -1; }
.pf .pf-feature--lead { background: var(--pf-pastel); padding: 28px; }
.pf .pf-feature--lead .pf-feature__title { font-size: clamp(20px, 2vw, 26px); font-weight: 500; letter-spacing: -.025em; }
.pf .pf-feature--lead .pf-feature__text { font-size: 15.5px; color: var(--pf-ink-2); max-width: 46ch; }
.pf .pf-features:not(:has(.pf-feature__text)) .pf-feature { padding-block: 18px; }

/* Programme status: a swatch matching the map legend (ink for the most established, lighter for less). */
.pf .pf-tier { display: inline-flex; align-items: center; gap: 6px; }
.pf .pf-tier::before { content: ""; width: 9px; height: 9px; border-radius: 2px; background: var(--pf-muted-bg); outline: 1px solid var(--pf-line-strong); outline-offset: -1px; }
.pf .pf-tier--t0::before { background: var(--pf-ink); }
.pf .pf-tier--t1::before { background: color-mix(in srgb, var(--pf-ink) 64%, var(--pf-canvas)); }
.pf .pf-tier--t2::before { background: color-mix(in srgb, var(--pf-ink) 34%, var(--pf-canvas)); }
.pf .pf-tier--t3::before { background: color-mix(in srgb, var(--pf-ink) 16%, var(--pf-canvas)); }
.pf .pf-card__meta > span + span::before { content: "·"; margin-inline-end: 8px; }

/* Never-lists: the same checklist cells with a cross; the meaning is in the words. */
.pf .pf-outcomes--never li::before { content: "✕"; color: var(--pf-crit); }
.pf .pf-outcomes:not(.pf-outcomes--never) li::before { color: var(--pf-ok); }

/* Recognition ladder: each step one bar taller, the hues on the bar. */
.pf .pf-ladder { list-style: none; margin: 0; padding: 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-ladder li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; align-items: end; padding: 12px 0; border-block-end: 1px solid var(--pf-line); color: var(--pf-ink); }
.pf .pf-ladder__bar { display: block; width: 6px; height: calc(6px + var(--k) * 4px); border-radius: 1px; background: var(--pf-grad); }

/* Grouped compact lists (country programmes by region). */
.pf .pf-h3--group { display: flex; align-items: baseline; gap: 10px; margin-block: 28px 12px; }
.pf .pf-h3--group:first-child { margin-block-start: 0; }
.pf .pf-h3__count { color: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 11.5px; font-weight: 400; }
/* Cards without a description: compact cells in every design (a register row would stand half empty). */
.pf .pf-cards:not(:has(.pf-card__text)) { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 0; padding: 0; border: 0; border-block-start: 1px solid var(--pf-line); border-inline-start: 1px solid var(--pf-line); border-radius: 0; background: none; box-shadow: none; }
.pf .pf-cards:not(:has(.pf-card__text)) > .pf-card { display: flex !important; flex-direction: column; gap: 6px; min-height: 0; padding: 14px 16px !important; border: 0 !important; border-inline-end: 1px solid var(--pf-line) !important; border-block-end: 1px solid var(--pf-line) !important; border-radius: 0 !important; background: var(--pf-canvas); margin: 0 !important; }
.pf .pf-cards:not(:has(.pf-card__text)) > .pf-card::before { inset-block-start: -1px !important; inset-block-end: auto !important; inset-inline-start: 0 !important; width: 0; height: 2px !important; }
.pf .pf-cards:not(:has(.pf-card__text)) > .pf-card:has(a):hover { background: var(--pf-hover); }
.pf .pf-cards:not(:has(.pf-card__text)) > .pf-card:has(a):hover::before { width: 100%; }
.pf .pf-cards:not(:has(.pf-card__text)) .pf-card__title { font-size: 15px; }
.pf .pf-cards:not(:has(.pf-card__text)) .pf-card__title a::before { inset-block-start: 14px !important; inset-inline-end: 14px !important; font-size: 13px; }
.pf .pf-cards:not(:has(.pf-card__text)) .pf-card__foot { padding: 0 !important; }
.pf[data-design="contour"] .pf-section:nth-of-type(even) :is(.pf-feature:not(.pf-feature--lead)) { background: var(--pf-alt); }

/* Flags: host countries only (decision D16); a neutral mark where none is shown. 4:3, hairline frame. */
.pf .pf-flag { display: inline-block; flex: none; width: 20px; height: 15px; margin-inline-end: 8px; vertical-align: -2px; border-radius: 2px; background-color: var(--pf-muted-bg); background-position: center; background-size: cover; background-repeat: no-repeat; box-shadow: inset 0 0 0 1px var(--pf-line); }
.pf .pf-flag--none { background-color: transparent; box-shadow: inset 0 0 0 1px var(--pf-line-strong); }
.pf .pf-card__title:has(.pf-flag) { display: flex; align-items: center; }
/* Icons in feature cells. */
.pf .pf-feature__n { display: flex; align-items: center; gap: 10px; }
.pf .pf-feature__icon { display: inline-grid; place-items: center; width: 32px; height: 32px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); color: var(--pf-ink); background: var(--pf-canvas); }
.pf .pf-feature__icon .pf-icon { width: 16px; height: 16px; stroke-width: 1.5; }
.pf .pf-feature--lead .pf-feature__icon { width: 40px; height: 40px; }
.pf .pf-feature--lead .pf-feature__icon .pf-icon { width: 20px; height: 20px; }

/* Ranked bars: one measure, one source, one year. */
.pf .pf-rank { margin: 0; padding: 4px 20px 12px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); }
.pf .pf-rank__list { list-style: none; margin: 0; padding: 0; }
.pf .pf-rank__row { display: grid; grid-template-columns: 28px minmax(150px, 1.2fr) minmax(0, 3fr) minmax(90px, auto); gap: 14px; align-items: center; padding: 9px 0; border-block-end: 1px solid var(--pf-line); font-size: 14px; }
.pf .pf-rank__n { color: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 11px; }
.pf .pf-rank__label { display: flex; align-items: center; min-width: 0; color: var(--pf-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pf .pf-rank__label a { color: inherit; text-decoration: none; }
.pf .pf-rank__label a:hover { text-decoration: underline; }
.pf .pf-rank__track { position: relative; height: 6px; border-radius: 3px; background: var(--pf-line); }
.pf .pf-rank__fill { position: absolute; inset-block: 0; inset-inline-start: 0; width: max(3px, calc(var(--v) * 100%)); border-radius: 3px; background: var(--pf-grad); }
.pf .pf-rank__value { color: var(--pf-ink); font-family: var(--pf-mono); font-size: 13px; text-align: end; font-variant-numeric: tabular-nums; }
.pf .pf-rank__value small { display: block; color: var(--pf-ink-4); font-family: var(--pf-font); font-size: 11px; }
.pf .pf-rank__none { margin-block-start: 12px; color: var(--pf-ink-3); font-size: 13px; }

/* Ranges on a log scale: a bar from low to high, axis ticks at each power of ten. */
.pf .pf-range { margin: 0; padding: 12px 20px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); --lab: minmax(150px, 1.2fr); --val: minmax(150px, auto); }
.pf .pf-range__axis { position: relative; height: 20px; margin-inline: calc(150px + 14px) calc(150px + 14px); color: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 10.5px; }
.pf .pf-range__axis span { position: absolute; inset-inline-start: calc(var(--x) * 1%); transform: translateX(-50%); }
.pf[dir="rtl"] .pf-range__axis span { transform: translateX(50%); }
.pf .pf-range__list { list-style: none; margin: 0; padding: 0; }
.pf .pf-range__row { display: grid; grid-template-columns: 150px minmax(0, 1fr) 150px; gap: 14px; align-items: center; padding: 9px 0; border-block-end: 1px solid var(--pf-line); font-size: 14px; }
.pf .pf-range__label { display: flex; align-items: center; min-width: 0; color: var(--pf-ink); white-space: nowrap; }
.pf .pf-range__label a { color: inherit; text-decoration: none; }
.pf .pf-range__track { position: relative; height: 14px; }
.pf .pf-range__track i { position: absolute; inset-block: 0; inset-inline-start: calc(var(--x) * 1%); width: 1px; background: var(--pf-line); }
.pf .pf-range__fill { position: absolute; inset-block: 3px; inset-inline-start: calc(var(--a) * 1%); width: max(6px, calc((var(--b) - var(--a)) * 1%)); border-radius: 4px; background: var(--pf-grad); }
.pf .pf-range__value { color: var(--pf-ink); font-family: var(--pf-mono); font-size: 12.5px; text-align: end; font-variant-numeric: tabular-nums; }
.pf .pf-range__note { margin-block-start: 12px; color: var(--pf-ink-3); font-size: 13px; }

/* Chronology: eras as equal bands, events placed by year, each linked to its entry. */
.pf .pf-chrono { margin: 0 0 28px; padding: 12px 16px 4px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); }
.pf .pf-chrono__scroll { overflow-x: auto; }
.pf .pf-chrono svg { display: block; width: 100%; min-width: 860px; height: auto; }
.pf .pf-chrono__band { fill: var(--tone); opacity: .9; }
.pf .pf-chrono__stem { stroke: var(--pf-line-strong); stroke-width: 1; }
.pf .pf-chrono__dot { fill: var(--pf-canvas); stroke: var(--pf-ink); stroke-width: 1.6; }
.pf .pf-chrono__dot--pending { stroke-dasharray: 2 2; }
.pf .pf-chrono a:hover .pf-chrono__dot, .pf .pf-chrono a:focus .pf-chrono__dot { fill: var(--pf-ink); }
.pf .pf-chrono__name { fill: var(--pf-ink); font-family: var(--pf-font); font-size: 11.5px; font-weight: 600; }
.pf .pf-chrono__year { fill: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 10px; }

/* World map: graticule and city dots; hexagon index. */
.pf .pf-map__grid { fill: none; stroke: var(--pf-line); stroke-width: .5; }
.pf .pf-map__dot { fill: var(--pf-tint-a); stroke: var(--pf-canvas); stroke-width: 1.2; }
.pf .pf-map__dots a:hover .pf-map__dot, .pf .pf-map__dots a:focus .pf-map__dot { fill: var(--pf-ink); r: 5; }
.pf .pf-hex__land { fill: var(--pf-muted-bg); stroke: var(--pf-line-strong); stroke-width: .4; }
.pf .pf-hex__cell { stroke: var(--pf-canvas); stroke-width: .8; }
.pf .pf-hex__cell--k1, .pf .pf-hex-k1 { fill: color-mix(in srgb, var(--pf-tint-a) 40%, var(--pf-canvas)); }
.pf .pf-hex__cell--k2, .pf .pf-hex-k2 { fill: color-mix(in srgb, var(--pf-tint-a) 70%, var(--pf-tint-b)); }
.pf .pf-hex__cell--k3, .pf .pf-hex-k3 { fill: var(--pf-tint-b); }
.pf .pf-swatch.pf-hex-k1, .pf .pf-swatch.pf-hex-k2, .pf .pf-swatch.pf-hex-k3 { box-shadow: none; }
@media (max-width: 860px) {
  .pf .pf-rank__row { grid-template-columns: 24px minmax(0, 1fr) auto; }
  .pf .pf-rank__track { grid-column: 2 / -1; grid-row: 2; }
  .pf .pf-range__axis { display: none; }
  .pf .pf-range__row { grid-template-columns: minmax(0, 1fr) auto; }
  .pf .pf-range__track { grid-column: 1 / -1; grid-row: 2; }
}

/* Scenario console: a process as job cards in lanes, played like a CI run. Without script the canvas
   shows every card and the run log lists every step. */
.pf .pf-scn { margin: 8px 0 24px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); overflow: hidden; background: var(--pf-canvas); }
.pf .pf-scn:focus-visible { outline: 2px solid var(--pf-focus); outline-offset: 2px; }
.pf .pf-scn__head { position: relative; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 12px 24px; padding: 18px 20px 14px; border-block-end: 1px solid var(--pf-line); background: var(--pf-pastel); }
.pf .pf-scn__head::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: var(--pf-grad); }
.pf .pf-scn__eb { margin: 0 0 6px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.pf .pf-scn__title { margin: 0; color: var(--pf-ink); font-size: 18px; font-weight: 600; letter-spacing: -.015em; }
.pf .pf-scn__lede { margin: 4px 0 0; max-width: 62ch; color: var(--pf-ink-3); font-size: 14px; }
.pf .pf-scn__status { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 4px 10px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-xs); background: var(--pf-canvas); color: var(--pf-ink-2); font-family: var(--pf-mono); font-size: 11.5px; white-space: nowrap; }
.pf .pf-scn__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--pf-ink-4); }
.pf .pf-scn--live .pf-scn__dot { background: var(--pf-tint-a); }
.pf .pf-scn__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 10px 20px; border-block-end: 1px solid var(--pf-line); }
.pf .pf-scn__bar[hidden] { display: none; }
.pf .pf-scn__btn { min-height: 32px; min-width: 32px; margin: 0; padding: 0 12px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); background: transparent; color: var(--pf-ink); font: 500 13px/1 var(--pf-font); cursor: pointer; }
.pf .pf-scn__btn:hover { background: var(--pf-hover); }
.pf .pf-scn__btn[data-scn-act="play"] { background: var(--pf-primary-bg); border-color: var(--pf-primary-bg); color: var(--pf-primary-ink); min-width: 72px; }
.pf .pf-scn__scrub { flex: 1 1 160px; min-width: 120px; accent-color: var(--pf-ink); }
.pf .pf-scn__count { color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 12px; font-variant-numeric: tabular-nums; min-width: 4.5ch; }
.pf .pf-scn__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 300px); }
.pf .pf-scn__stage { overflow: auto; max-height: 720px; padding: 8px; border-inline-end: 1px solid var(--pf-line); background-image: radial-gradient(var(--pf-line) 1px, transparent 1px); background-size: 16px 16px; }
.pf .pf-scn__svg { display: block; max-width: none; height: auto; }
.pf .pf-scn__lane-bg { fill: color-mix(in srgb, var(--pf-canvas) 70%, transparent); stroke: var(--pf-line); }
.pf .pf-scn__lane-t { fill: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; }
.pf .pf-scn__edge path { fill: none; stroke: var(--pf-line-strong); stroke-width: 1.4; }
.pf .pf-scn__edge text { fill: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 10px; }
.pf .pf-scn__edge--return path { stroke-dasharray: 4 4; }
.pf .pf-scn__edge[data-state="on"] path { stroke: var(--pf-tint-a); stroke-width: 2; }
.pf .pf-scn__card { fill: var(--pf-canvas); stroke: var(--pf-line-strong); stroke-width: 1; transition: stroke .2s, fill .2s; }
.pf .pf-scn__node { cursor: pointer; }
.pf .pf-scn__node--gate .pf-scn__card, .pf .pf-scn__node--decision .pf-scn__card { stroke-dasharray: 5 3; }
.pf .pf-scn__node--end .pf-scn__card { stroke: var(--pf-ink-3); }
.pf .pf-scn__card-k { fill: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; }
.pf .pf-scn__card-t { fill: var(--pf-ink); font-family: var(--pf-font); font-size: 12.5px; font-weight: 600; }
.pf .pf-scn__ic-ring { fill: none; stroke: var(--pf-ink-4); stroke-width: 1.6; }
.pf .pf-scn__ic-ok { fill: none; stroke: var(--pf-canvas); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; opacity: 0; }
.pf .pf-scn__node[data-state="live"] .pf-scn__card { stroke: var(--pf-ink); stroke-width: 1.6; }
.pf .pf-scn__node[data-state="live"] .pf-scn__ic-ring { stroke: var(--pf-tint-a); stroke-dasharray: 30 14; animation: pf-scn-spin 1s linear infinite; transform-box: fill-box; transform-origin: center; }
.pf .pf-scn__node[data-state="done"] .pf-scn__ic-ring { fill: var(--pf-ok); stroke: var(--pf-ok); }
.pf .pf-scn__node[data-state="done"] .pf-scn__ic-ok { opacity: 1; }
.pf .pf-scn__node[data-state="done"] .pf-scn__card { fill: color-mix(in srgb, var(--pf-tint-a) 6%, var(--pf-canvas)); }
@keyframes pf-scn-spin { to { transform: rotate(360deg); } }
.pf .pf-scn__side { max-height: 720px; overflow: auto; padding: 14px 16px; }
.pf .pf-scn__side-h { margin: 0 0 10px; color: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.pf .pf-scn__steps { list-style: none; margin: 0; padding: 0; }
.pf .pf-scn__step { position: relative; padding: 10px 0 12px; padding-inline-start: 16px; border-block-end: 1px solid var(--pf-line); }
.pf .pf-scn__step::before { content: ""; position: absolute; inset-block: 12px 14px; inset-inline-start: 0; width: 2px; border-radius: 1px; background: var(--pf-line-strong); }
.pf .pf-scn--live .pf-scn__step[data-state="queued"] .pf-scn__step-t { color: var(--pf-ink-3); }
.pf .pf-scn__step[data-state="live"]::before { background: var(--pf-grad); }
.pf .pf-scn__step[data-state="done"]::before { background: var(--pf-ok); }
.pf .pf-scn__step-k { margin: 0 0 2px; color: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; }
.pf .pf-scn__step-t { margin: 0 0 4px; color: var(--pf-ink); font-size: 14px; font-weight: 600; }
.pf .pf-scn__step p { margin: 0; color: var(--pf-ink-3); font-size: 13px; line-height: 1.5; }
.pf .pf-scn__meta { display: grid; gap: 2px; margin: 8px 0 0; font-size: 12px; }
.pf .pf-scn__meta div { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 8px; }
.pf .pf-scn__meta dt { color: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; }
.pf .pf-scn__meta dd { margin: 0; color: var(--pf-ink-2); }
.pf .pf-scn__src { margin: 0; padding: 10px 20px; border-block-start: 1px solid var(--pf-line); color: var(--pf-ink-4); font-size: 12px; }
@media (max-width: 960px) { .pf .pf-scn__body { grid-template-columns: minmax(0, 1fr); } .pf .pf-scn__stage { border-inline-end: 0; border-block-end: 1px solid var(--pf-line); max-height: 520px; } }
.pf[data-design="diwan"] .pf-section:has(.pf-scn) { grid-template-columns: minmax(0, 1fr); }
.pf[data-design="diwan"] .pf-section:has(.pf-scn) > *, .pf[data-design="diwan"] .pf-section:has(.pf-scn) > .pf-h2 { grid-column: 1; grid-row: auto; position: static; }
.pf[dir="rtl"] :is(.pf-scn__eb, .pf-scn__lane-t, .pf-scn__card-k, .pf-scn__step-k) { letter-spacing: 0; text-transform: none; }

/* Model chain: an explorable model. Lanes as rows, typed nodes (data circle, model square, gate diamond,
   outcome filled square), values under each node; a panel with Model, Step and Rules. */
.pf .pf-chain { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); margin: 8px 0 24px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); overflow: hidden; background: var(--pf-canvas); }
.pf .pf-chain__main { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); gap: 0; min-width: 0; }
.pf .pf-chain__intro { position: relative; padding: 24px; border-inline-end: 1px solid var(--pf-line); }
.pf .pf-chain__eb { margin: 0 0 10px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.pf .pf-chain__eb::after { content: ""; display: block; width: 24px; height: 2px; margin-block-start: 10px; background: var(--pf-grad); }
.pf .pf-chain__title { margin: 0 0 12px; color: var(--pf-ink); font-size: clamp(19px, 1.7vw, 23px); font-weight: 500; letter-spacing: -.02em; line-height: 1.22; }
.pf .pf-chain__lede { margin: 0; color: var(--pf-ink-3); font-size: 14px; line-height: 1.55; }
.pf .pf-chain__actions { margin: 20px 0 0; }
.pf .pf-chain__actions .pf-btn::after { content: none; }
.pf .pf-chain__legend { display: flex; flex-wrap: wrap; gap: 6px 14px; list-style: none; margin: 18px 0 0; padding: 0; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11px; }
.pf .pf-chain__legend li { display: inline-flex; align-items: center; gap: 6px; }
.pf .pf-chain__legend svg { width: 12px; height: 12px; }
.pf .pf-chain__canvas { display: flex; flex-direction: column; min-width: 0; }
.pf .pf-chain__bar { display: flex; align-items: center; gap: 6px; margin: 14px 16px 0; padding: 6px 10px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); align-self: center; }
.pf .pf-chain__bar[hidden], .pf .pf-chain__tabs[hidden], .pf .pf-chain__actions[hidden] { display: none; }
.pf .pf-chain__bar button { min-height: 28px; min-width: 28px; margin: 0; padding: 0 6px; border: 0; background: transparent; color: var(--pf-ink); font-size: 13px; cursor: pointer; border-radius: var(--pf-r-xs); }
.pf .pf-chain__bar button:hover { background: var(--pf-hover); }
.pf .pf-chain__ticks { display: inline-flex; gap: 3px; margin-inline: 6px; }
.pf .pf-chain__ticks i { width: 12px; height: 2px; border-radius: 1px; background: var(--pf-line-strong); }
.pf .pf-chain__ticks i[data-state="on"] { background: var(--pf-tint-a); }
.pf .pf-chain__count { color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11.5px; }
.pf .pf-chain__stage { flex: 1; display: grid; place-items: center; padding: 16px; overflow-x: auto; }
.pf .pf-chain__svg { width: 100%; min-width: 620px; max-width: 900px; height: auto; overflow: visible; }
.pf .pf-chain__lane { fill: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.pf .pf-chain__edge { fill: none; stroke: var(--pf-line-strong); stroke-width: 1.2; }
.pf .pf-chain__edge[data-state="on"] { stroke: var(--pf-tint-a); stroke-width: 1.6; stroke-dasharray: 3 5; animation: pf-chain-flow 1.2s linear infinite; }
@keyframes pf-chain-flow { to { stroke-dashoffset: -16; } }
.pf .pf-chain__node { cursor: pointer; }
.pf .pf-chain__node :is(circle, rect, path) { fill: var(--pf-canvas); stroke: var(--pf-ink); stroke-width: 1.4; transition: fill .2s; }
.pf .pf-chain__node--model rect, .pf .pf-chain__legend .pf-chain__node--model rect { fill: var(--pf-ink); }
.pf .pf-chain__node--gate path, .pf .pf-chain__legend .pf-chain__node--gate path { fill: var(--pf-tint-b); stroke: var(--pf-tint-b); }
.pf .pf-chain__node--decision rect, .pf .pf-chain__legend .pf-chain__node--decision rect { fill: var(--pf-tint-a); stroke: var(--pf-ink); }
.pf .pf-chain__legend .pf-chain__node--data circle { fill: var(--pf-canvas); stroke: var(--pf-ink); stroke-width: 1.4; }
.pf .pf-chain__node[data-state="live"] :is(circle, rect, path) { stroke-width: 2.4; filter: none; }
.pf .pf-chain__node[data-state="live"] .pf-chain__label { font-weight: 700; }
.pf .pf-chain__label { fill: var(--pf-ink); font-family: var(--pf-font); font-size: 12px; font-weight: 500; text-anchor: middle; }
.pf .pf-chain__value { fill: var(--pf-tint-b); font-family: var(--pf-mono); font-size: 10.5px; text-anchor: middle; }
.pf .pf-chain__panel { display: flex; flex-direction: column; min-width: 0; max-height: 640px; overflow: auto; border-inline-start: 1px solid var(--pf-line); }
.pf .pf-chain__tabs { display: grid; grid-template-columns: repeat(3, 1fr); border-block-end: 1px solid var(--pf-line); }
.pf .pf-chain__tabs button { min-height: 44px; margin: 0; border: 0; border-block-end: 2px solid transparent; background: transparent; color: var(--pf-ink-3); font: 500 11px/1 var(--pf-mono); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.pf .pf-chain__tabs button[aria-selected="true"] { color: var(--pf-ink); border-block-end-color: var(--pf-ink); border-image: var(--pf-grad) 1; }
.pf .pf-chain__pane { padding: 16px 18px 18px; }
.pf .pf-chain__k { margin: 18px 0 8px; padding-block-start: 14px; border-block-start: 1px solid var(--pf-line); color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; }
.pf .pf-chain__k:first-child { margin-block-start: 0; padding-block-start: 0; border: 0; }
.pf .pf-chain__big { margin: 0 0 8px; color: var(--pf-ink); font-family: var(--pf-mono); font-size: clamp(26px, 2.6vw, 38px); font-weight: 500; letter-spacing: -.02em; line-height: 1.1; }
.pf .pf-chain__note { margin: 6px 0 0; color: var(--pf-ink-3); font-size: 12.5px; }
.pf .pf-chain__param { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; align-items: center; margin-block-end: 14px; font-size: 13.5px; color: var(--pf-ink-2); }
.pf .pf-chain__param output { color: var(--pf-ink); font-family: var(--pf-mono); font-size: 12.5px; }
.pf .pf-chain__param input[type="range"] { grid-column: 1 / -1; width: 100%; accent-color: var(--pf-ink); }
.pf .pf-chain__param input[type="text"] { grid-column: 1 / -1; width: 100%; min-height: 36px; padding: 0 10px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); background: var(--pf-canvas); color: var(--pf-ink); font: inherit; font-size: 14px; }
.pf .pf-chain__param select { grid-column: 1 / -1; width: 100%; min-height: 36px; padding: 0 10px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); background: var(--pf-canvas); color: var(--pf-ink); font: inherit; font-size: 13.5px; }
.pf .pf-chain__results { margin: 0; }
.pf .pf-chain__results div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-block-end: 1px solid var(--pf-line); font-size: 13px; }
.pf .pf-chain__results dt { color: var(--pf-ink-3); }
.pf .pf-chain__results dd { margin: 0; color: var(--pf-ink); font-family: var(--pf-mono); font-size: 12.5px; text-align: end; }
.pf .pf-chain__steps { list-style: none; margin: 0; padding: 0; }
.pf .pf-chain__steps li { padding: 10px 0 12px; padding-inline-start: 14px; border-block-end: 1px solid var(--pf-line); border-inline-start: 2px solid var(--pf-line); }
.pf .pf-chain__steps li[data-state="live"] { border-inline-start-color: var(--pf-tint-a); }
.pf .pf-chain__steps li[data-state="done"] { border-inline-start-color: var(--pf-ok); }
.pf .pf-chain__step-k { margin: 0 0 2px; color: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; }
.pf .pf-chain__steps h4 { margin: 0 0 4px; color: var(--pf-ink); font-size: 14px; font-weight: 600; }
.pf .pf-chain__steps p { margin: 0; color: var(--pf-ink-3); font-size: 13px; }
.pf .pf-chain__rules { margin: 0; padding-inline-start: 1.1em; color: var(--pf-ink-2); font-size: 13.5px; }
.pf .pf-chain__rules li { margin-block-end: 8px; }
.pf .pf-chain__strip { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); margin: 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-chain__strip div { padding: 16px 20px; border-inline-end: 1px solid var(--pf-line); }
.pf .pf-chain__strip div:last-child { border-inline-end: 0; }
.pf .pf-chain__strip dt { margin: 0 0 8px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; }
.pf .pf-chain__strip dd { margin: 0; color: var(--pf-ink); font-family: var(--pf-mono); font-size: clamp(17px, 1.6vw, 22px); }
.pf .pf-chain__strip div:first-child dd { text-decoration: underline 2px var(--pf-tint-b); text-underline-offset: 6px; }
/* Text readouts in a named language (a script tool's output): the sans, no tracking, one optical size across
   scripts. Arabic-script text sits about a tenth larger so it matches Latin and Cyrillic x-height. */
.pf .pf-chain [lang]:not([lang=""]) { font-family: var(--pf-font); letter-spacing: 0; }
.pf .pf-chain__big[lang]:not([lang=""]) { font-size: clamp(22px, 2vw, 28px); font-weight: 500; line-height: 1.45; }
.pf .pf-chain__strip dd[lang]:not([lang=""]) { font-size: clamp(17px, 1.5vw, 20px); font-weight: 500; line-height: 1.45; }
.pf .pf-chain__value[lang]:not([lang=""]) { font-size: 11.5px; }
.pf .pf-chain__big:is([lang$="-Arab"]) { font-size: clamp(24px, 2.2vw, 31px); }
.pf .pf-chain__strip dd:is([lang$="-Arab"]) { font-size: clamp(19px, 1.65vw, 22px); }
.pf .pf-chain__value:is([lang$="-Arab"]) { font-size: 13px; }
.pf .pf-chart-table td { font-size: 14px; }
.pf .pf-chart-table td[dir="rtl"] { text-align: left; font-size: 17px; line-height: 1.2; }
.pf .pf-chain__src { grid-column: 1 / -1; margin: 0; padding: 10px 20px; border-block-start: 1px solid var(--pf-line); color: var(--pf-ink-4); font-size: 12px; }
.pf .pf-chart { display: block; width: 100%; height: auto; }
.pf .pf-chart__grid { stroke: var(--pf-line); stroke-width: 1; }
.pf .pf-chart__t { fill: var(--pf-ink-4); font-family: var(--pf-mono); font-size: 9px; }
.pf .pf-chart__line { fill: none; stroke: var(--pf-tint-b); stroke-width: 2; }
.pf .pf-chart__mark { stroke: var(--pf-ink-3); stroke-dasharray: 3 3; }
.pf .pf-chart__dot { fill: var(--pf-tint-a); stroke: var(--pf-canvas); stroke-width: 2; }
.pf .pf-chart__month { fill: var(--pf-muted-bg); stroke: var(--pf-line); }
.pf[data-design="diwan"] .pf-section:has(.pf-chain) { grid-template-columns: minmax(0, 1fr); }
.pf[data-design="diwan"] .pf-section:has(.pf-chain) > *, .pf[data-design="diwan"] .pf-section:has(.pf-chain) > .pf-h2 { grid-column: 1; grid-row: auto; position: static; }
@media (max-width: 1100px) { .pf .pf-chain { grid-template-columns: minmax(0, 1fr); } .pf .pf-chain__panel { border-inline-start: 0; border-block-start: 1px solid var(--pf-line); max-height: none; } }
@media (max-width: 760px) { .pf .pf-chain__main { grid-template-columns: minmax(0, 1fr); } .pf .pf-chain__intro { border-inline-end: 0; border-block-end: 1px solid var(--pf-line); } }
.pf[dir="rtl"] :is(.pf-chain__eb, .pf-chain__lane, .pf-chain__k, .pf-chain__tabs button, .pf-chain__step-k, .pf-chain__strip dt) { letter-spacing: 0; text-transform: none; }

   and a search. */
.pf[data-design="diwan"] .pf-section:has(.pf-sig) { grid-template-columns: minmax(0, 1fr); }
.pf[data-design="diwan"] .pf-section:has(.pf-sig) > *, .pf[data-design="diwan"] .pf-section:has(.pf-sig) > .pf-h2 { grid-column: 1; grid-row: auto; position: static; }

/* Faculty figure: a trace per discipline, a pulse per course. */
.pf .pf-sig { margin: 0; padding: 8px 0; border-block: 1px solid var(--pf-line); overflow-x: auto; }
.pf .pf-sig svg { display: block; width: 100%; min-width: 760px; height: auto; }
.pf .pf-sig__trace { fill: none; stroke: var(--pf-ink-4); stroke-width: 1.4; stroke-linejoin: round; }
.pf .pf-sig__trace--on { stroke: var(--pf-tint-b); stroke-width: 2; }
.pf .pf-sig__n { fill: var(--pf-tint-b); font-family: var(--pf-mono); font-size: 15px; }
.pf .pf-sig__t { fill: var(--pf-ink-2); font-family: var(--pf-font); font-size: 13px; }
.pf .pf-sig__note { margin: 10px 0 0; color: var(--pf-ink-3); font-size: 13px; }

/* Research hub: sources listed for reference, never queried until approved. */
.pf .pf-hub { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); list-style: none; margin: 16px 0 0; padding: 0; border-block-start: 1px solid var(--pf-line); border-inline-start: 1px solid var(--pf-line); }
.pf .pf-hub li { padding: 14px 16px; border-inline-end: 1px solid var(--pf-line); border-block-end: 1px solid var(--pf-line); }
.pf .pf-hub__t { margin: 0 0 4px; color: var(--pf-ink); font-size: 14px; font-weight: 600; }
.pf .pf-hub__s { margin: 0 0 8px; color: var(--pf-ink-3); font-size: 12.5px; }
.pf .pf-hub__st { margin: 0; }
.pf .pf-hub .pf-status { white-space: normal; }
.pf .pf-chart-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.pf .pf-chart-table th { padding: 4px 6px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 10.5px; font-weight: 500; text-align: start; border-block-end: 1px solid var(--pf-line-strong); }
.pf .pf-chart-table td { padding: 4px 6px; border-block-end: 1px solid var(--pf-line); color: var(--pf-ink); font-size: 15px; }

/* Language specimen: the language's own name, large, in its script, on its register page. */
.pf .pf-specimen { margin: 0; padding: 28px 32px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-pastel, transparent); text-align: center; color: var(--pf-ink); font-family: var(--pf-font); font-size: clamp(40px, 5.4vw, 76px); font-weight: 500; line-height: 1.35; letter-spacing: 0; }
/* Live maps: the MapLibre canvas in a hairline frame, the layer panel beside it. No shadow, no glow. */
.pf .pf-live { display: grid; grid-template-columns: minmax(0, 1fr) 300px; margin: 0; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-canvas); overflow: hidden; }
.pf .pf-live__stage { position: relative; min-width: 0; border-inline-end: 1px solid var(--pf-line); }
.pf .pf-live__map { height: clamp(360px, 58vh, 560px); background: var(--pf-surface); }
.pf .pf-live--tall .pf-live__map { height: clamp(440px, 74vh, 760px); }
.pf .pf-live--short .pf-live__map { height: clamp(280px, 40vh, 380px); }
.pf .pf-live__msg { margin: 0; padding: 24px; color: var(--pf-ink-3); font-size: 14px; }
.pf .pf-live__tools { position: absolute; inset-block-end: 12px; inset-inline-start: 12px; display: flex; gap: 6px; z-index: 2; }
.pf .pf-live__btn { min-height: 30px; margin: 0; padding: 0 10px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-xs); background: var(--pf-canvas); color: var(--pf-ink); font: 500 12.5px/1 var(--pf-font); cursor: pointer; }
.pf .pf-live__btn[aria-pressed="true"] { border-color: var(--pf-ink); background: var(--pf-ink); color: var(--pf-canvas); }
.pf .pf-live__side { padding: 16px 18px; min-width: 0; overflow: auto; }
.pf .pf-live__h { margin: 0 0 10px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; }
.pf[dir="rtl"] .pf-live__h { font-family: var(--pf-font); letter-spacing: 0; font-size: 13px; text-transform: none; }
.pf .pf-live__layers { list-style: none; margin: 0 0 14px; padding: 0; }
.pf .pf-live__layer { padding: 9px 0; border-block-end: 1px solid var(--pf-line); }
.pf .pf-live__layer label { display: flex; align-items: center; gap: 9px; cursor: pointer; font-size: 14px; color: var(--pf-ink); }
.pf .pf-live__layer.is-held label { cursor: default; color: var(--pf-ink-3); }
.pf .pf-live__layer input { margin: 0; accent-color: var(--pf-ink); }
.pf .pf-live__layer .pf-status { margin-block-start: 6px; }
.pf .pf-live__note { margin: 6px 0 0; color: var(--pf-ink-3); font-size: 12.5px; line-height: 1.5; }
.pf .pf-live__sw { flex: none; width: 12px; height: 12px; border-radius: 2px; background: var(--pf-tint-a); }
.pf .pf-live__sw--city { border-radius: 50%; background: var(--pf-tint-a); box-shadow: inset 0 0 0 2px var(--pf-canvas), 0 0 0 1px var(--pf-tint-a); }
.pf .pf-live__sw--link { height: 2px; width: 16px; border-radius: 0; background: var(--pf-tint-b); }
.pf .pf-live__sw--home { background: transparent; border: 1.5px solid var(--pf-ink); }
.pf .pf-live__sw--tier { background: linear-gradient(90deg, var(--pf-ink) 50%, var(--pf-tint-b) 50%); }
.pf .pf-live__sw--h3 { clip-path: polygon(25% 5%, 75% 5%, 100% 50%, 75% 95%, 25% 95%, 0 50%); }
.pf .pf-live__sw--quake { border-radius: 50%; background: var(--pf-tint-b); }
.pf .pf-live__sw--alert { border-radius: 50%; background: var(--pf-pend); }
.pf .pf-live__sw--unit { background: transparent; border: 1px dashed var(--pf-ink-3); }
.pf .pf-live__sw--grid { background: repeating-linear-gradient(90deg, var(--pf-muted-bg) 0 3px, var(--pf-ink-3) 3px 4px); }
.pf .pf-live__places { margin: 0 0 12px; font-size: 13.5px; }
.pf .pf-live__places summary { cursor: pointer; color: var(--pf-ink-2); }
.pf .pf-live__places ul { list-style: none; margin: 8px 0 0; padding: 0; max-height: 220px; overflow: auto; }
.pf .pf-live__places li { padding: 3px 0; }
.pf .pf-live__attr { margin: 0; color: var(--pf-ink-4); font-size: 11.5px; line-height: 1.5; }
.pf .pf-figure-map__cap { margin-block-start: 12px; color: var(--pf-ink-3); font-size: 13.5px; }
.pf .pf-figure-map__cap p { margin: 8px 0 0; }
.pf .maplibregl-popup-content { padding: 8px 12px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-xs); background: var(--pf-canvas); color: var(--pf-ink); box-shadow: none; font: 500 13.5px/1.4 var(--pf-font); }
.pf .maplibregl-popup-content p { margin: 4px 0 0; color: var(--pf-ink-3); font-weight: 400; }
.pf .maplibregl-popup-tip { display: none; }
.pf .maplibregl-ctrl-group { border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-xs); box-shadow: none; background: var(--pf-canvas); }
.pf .maplibregl-ctrl-attrib { background: color-mix(in srgb, var(--pf-canvas) 85%, transparent); color: var(--pf-ink-3); font-size: 11px; }
@media (max-width: 860px) { .pf .pf-live { grid-template-columns: minmax(0, 1fr); } .pf .pf-live__stage { border-inline-end: 0; border-block-end: 1px solid var(--pf-line); } }
/* Citations (scripts/lib/cite.mjs): "Cite this page", collapsed under <details>, and reference lists with their
   verification chips. Citation text is set as written; long DOIs and URLs wrap instead of overflowing. */
.pf .pf-cite { margin-block: 40px 0; border-block: 1px solid var(--pf-line); }
.pf .pf-cite > summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 48px; padding: 12px 0; color: var(--pf-ink); font-size: 14px; font-weight: 500; cursor: pointer; list-style: none; }
.pf .pf-cite > summary::-webkit-details-marker { display: none; }
.pf .pf-cite > summary::after { content: "+"; flex: none; font-family: var(--pf-mono); color: var(--pf-ink-3); transition: transform .18s var(--pf-ease); }
.pf .pf-cite[open] > summary::after { transform: rotate(45deg); }
.pf .pf-cite > summary:focus-visible { outline: 2px solid var(--pf-focus); outline-offset: 2px; }
.pf .pf-cite__body { padding: 0 0 20px; }
.pf .pf-cite__list { display: grid; gap: 0; margin: 0; }
.pf .pf-cite__row { display: grid; grid-template-columns: minmax(72px, 9ch) minmax(0, 1fr); gap: 4px 20px; padding-block: 14px; border-block-start: 1px solid var(--pf-line); }
.pf .pf-cite__row dt { margin: 0; padding-block-start: 2px; color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.pf .pf-cite__row dd { margin: 0; min-width: 0; }
.pf .pf-cite__text { margin: 0; max-width: 75ch; color: var(--pf-ink-2); font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.pf .pf-cite__code { margin: 0; max-height: 14em; overflow: auto; padding: 12px 14px; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-muted-bg); color: var(--pf-ink-2); font-family: var(--pf-mono); font-size: 12px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; tab-size: 2; direction: ltr; text-align: start; }
.pf .pf-cite__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 8px 0 0; }
.pf .pf-cite__tools:empty { display: none; }
.pf .pf-cite__copy { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-xs); background: var(--pf-canvas); color: var(--pf-ink); font: inherit; font-size: 13px; cursor: pointer; }
.pf .pf-cite__copy:hover { background: var(--pf-hover); }
.pf .pf-cite__copy:focus-visible, .pf .pf-cite__dl:focus-visible { outline: 2px solid var(--pf-focus); outline-offset: 2px; }
.pf .pf-cite__dl { font-size: 13px; }
.pf .pf-cite__meta { margin: 14px 0 0; padding-block-start: 14px; border-block-start: 1px solid var(--pf-line); color: var(--pf-ink-3); font-size: 13px; }
.pf .pf-refs { margin: 0; padding: 0; list-style: none; }
.pf .pf-ref { padding-block: 12px; padding-inline-start: 2em; text-indent: -2em; border-block-end: 1px solid var(--pf-line); color: var(--pf-ink-2); font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.pf .pf-ref .pf-chip { text-indent: 0; margin-inline-start: 4px; }
.pf .pf-ref:target { background: var(--pf-muted-bg); }
@media (max-width: 560px) { .pf .pf-cite__row { grid-template-columns: minmax(0, 1fr); } }
@media print { .pf .pf-cite__tools { display: none; } .pf .pf-cite__code { max-height: none; } }

/* Hairline cell grids: lines drawn by the cells (end and bottom edges) and by the frame (top and start
   edges), so an unfinished last row leaves open canvas rather than a grey block. */
.pf :is(.pf-figures, .pf-outcomes, .pf-asks, .pf-routes, .pf-joinsteps, .pf-bento, .pf-ribbon), .pf[data-design="contour"] .pf-cards { gap: 0; background: none; border: 0; border-block-start: 1px solid var(--pf-line); border-inline-start: 1px solid var(--pf-line); border-radius: var(--pf-r-sm) 0 0 0; overflow: visible; }
.pf :is(.pf-figures > .pf-figure, .pf-outcomes > li, .pf-asks > li, .pf-routes > .pf-route-card, .pf-joinsteps > li, .pf-bento > .pf-tile, .pf-ribbon > .pf-ribbon__era), .pf[data-design="contour"] .pf-cards > .pf-card { border: 0; border-inline-end: 1px solid var(--pf-line); border-block-end: 1px solid var(--pf-line); border-radius: 0; }
.pf .pf-hero__aside .pf-figures, .pf .pf-strip .pf-figures { border: 0; border-radius: 0; }
.pf .pf-hero__aside .pf-figures > .pf-figure { border-inline-end: 0; }
/* Accessibility (audit A01, A02; WCAG 2.2 AA). Footer links are targets at least 24px tall (2.5.8).
   The skip link of the preview pages shows only when focused (2.4.1); in WordPress the theme gives its own. */
.pf .pf-netfoot a { display: inline-block; min-block-size: 24px; line-height: 24px; }
.pf-skip { position: absolute; inset-inline-start: 8px; inset-block-start: -100px; z-index: 100; padding: 8px 12px; background: #111; color: #fff; font: 14px ui-monospace, monospace; }
.pf-skip:focus { inset-block-start: 8px; }

@media (max-width: 960px) {
  .pf .pf-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf .pf-feature--span2, .pf .pf-feature--span3 { grid-column: 1 / -1; }
  .pf .pf-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf .pf-routes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .pf { font-size: 15.5px; }
  .pf .pf-hero { grid-template-columns: minmax(0, 1fr); gap: 32px; padding-block: 40px 32px; }
  .pf .pf-netfoot { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf .pf-netfoot__col--countries { grid-column: 1 / -1; }
  .pf[data-design="diwan"] :is(.pf-section, .pf-toc) { grid-template-columns: minmax(0, 1fr); }
  .pf[data-design="diwan"] .pf-section > *, .pf[data-design="diwan"] .pf-section > .pf-h2 { grid-column: 1; grid-row: auto; position: static; }
  .pf[data-design="diwan"] .pf-cards > .pf-card { grid-template-columns: minmax(0, 1fr); grid-template-areas: "meta" "title" "text" "foot"; }
  .pf .pf-strip :is(.pf-signal, .pf-figure) + :is(.pf-signal, .pf-figure) { padding-inline-start: 0; border-inline-start: 0; border-block-start: 1px solid var(--pf-line); }
  .pf .pf-strip :is(.pf-signal, .pf-figure) { padding: 20px 0; }
  .pf .pf-timeline__item { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .pf .pf-facts { grid-template-columns: minmax(0, 1fr); }
  .pf .pf-fact dt { border-block-end: 0; padding-block-end: 0; }
  .pf .pf-donut { grid-template-columns: minmax(0, 1fr); justify-items: center; }
  .pf .pf-bars__row { grid-template-columns: minmax(0, 1fr) auto; }
  .pf .pf-bars__track { grid-column: 1 / -1; grid-row: 2; }
  .pf .pf-ribbon { flex-wrap: wrap; }
  .pf .pf-ribbon__era { flex-basis: 40%; }
  .pf .pf-top { flex-wrap: wrap; padding-block: 8px 0; }
  .pf .pf-sitenav { order: 3; flex-basis: 100%; min-height: 44px; }
}
@media (max-width: 520px) {
  .pf .pf-features { grid-template-columns: minmax(0, 1fr); }
  .pf .pf-bento, .pf .pf-routes { grid-template-columns: minmax(0, 1fr); }
  .pf .pf-tile--wide { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) { .pf * { transition: none !important; animation: none !important; } }
@media print { .pf .pf-top, .pf .pf-netfoot, .pf .pf-actions, .pf .pf-toc, .pf .pf-filters, .pf .pf-closing { display: none; } .pf .pf-section { break-inside: avoid; } }

/* Preview only (dist/preview) */
body.pf-preview { margin: 0; background: #ffffff; }
.pf-preview-bar { margin: 0; padding: 8px 16px; overflow-wrap: anywhere; font: 12px ui-monospace, monospace; background: #111; color: #ddd; }
.pf-preview-bar button { margin-inline-start: 8px; font: inherit; }
@media (prefers-color-scheme: dark) { body.pf-preview:not([data-theme="light"]) { background: #000000; } }
body.pf-preview[data-theme="dark"] { background: #000000; }
body.pf-preview[data-theme="light"] { background: #ffffff; }

/* Page hubs: "Research and sources", course further reading and the hub index (scripts/lib/hubs.mjs).
   A ruled list of open scholarly metadata: title linked to its DOI, authors, year and venue, then small
   badges for type, source, open access and licence, and a footnote naming each source. */
.pf .pf-srchub { list-style: none; margin: 16px 0 0; padding: 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-srchub__item { display: grid; gap: 4px; min-width: 0; padding-block: 14px; border-block-end: 1px solid var(--pf-line); }
.pf .pf-srchub__t { margin: 0; color: var(--pf-ink); font-size: 15px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.pf .pf-srchub__t a { color: inherit; text-decoration: none; }
.pf .pf-srchub__t a:hover, .pf .pf-srchub__t a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.pf .pf-srchub__m { margin: 0; color: var(--pf-ink-3); font-size: 13px; overflow-wrap: anywhere; }
.pf .pf-srchub__b { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0 0; }
.pf .pf-srchub__b > span { display: inline-flex; align-items: center; gap: 6px; padding: 2px 7px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-xs); color: var(--pf-ink-3); font-family: var(--pf-mono); font-size: 10.5px; letter-spacing: .04em; line-height: 1.5; white-space: nowrap; }
.pf .pf-srchub__b > .pf-srchub__src { color: var(--pf-ink-2); background: var(--pf-muted-bg); }
.pf .pf-srchub__b > .pf-srchub__oa { color: var(--pf-ok); border-color: currentColor; }
.pf .pf-srchub__b > .pf-srchub__oa::before { content: ""; inline-size: 6px; block-size: 6px; border-radius: 50%; background: currentColor; }
.pf .pf-srchub__label { margin: 0 0 4px; color: var(--pf-pend); font-size: 13px; }
.pf .pf-srchub__foot { margin: 14px 0 0; color: var(--pf-ink-4); font-size: 12.5px; line-height: 1.6; overflow-wrap: anywhere; }
.pf .pf-srchub__foot a { color: var(--pf-ink-3); }
@media print { .pf .pf-srchub__item { break-inside: avoid; } }

/* Notice, positioning and term tooltips (scripts/lib/notice.mjs).
   "Before you begin": one quiet line, expandable with <details>; a hairline frame with a 2 px start rule.
   Term tooltips: a dotted-underline button with a role="tooltip" popover, shown on hover and focus without
   JavaScript and toggled on click or tap with it (Escape closes). The footer positioning line, the Academy strip
   and the About page register. Tokens only; logical properties for right-to-left pages. */
.pf .pf-notice { margin-block: 20px 8px; border: 1px solid var(--pf-line); border-inline-start: 2px solid var(--pf-ink-3); border-radius: var(--pf-r-sm); background: var(--pf-elevated); font-size: 14px; }
.pf .pf-notice__sum { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; min-height: 44px; padding: 10px 16px; padding-inline-end: 40px; position: relative; color: var(--pf-ink-2); cursor: pointer; list-style: none; }
.pf .pf-notice__sum::-webkit-details-marker { display: none; }
.pf .pf-notice__sum::after { content: "+"; position: absolute; inset-inline-end: 16px; top: 10px; font-family: var(--pf-mono); color: var(--pf-ink-3); transition: transform .18s var(--pf-ease); }
.pf .pf-notice[open] > .pf-notice__sum::after { transform: rotate(45deg); }
.pf .pf-notice__sum:focus-visible { outline: 2px solid var(--pf-focus); outline-offset: 2px; }
.pf .pf-notice__k { color: var(--pf-ink); font-weight: 600; }
.pf .pf-notice__tags { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.pf .pf-notice__tag { padding: 1px 7px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-xs); color: var(--pf-ink-3); font-size: 12px; white-space: nowrap; }
.pf .pf-notice__body { padding: 4px 16px 16px; max-width: 78ch; color: var(--pf-ink-2); }
.pf .pf-notice__body p { margin: 0 0 10px; }
.pf .pf-notice__h { margin: 18px 0 8px; color: var(--pf-ink); font-size: 15px; font-weight: 600; }
.pf .pf-notice__h4 { margin: 14px 0 6px; color: var(--pf-ink-3); font-size: 13px; font-weight: 600; }
.pf .pf-notice__ctx, .pf .pf-notice__persp, .pf .pf-notice__srcs { list-style: none; margin: 0; padding: 0; }
.pf .pf-notice__ctx li, .pf .pf-notice__persp > li { padding-block: 8px; border-block-end: 1px solid var(--pf-line); }
.pf .pf-notice__ctx strong, .pf .pf-notice__persp strong { color: var(--pf-ink); font-weight: 600; }
.pf .pf-notice__labels { display: grid; gap: 6px; margin: 0 0 6px; }
.pf .pf-notice__labels > div { display: grid; grid-template-columns: 11.5rem minmax(0, 1fr); gap: 12px; align-items: baseline; }
.pf .pf-notice__labels dt, .pf .pf-notice__labels dd { margin: 0; }
.pf .pf-notice__src { padding-block: 6px; font-size: 13px; overflow-wrap: anywhere; }
.pf .pf-notice__small { color: var(--pf-ink-3); font-size: 13px; }
.pf .pf-notice__foot { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 16px 0 0 !important; padding-block-start: 12px; border-block-start: 1px solid var(--pf-line); }
.pf .pf-notice a { color: var(--pf-ink); }
@media (max-width: 520px) { .pf .pf-notice__labels > div { grid-template-columns: minmax(0, 1fr); gap: 2px; } }
@media print { .pf .pf-notice__body { display: block; } }

.pf .pf-term { position: relative; display: inline; }
.pf .pf-term__btn { display: inline; margin: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: help; text-decoration: underline dotted var(--pf-ink-4); text-underline-offset: 3px; }
.pf .pf-term__btn abbr { text-decoration: none; border: 0; cursor: inherit; }
.pf .pf-term__btn:focus-visible { outline: 2px solid var(--pf-focus); outline-offset: 2px; border-radius: 2px; }
.pf .pf-term__tip { position: absolute; z-index: 30; inset-block-start: calc(100% + 6px); inset-inline-start: 0; width: max-content; max-width: min(34ch, 80vw); padding: 8px 10px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-sm); background: var(--pf-surface); color: var(--pf-ink-2); font-family: var(--pf-font); font-size: 13px; font-weight: 400; line-height: 1.5; letter-spacing: 0; text-transform: none; white-space: normal; text-align: start; visibility: hidden; opacity: 0; transition: opacity .12s var(--pf-ease); pointer-events: none; }
.pf .pf-term:hover > .pf-term__tip, .pf .pf-term__btn:focus-visible + .pf-term__tip, .pf .pf-term.is-open > .pf-term__tip { visibility: visible; opacity: 1; }
.pf .pf-term.is-closed > .pf-term__tip { visibility: hidden; opacity: 0; }
.pf .pf-term.is-end > .pf-term__tip { inset-inline-start: auto; inset-inline-end: 0; }
.pf :is(.pf-status, .pf-chip) .pf-term__tip { text-transform: none; letter-spacing: 0; }

.pf .pf-netfoot__pos { grid-column: 1 / -1; margin: 8px 0 0; padding-block-start: 20px; border-block-start: 1px solid var(--pf-line); color: var(--pf-ink-3); font-size: 13px; }
.pf .pf-netfoot__pos a { margin-inline-start: 6px; }
.pf .pf-acad-strip { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin: 12px 0 0; padding: 8px 0; border-block-end: 1px solid var(--pf-line); color: var(--pf-ink-3); font-size: 13.5px; }
.pf .pf-acad-strip .pf-term__btn { color: var(--pf-ink); font-weight: 600; }
.pf .pf-about__reg { display: grid; gap: 0; border-block-start: 1px solid var(--pf-line); }
.pf .pf-about__item { padding-block: 16px; border-block-end: 1px solid var(--pf-line); max-width: 78ch; scroll-margin-block-start: calc(var(--pf-top-h) + 16px); }
.pf .pf-about__item p { margin: 0 0 8px; }
.pf .pf-about__short { color: var(--pf-ink); font-weight: 500; }
.pf .pf-about__src { color: var(--pf-ink-4); font-size: 12.5px; }
.pf .pf-about__terms { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 1px; margin: 0; border: 1px solid var(--pf-line); border-radius: var(--pf-r-sm); background: var(--pf-line); overflow: hidden; }
.pf .pf-about__terms > div { padding: 12px 14px; background: var(--pf-canvas); }
.pf .pf-about__terms dt { color: var(--pf-ink); font-weight: 600; }
.pf .pf-about__terms dd { margin: 4px 0 0; color: var(--pf-ink-2); font-size: 14px; }

/* Nexus Standards layer (decision D28, 2026-10-23): both networks follow the Nexus Standards colour system and page
   grammar (nexus-wp isolated-html/_shared/nexus-embed.css, block nx-tokens:nxsred; docs/design/NEXUS_STANDARDS_DESIGN_SYSTEM.md;
   kits/tokens.json; the Risk Academy faculty pastels in academy/design.mjs). Rules of the system:
   - The shell is black and white: ink, canvas and hairlines carry the page.
   - The red to yellow gradient (#ff0044, #ff5a2a, #ffa100; dark #ff4d6d, #ff8a4c, #ffc233) is the network's mark: the top
     bar rule, the master site and the country programmes.
   - Each service subsite has an inner-page hue, a pastel gradient from the same family (the estate hues of kits/tokens.json):
     it draws the hero ruler, the section rules, the card and tab underlines, chart marks and the key figures.
   - A gradient is never a fill behind text, a tab, a label, a button or a box: it is a 1 to 2 px rule, an underline, a bar,
     or the clip of a large key figure. Text in a hue uses the solved ink (4.5:1 or more on both surfaces of its theme).
   - No shadows, glows, blur or background images. */

/* Inner-page hues of the 8 service subsites: a, b, c are the pastel gradient (pastel to deep), ink is the text-safe hue.
   Sources: civic GRF rose, learn Risk Academy green, language Nexus Standards violet, opportunities GCRI yellow,
   research GRA blue, development GRIx orange (kits/tokens.json, OD-53); heritage and news from the kit pastel family
   (nexus-embed.css nx-tokens:pastel, health and water), solved for contrast. */
.pf[data-site="/civic/"], .pf [data-area="civic"] { --pf-area-a-l: #ffb3c1; --pf-area-b-l: #ff4d6d; --pf-area-c-l: #e11d48; --pf-area-ink-l: #be123c; --pf-area-a-d: #ffd1da; --pf-area-b-d: #ff8fa3; --pf-area-c-d: #ff5c75; --pf-area-ink-d: #ff5c75; }
.pf[data-site="/learn/"], .pf [data-area="learn"] { --pf-area-a-l: #7fdcbf; --pf-area-b-l: #2fae8a; --pf-area-c-l: #1f7aa0; --pf-area-ink-l: #0f7a5f; --pf-area-a-d: #b5f0dc; --pf-area-b-d: #5fd3b0; --pf-area-c-d: #4aa3c9; --pf-area-ink-d: #5fd3b0; }
.pf[data-site="/language/"], .pf [data-area="language"] { --pf-area-a-l: #c4a8ff; --pf-area-b-l: #8a55e6; --pf-area-c-l: #5a22a8; --pf-area-ink-l: #6b2fc0; --pf-area-a-d: #e6d6ff; --pf-area-b-d: #c59bff; --pf-area-c-d: #9a6bf0; --pf-area-ink-d: #c59bff; }
.pf[data-site="/opportunities/"], .pf [data-area="opportunities"] { --pf-area-a-l: #ffe66d; --pf-area-b-l: #ffb300; --pf-area-c-l: #ff8c00; --pf-area-ink-l: #946200; --pf-area-a-d: #fff1a8; --pf-area-b-d: #ffc233; --pf-area-c-d: #ff9f1c; --pf-area-ink-d: #ffc233; }
.pf[data-site="/research/"], .pf [data-area="research"] { --pf-area-a-l: #9ec5ff; --pf-area-b-l: #4f8cff; --pf-area-c-l: #2563eb; --pf-area-ink-l: #2563eb; --pf-area-a-d: #cfe3ff; --pf-area-b-d: #8fbaff; --pf-area-c-d: #6ea8ff; --pf-area-ink-d: #6ea8ff; }
.pf[data-site="/development/"], .pf [data-area="development"] { --pf-area-a-l: #ffc29a; --pf-area-b-l: #ff8a3d; --pf-area-c-l: #c2410c; --pf-area-ink-l: #c2410c; --pf-area-a-d: #ffc29a; --pf-area-b-d: #ff8a3d; --pf-area-c-d: #e8691f; --pf-area-ink-d: #ff8a3d; }
.pf[data-site="/heritage/"], .pf [data-area="heritage"] { --pf-area-a-l: #f5b8f0; --pf-area-b-l: #d946ef; --pf-area-c-l: #a21caf; --pf-area-ink-l: #a21caf; --pf-area-a-d: #fbd5f9; --pf-area-b-d: #f0abfc; --pf-area-c-d: #d97ff0; --pf-area-ink-d: #f0abfc; }
.pf[data-site="/news/"], .pf [data-area="news"] { --pf-area-a-l: #a5f3fc; --pf-area-b-l: #22b8d4; --pf-area-c-l: #0e7490; --pf-area-ink-l: #0e7490; --pf-area-a-d: #cffafe; --pf-area-b-d: #67e8f9; --pf-area-c-d: #38bdf8; --pf-area-ink-d: #67e8f9; }
/* An element marked with an area (the area cells on the master site) resolves that area's hue for its own theme. */
.pf [data-area] { --pf-area-a: var(--pf-area-a-l); --pf-area-b: var(--pf-area-b-l); --pf-area-c: var(--pf-area-c-l); --pf-area-ink: var(--pf-area-ink-l); --pf-area-grad: linear-gradient(90deg, var(--pf-area-a), var(--pf-area-b) 55%, var(--pf-area-c)); --pf-grad: var(--pf-area-grad); }
@media (prefers-color-scheme: dark) { html:not(.light-mode):not([data-bx-mode="light"]) .pf:not([data-theme="light"]) [data-area] { --pf-area-a: var(--pf-area-a-d); --pf-area-b: var(--pf-area-b-d); --pf-area-c: var(--pf-area-c-d); --pf-area-ink: var(--pf-area-ink-d); } }
html.dark-mode .pf:not([data-theme="light"]) [data-area], html[data-bx-mode="dark"] .pf:not([data-theme="light"]) [data-area], body.dark-mode .pf:not([data-theme="light"]) [data-area], body.buddyx-dark-theme .pf:not([data-theme="light"]) [data-area], html[data-theme="dark"] .pf:not([data-theme="light"]) [data-area], .pf[data-theme="dark"] [data-area] { --pf-area-a: var(--pf-area-a-d); --pf-area-b: var(--pf-area-b-d); --pf-area-c: var(--pf-area-c-d); --pf-area-ink: var(--pf-area-ink-d); }
.pf, .pf [data-area] { --pf-area-fig: linear-gradient(90deg, var(--pf-area-ink), color-mix(in srgb, var(--pf-area-ink) 55%, var(--pf-area-c))); --pf-pastel: var(--pf-canvas); }

/* The shell: the top bar always carries the network's red to yellow; links take the site's hue only as an underline. */
.pf .pf-top::before { background: var(--pf-nxs-grad); }
.pf a:hover { text-decoration-color: var(--pf-area-b); }
.pf ::selection { background: color-mix(in srgb, var(--pf-area-b) 28%, transparent); }

/* Hero: the eyebrow as a boxed mono document line; the ruler under the hero (a full hairline with 24 px ticks and a
   240 px segment of the site's gradient); the record beside the text on the canvas, its 2 px rule in the hue. */
.pf .pf-hero { position: relative; background: var(--pf-grad) left bottom / 240px 2px no-repeat, linear-gradient(var(--pf-line-strong), var(--pf-line-strong)) left bottom / 100% 1px no-repeat; }
.pf[dir="rtl"] .pf-hero { background-position: right bottom, right bottom; }
.pf .pf-hero__art { display: block; position: absolute; inset-inline: 0; inset-block-end: 1px; height: 6px; background: repeating-linear-gradient(90deg, var(--pf-line-strong) 0 1px, transparent 1px 24px); pointer-events: none; }
.pf[dir="rtl"] .pf-hero__art { background: repeating-linear-gradient(270deg, var(--pf-line-strong) 0 1px, transparent 1px 24px); }
.pf .pf-hero .pf-eyebrow { display: inline-flex; max-width: 100%; padding: 6px 12px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-r-xs); color: var(--pf-ink-2); }
.pf .pf-hero .pf-eyebrow > span { min-width: 0; overflow-wrap: anywhere; }
.pf .pf-hero__aside { background: var(--pf-canvas); }
.pf .pf-hero + .pf-strip :is(.pf-signals, .pf-figures) { border-block-start: 0; }
/* The figure slot (the homepage globe): hidden while empty; when a module fills it, the text keeps five columns and
   the figure takes seven, as on the Nexus Standards home. */
.pf .pf-hero__slot:empty { display: none; }
.pf .pf-hero--slot:has(.pf-hero__slot:not(:empty)) { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.pf .pf-hero--slot .pf-hero__slot:not(:empty) { grid-column: 2; grid-row: 1 / span 2; align-self: center; min-width: 0; }
.pf .pf-hero--slot:has(.pf-hero__slot:not(:empty)) .pf-hero__aside { grid-column: 1; }
@media (max-width: 900px) { .pf .pf-hero--slot:has(.pf-hero__slot:not(:empty)) { grid-template-columns: minmax(0, 1fr); } .pf .pf-hero--slot .pf-hero__slot:not(:empty) { grid-column: 1; grid-row: auto; } }

/* Key figures: large values clipped to the site's deep gradient (ink to deep hue); labels stay ink. */
.pf :is(.pf-hstat__value:not(.pf-hstat__value--text), .pf-signal:not(.pf-signal--text) dd, .pf-tile__value) { background-image: var(--pf-area-fig); -webkit-background-clip: text; background-clip: text; color: transparent; }
@media (forced-colors: active) { .pf :is(.pf-hstat__value, .pf-signal dd, .pf-tile__value) { background: none; color: CanvasText; } }
@media print { .pf :is(.pf-hstat__value, .pf-signal dd, .pf-tile__value) { background: none; color: #000; } }

/* Sections: the index as a 28 px mono numeral in ink with a 48 px rule in the site's gradient (as on the Standards home); a ruler of 24 px ticks
   along the top hairline of every section. */
.pf .pf-section { background: repeating-linear-gradient(90deg, var(--pf-line) 0 1px, transparent 1px 24px) left top / 100% 6px no-repeat; }
.pf[dir="rtl"] .pf-section { background: repeating-linear-gradient(270deg, var(--pf-line) 0 1px, transparent 1px 24px) right top / 100% 6px no-repeat; }
.pf .pf-section .pf-h2 .pf-num { gap: 14px; color: var(--pf-ink); font-family: var(--pf-mono); font-size: 28px; font-weight: 500; letter-spacing: -.02em; line-height: 1; text-transform: none; }
.pf .pf-section .pf-h2 .pf-num::after { width: 48px; height: 2px; background: var(--pf-grad); }
.pf .pf-toc__n { color: var(--pf-area-ink); }
.pf .pf-toc a:hover .pf-toc__n { color: var(--pf-ink); }

/* Cards, feature cells and catalogue rows: the hued rule grows across on hover; the arrow turns ink. */
.pf .pf-card:has(a):hover, .pf .pf-feature:has(a):hover { border-color: var(--pf-ink-3); }
.pf .pf-feature--lead { background: var(--pf-canvas); }
.pf .pf-feature--lead::before { width: 48px; }
.pf .pf-feature--lead:has(a):hover::before, .pf .pf-feature--lead:not(:has(a))::before { width: 100%; }
.pf .pf-feature[data-area]::before { width: 48px; }
.pf .pf-feature[data-area]:hover::before { width: 100%; }
.pf .pf-feature[data-area] .pf-feature__n { color: var(--pf-area-ink); }
.pf .pf-feature[data-area] .pf-feature__icon { color: var(--pf-area-ink); }

/* Stat rows and count bands: each cell opens with a 28 px rule in the hue; the band closes on a hairline. */
.pf .pf-hstat::before { width: 48px; background: var(--pf-grad); }
.pf .pf-strip .pf-signal { position: relative; }
.pf .pf-strip .pf-signal::before { content: ""; position: absolute; inset-block-start: -1px; inset-inline-start: 0; width: 48px; height: 2px; background: var(--pf-grad); }
.pf .pf-strip .pf-signal + .pf-signal::before { inset-inline-start: 24px; }

/* Chart marks on light take the site's text-safe ink (4.5:1 or more on white), so bars, ranges and globe circles keep
   3:1 against the canvas on every service subsite; on dark the vivid hue already does. */
/* Status chips: registry words in mono, never coloured; the dot carries the state and the words say it. */
.pf .pf-status, .pf .pf-chip { background: var(--pf-canvas); }

/* The Academy: each faculty row opens with a rule in the chart series, so sibling faculties never read as one; the
   faculty index and the catalogue share the inner-page hue of the learn site. */
.pf .pf-acad-fac { position: relative; }
.pf .pf-acad-fac::before { content: ""; position: absolute; inset-block-start: -1px; inset-inline-start: 0; width: 48px; height: 2px; background: linear-gradient(90deg, var(--fac-hue, var(--pf-area-b)), color-mix(in srgb, var(--fac-hue, var(--pf-area-b)) 45%, var(--pf-canvas))); }
.pf .pf-acad-fac:nth-child(8n + 1) { --fac-hue: var(--pf-c5); }
.pf .pf-acad-fac:nth-child(8n + 2) { --fac-hue: var(--pf-c4); }
.pf .pf-acad-fac:nth-child(8n + 3) { --fac-hue: var(--pf-c6); }
.pf .pf-acad-fac:nth-child(8n + 4) { --fac-hue: var(--pf-c1); }
.pf .pf-acad-fac:nth-child(8n + 5) { --fac-hue: var(--pf-c3); }
.pf .pf-acad-fac:nth-child(8n + 6) { --fac-hue: var(--pf-c8); }
.pf .pf-acad-fac:nth-child(8n + 7) { --fac-hue: var(--pf-c7); }
.pf .pf-acad-fac:nth-child(8n + 8) { --fac-hue: var(--pf-c2); }
.pf .pf-acad-fac__n { color: var(--fac-hue, var(--pf-ink-4)); font-size: 13px; }
.pf .pf-acad-fields li { background: var(--pf-canvas); }

/* Tabs and the contents bar: the current item is underlined in the hue, never filled (pressed filter buttons stay the
   kit's inverted primary). */
.pf .pf-sitenav a[aria-current="page"]::after { background: var(--pf-grad); }

/* The closing band stays inverted; its top rule is the network's red to yellow. */
.pf .pf-closing::before { background: var(--pf-nxs-grad); }
.pf .pf-feature__icon { color: var(--pf-area-ink); }

/* =================== Hero layers, the homepage globe in the hero, network design profiles ===================
   Hero layers (scripts/lib/html.mjs hero()), back to front: pf-hero__art, an absolutely positioned art layer behind
   the text (empty unless a motion scene mounts in it through data-pf-motion; it then carries a scrim from the
   canvas so the text stays readable), pf-hero__rule (the ruler under the hero in the network's pattern), then the
   text, the record and the figure slot. */
.pf .pf-hero { isolation: isolate; }
.pf .pf-hero__art { display: block; position: absolute; inset: 0; z-index: 0; block-size: auto; height: auto; background: none; pointer-events: none; overflow: hidden; }
.pf[dir="rtl"] .pf-hero__art { background: none; }
.pf .pf-hero__art:not([data-pf-motion]):empty { display: none; }
.pf .pf-hero__art[data-pf-motion]::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, var(--pf-canvas) 0 34%, color-mix(in srgb, var(--pf-canvas) 72%, transparent) 58%, color-mix(in srgb, var(--pf-canvas) 20%, transparent)); }
.pf[dir="rtl"] .pf-hero__art[data-pf-motion]::after { background: linear-gradient(270deg, var(--pf-canvas) 0 34%, color-mix(in srgb, var(--pf-canvas) 72%, transparent) 58%, color-mix(in srgb, var(--pf-canvas) 20%, transparent)); }
@media (max-width: 900px) { .pf .pf-hero__art[data-pf-motion]::after { background: color-mix(in srgb, var(--pf-canvas) 80%, transparent); } }
.pf .pf-hero__text, .pf .pf-hero__aside, .pf .pf-hero__slot { position: relative; z-index: 1; }
.pf .pf-hero__rule { position: absolute; inset-inline: 0; inset-block-end: 1px; z-index: 0; height: 6px; color: var(--pf-line-strong); background: repeating-linear-gradient(90deg, var(--pf-line-strong) 0 1px, transparent 1px 24px); pointer-events: none; }
.pf[dir="rtl"] .pf-hero__rule { background: repeating-linear-gradient(270deg, var(--pf-line-strong) 0 1px, transparent 1px 24px); }
.pf .pf-rule-art { display: block; inline-size: 100%; fill: none; stroke: currentColor; stroke-width: 1; vector-effect: non-scaling-stroke; }
.pf .pf-rule-art path { vector-effect: non-scaling-stroke; }
/* Knot rule (IDCDC): a band of interlaced eight-point stars standing on the hairline, ticks replaced. */
.pf[data-profile~="rule-knot"] .pf-hero__rule { height: 20px; inset-block-end: 6px; background: none; }
.pf[data-profile~="rule-knot"] .pf-rule-art--knot { block-size: 20px; }
.pf .pf-rule-art--knot path { fill: none; stroke: var(--pf-line-strong); stroke-width: 1; }
/* Wave rule (KCO): three mountain contour lines along the foot of the hero, the nearest in the site's hue. */
.pf[data-profile~="rule-wave"] .pf-hero__rule { height: 48px; inset-block-end: 0; background: none; }
.pf[data-profile~="rule-wave"] .pf-rule-art--wave { block-size: 48px; }
.pf .pf-rule-art--wave .pf-rule-art__hue { stroke: var(--pf-area-b); stroke-width: 1.5; }
.pf[data-profile~="rule-wave"] .pf-hero { background: linear-gradient(var(--pf-line-strong), var(--pf-line-strong)) left bottom / 100% 1px no-repeat; }
.pf[data-profile~="rule-wave"][dir="rtl"] .pf-rule-art--wave { transform: scaleX(-1); }

/* Section rules: the register ruling (IDCDC, a double hairline) or a contour wave (KCO) replaces the tick ruler. */
.pf[data-profile~="rule-knot"] .pf-section { background: linear-gradient(var(--pf-line), var(--pf-line)) left 3px / 100% 1px no-repeat; }
.pf[data-profile~="rule-wave"] .pf-section { position: relative; background: none; }
.pf[data-profile~="rule-wave"] .pf-section::before { content: ""; position: absolute; inset-inline: 0; inset-block-start: -1px; height: 8px; background: var(--pf-line-strong); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='8'%3E%3Cpath d='M0 7 C12 7 18 1 30 1 S48 7 60 7 S84 2 96 7' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") repeat-x left top / 96px 8px; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='8'%3E%3Cpath d='M0 7 C12 7 18 1 30 1 S48 7 60 7 S84 2 96 7' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") repeat-x left top / 96px 8px; pointer-events: none; }

/* The homepage hero: the globe in the figure slot beside the text, over the network's motif. The text keeps five
   columns, the figure seven; under 900 px the figure follows the text. --globe is the sphere's frame. */
.pf .pf-hero--slot { --globe: clamp(300px, 34vw, 480px); }
.pf .pf-hero--slot .pf-hero__slot:not(:empty) { display: grid; place-items: center; align-self: center; }
.pf .pf-hero__slot > * { grid-area: 1 / 1; }
.pf .pf-hero__slot > .pf-globe { align-self: start; }
.pf .pf-hero__slot > .pf-motif { align-self: start; margin-block-start: calc(var(--globe) * -.06); }
.pf .pf-hero__slot > .pf-motif--contour { margin-block-start: calc(var(--globe) * -.16); }
.pf .pf-motif { inline-size: calc(var(--globe) * 1.12); max-inline-size: 100%; block-size: auto; fill: none; stroke: var(--pf-line-strong); stroke-width: 1; pointer-events: none; }
.pf .pf-motif path, .pf .pf-motif circle { vector-effect: non-scaling-stroke; }
.pf .pf-motif--girih .pf-motif__frame { stroke: var(--pf-line); }
.pf .pf-motif--girih .pf-motif__star { stroke: var(--pf-line); }
.pf .pf-motif--girih .pf-motif__kites { stroke: color-mix(in srgb, var(--pf-area-b) 35%, var(--pf-line-strong)); }
.pf .pf-motif--contour { inline-size: calc(var(--globe) * 1.32); }
.pf .pf-motif--contour .pf-motif__sun { stroke: color-mix(in srgb, var(--pf-area-b) 60%, transparent); stroke-width: 1.25; }
.pf .pf-motif--contour .pf-motif__horizon { stroke: var(--pf-line-strong); }
.pf .pf-globe--hero { position: relative; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; overflow: visible; }
.pf .pf-globe--hero .pf-globe__stage { padding: 0; justify-items: center; }
.pf .pf-globe--hero .pf-globe__frame { inline-size: var(--globe); block-size: var(--globe); max-inline-size: 100%; }
.pf .pf-globe--hero .pf-globe__poster { block-size: 92%; }
.pf .pf-globe--hero .pf-globe__foot { justify-content: center; padding-block-start: 4px; }
.pf .pf-hero--slot .pf-hero__aside { align-self: start; }
.pf .pf-hero--slot .pf-hero__aside .pf-signals { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.pf .pf-hero--slot .pf-hero__aside .pf-signal { display: grid; gap: 8px; justify-content: stretch; padding: 14px 0; }
.pf .pf-hero--slot .pf-hero__aside .pf-signal:nth-child(2) { border-block-start: 0; }
.pf .pf-hero--slot .pf-hero__aside .pf-signal dd { text-align: start; }
@media (max-width: 900px) {
  .pf .pf-hero--slot { --globe: min(72vw, 360px); }
  .pf .pf-hero--slot .pf-hero__slot:not(:empty) { order: 2; }
  .pf .pf-hero--slot .pf-hero__aside { order: 3; }
}
@media (max-width: 520px) { .pf .pf-hero--slot { --globe: min(68vw, 300px); } .pf .pf-motif--contour { inline-size: calc(var(--globe) * 1.3); } }

/* The globe's panel under the hero: the title, the measure, "Find your country", what the view shows, and the tables. */
.pf .pf-globe--panel { margin: 0; padding-block: 24px 8px; border: 0; border-block-end: 1px solid var(--pf-line); border-radius: 0; background: none; overflow: visible; }
.pf .pf-globe--panel .pf-globe__head { padding: 0; }
.pf .pf-globe--panel .pf-chart__title { font-size: 16px; }
.pf .pf-globe--panel .pf-globe__side { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 20px 40px; padding: 16px 0; border: 0; }
.pf .pf-globe--panel .pf-globe__tables { padding: 10px 0 16px; }

/* Typography accents. register (IDCDC): lighter display, Arabic-script headings in Vazirmatn. display (KCO): heavier
   display, Arabic-script headings in Estedad (the shared default). */
.pf[data-profile~="type-register"] :is(.pf-h1, .pf-h2) { font-weight: 400; }
.pf[data-profile~="type-register"][dir="rtl"] { --pf-head: "Vazirmatn", "Estedad", "IBM Plex Sans", "Noto Sans Hebrew", system-ui, sans-serif; }
.pf[data-profile~="type-register"][dir="rtl"] :is(.pf-h1, .pf-h2) { font-weight: 600; }
.pf[data-profile~="type-display"] :is(.pf-h1, .pf-h2, .pf-closing__title) { font-weight: 600; }
.pf[data-profile~="type-display"] .pf-eyebrow { letter-spacing: .2em; }
.pf[data-profile~="type-display"][dir="rtl"] :is(.pf-h1, .pf-h2) { font-weight: 700; }

/* Chips and states. square (IDCDC): square corners and a lozenge mark. round (KCO): rounded ends and a ring mark. */
.pf[data-profile~="chips-square"] :is(.pf-chip, .pf-status, .pf-tag) { border-radius: 0; }
.pf[data-profile~="chips-square"] :is(.pf-chip, .pf-status)::before { border-radius: 0; transform: rotate(45deg); width: 5px; height: 5px; }
.pf[data-profile~="chips-round"] :is(.pf-chip, .pf-status, .pf-tag) { border-radius: 999px; padding-inline: 10px; }
.pf[data-profile~="chips-round"] :is(.pf-chip, .pf-status)::before { box-sizing: border-box; background: transparent; border: 2px solid var(--pf-ink-4); width: 8px; height: 8px; }
.pf[data-profile~="chips-round"] :is(.pf-chip--verified, .pf-status--ok)::before { border-color: var(--pf-ok); background: var(--pf-ok); }
.pf[data-profile~="chips-round"] :is(.pf-chip--to-verify, .pf-status--pending)::before { border-color: var(--pf-pend); }

/* Cards. ledger (IDCDC): ruled rows with a corner bracket on hover. cells (KCO): a hairline cell grid whose rule
   rises from the start corner as a contour step. */
.pf[data-profile~="cards-ledger"] :is(.pf-feature, .pf-journey) { border-radius: 0; }
.pf[data-profile~="cards-cells"] .pf-card::before { width: 40px; height: 3px; border-end-end-radius: 3px; }
.pf[data-profile~="cards-cells"] :is(.pf-cards, .pf-features, .pf-journeys, .pf-routes, .pf-joinsteps, .pf-figures, .pf-bento) { border-radius: 10px; }
.pf[data-profile~="cards-cells"] .pf-cards:not([class*="pf-cards--"]) > .pf-card { border-radius: 10px; }

/* Closing band. Diwan: a bordered colophon on the canvas, the girih star before the title. Contour keeps the inverted
   summit band. */
.pf[data-design="diwan"] .pf-closing { background: var(--pf-canvas); color: var(--pf-ink-2); border: 1px solid var(--pf-line-strong); outline: 1px solid var(--pf-line); outline-offset: 4px; border-radius: 0; }
.pf[data-design="diwan"] .pf-closing__title { color: var(--pf-ink); }
.pf[data-design="diwan"] .pf-closing__title::before { content: ""; display: inline-block; inline-size: .62em; block-size: .62em; margin-inline-end: .35em; vertical-align: .05em; background: var(--pf-area-ink); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1l2.6 4.7L19.8 4l-1.7 5.2L23 12l-4.9 2.8 1.7 5.2-5.2-1.7L12 23l-2.6-4.7L4.2 20l1.7-5.2L1 12l4.9-2.8L4.2 4l5.2 1.7z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1l2.6 4.7L19.8 4l-1.7 5.2L23 12l-4.9 2.8 1.7 5.2-5.2-1.7L12 23l-2.6-4.7L4.2 20l1.7-5.2L1 12l4.9-2.8L4.2 4l5.2 1.7z'/%3E%3C/svg%3E") center / contain no-repeat; }
.pf[data-design="diwan"] .pf-closing p { color: var(--pf-ink-3); }
.pf[data-design="diwan"] .pf-closing .pf-btn { background: var(--pf-primary-bg); border-color: var(--pf-primary-bg); color: var(--pf-primary-ink) !important; }
.pf[data-design="diwan"] .pf-closing .pf-btn:hover { background: var(--pf-primary-hover); }
.pf[data-design="diwan"] .pf-closing :is(.pf-btn--ghost, .pf-actions .pf-btn + .pf-btn) { background: transparent; color: var(--pf-ink) !important; border-color: var(--pf-line-strong); }
.pf[data-design="diwan"] .pf-closing a:not(.pf-btn) { color: var(--pf-ink); }

/* The network footer. colophon (IDCDC): a ruled register closed by a double hairline, the girih mark and the name.
   summit (KCO): a band on the alternate canvas, crowned by mountain lines. */
.pf .pf-netfoot__id { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding-block-end: 20px; border-block-end: 1px solid var(--pf-line); }
.pf .pf-netfoot__brand { display: inline-flex !important; align-items: center; gap: 10px; color: var(--pf-ink) !important; font-size: 15px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.pf .pf-netfoot__brand .pf-mark { width: 20px; height: 20px; fill: var(--pf-ink); }
.pf[data-design="contour"] .pf-netfoot__brand .pf-mark { width: 36px; height: 14px; fill: none; stroke: var(--pf-ink); stroke-width: 2; }
.pf .pf-netfoot__name { margin: 0; color: var(--pf-ink-3); font-size: 13.5px; }
.pf[data-profile~="footer-colophon"] .pf-netfoot { border-block-start: 3px double var(--pf-line-strong); }
.pf[data-profile~="footer-colophon"] .pf-netfoot__brand .pf-mark { fill: var(--pf-area-ink); }
.pf[data-profile~="footer-colophon"] .pf-netfoot__col { padding-inline-start: 16px; border-inline-start: 1px solid var(--pf-line); }
.pf[data-profile~="footer-summit"] .pf-netfoot { position: relative; margin-block-start: 96px; padding-block-start: 56px; border-block-start: 0; background: var(--pf-alt); box-shadow: 0 0 0 100vmax var(--pf-alt); clip-path: inset(-48px -100vmax 0); }
.pf[data-profile~="footer-summit"] .pf-netfoot::before { content: ""; position: absolute; inset-inline: 0; inset-block-start: -47px; height: 48px; background: var(--pf-line-strong); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 48' preserveAspectRatio='none'%3E%3Cpath d='M0 47 L140 30 L230 38 L380 8 L520 34 L640 20 L780 40 L900 14 L1040 36 L1200 22' fill='none' stroke='%23000' stroke-width='1.2' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M0 47 L180 40 L300 44 L460 26 L600 42 L760 30 L880 44 L1020 28 L1200 40' fill='none' stroke='%23000' stroke-width='1' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 100% 100%; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 48' preserveAspectRatio='none'%3E%3Cpath d='M0 47 L140 30 L230 38 L380 8 L520 34 L640 20 L780 40 L900 14 L1040 36 L1200 22' fill='none' stroke='%23000' stroke-width='1.2' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M0 47 L180 40 L300 44 L460 26 L600 42 L760 30 L880 44 L1020 28 L1200 40' fill='none' stroke='%23000' stroke-width='1' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 100% 100%; }
.pf[data-profile~="footer-summit"] .pf-netfoot__h { color: var(--pf-ink-2); }

/* Responsive fixes (ui QA, 2026-10-23). A hidden term tooltip takes no width, so it never widens the page; the
   language menu opens under the bar on narrow screens instead of past the start edge. */
.pf .pf-term__tip { inline-size: 0; max-block-size: 0; padding: 0; border-width: 0; overflow: hidden; }
.pf .pf-term:hover > .pf-term__tip, .pf .pf-term__btn:focus-visible + .pf-term__tip, .pf .pf-term.is-open > .pf-term__tip { inline-size: max-content; max-block-size: none; padding: 8px 10px; border-width: 1px; overflow: visible; }
.pf .pf-term.is-closed > .pf-term__tip { inline-size: 0; max-block-size: 0; padding: 0; border-width: 0; }
@media (max-width: 720px) {
  .pf .pf-langs { position: static; }
  .pf .pf-langs ul { inset-inline: 12px; inset-block-start: calc(100% - 4px); min-width: 0; columns: 2 9em; }
  .pf .pf-langs li { break-inside: avoid; }
}

/* Inside the WordPress theme (BuddyX Pro; the Site Kit marks platform pages with body.pf-page). The theme's header
   stays on top and keeps its own menu and account links; our bar is this site's navigation under it and sticks
   below the theme header (--pf-sticky, set by platform.js). The page takes the theme's container width (BuddyX Pro:
   1300px with a 15px gutter; the Site Kit passes the theme's own setting as --pf-theme-max), so our content edge lines
   up with the theme's logo and footer. The full-width page template gives the page no container of its own, so the
   page keeps its canvas full width and insets its content to that edge itself. */
.pf .pf-top { top: var(--pf-sticky, 0px); }
.pf[data-design="contour"] .pf-toc { top: calc(var(--pf-sticky, 0px) + var(--pf-top-h)); }
.pf[data-design="diwan"] .pf-section > .pf-h2 { top: calc(var(--pf-sticky, 0px) + var(--pf-top-h) + 32px); }
.pf .pf-section[id] { scroll-margin-top: calc(var(--pf-sticky, 0px) + var(--pf-top-h) + 64px); }
:is(body.pf-page, .entry-content) > .pf, body.pf-page .entry-content > .pf, body.pf-page .site-main > .pf { max-width: none; padding-inline: max(var(--pf-theme-gutter, 15px), calc((100% - var(--pf-theme-max, 1300px)) / 2 + var(--pf-theme-gutter, 15px))); }
:is(body.pf-page, .entry-content) > .pf .pf-top, body.pf-page .entry-content > .pf .pf-top { margin-inline: 0; padding-inline: 0; }
:is(body.pf-page, .entry-content) > .pf[data-design="contour"] .pf-toc, body.pf-page .entry-content > .pf[data-design="contour"] .pf-toc { margin-inline: 0; padding-inline: 0; }
.pf[data-profile~="map-relief"] .pf-live__sw--city { background: var(--pf-canvas); box-shadow: inset 0 0 0 2px var(--pf-tint-a); }
/* The first menu item lines up with the mark on narrow screens (its padding sits outside the edge). */
@media (max-width: 720px) { .pf .pf-sitenav > ul { margin-inline-start: -8px; } }
/* Menu chevrons point down in both directions (physical borders, so right to left does not turn them sideways). */
.pf .pf-menu summary::after { border: 0; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; }
/* At a glance: every cell takes the row's height, so number cells and word cells line up. */
.pf .pf-glance__item { display: grid; }
.pf .pf-glance__in { align-content: center; min-block-size: 64px; }
/* Under 900 px the figure follows the actions: room for the motif's overhang above the globe. */
@media (max-width: 900px) { .pf .pf-hero--slot .pf-hero__slot:not(:empty) { padding-block-start: calc(var(--globe) * .08); } .pf .pf-hero--slot .pf-hero__slot:has(.pf-motif--contour) { padding-block-start: calc(var(--globe) * .18); } }
/* A long grouped menu (an area site's pages and the cross-site menu) wraps onto a second row instead of running past
   the edge of the bar. */
.pf .pf-sitenav.pf-sitenav--groups > ul { flex-wrap: wrap; row-gap: 0; }
.pf .pf-sitenav.pf-sitenav--groups > ul > li { min-height: var(--pf-top-h); }
@media (max-width: 1100px) { .pf .pf-sitenav.pf-sitenav--groups > ul > li { min-height: 44px; } }
/* Charts on narrow screens: label and value share the first line, the bar takes the full second line. */
@media (max-width: 520px) {
  .pf .pf-chart__row { grid-template-columns: minmax(0, 1fr) auto; row-gap: 4px; }
  .pf .pf-chart__row > .pf-chart__track { grid-column: 1 / -1; grid-row: 2; }
  .pf .pf-chart__val { white-space: normal; text-align: end; }
}
/* With a motion scene in the art layer, the record beside the hero lets it show through; the scrim keeps the words
   readable. */
.pf .pf-hero:has(> .pf-hero__art[data-pf-motion]) .pf-hero__aside { background: transparent; }
/* Motion kit (docs/site/MOTION_KIT.md, site/assets/motion.js). One hook only: .pf-hero__art[data-pf-motion]. With the
   attribute, the hero ruler grows into a decorative layer behind the whole hero: an aria-hidden WebGL canvas (or an
   SVG still without WebGL), under a scrim in the canvas colour that keeps the text at full contrast. The ruler
   ticks stay at the foot. Without the attribute nothing here applies. */
.pf .pf-hero:has(> .pf-hero__art[data-pf-motion]) { isolation: isolate; }
.pf .pf-hero__art[data-pf-motion] { inset-block: 0 1px; height: auto; z-index: -1; overflow: hidden; background: repeating-linear-gradient(90deg, var(--pf-line-strong) 0 1px, transparent 1px 24px) left bottom / 100% 6px no-repeat; }
.pf[dir="rtl"] .pf-hero__art[data-pf-motion] { background: repeating-linear-gradient(270deg, var(--pf-line-strong) 0 1px, transparent 1px 24px) right bottom / 100% 6px no-repeat; }
.pf .pf-hero__art[data-pf-motion] > :is(.pf-motion__canvas, .pf-motion__still) { position: absolute; inset: 0; width: 100%; height: 100%; display: block; z-index: -1; }
.pf .pf-hero__art[data-pf-motion]::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to right, color-mix(in srgb, var(--pf-canvas) 94%, transparent) 0%, color-mix(in srgb, var(--pf-canvas) 82%, transparent) 38%, transparent 72%); }
.pf[dir="rtl"] .pf-hero__art[data-pf-motion]::after { background: linear-gradient(to left, color-mix(in srgb, var(--pf-canvas) 94%, transparent) 0%, color-mix(in srgb, var(--pf-canvas) 82%, transparent) 38%, transparent 72%); }
@media (max-width: 760px) { .pf .pf-hero__art[data-pf-motion]::after, .pf[dir="rtl"] .pf-hero__art[data-pf-motion]::after { background: linear-gradient(to bottom, color-mix(in srgb, var(--pf-canvas) 86%, transparent) 0%, color-mix(in srgb, var(--pf-canvas) 74%, transparent) 65%, color-mix(in srgb, var(--pf-canvas) 45%, transparent) 100%); } }
@media print { .pf .pf-hero__art[data-pf-motion] > * { display: none; } }
/* Hero art and the network rule together: the motion layer keeps the scene and its scrim; the ruler under the hero is
   drawn by pf-hero__rule in the network's pattern, so the art layer draws no ticks of its own. */
.pf .pf-hero > .pf-hero__art[data-pf-motion], .pf[dir="rtl"] .pf-hero > .pf-hero__art[data-pf-motion] { background: none; }
/* Top bar on phones: the tools (search, account, languages, theme) may wrap to a second row when the
   labels are long in the reader's language (Indonesian), so the page never scrolls sideways. */
@media (max-width: 480px) { .pf .pf-top__tools { flex: 0 1 auto; min-width: 0; flex-wrap: wrap; justify-content: flex-end; row-gap: 6px; } }
