/* AAI Kernel Rocket Fuel — additions to the V14.9 stylesheet. site.css is unchanged apart from the visible-by-default gate.
   Only spacing/fit for authorized local additions and the existing components reused by Constitution pages. */

/* local owner definitions inserted after a card grid or list keep the section's paragraph rhythm */
.cards + .rf-local,.qlist + .rf-local,.cards + .rf-amend{margin-top:28px}
.rf-anchor{display:inline}

/* Constitution pages: existing components, reading-width tuning only */
.page-constitution .eyebrow a{color:inherit;border-bottom:1px solid var(--line2);transition:border-color .2s}
.page-constitution .eyebrow a:hover{border-color:var(--cyan)}
.page-constitution .ihero .lead{max-width:720px}
.page-constitution .col-r .prose a,.page-constitution .def dd a,.page-constitution .ihero .lead a,.rf-source a{color:var(--text);border-bottom:1px solid var(--line2);transition:border-color .2s}
.page-constitution .col-r .prose a:hover,.page-constitution .def dd a:hover,.page-constitution .ihero .lead a:hover,.rf-source a:hover{border-color:var(--cyan)}
.page-constitution .gtable{margin-top:28px}
.page-constitution .gtable caption{caption-side:top;text-align:left;padding:14px 18px 10px;color:var(--muted);font:400 12px/1.5 var(--mono);letter-spacing:.04em}
.page-constitution .deflist{margin-top:0}
.page-constitution .qlist a{color:var(--text);border-bottom:1px solid var(--line2)}
.rf-faq .def{grid-template-columns:1fr;gap:10px}
.rf-faq .def dt{font-size:20px}
.rf-source{margin-top:18px;color:var(--muted);font:400 12px/1.6 var(--mono);letter-spacing:.04em}
.page-constitution .col-r .ctas{margin-top:28px}
.page-404 .ihero{min-height:60vh}

/* Ledger A1 / CF01 — editorial footer: the Authority Constitution index (full-width footer row) */
.fconst{grid-column:1/-1;border-top:1px solid var(--line);padding-top:40px;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:24px 56px}
.fconst-head .ftag{color:var(--cyan)}
.fconst-head p{margin-top:12px;color:var(--muted);font-size:14px;line-height:1.6;max-width:26em}
.fconst-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 32px}
.fcgroup + .fcgroup{margin-top:28px}
.fcgroup h3{color:var(--text);font:500 10.5px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}
.fcgroup ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.fcgroup a{color:var(--muted);font-size:13.5px;line-height:1.4;transition:color .2s}
.fcgroup a:hover,.fcgroup a:focus-visible{color:var(--text)}
@media (max-width:1180px){.fconst{grid-template-columns:1fr}}
@media (max-width:860px){.fconst-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.fconst-cols{grid-template-columns:1fr}}

/* Ledger A1 / CF01 — footer enquiry form in proportion: same fields, options, helpers and behaviour */
footer.bigfoot .fright{max-width:none} /* the form fills its 2/3 column as in V14.9 (a 720 px cap left it centred with an empty third on wide screens) */
footer.bigfoot .fright h2{margin-top:10px;font-size:clamp(24px,2.1vw,32px);max-width:22em}
footer.bigfoot .fright .flead{margin-top:10px;font-size:15px;line-height:1.6}
footer.bigfoot .fright .formwrap{margin-top:20px}
footer.bigfoot .formwrap.compact{padding:20px 22px 22px}
footer.bigfoot .fgrid{gap:12px 16px;margin-top:0}
footer.bigfoot .field label{margin-bottom:5px;font-size:13px}
footer.bigfoot .field input,footer.bigfoot .field select,footer.bigfoot .field textarea{padding:10px 12px;border-radius:10px;font-size:14.5px}
footer.bigfoot .field textarea{height:92px;min-height:72px}
footer.bigfoot .field .help,footer.bigfoot .field .err{margin-top:4px;font-size:12px}
footer.bigfoot .fhelper{margin-top:10px;font-size:13.5px}
footer.bigfoot .fnote{margin-top:8px;font-size:12.5px;line-height:1.5}
footer.bigfoot .fstatus{margin-top:12px;padding:11px 14px}
footer.bigfoot .fsubmit{margin-top:14px}
@media (max-width:860px){footer.bigfoot .formwrap.compact{padding:18px 16px 20px}footer.bigfoot .fright{max-width:none}}

