/* Winrove Marketing Experience v2 · public-site system
   Concept: Businessweek editorial × GAO dossier × evidence instrument
   Tokens mirror winrove/winrove.css product canon. Near-zero radius, hairline rules, flat paper. */

/* Type: federal-document stack (Georgia headings, Arial UI). System faces so
   CSP font-src 'self' does not need Google Fonts. JetBrains Mono stays for
   labels / FIG numbers only. Do not restore Fraunces, Inter-as-display, or
   Menlo as the marketing body face. */
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400 600;font-display:swap;
  src:url("/assets/fonts/jetbrainsmono-var-latin.woff2") format("woff2")}
/* WCAG 1.4.6 (AAA): --mute, --amber-deep, --moss and --slate are used as
   small text on their paired wash/paper surfaces and sat at 5.10-6.94:1.
   Darkened to clear 7:1; hue and saturation preserved. */
:root{--cream:#FFFFFF;--cream2:#FFFFFF;--paper:#FFFFFF;--navy:#14233D;--navy2:#1C2F4D;--ink:#14233D;--soft:#3A4860;--mute:#485060;--rule:#14233D;--rule2:#14233D;--amber:#E8A317;--amber-deep:#6C4800;--amber-wash:#FBF3DF;--moss:#3E5636;--moss-wash:#EEF2EA;--oxblood:#8A2A2A;--ox-wash:#F6ECEC;--slate:#42506A;--slate-wash:#EDF0F5;--serif:Georgia,"Times New Roman",Times,serif;--sans:Arial,Helvetica,"Segoe UI",sans-serif;--mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;--maxw:1240px;--dur:150ms}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{max-width:100%;overflow-x:clip}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:0.01ms!important;transition-duration:0.01ms!important}}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;display:block}
a{color:var(--navy);text-decoration-color:var(--rule);text-underline-offset:3px}
a:hover{color:var(--amber-deep);text-decoration-color:var(--amber)}
:focus-visible{outline:2px solid var(--amber-deep);outline-offset:2px}
.skip{position:absolute;left:-9999px;top:0;background:var(--navy);color:var(--cream);padding:10px 16px;z-index:200;font-family:var(--mono);font-size:12px}
.skip:focus{left:12px;top:12px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px}
@media (max-width:768px){.wrap{padding:0 24px}}
@media (max-width:390px){.wrap{padding:0 18px}}
/* type */
.eyebrow{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--amber-deep);display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--amber)}
.h-display{font-family:var(--serif);font-weight:400;letter-spacing:0;line-height:1.12;font-size:clamp(38px,5.2vw,68px);margin:18px 0 0;text-wrap:balance}
.h-sect{font-family:var(--serif);font-weight:400;letter-spacing:0;line-height:1.18;font-size:clamp(28px,3.4vw,44px);margin:14px 0 0;text-wrap:balance}
.h-sub{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(17px,1.6vw,21px);color:var(--soft);line-height:1.45;margin:16px 0 0;max-width:56ch;text-wrap:pretty}
.lede{font-size:17px;color:var(--soft);max-width:60ch;text-wrap:pretty}
.mono{font-family:var(--mono)}
.fig-num{font-family:var(--mono);font-size:12px;letter-spacing:0.18em;color:var(--mute);text-transform:uppercase}
.marginal{font-family:var(--mono);font-size:12px;line-height:1.6;color:var(--soft);border-top:2px solid var(--navy);padding-top:10px}
.caption{font-family:var(--mono);font-size:12px;color:var(--soft);letter-spacing:0.03em;line-height:1.6}
/* buttons: rectangular, no pills */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:11px 22px;font-family:var(--sans);font-size:14.5px;font-weight:550;text-decoration:none;border:1px solid var(--navy);cursor:pointer;transition:background var(--dur),color var(--dur),border-color var(--dur)}
.btn-primary{background:var(--navy);color:var(--cream)}
.btn-primary:hover{background:var(--navy2);color:#fff}
.btn-ghost{background:transparent;color:var(--navy)}
.btn-ghost:hover{background:var(--cream2);color:var(--navy)}
.btn-amber{background:var(--amber);border-color:var(--amber);color:var(--navy)}
.btn-amber:hover{background:#D99812;border-color:#D99812;color:var(--navy)}
.btn .arr{font-family:var(--serif)}
.btn[aria-disabled="true"]{opacity:0.45;pointer-events:none}
.textlink{font-weight:550;font-size:14.5px;text-decoration:underline;text-underline-offset:3px}
p a,.caption a,.h-sub a,.lede a{text-decoration:underline;text-underline-offset:3px}
/* availability badges */
.avail{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;padding:4px 9px;border:1px solid;white-space:nowrap}
.avail::before{content:"";width:7px;height:7px;flex:none}
.avail-live{color:var(--moss);border-color:var(--moss);background:var(--moss-wash)}.avail-live::before{background:var(--moss)}
.avail-beta{color:var(--slate);border-color:var(--slate);background:var(--slate-wash)}.avail-beta::before{background:var(--slate)}
.avail-build{color:var(--amber-deep);border-color:var(--amber-deep);background:var(--amber-wash)}.avail-build::before{background:var(--amber-deep);border-radius:0}
.avail-plan{color:var(--soft);border-color:var(--rule);background:var(--cream2)}.avail-plan::before{background:var(--soft)}
.avail-conn{color:var(--navy);border-color:var(--navy);background:var(--paper)}.avail-conn::before{background:var(--navy);border-radius:50%}
.avail-lic{color:var(--oxblood);border-color:var(--oxblood);background:var(--ox-wash)}.avail-lic::before{background:var(--oxblood);border-radius:50%}
.avail-dir{color:var(--soft);border-color:var(--rule);background:transparent}.avail-dir::before{background:transparent;border:1px solid var(--soft)}
/* source stamps */
.stamp{display:inline-flex;align-items:stretch;font-family:var(--mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;border:1px solid var(--navy)}
.stamp b{background:var(--navy);color:var(--cream);padding:4px 8px;font-weight:600}
.stamp span{padding:4px 8px;color:var(--soft);background:var(--paper)}
.stamp-lic b{background:var(--oxblood)}.stamp-lic{border-color:var(--oxblood)}.stamp-lic span{color:var(--oxblood)}
.stamp-conn b{background:var(--slate)}.stamp-conn{border-color:var(--slate)}.stamp-conn span{color:var(--slate)}
/* product fragments: paper crops with meta strip + redaction bars (no fabricated names) */
.frag{background:var(--paper);border:1px solid var(--rule);box-shadow:0 1px 0 var(--rule)}
.frag-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid var(--rule2);font-family:var(--mono);font-size:9.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--mute)}
.frag-body{padding:14px 12px;display:flex;flex-direction:column;gap:9px}
.redact{height:9px;background:var(--cream2);position:relative;overflow:hidden}
.redact::after{content:"";position:absolute;inset:0;background-color:var(--rule2);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9'%3E%3Crect width='6' height='9' fill='%23E6E3D8'/%3E%3C/svg%3E");background-size:9px 9px}
.redact-ink{background:var(--navy);opacity:0.88}.redact-ink::after{display:none}
.frag-row{display:flex;align-items:center;gap:10px}
/* WCAG 1.4.10 Reflow: `.avail` is white-space:nowrap, so a long status pill
   pushed past the right edge at 320px. Let the row wrap and the pill break. */
@media (max-width:520px){.frag-row{flex-wrap:wrap}.frag-row .avail{white-space:normal}}
.frag-k{font-family:var(--mono);font-size:9.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--mute);min-width:74px;flex:none}
.frag-note{font-family:var(--mono);font-size:9px;letter-spacing:0.08em;color:var(--mute);text-transform:uppercase;padding:6px 12px;border-top:1px dashed var(--rule)}
/* evidence chain */
.chain{counter-reset:step;display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.chain-step{background:var(--paper);padding:18px 16px 16px;position:relative;counter-increment:step;display:flex;flex-direction:column;gap:10px;min-width:0}
.chain-step::before{content:"0" counter(step);font-family:var(--mono);font-size:10px;letter-spacing:0.14em;color:var(--amber-deep);font-weight:600}
.chain-step h3{font-family:var(--serif);font-size:17px;font-weight:520;margin:0;line-height:1.2}
.chain-step p{margin:0;font-size:12.5px;color:var(--soft);line-height:1.5}
.chain-step .to{position:absolute;right:-7px;top:22px;z-index:2;font-family:var(--serif);color:var(--amber-deep);background:var(--cream);border:1px solid var(--rule);width:14px;height:14px;display:flex;align-items:center;justify-content:center;font-size:11px}
/* section scaffolding */
.sect{padding:96px 0;border-top:1px solid var(--rule)}
.sect-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap}
.sect-tight{padding:64px 0}
@media (max-width:768px){.sect{padding:64px 0}}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.grid-asym{display:grid;grid-template-columns:7fr 5fr;gap:56px;align-items:start}
@media (max-width:1024px){.grid-asym{grid-template-columns:1fr;gap:40px}.grid3{grid-template-columns:1fr 1fr;gap:24px}}
@media (max-width:768px){.grid2{grid-template-columns:1fr;gap:32px}.grid3{grid-template-columns:1fr;gap:20px}}
.rule-list{list-style:none;margin:0;padding:0}
.rule-list li{border-top:1px solid var(--rule);padding:16px 0;display:flex;gap:16px;align-items:baseline}
.rule-list li:last-child{border-bottom:1px solid var(--rule)}
/* CTA band */
.cta-band{background:var(--navy);color:var(--cream);padding:72px 0}
.cta-band .h-sect{color:#FDFCF8}
.cta-band .h-sub{color:#B9C2D4}
.cta-band .btn-ghost{color:var(--cream);border-color:#3D5378}
.cta-band .btn-ghost:hover{background:var(--navy2);color:#fff}
.cta-band a{color:var(--cream)}
.cta-band .btn-amber{color:var(--navy)}
/* forms */
.field{display:flex;flex-direction:column;gap:6px;margin:0 0 18px}
.field label{font-family:var(--mono);font-size:12px;letter-spacing:0.12em;text-transform:uppercase;color:var(--soft);font-weight:600}
.field input,.field select,.field textarea{font-family:var(--sans);font-size:15px;padding:12px 12px;border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:0;min-height:44px}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--amber-deep);outline-offset:0;border-color:var(--amber-deep)}
.field .hint{font-size:12.5px;color:var(--mute)}
.field.invalid input,.field.invalid textarea{border-color:var(--oxblood)}
.field .err{display:none;font-family:var(--mono);font-size:12px;color:var(--oxblood)}
.field.invalid .err{display:block}
.form-status{display:none;border:1px solid;padding:14px 16px;font-size:14px;margin-top:18px}
.form-status.ok{display:block;border-color:var(--moss);background:var(--moss-wash);color:var(--moss)}
.form-status.bad{display:block;border-color:var(--oxblood);background:var(--ox-wash);color:var(--oxblood)}
.form-status.busy{display:block;border-color:var(--rule);background:var(--cream2);color:var(--soft)}
/* disclosure / FAQ */
.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:20px 0;font-family:var(--serif);font-size:19px;font-weight:480}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);color:var(--amber-deep);flex:none}
.faq details[open] summary::after{content:"−"}
.faq .faq-a{padding:0 0 22px;color:var(--soft);max-width:64ch;text-wrap:pretty}
/* tables → records on mobile */
.mtx{width:100%;border-collapse:collapse;font-size:14px}
.mtx caption{text-align:left;font-family:var(--mono);font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--mute);padding:0 0 12px}
.mtx th,.mtx td{text-align:left;padding:13px 14px;border:1px solid var(--rule);vertical-align:top}
.mtx thead th{font-family:var(--mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--soft);background:var(--cream2)}
.mtx .yes{color:var(--moss);font-weight:600}.mtx .no{color:var(--mute)}
.tbl-scroll{overflow-x:auto;border:1px solid var(--rule)}
.tbl-scroll .mtx th,.tbl-scroll .mtx td{border-left:none;border-top:none}
/* header */
/* N-283: reserve the injected chrome's height so #main does not jump when
   mx-chrome.js replaces #mx-chrome. Without this the live site measured CLS
   0.183 at 375x812 and 0.109 at 768x1024, both failing the 0.1 threshold; the
   sole shift source was MAIN#main displaced by exactly the header height.
   The ladder below is the MEASURED height of header.mx-header (.mx-note, which
   wraps, plus .mx-nav at 58px/64px), with boundaries found by bisection against
   the live chrome. #mx-foot is deliberately NOT reserved: nothing renders below
   the footer, so its swap contributes no shift, and reserving ~1600px would be
   blank space bought for nothing. These heights are copy-dependent: .mx-note
   wraps, so editing its text changes them. e2e/chrome-cls-reservation.spec.ts
   holds this table to the real rendered header and fails if they drift. */