/* Ledger A1 — a lead paragraph placed directly in a section aligns with the section heading column (col 4 of 12) */
.sec > .rf-amend{margin-left:calc((100% - 264px) / 4 + 72px);margin-bottom:4px}
@media (max-width:860px){.sec > .rf-amend{margin-left:0}}

/* Semantic Edge (Work 2): inline contextual links in reading paragraphs and the article's concluding passage */
.rf-se a,.rf-semantic-copy a,.rf-se-def a,.rf-se-li a,.prose a{color:var(--text);border-bottom:1px solid var(--line2);transition:border-color .2s}
.rf-se a:hover,.rf-semantic-copy a:hover,.rf-se-def a:hover,.rf-se-li a:hover,.prose a:hover{border-color:var(--cyan)}
.rf-se{margin-top:18px}
.rf-se-def{display:block;margin-top:10px}
.rf-semantic-edge{position:relative;z-index:2;padding:0 var(--pad) clamp(40px,6vh,64px)}
.rf-semantic-edge .rf-semantic-copy{border-top:1px solid var(--line);padding-top:28px;max-width:660px}
@media (max-width:860px){.rf-semantic-edge .rf-semantic-copy{grid-column:1/-1}}

/* accessibility finish (Rocket Fuel): --dim reading text raised from 3.75:1 to 5.57:1 on the page background
   (4.97:1 on #0b1722, 4.65:1 on #161d27 glass); hierarchy below --muted (7.64:1) is kept. */
html:root{--dim:#7b8799}
/* motion control (state in history.state, no storage): footer text button in the base row; top control appears on keyboard focus like the skip link */
footer .base .rf-motion{background:none;border:0;padding:0;color:var(--muted);font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;border-bottom:1px solid var(--line2)}
footer .base .rf-motion:hover{color:var(--text);border-color:var(--cyan)}
.rf-motion-skip{color:var(--text);font:inherit;cursor:pointer}
.rf-motion-skip:focus{left:180px}
.rf-still .reveal,.rf-still table.read tr.rw{transition:none!important}
/* intrinsic img dimensions are reserved by width/height attributes; rendered size stays CSS-driven */
.brandmark img,.tlogo{width:auto}
.rf-404-fr{margin-top:44px;padding-top:30px;border-top:1px solid var(--line)}
/* CLS: the typing caret moves between words; with zero net advance it no longer re-wraps the heading (FR desktop CLS 0.18) */
h1 .caret{margin-right:0;margin-inline-end:-.5em}

/* Semantic Edge closing section: V14.9 section-head grammar (label left, prose in the reading column) */
.rf-semantic-edge .rf-se-end{margin-bottom:0}
.sec h2.rf-se-label{font:400 11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:0;max-width:none}
.rf-semantic-edge .col-r .prose{margin-top:0}

/* back to top: discreet glass circle, bottom right; above the preview chip on desktop */
.rf-totop{position:fixed;right:24px;bottom:24px;z-index:60;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  color:var(--text);background:rgba(11,17,27,.72);border:1px solid var(--line2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  cursor:pointer;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .35s ease,transform .35s ease,border-color .2s}
.rf-totop.on{opacity:1;transform:none;pointer-events:auto}
.rf-totop:hover{border-color:var(--cyan)}
.rf-totop:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
body:has(.chip) .rf-totop{bottom:62px}
@media (max-width:860px){.rf-totop,body:has(.chip) .rf-totop{right:16px;bottom:16px}}
@media (prefers-reduced-motion:reduce){.rf-totop{transition:none}}

/* typography finish (Flo 13 Oct): Home H1 one calibrated step smaller (64→56 px max, 34→30 px min, ×0.875);
   interior H1 one step smaller (56→50 px max) so long Constitution questions keep the hierarchy */
.home h1,#h1{font-size:clamp(30px,3.7vw,56px)}
.ihero h1{font-size:clamp(29px,3.1vw,50px)}
/* typing cursor: pure white at 80 %, same in every locale and animation state (was the opal gradient) */
h1 .caret{background:rgba(255,255,255,.55)!important} /* Flo 13 Oct: softer than .8 */

/* Home film side lists ("AI and engines observed" / brands): informative names, so readable at AA on #04060a while
   keeping their hierarchy under the glint (was 2.8–3.4:1): names 5.0:1, provider/mode labels 4.7:1 */
.scol li,.brands .scol li{color:rgba(214,226,240,.55)}
.models .mm{color:rgba(214,226,240,.55)}
.models .mp,.models .mx{color:rgba(170,184,202,.66)}
.sidelab{color:rgba(214,226,240,.74)}
.rf-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* navigation (Flo, 13 Oct): white underline for the current page, and the same underline on hover */
.top nav>a,.top nav summary{position:relative}
.top nav>a::after,.top nav summary::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:#fff;opacity:0;transition:opacity .2s}
.top nav>a:hover::after,.top nav summary:hover::after,.top nav>a[aria-current="page"]::after,.top nav summary.cur::after{opacity:1;background:#fff}
@media (max-width:980px){.top nav>a::after,.top nav summary::after{display:none}}
/* burger (phones and narrow windows) */
.menu-btn{width:44px;height:44px;padding:0;border:0;border-radius:50%;position:relative;font-size:0}
.menu-btn .bar{position:absolute;left:11px;right:11px;height:1.5px;border-radius:1px;background:var(--text);transition:transform .25s ease,opacity .2s ease}
.menu-btn .bar:nth-child(1){top:15px}.menu-btn .bar:nth-child(2){top:21px}.menu-btn .bar:nth-child(3){top:27px}
.top.open .menu-btn .bar:nth-child(1){transform:translateY(6px) rotate(45deg)}
.top.open .menu-btn .bar:nth-child(2){opacity:0}
.top.open .menu-btn .bar:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.menu-btn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.menu-btn .bar{transition:none}}
/* mobile menu (V14.9 defect): the header's backdrop-filter makes it the containing block of the fixed menu panel, which was
   clipped to the 76 px header. Open: opaque header, no filter, full-height panel. */
@media (max-width:980px){.top.open{-webkit-backdrop-filter:none;backdrop-filter:none;background:#04060a}.top.open nav{height:calc(100dvh - 76px)}}
/* film language tag: the English master played on a localized page is labelled, never presented as localized */
.rf-film-lang{position:absolute;z-index:3;top:22px;inset-inline-end:22px;padding:5px 9px;border-radius:999px;border:1px solid var(--line2);background:rgba(4,6,10,.72);color:var(--text);font-size:10px;letter-spacing:.12em}

/* Wide screens (Flo, 13 Oct): content is held to a 1600 px frame, centred; backgrounds, photographs and the hero stay
   full-bleed. Every V14.9 side gutter is var(--pad), so only the gutter grows: max(original, half the space beyond 1488 px
   of content + 2 × 56 px gutters). Identical to V14.9 at or below 1600 px. */
:root{--pad:max(clamp(16px,4vw,56px),calc((100vw - 1488px) / 2))}

/* Home first screen (Flo, 13 Oct). Computers: the hero text is centred vertically in the area below the header (it was
   bottom-anchored, so the smaller title sat low). Very large screens (≥ 2400 px, e.g. 2560 and 4K): the whole hero —
   photograph, lens, animated symbol, text — keeps its laptop proportions inside an 1800 px frame, centred; the title returns
   to its original V14.9 size (64 px); the site frame widens to 1800 px so the header logo stays aligned with the title.
   Phones and portrait tablets (< 861 px) are unchanged. */
@media (min-width:861px){.home .hero-copy{top:50%;bottom:auto;transform:translateY(-50%)}}
@media (min-width:2400px){
  :root{--pad:max(clamp(16px,4vw,56px),calc((100vw - 1688px) / 2))}
  .hero{width:1800px;margin-left:auto;margin-right:auto;height:min(calc(94vh - 124px),1080px);--pad:56px}
  .hero-photo{-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 32%,#000 62%,#000 90%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.18) 32%,#000 62%,#000 90%,transparent 100%)}
  .home h1,#h1{font-size:64px}
}

/* Rocket Fuel — day theme (Flo, 13 Oct: DEFAULT, with the night theme available). Not a global inversion: the page keeps
   its night field and the WebGL sculpture; the builder marks each top-level block of <main> rf-tone-dark or rf-tone-light
   (opening, photographs, logo and film always dark; the others alternate). A light block is a cream reading surface whose
   backdrop inverts the field behind it: night #04060a becomes cream #fbf9f5 and the luminous points become coloured ink,
   so the animation still reads on white. Dark blocks show the original night composition. Header and footer stay dark. */
html[data-rf-theme="light"] main>.rf-tone-light{
  --bg:#fbf9f5; --bg2:#f1efe9; --panel:rgba(255,255,255,.9);
  --line:rgba(16,22,31,.12); --line2:rgba(16,22,31,.22);
  --text:#10161f; --muted:#3f4a5a; --dim:#5a6576; --cyan:#1d5d8c;
  --glass:linear-gradient(180deg,#ffffff,#f8f7f3);
  color:var(--text); color-scheme:light;
  /* pure white: the inverted night field (#fbf9f5) lifted to #ffffff; ink points keep their colour */
  -webkit-backdrop-filter:invert(1) hue-rotate(180deg) brightness(1.04); backdrop-filter:invert(1) hue-rotate(180deg) brightness(1.04);
  border-top-color:var(--line);
}
/* one cream block per page (the one holding white inner panels) */
html[data-rf-theme="light"] main>.rf-tone-cream{--bg:#fbf9f5;-webkit-backdrop-filter:invert(1) hue-rotate(180deg);backdrop-filter:invert(1) hue-rotate(180deg)}
/* figure instruments stay dark inside light blocks */
html[data-rf-theme="light"] main>.rf-tone-light .glass:has(.fsvg),html[data-rf-theme="light"] main>.rf-tone-light .sfig{
  --bg:#04060a; --line:rgba(150,180,215,.11); --line2:rgba(150,180,215,.22); --text:#e9eef4; --muted:#93a0b2; --dim:#7b8799; --cyan:#58bfe3;
  --glass:linear-gradient(180deg,rgba(16,23,36,.86),rgba(8,12,20,.88)); color:var(--text); color-scheme:dark;
}
html[data-rf-theme="light"] main>.rf-tone-light .glass:has(.fsvg){background:linear-gradient(180deg,#121a28,#0a0f18)}
/* reading on cream: no night halo, dark statement, white cards */
html[data-rf-theme="light"] main>.rf-tone-light :is(.prose,h2,h3,.statement,.qlist li,.lead,h1){text-shadow:none}
html[data-rf-theme="light"] main>.rf-tone-light .statement{color:var(--text)}
html[data-rf-theme="light"] main>.rf-tone-light .qlist li{background:#fff;color:var(--text);border-color:var(--line)}
html[data-rf-theme="light"] main>.rf-tone-light .glass:not(:has(.fsvg)){box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 18px 40px -26px rgba(16,22,31,.35);border:1px solid var(--line)}
html[data-rf-theme="light"] main>.rf-tone-light .idx b{color:#1d5d8c}
/* links on cream: blue text and a visible blue underline */
html[data-rf-theme="light"] main>.rf-tone-light :is(.prose,.lead,dd,li,.rf-source,.rf-semantic-copy) a:not(.btn){color:#1d5d8c;border-bottom:1px solid rgba(29,93,140,.5)}
html[data-rf-theme="light"] main>.rf-tone-light :is(.prose,.lead,dd,li,.rf-source,.rf-semantic-copy) a:not(.btn):hover{border-bottom-color:#1d5d8c}
html[data-rf-theme="light"] main>.rf-tone-light a.link{color:#1d5d8c}
html[data-rf-theme="light"] main>.rf-tone-light .field :is(input,select,textarea){background:#fff;color:var(--text)}
html[data-rf-theme="light"] main>.rf-tone-light .btn{color:var(--text)}
html[data-rf-theme="light"] main>.rf-tone-light .btn.primary{background:#10161f;color:#fbf9f5}
html[data-rf-theme="light"] main>.rf-tone-light .btn:hover{background:#ece9e2;border-color:var(--line2)}
/* photographs: crisp strips in the day theme (no long fade into the neighbouring block) */
html[data-rf-theme="light"] .photo-band::before{background:linear-gradient(to bottom,rgba(4,6,10,.35) 0%,rgba(4,6,10,0) 18%,rgba(4,6,10,0) 82%,rgba(4,6,10,.35) 100%)}
html[data-rf-theme="light"] ::selection{background:#1d5d8c33}
/* the toggle (header, beside the language switch). Observatory convention: the icon shows the theme you switch to */
.rf-theme{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line2);background:transparent;color:var(--muted);cursor:pointer;transition:color .2s,border-color .2s}
.rf-theme:hover{color:var(--text);border-color:var(--cyan)}
.rf-theme .moon{display:none}
html[data-rf-theme="light"] .rf-theme .moon{display:block}
html[data-rf-theme="light"] .rf-theme .sun{display:none}
.top.open .rf-theme{margin:18px 0 0;align-self:flex-start}
html[data-rf-theme="light"] header.top{background:#04060a}
/* browsers without backdrop-filter: the light block gets its rendered colour directly (no inverted field behind) */
@supports not ((backdrop-filter:invert(1)) or (-webkit-backdrop-filter:invert(1))){
  html[data-rf-theme="light"] main>.rf-tone-light{background:#fff}
  html[data-rf-theme="light"] main>.rf-tone-cream{background:#fbf9f5}
}

/* Locale typography and direction (Rocket Fuel multilingual). The V14.9 Latin faces stay first; Japanese, Chinese and Arabic glyphs
   fall back per character to the platform faces (no remote fonts: privacy contract). Self-hosted Noto files can replace
   these stacks later without touching markup. */

/* Japanese (CJK_GUIDANCE.md): Gothic for text and UI, Mincho for the serif display role; strict line breaking. */
html[lang="ja"]{--sans:"Geist","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","YuGothic",Meiryo,"Noto Sans JP",sans-serif;
  --serif:"Instrument Serif","Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
  --mono:"Geist Mono","Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",monospace;line-break:strict;word-break:normal}
html[lang="ja"] .prose,html[lang="ja"] .lead,html[lang="ja"] dd,html[lang="ja"] li{line-height:1.85}
html[lang="ja"] h1,html[lang="ja"] h2,html[lang="ja"] h3,html[lang="ja"] .statement{letter-spacing:0;line-height:1.32}
html[lang="ja"] .mono{text-transform:none;letter-spacing:.04em}
/* V14.9 serif italics: Latin keeps its real italic face; kana/kanji (no italic face) stay upright, not synthetically slanted. */
html[lang="ja"]{font-synthesis-style:none}

/* Simplified Chinese (chinese-localization-20261012/CJK_GUIDANCE.md): the Latin identity first, then system SC faces; natural
   Chinese line breaking (strict), no Latin tracking or uppercase; long URLs/identifiers may wrap anywhere. */
html[lang="zh-CN"]{--sans:"Geist","PingFang SC","Hiragino Sans GB","Noto Sans SC","Source Han Sans SC","Microsoft YaHei",sans-serif;
  --serif:"Instrument Serif","Songti SC","Noto Serif SC","Source Han Serif SC","PingFang SC",serif;
  --mono:"Geist Mono","PingFang SC","Hiragino Sans GB","Noto Sans SC",monospace;line-break:strict;word-break:normal}
html[lang="zh-CN"] .prose,html[lang="zh-CN"] .lead,html[lang="zh-CN"] dd,html[lang="zh-CN"] li{line-height:1.75}
html[lang="zh-CN"] h1,html[lang="zh-CN"] h2,html[lang="zh-CN"] h3,html[lang="zh-CN"] .statement{letter-spacing:0;line-height:1.3}
html[lang="zh-CN"] .mono{text-transform:none;letter-spacing:.04em}
/* V14.9 serif italics: Latin keeps its real italic face; Han glyphs (no italic face) stay upright instead of a synthetic slant. */
html[lang="zh-CN"]{font-synthesis-style:none}
html[lang="zh-CN"] :is(.prose,.lead,dd,li) a[href^="http"],html[lang="zh-CN"] .rf-source{overflow-wrap:anywhere}

/* Arabic (RTL_INTEGRATION.md): direction from <html dir="rtl">; Arabic shaping faces; no tracking or uppercase. */
html[lang="ar"]{--sans:"Geist","Geeza Pro","SF Arabic","Noto Sans Arabic","Segoe UI",Tahoma,sans-serif;
  --serif:"Instrument Serif","Geeza Pro","Noto Naskh Arabic","SF Arabic",serif;
  --mono:"Geist Mono","Geeza Pro","SF Arabic","Noto Sans Arabic",monospace}
html[lang="ar"] body{line-height:1.8}
html[lang="ar"] .prose,html[lang="ar"] .lead,html[lang="ar"] dd,html[lang="ar"] li{line-height:1.85}
html[lang="ar"] h1,html[lang="ar"] h2,html[lang="ar"] h3,html[lang="ar"] .statement,html[lang="ar"] .mono{letter-spacing:0;text-transform:none}
html[lang="ar"] h1,html[lang="ar"] h2{line-height:1.35}
/* logical alignment where V14.9 used physical left */
html[dir="rtl"] :is(.prose,.lead,.sec-head,.idx,.toc,.deflist,.qlist,.gtable th,.gtable td,.fcgroup,footer,.field label,.icopy,.hero-copy){text-align:start}
html[dir="rtl"] .qlist li{padding:16px 46px 16px 20px}
html[dir="rtl"] .qlist li::before{left:auto;right:20px}
html[dir="rtl"] .link span,html[dir="rtl"] .btn .k{display:inline-block;transform:scaleX(-1)}
/* identifiers, emails, URLs and Latin brand runs keep their own direction */
html[dir="rtl"] :is(.mono b,.idx b,.n,.lang a){unicode-bidi:isolate}
/* Scientific figures keep their left-to-right geometry in RTL pages: SVG labels are positioned for an LTR coordinate system
   (text-anchor start/middle/end), so an inherited direction:rtl pushed labels outside their figure (figure-fit QA: 47 labels).
   Arabic runs still shape and read right to left inside each label (bidi), and nothing is mirrored. */
html[dir="rtl"] svg.fsvg{direction:ltr}
html[dir="rtl"] svg.fsvg text{unicode-bidi:plaintext}
/* Tracking breaks Arabic joining and is not used on Han/kana: figure captions set in tracked mono keep their size, without tracking. */
html:is([lang="ar"],[lang="ja"],[lang="zh-CN"]) svg.fsvg text{letter-spacing:0}
html[dir="rtl"] .rf-totop{right:auto;left:24px}
html[dir="rtl"] body:has(.chip) .rf-totop{left:24px}
html[dir="rtl"] .chip{right:auto;left:16px}
@media (max-width:860px){html[dir="rtl"] .rf-totop,html[dir="rtl"] body:has(.chip) .rf-totop{left:16px;right:auto}html[dir="rtl"] .chip{left:auto;right:16px}}
/* language switch with six locales: compact pills, wraps in the mobile menu */
.lang a[lang="ja"],.lang a[lang="ar"],.lang a[lang="zh-CN"]{font-family:var(--sans)!important;letter-spacing:0}
/* RTL overflow: off-screen skip controls and the oversized grain layer sat on the start (left) side, which an RTL document
   scrolls to (2439 px wide on 1440). Skip controls hide on the right; horizontal overflow is clipped, not scrollable. */
html[dir="rtl"]{overflow-x:clip}
/* Arabic Home CLS 0.13 (simulated mobile), first cause traced 12 Oct: V14.9's .hero{overflow:hidden} makes the hero a scroll
   container; in RTL its content (field canvas, copy) overflows it by 122 px and the hero's internal scroll offset is re-anchored
   when the page runtime initialises, moving every hero layer at once. overflow:clip paints identically but is not scrollable. */
html[dir="rtl"] .hero{overflow:clip}
html[dir="rtl"] .skip{left:auto;right:-999px}
html[dir="rtl"] .skip:focus{right:16px;left:auto}
html[dir="rtl"] .rf-motion-skip:focus{right:180px;left:auto}

/* Constitution photographic bands */
.rfband-img-15{background-image:url(/assets/bands/img-15-2000.webp)}@media (max-width:860px){.rfband-img-15{background-image:url(/assets/bands/img-15-900.webp)}}
.rfband-img-26{background-image:url(/assets/bands/img-26-2000.webp)}@media (max-width:860px){.rfband-img-26{background-image:url(/assets/bands/img-26-900.webp)}}
.rfband-img-03{background-image:url(/assets/bands/img-03-2000.webp)}@media (max-width:860px){.rfband-img-03{background-image:url(/assets/bands/img-03-900.webp)}}
.rfband-img-18{background-image:url(/assets/bands/img-18-2000.webp)}@media (max-width:860px){.rfband-img-18{background-image:url(/assets/bands/img-18-900.webp)}}
.rfband-img-06{background-image:url(/assets/bands/img-06-2000.webp)}@media (max-width:860px){.rfband-img-06{background-image:url(/assets/bands/img-06-900.webp)}}
.rfband-img-21{background-image:url(/assets/bands/img-21-2000.webp)}@media (max-width:860px){.rfband-img-21{background-image:url(/assets/bands/img-21-900.webp)}}
.rfband-img-23{background-image:url(/assets/bands/img-23-2000.webp)}@media (max-width:860px){.rfband-img-23{background-image:url(/assets/bands/img-23-900.webp)}}
.rfband-img-01{background-image:url(/assets/bands/img-01-2000.webp)}@media (max-width:860px){.rfband-img-01{background-image:url(/assets/bands/img-01-900.webp)}}
.rfband-img-13{background-image:url(/assets/bands/img-13-2000.webp)}@media (max-width:860px){.rfband-img-13{background-image:url(/assets/bands/img-13-900.webp)}}
.rfband-img-02{background-image:url(/assets/bands/img-02-2000.webp)}@media (max-width:860px){.rfband-img-02{background-image:url(/assets/bands/img-02-900.webp)}}
.rfband-img-20{background-image:url(/assets/bands/img-20-2000.webp)}@media (max-width:860px){.rfband-img-20{background-image:url(/assets/bands/img-20-900.webp)}}
.rfband-img-17{background-image:url(/assets/bands/img-17-2000.webp)}@media (max-width:860px){.rfband-img-17{background-image:url(/assets/bands/img-17-900.webp)}}
.rfband-img-14{background-image:url(/assets/bands/img-14-2000.webp)}@media (max-width:860px){.rfband-img-14{background-image:url(/assets/bands/img-14-900.webp)}}

/* mobile image variants */
@media (max-width:860px){.rfs-066c6925{background-image:url(/assets/img/computational-landscape-900.webp) !important}.rfs-ab8c13e6{background-image:url(/assets/img/intelligence-field-900.webp) !important}.rfs-4d3112b8{background-image:url(/assets/img/layered-observation-900.webp) !important}.rfs-3e791933{background-image:url(/assets/img/market-topography-900.webp) !important}.rfs-db7e106e{background-image:url(/assets/img/precision-optics-900.webp) !important}.hero-photo{background-image:url(/assets/img/precision-optics-900.webp)}.rfs-3ad0d2a0{background-image:url(/assets/img/research-architecture-900.webp) !important}.ask-photo{background-image:url(/assets/img/research-architecture-900.webp)}.rfs-7cdc35a8{background-image:url(/assets/img/research-engineering-900.webp) !important}.rfs-3de88b2e{background-image:url(/assets/img/source-relations-900.webp) !important}}

/* inline style attributes of V14.9 markup, moved out for the CSP (values unchanged) */
.rfs-56fb79c9{--c:var(--peach) !important}
.rfs-e151f604{--c:var(--cyan) !important}
.rfs-0ad52811{--c:var(--lilac) !important}
.rfs-b3a1e900{margin-bottom:40px !important}
.rfs-ab79ea2b{margin:0 !important}
.rfs-db7e106e{background-image:url(/assets/img/precision-optics-1600.webp) !important}
.rfs-4d3112b8{background-image:url(/assets/img/layered-observation-1600.webp) !important}
.rfs-a0925a28{margin-top:0 !important}
.rfs-54242587{grid-column:4/13 !important}
.rfs-fa769ae0{margin-bottom:0 !important}
.rfs-900886f1{margin-top:30px !important}
.rfs-b0455c23{color:var(--dim) !important}
.rfs-066c6925{background-image:url(/assets/img/computational-landscape-1600.webp) !important}
.rfs-3de88b2e{background-image:url(/assets/img/source-relations-1600.webp) !important}
.rfs-7cdc35a8{background-image:url(/assets/img/research-engineering-1440.webp) !important}
.rfs-3e791933{background-image:url(/assets/img/market-topography-1600.webp) !important}
.rfs-3ad0d2a0{background-image:url(/assets/img/research-architecture-1440.webp) !important}
.rfs-ab8c13e6{background-image:url(/assets/img/intelligence-field-1600.webp) !important}