#mx-chrome{min-height:166.969px}
@media (min-width:343px){#mx-chrome{min-height:148.375px}}
@media (min-width:449px){#mx-chrome{min-height:129.781px}}
@media (min-width:644px){#mx-chrome{min-height:111.188px}}
@media (min-width:769px){#mx-chrome{min-height:117.188px}}
@media (min-width:1240px){#mx-chrome{min-height:98.594px}}
.mx-header{position:sticky;top:0;z-index:100;background:var(--cream);border-bottom:none}
.mx-note{background:var(--navy);color:#E8EDF4;font-family:var(--mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;text-align:center;padding:8px 16px}
.mx-note a{color:#F3C15A;text-decoration:underline;text-underline-offset:2px}
.mx-nav{display:flex;align-items:center;gap:28px;height:64px;max-width:var(--maxw);margin:0 auto;padding:0 40px}
@media (max-width:768px){.mx-nav{padding:0 24px;height:58px}}
.mx-logo{display:flex;align-items:baseline;gap:2px;font-family:var(--serif);font-size:21px;font-weight:600;letter-spacing:-0.01em;color:var(--navy);text-decoration:none}
.mx-logo em{font-style:italic;color:var(--amber-deep);font-weight:480}
.mx-logo:hover{color:var(--navy)}
.mx-links{display:flex;gap:4px;align-items:center;height:100%}
.mx-links>li{list-style:none;height:100%;display:flex}
.mx-links{margin:0;padding:0}
.mx-links a,.mx-links button{display:flex;align-items:center;gap:6px;padding:0 12px;height:100%;font-family:var(--sans);font-size:14px;font-weight:500;color:var(--soft);text-decoration:none;background:none;border:none;cursor:pointer;border-bottom:2px solid transparent}
.mx-links a:hover,.mx-links button:hover,.mx-links a[aria-current="page"],.mx-links button[aria-expanded="true"]{color:var(--navy);border-bottom-color:var(--amber)}
.mx-links button::after{content:"▾";font-size:9px;color:var(--mute)}
.mx-actions{margin-left:auto;display:flex;align-items:center;gap:18px}
.mx-actions .itc-ss-nav-q{-webkit-appearance:none;appearance:none;font-family:var(--sans);font-size:14px;font-weight:500;color:var(--soft);opacity:1;letter-spacing:0;text-transform:none;width:7.5rem;max-width:26vw;min-width:5.25rem;background:transparent;border:0;border-bottom:1px solid transparent;border-radius:0;box-shadow:none}
.mx-actions .itc-ss-nav-q:hover,.mx-actions .itc-ss-nav-q:focus{color:var(--navy);border-bottom-color:var(--rule)}
.mx-drawer .itc-ss-nav{width:100%}
.mx-drawer .itc-ss-nav-q{font-family:var(--sans);font-size:14.5px;width:100%;max-width:none;min-height:38px;border-bottom:1px solid transparent}
.mx-drawer .itc-ss-nav-q:hover,.mx-drawer .itc-ss-nav-q:focus{border-bottom-color:var(--rule)}
.mx-actions .signin{font-size:14px;font-weight:500;color:var(--soft);text-decoration:none}
.mx-actions .signin:hover{color:var(--navy)}
.mx-actions .btn{min-height:38px;padding:8px 16px;font-size:13.5px}
.mx-burger{display:none;background:none;border:1px solid var(--rule);width:44px;height:44px;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.mx-burger span{display:block;width:18px;height:2px;background:var(--navy)}
@media (max-width:1024px){.mx-links,.mx-actions .signin{display:none}.mx-burger{display:flex}.mx-actions{gap:12px}}
@media (max-width:480px){.mx-actions .btn{display:none}}
/* mega menu */
.mx-mega{position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:2px solid var(--navy);box-shadow:0 12px 24px rgba(20,35,61,0.07);display:none}
.mx-mega.open{display:block}
.mx-mega-inner{max-width:var(--maxw);margin:0 auto;padding:32px 40px 36px;display:grid;grid-template-columns:220px 1fr;gap:48px}
.mx-mega-rail{border-right:1px solid var(--rule2);padding-right:32px}
.mx-mega-rail .eyebrow{margin-bottom:12px}
.mx-mega-rail p{font-size:13px;color:var(--soft);margin:0;text-wrap:pretty}
.mx-mega-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 40px}
.mx-mega a{display:flex;flex-direction:column;gap:2px;padding:10px 8px;text-decoration:none;border-left:2px solid transparent}
.mx-mega a:hover{border-left-color:var(--amber);background:var(--cream)}
.mx-mega a .t{font-size:14px;font-weight:550;color:var(--navy);display:flex;gap:8px;align-items:center}
.mx-mega a .d{font-size:12px;color:var(--mute)}
/* drawer */
.mx-drawer{position:fixed;inset:0;z-index:150;display:none}
.mx-drawer.open{display:block}
.mx-drawer .scrim{position:absolute;inset:0;background:rgba(20,35,61,0.4)}
.mx-drawer .panel{position:absolute;top:0;right:0;bottom:0;width:min(360px,90vw);background:var(--cream);border-left:1px solid var(--rule);overflow-y:auto;padding:18px 22px 40px}
.mx-drawer .panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.mx-drawer .close{background:none;border:1px solid var(--rule);width:44px;height:44px;font-size:18px;cursor:pointer;color:var(--navy)}
.mx-drawer nav>a,.mx-drawer details summary{display:flex;justify-content:space-between;align-items:center;padding:15px 2px;font-family:var(--serif);font-size:19px;font-weight:500;color:var(--navy);text-decoration:none;border-top:1px solid var(--rule);cursor:pointer;list-style:none;min-height:44px}
.mx-drawer details summary::-webkit-details-marker{display:none}
.mx-drawer details summary::after{content:"+";font-family:var(--mono);color:var(--amber-deep)}
.mx-drawer details[open] summary::after{content:"−"}
.mx-drawer details a{display:block;padding:11px 14px;font-size:14.5px;color:var(--soft);text-decoration:none;min-height:44px;display:flex;align-items:center}
.mx-drawer details a:hover{color:var(--navy);background:var(--cream2)}
.mx-drawer .drawer-cta{display:flex;flex-direction:column;gap:10px;margin-top:22px}
/* footer */
.mx-footer{background:var(--navy);color:#B9C2D4;margin-top:96px}
.mx-footer a{color:#D5DCE8;text-decoration:none;font-size:13.5px}
.mx-footer a:hover{color:var(--amber)}
.mx-footer-hero{max-width:var(--maxw);margin:0 auto;padding:64px 40px 48px;display:grid;grid-template-columns:1.2fr 1fr;gap:64px;border-bottom:1px solid #2A3C5D}
.mx-footer-mark{font-family:var(--serif);font-size:44px;font-weight:500;color:#FDFCF8;letter-spacing:-0.02em}
.mx-footer-mark em{font-style:italic;color:var(--amber)}
.mx-footer-blurb{font-family:var(--serif);font-style:italic;font-size:17px;line-height:1.5;color:#E8EDF4;max-width:40ch;margin-top:14px}
.mx-footer-cols{max-width:var(--maxw);margin:0 auto;padding:48px 40px;display:grid;grid-template-columns:repeat(6,1fr);gap:32px}
.mx-footer-cols h3{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--amber);margin:0 0 14px}
.mx-footer-cols ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.mx-footer-base{border-top:1px solid #2A3C5D}
.mx-footer-base .wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:22px;padding-bottom:28px;font-family:var(--mono);font-size:12px;letter-spacing:0.05em;color:#E8EDF4}
@media (max-width:1024px){.mx-footer-cols{grid-template-columns:repeat(3,1fr)}.mx-footer-hero{grid-template-columns:1fr;gap:36px}}
@media (max-width:600px){.mx-footer-cols{grid-template-columns:repeat(2,1fr);padding:40px 24px}.mx-footer-hero{padding:48px 24px 36px}}
/* footer chain + colophon */
.mx-colophon{max-width:var(--maxw);margin:0 auto;padding:0 40px 6px;display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;letter-spacing:0.08em;text-transform:uppercase;color:#E8EDF4}
.mx-colophon a{font-size:12px;color:#F3C15A;font-family:var(--mono);letter-spacing:0.08em;text-decoration:underline;text-underline-offset:2px}
@media (max-width:600px){.mx-colophon{padding:0 24px 6px}}
.mx-footer-cols h3 .sec{color:#C9D2E2;margin-right:6px}
.toplink{background:none;border:1px solid #3D5378;color:#E8EDF4;font-family:var(--mono);font-size:12px;letter-spacing:0.12em;text-transform:uppercase;padding:10px 14px;cursor:pointer;min-height:40px}
.toplink:hover{border-color:var(--amber);color:var(--amber)}
/* newsletter */
.nl-form{display:flex;border:1px solid #3D5378;max-width:420px}
.nl-form input{flex:1;background:transparent;border:none;color:#FDFCF8;font-family:var(--mono);font-size:13px;padding:12px 14px;min-width:0}
.nl-form input:focus{outline:2px solid var(--amber);outline-offset:-2px}
.nl-form button{background:var(--amber);color:var(--navy);border:none;font-family:var(--sans);font-weight:600;font-size:13.5px;padding:0 18px;cursor:pointer;min-height:44px}
.nl-form button:hover{background:#D99812}
.nl-note{font-family:var(--mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:#E8EDF4;margin-top:12px}
.itc-ss-nav-q::placeholder{color:#3A4860;opacity:1}
.cta-grid{display:grid;grid-template-columns:2fr 1fr;gap:48px;align-items:center}
@media (max-width:900px){.cta-grid{grid-template-columns:1fr;gap:28px}}
/* misc */
.kicker-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.hairline{border:none;border-top:1px solid var(--rule);margin:0}
.prose{max-width:68ch}
.prose p{margin:0 0 18px;text-wrap:pretty;color:var(--soft)}
.prose h2{font-family:var(--serif);font-size:28px;font-weight:480;margin:44px 0 14px;color:var(--ink)}
.prose h3{font-family:var(--serif);font-size:20px;font-weight:520;margin:32px 0 10px}
.prose ul{color:var(--soft);padding-left:20px}
.prose li{margin:0 0 8px}
.pullq{border-top:2px solid var(--navy);border-bottom:1px solid var(--rule);padding:24px 0;font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.4;color:var(--ink);margin:32px 0}
.pullq .who{display:block;font-family:var(--mono);font-style:normal;font-size:10.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--mute);margin-top:12px}
@media print{.mx-header,.mx-footer,.cta-band,.mx-note{display:none}body{background:#fff}}

/* marketing-v2 port: integrations mobile overflow */
@media (max-width:390px){
  .int-line{grid-template-columns:1fr!important;gap:4px!important}
  .int-head{flex-wrap:wrap;align-items:flex-start}
  .int-chip{max-width:100%;overflow-wrap:anywhere}
  .wrap{padding:0 14px}
  .mx-nav{padding:0 14px}
}

/* ── Ported-page components ────────────────────────────────────────────────
   The 25 pages carried over from the pre-v2 site reference these classes in
   markup, but their rules lived in the retired shared.css. Without them the
   body content had no width constraint and sat flush-left against a centred
   chrome. Defined once here rather than in the per-page compat shim, which is
   duplicated 25 times. */
.container-wide{width:min(100% - 48px,var(--maxw));margin-inline:auto}
/* Narrow measure is a constrained COLUMN inside the normal gutter, not a centred
   box. Centring it would park the hero 230px in while every sibling section starts
   at 24px. The designed pages (sam-guide, trust) do the same: left edge holds, the
   text measure tightens. */
.container-narrow{width:min(100% - 48px,var(--maxw));margin-inline:auto}
.container-narrow > *{max-width:820px}

.btn-link{background:transparent;border-color:transparent;color:var(--amber-deep);padding-left:0;padding-right:0;min-height:auto}
.btn-link:hover{color:var(--navy);text-decoration:underline;text-underline-offset:3px}

.eyebrow-amber{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:0.16em;text-transform:uppercase;color:var(--amber-deep)}

/* Placeholder frame: labelled empty slot, never a fake screenshot. */
.ph{display:flex;align-items:center;justify-content:center;text-align:center;padding:16px;
  background:var(--cream2);border:1px dashed var(--rule);color:var(--mute);
  font-family:var(--mono);letter-spacing:0.1em;text-transform:uppercase}

@media (max-width:600px){
  .container-wide,.container-narrow{width:min(100% - 28px,var(--maxw))}
}

/* Responsive collapse for ported pages.
   Those pages express layout as INLINE style (111 grid declarations, 488 flex rows,
   both spaced and tight forms), and the media queries that used to collapse them
   lived in shared.css. Inline styles can only be beaten by !important, and the
   property-name substring match catches both `grid-template-columns:` and
   `grid-template-columns: `. Scoped to the legacy containers so the 13 pages that
   already carry the real design (which use .wrap) are untouched.
   1fr at <=768px is the same rule the design system applies to its own grids. */
@media (max-width:768px){
  /* minmax(0,1fr), not 1fr: a bare 1fr track floors at min-content, so one wide
     child (a long code, a nested fixed-width box) drags the whole grid past the
     viewport. This is the cookies.html blowout : 1fr resolved to 528px in a 269px
     container. minmax(0,...) lets the track actually shrink. */
  .container [style*="grid-template-columns"],
  .container-wide [style*="grid-template-columns"],
  .container-narrow [style*="grid-template-columns"],
  .page [style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr)!important}

  .container [style*="display: flex"],.container [style*="display:flex"],
  .container-wide [style*="display: flex"],.container-wide [style*="display:flex"],
  .container-narrow [style*="display: flex"],.container-narrow [style*="display:flex"],
  .page [style*="display: flex"],.page [style*="display:flex"]{flex-wrap:wrap!important}

  .container [style*="min-width"],
  .container-wide [style*="min-width"],
  .container-narrow [style*="min-width"]{min-width:0!important}

  .container table,.container-wide table,.container-narrow table{display:block;overflow-x:auto;max-width:100%}
}

/* Long unbreakable identifiers (snapshot names, UEI/CAGE codes) must not push the
   page sideways. Applies at every width; only bites when a token cannot fit. */
.h-sub,.prose p,.container p,.container-wide p,.container-narrow p{overflow-wrap:break-word}
.container,.container-wide,.container-narrow,.page{overflow-wrap:break-word}

/* Visually hidden, still announced. Used by the bid/no-bid calculator to voice
   its live score; the big numeral itself is decorative to a screen reader. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* Capability dossiers (/features/{slug}): job, boundary, live vs direction.
   Identity: same navy/amber paper as Platform. The memorable move is the
   oxblood "what it is not" panel and the vertical folio, not a new typeface. */
.cap-hero{position:relative;padding:72px 0 56px;display:grid;grid-template-columns:7fr 5fr;gap:56px;align-items:start}
.cap-hero .frag{margin-top:8px}
@media (max-width:1024px){.cap-hero{grid-template-columns:1fr;gap:36px}}
.cap-crumb{font-family:var(--mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--mute);display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.cap-crumb a{color:var(--mute);text-decoration:none}
.cap-crumb a:hover{color:var(--amber-deep)}
/* WCAG 1.4.3: this is a 6%-opacity watermark numeral, pure decoration, but as
   DOM text a contrast checker still measures it at 1.12:1. Rendering it as CSS
   generated content states the decorative intent and keeps the visual identical. */
.cap-folio::before{content:attr(data-folio)}
.cap-folio{position:absolute;right:0;top:24px;font-family:var(--serif);font-size:clamp(64px,10vw,120px);line-height:0.8;color:var(--navy);opacity:0.06;letter-spacing:-0.04em;pointer-events:none;user-select:none}
@media (max-width:768px){.cap-folio{display:none}}
.cap-split{display:grid;grid-template-columns:1.35fr 1fr;border:1px solid var(--rule);margin-top:8px}
@media (max-width:800px){.cap-split{grid-template-columns:1fr}}
.cap-job,.cap-not{padding:36px 40px}
@media (max-width:600px){.cap-job,.cap-not{padding:28px 22px}}
.cap-job{background:var(--paper)}
.cap-not{background:var(--ox-wash);border-left:1px solid var(--rule)}
@media (max-width:800px){.cap-not{border-left:none;border-top:1px solid var(--rule)}}
.cap-job h2,.cap-not h2{font-family:var(--mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;margin:0 0 14px;font-weight:600}
.cap-job h2{color:var(--amber-deep)}
.cap-not h2{color:var(--oxblood)}
.cap-job p{margin:0;font-family:var(--serif);font-size:22px;line-height:1.4;color:var(--ink);text-wrap:pretty;max-width:46ch}
.cap-not ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.cap-not li{font-size:14.5px;color:var(--ink);padding-left:18px;position:relative;text-wrap:pretty}
.cap-not li::before{content:"×";position:absolute;left:0;color:var(--oxblood);font-family:var(--mono);font-size:12px}
.seq{counter-reset:sq;border-top:2px solid var(--navy)}
.seq-step{counter-increment:sq;display:grid;grid-template-columns:72px 1fr 280px;gap:28px;padding:26px 0;border-bottom:1px solid var(--rule);align-items:start}
@media (max-width:900px){.seq-step{grid-template-columns:48px 1fr}.seq-step .frag{grid-column:1/-1}}
.seq-step::before{content:"0" counter(sq);font-family:var(--mono);font-size:20px;color:var(--amber-deep);font-weight:500}
.seq-step h3{font-family:var(--serif);font-size:21px;font-weight:520;margin:0 0 6px}
.seq-step p{margin:0;color:var(--soft);font-size:14.5px;max-width:52ch;text-wrap:pretty}
.states{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
@media (max-width:900px){.states{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.states{grid-template-columns:1fr}}
.state{background:var(--paper);padding:20px 18px;display:flex;flex-direction:column;gap:10px}
.state h3{font-family:var(--mono);font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;margin:0;color:var(--soft)}
.state p{margin:0;font-size:13px;color:var(--soft);text-wrap:pretty}
.skel{height:9px;background:linear-gradient(90deg,var(--cream2) 25%,var(--rule2) 50%,var(--cream2) 75%);background-size:200% 100%;animation:sk 1.4s infinite}
@keyframes sk{from{background-position:200% 0}to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.skel{animation:none;background:var(--cream2)}}
.cap-index{display:grid;grid-template-columns:repeat(9,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:36px}
@media (max-width:1024px){.cap-index{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.cap-index{grid-template-columns:1fr}}
.cap-index a{background:var(--paper);padding:16px 14px;display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--navy);min-height:100%}
.cap-index a:hover{background:var(--amber-wash)}
.cap-index a.on{background:var(--navy);color:var(--paper)}
.cap-index a.on .fig-num,.cap-index a.on p{color:#BBC4D6}
.cap-index .t{font-family:var(--serif);font-size:16px;font-weight:520}
.cap-index p{margin:0;font-size:11.5px;color:var(--mute);line-height:1.5}
.day-row .avail{white-space:normal}
