:root{
    /* themed tokens (redefined under [data-theme="dark"]) */
    --ink:#0A2540;
    --paper:#F3F5F7;
    --paper-2:#EAEEF2;
    --surface:#FFFFFF;
    --line:#4A90D9;
    --slate:#5B7088;
    --slate-light:#8598AC;
    --line-hair: rgba(10,37,64,0.12);
    --nav-bg: rgba(243,245,247,0.92);

    /* constant tokens — stay fixed regardless of theme (used on permanently-dark
       decorative panels: hero schematic, module diagrams, footer, final CTA) */
    --ink-2:#0F3157;
    --deep:#0A2540;
    --line-soft:#9FC4EA;
    --signal:#FFB627;
    --signal-2:#E89B00;
    --white:#FFFFFF;
    --line-hair-dark: rgba(159,196,234,0.22);
    --spin-text:#0F3157;

    --radius: 2px;
    --display: 'Space Grotesk', sans-serif;
    --body: 'IBM Plex Sans', sans-serif;
    --mono: 'IBM Plex Mono', monospace;
    --maxw: 1200px;
  }

  :root[data-theme="dark"]{
    --ink:#E7ECF2;
    --paper:#0B0F19;
    --paper-2:#1B2438;
    --surface:#151C2C;
    --line:#22D3EE;
    --slate:#94A3B8;
    --slate-light:#64748B;
    --line-hair: rgba(148,163,184,0.16);
    --spin-text:#86acd6;
    --nav-bg: rgba(11,15,25,0.9);
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family: var(--body);
    color: var(--ink);
    background: var(--paper);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    transition: background-color .25s ease, color .25s ease;
  }
  img,svg{display:block; max-width:100%;}
  a{color:inherit; text-decoration:none;}
  ul{list-style:none;}
  button{font-family:inherit; cursor:pointer; border:none; background:none;}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
  }

  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
  @media (max-width:640px){ .wrap{padding:0 20px;} }

  .eyebrow{
    font-family: var(--mono);
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color: var(--line);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:16px; height:1px;
    background: var(--line);
    display:inline-block;
  }
  .eyebrow.on-dark{ color: var(--line-soft); }
  .eyebrow.on-dark::before{ background: var(--line-soft); }

  h1,h2,h3,h4{ font-family: var(--display); font-weight:600; letter-spacing:-0.01em; }

  /* focus visibility */
  a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
    outline:2px solid var(--signal);
    outline-offset:3px;
  }

  /* ============ BLUEPRINT GRID BACKGROUNDS ============ */
  .grid-light{
    background-image:
      linear-gradient(var(--line-hair) 1px, transparent 1px),
      linear-gradient(90deg, var(--line-hair) 1px, transparent 1px);
    background-size: 48px 48px;
  }
  .grid-dark{
    background-color: var(--deep);
    background-image:
      linear-gradient(var(--line-hair-dark) 1px, transparent 1px),
      linear-gradient(90deg, var(--line-hair-dark) 1px, transparent 1px);
    background-size: 48px 48px;
  }

  /* ============ NAV ============ */
  header.site-nav{
    position:sticky; top:0; z-index:100;
    background: var(--nav-bg);
    backdrop-filter: blur(8px);
    border-bottom:1px solid var(--line-hair);
    transition: background-color .25s ease, border-color .25s ease;
  }
  .theme-toggle{
    width:38px; height:38px; border:1px solid var(--line-hair);
    display:flex; align-items:center; justify-content:center;
    color:var(--ink); flex-shrink:0; transition: border-color .15s ease, color .15s ease;
  }
  .theme-toggle:hover{ border-color:var(--line); color:var(--line); }
  .theme-toggle svg{ width:17px; height:17px; }
  .theme-toggle .icon-moon{ display:none; }
  :root[data-theme="dark"] .theme-toggle .icon-sun{ display:none; }
  :root[data-theme="dark"] .theme-toggle .icon-moon{ display:block; }
  .nav-actions{ display:flex; align-items:center; gap:14px; }
  @media (max-width:640px){
    .nav-actions .theme-toggle{ display:none; }
    .nav-actions > a.btn.btn-signal{ display:none; }
  }
  .nav-inner{
    max-width:var(--maxw); margin:0 auto; padding:0 32px;
    display:flex; align-items:center; justify-content:space-between;
    height:72px;
  }
  .logo{
    font-family: var(--display); font-weight:700; font-size:20px;
    letter-spacing:-0.02em; display:flex; align-items:center; gap:8px;
  }
  .logo .mark{
    width: 25px; height:25px; 
    /* background: var(--signal);
    display:inline-block; transform:rotate(45deg); */
  }
  nav.primary-links{ display:flex; align-items:center; gap:36px; }
  nav.primary-links > ul{ display:flex; align-items:center; gap:32px; }
  nav.primary-links a.nav-link{
    font-size:14px; font-weight:500; color: var(--ink);
    position:relative; padding:4px 0;
  }
  nav.primary-links a.nav-link::after{
    content:""; position:absolute; left:0; bottom:0; height:2px; width:0;
    background: var(--signal); transition:width 0.2s ease;
  }
  nav.primary-links a.nav-link:hover::after{ width:100%; }

  .has-mega{ position:relative; }
  .mega{
    position:absolute; top:100%; left:50%; transform:translateX(-50%);
    width:340px; padding-top:16px; /* invisible bridge — keeps the trigger and dropdown
      as one continuous hoverable region so the menu doesn't close mid-move */
    opacity:0; visibility:hidden; translate:0 6px;
    z-index:10; /* stack above sibling nav links (the mobile-open menu is vertical,
      so later-in-DOM links would otherwise paint over the dropdown) */
    transition:opacity 0.15s ease, translate 0.15s ease;
  }
  .has-mega:hover .mega, .has-mega:focus-within .mega{
    opacity:1; visibility:visible; translate:0 0;
  }
  .mega-inner{
    background:var(--surface); border:1px solid var(--line-hair);
    box-shadow:0 16px 40px rgba(10,37,64,0.14);
    padding:8px;
    transition: background-color .25s ease;
  }
  .mega a{
    display:flex; flex-direction:column; gap:2px;
    padding:12px 14px; border-radius:var(--radius);
  }
  .mega a:hover{ background: var(--paper-2); }
  .mega .mega-num{ font-family:var(--mono); font-size:11px; color:var(--slate-light); }
  .mega .mega-title{ font-size:14px; font-weight:600; }
  .mega .mega-desc{ font-size:12.5px; color:var(--slate); }

  .btn{
    font-family:var(--mono); font-size:13px; font-weight:500;
    letter-spacing:0.02em; padding:11px 20px;
    border:1px solid transparent; display:inline-flex; align-items:center; gap:8px;
    transition:transform 0.15s ease, background 0.15s ease, border-color .15s ease, color .15s ease;
  }
  .btn-signal{ background:var(--signal); color:var(--deep); }
  .btn-signal:hover{ background:var(--signal-2); transform:translateY(-1px); }
  .btn-outline-dark{ border-color:var(--ink); color:var(--ink); }
  .btn-outline-dark:hover{ background:var(--ink); color:var(--paper); }
  .btn-outline-light{ border-color:var(--line-soft); color:var(--white); }
  .btn-outline-light:hover{ background:var(--line-soft); color:var(--ink); }
  .btn-ghost{ color:var(--line); font-family:var(--mono); font-size:13px; display:inline-flex; align-items:center; gap:6px;}
  .btn-ghost .arrow{ transition:transform 0.15s ease; }
  .btn-ghost:hover .arrow{ transform:translateX(4px); }

  .hamburger{ display:none; flex-direction:column; gap:5px; padding:6px; }
  .hamburger span{ width:22px; height:2px; background:var(--ink); }

  @media (max-width:900px){
    nav.primary-links{ display:none; }
    .hamburger{ display:flex; }

    /* mobile dropdown "open" state — scoped to this media query only,
       so it automatically stops applying once the viewport widens past
       900px (no leftover inline styles to fight with) */
    nav.primary-links.mobile-open{
      display:flex;
      flex-direction:column;
      position:absolute;
      top:72px; left:0; right:0;
      background:var(--paper);
      padding:20px 32px;
      border-bottom:1px solid var(--line-hair);
    }
    nav.primary-links.mobile-open > ul{
      flex-direction:column;
      align-items:flex-start;
      gap:16px;
    }
  }

  /* ============ HERO ============ */
  .hero{ padding:88px 0 96px; position:relative; overflow:hidden; }
  .hero-grid{
    display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;
  }
  .hero h1{ font-size:clamp(34px, 4.6vw, 58px); line-height:1.06; margin-bottom:22px; }
  .hero h1 em{ font-style:normal; color:var(--line); }
  .hero .sub{ font-size:18px; color:var(--slate); max-width:480px; margin-bottom:32px; }
  .hero .cta-row{ display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-bottom:34px; }
  .trust-strip{
    display:flex; gap:28px; flex-wrap:wrap; font-family:var(--mono); font-size:12px;
    color:var(--slate); border-top:1px solid var(--line-hair); padding-top:18px;
  }
  .trust-strip span{ display:flex; align-items:center; gap:8px; }
  .trust-strip .dot{ width:6px; height:6px; background:var(--line); border-radius:50%; }

  @media (max-width:900px){
    .hero-grid{ grid-template-columns:1fr; }
  }

  /* Hero schematic */
  .schematic{ background:transparent; position:relative; }
  .schem-label{ font-family:var(--mono); font-size:10.5px; letter-spacing:0.06em; fill:var(--line-soft); }
  .schem-label-dim{ fill:var(--slate-light); }
  .draw{ stroke-dasharray: 400; stroke-dashoffset:400; animation: draw 1.6s ease forwards; }
  .draw2{ animation-delay:0.3s; }
  .draw3{ animation-delay:0.6s; }
  @keyframes draw{ to{ stroke-dashoffset:0; } }
  .pulse-node{ animation: pulse 2.4s ease-in-out infinite; transform-origin:center; }
  @keyframes pulse{ 0%,100%{ opacity:1; } 50%{ opacity:0.55; } }

  /* Rotating audit badge (from new-2.htm hero, adapted: .badge -> .xf-badge,
     source tokens --grey/--ink/--line-l -> schematic constants --line-soft/--ink-2/--line-hair-dark) */
  .xf-badge{
    position:absolute; left:49.8%; top:46.4%; transform:translate(-50%,-50%);
    width:clamp(88px, 24%, 124px); aspect-ratio:1; flex-shrink:0;
    display:grid; place-items:center;
  }
  .xf-badge svg{ position:absolute; inset:0; width:100%; height:100%; animation:xf-spin 14s linear infinite; }
  @keyframes xf-spin{ to{ transform:rotate(360deg); } }
  .xf-badge text{ fill:var(--spin-text); font-family:var(--mono); font-size:9.5px; letter-spacing:.22em; text-transform:uppercase; }
  .xf-badge .xf-arr{
    width:42%; aspect-ratio:1; border:1px solid var(--line-hair-dark); border-radius:50%;
    display:grid; place-items:center; transition:all .4s ease; background:var(--ink-2);
  }
  .xf-badge:hover .xf-arr{ background:var(--signal); border-color:var(--signal); }
  .xf-badge .xf-arr img{ position:static; display:block; width:60%; height:60%; object-fit:contain; animation:none; transition:transform .4s ease; }
  .xf-badge:hover .xf-arr img{ transform:scale(1.08); }

  /* ============ SECTION HEADERS ============ */
  .sec-head{ max-width:640px; margin-bottom:48px; }
  .sec-head h2{ font-size:clamp(26px, 3vw, 38px); margin-top:14px; line-height:1.12; }
  .sec-head p{ color:var(--slate); font-size:16px; margin-top:14px; }
  section{ padding:96px 0; scroll-margin-top: 88px; }
  @media (max-width:640px){ section{ padding:64px 0; } }

  /* ============ FORK SECTION ============ */
  .fork-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  @media (max-width:900px){ .fork-grid{ grid-template-columns:1fr; } }
  .fork-card{
    position:relative; background:var(--surface); border:1px solid var(--line-hair);
    padding:36px 28px 30px; display:flex; flex-direction:column; gap:18px;
    transition:border-color .2s ease, transform .2s ease;
    scroll-margin-top: 88px;
  }
  .fork-card:hover{ border-color:var(--line); transform:translateY(-4px); }
  .corner{ position:absolute; width:14px; height:14px; }
  .corner.tl{ top:-1px; left:-1px; border-top:2px solid var(--line); border-left:2px solid var(--line); }
  .corner.br{ bottom:-1px; right:-1px; border-bottom:2px solid var(--line); border-right:2px solid var(--line); }
  .fork-card .fnum{ font-family:var(--mono); font-size:12px; color:var(--slate-light); }
  .fork-card .ficon{ width:44px; height:44px; }
  .fork-card h3{ font-size:19px; line-height:1.3; }
  .fork-card p.pain{ color:var(--slate); font-size:14.5px; }
  .fork-card .fcta{ margin-top:auto; padding-top:12px; }

  /* ============ SERVICE MODULES ============ */
  .module{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; padding:64px 0; }
  .module:not(:last-child){ border-bottom:1px solid var(--line-hair); }
  .module.reverse .m-copy{ order:2; }
  .module.reverse .m-visual{ order:1; }
  @media (max-width:900px){
    .module{ grid-template-columns:1fr; gap:36px; padding:44px 0; }
    .module.reverse .m-copy{ order:1; }
    .module.reverse .m-visual{ order:2; }
  }
  .m-copy h3{ font-size:clamp(22px,2.6vw,30px); margin:14px 0 12px; line-height:1.18; }
  .m-copy .tagline{ font-size:16px; color:var(--slate); margin-bottom:20px; }
  .m-copy ul{ display:flex; flex-direction:column; gap:11px; margin-bottom:26px; }
  .m-copy ul li{ display:flex; gap:10px; font-size:14.5px; }
  .m-copy ul li::before{ content:"—"; color:var(--line); flex-shrink:0; }
  .m-visual{
    /* background:var(--deep);  */
    aspect-ratio:4/3.1; 
    position:relative;
    display:flex; 
    align-items:center; 
    justify-content:center; 
    overflow:hidden;
  }
  .m-visual svg{ width:82%; height:82%; }

  /* ============ PROOF / WORK ============ */
  .filter-row{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:32px; }
  .filter-btn{
    font-family:var(--mono); font-size:12.5px; padding:8px 16px;
    border:1px solid var(--line-hair); color:var(--slate); background:var(--surface);
    transition:all .15s ease;
  }
  .filter-btn.active, .filter-btn:hover{ border-color:var(--ink); color:var(--ink); background:var(--paper-2); }
  .proof-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  @media (max-width:900px){ .proof-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:640px){ .proof-grid{ grid-template-columns:1fr; } }
  .proof-card{
    background:var(--surface); border:1px solid var(--line-hair); padding:26px;
    display:flex; flex-direction:column; gap:14px; transition:transform .2s ease, border-color .2s ease;
  }
  .proof-card:hover{ transform:translateY(-3px); border-color:var(--line); }
  .proof-tag{
    font-family:var(--mono); font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase;
    color:var(--line); align-self:flex-start; padding:4px 8px; border:1px solid var(--line-soft);
  }
  .proof-card h4{ font-size:17px; font-weight:600; }
  .proof-card .result{ font-family:var(--mono); font-size:22px; color:var(--signal-2); font-weight:600; }
  .proof-card .result-label{ font-size:13px; color:var(--slate); }
  .proof-card.hidden-item{ display:none; }

  /* ============ PROCESS ============ */
  .process-band{ position:relative; }
  .process-line{
    position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:32px;
  }
  .process-line::before{
    content:""; position:absolute; top:19px; left:calc(1.66% ); right:calc(28.66%);
    height:1px; background:repeating-linear-gradient(90deg, var(--line) 0 8px, transparent 8px 16px);
  }
  @media (max-width:900px){
    .process-line{ grid-template-columns:1fr; gap:36px; }
    .process-line::before{ display:none; }
  }
  .p-step{ position:relative; }
  .p-node{
    width:38px; height:38px; border:2px solid var(--line); background:var(--paper);
    display:flex; align-items:center; justify-content:center; font-family:var(--mono);
    font-size:14px; margin-bottom:20px; position:relative; z-index:2;
  }
  .p-step h4{ font-size:18px; margin-bottom:8px; }
  .p-step p{ color:var(--slate); font-size:14.5px; margin-bottom:12px; }
  .p-deliv{ font-family:var(--mono); font-size:11.5px; color:var(--ink); text-transform:uppercase; letter-spacing:0.04em; }
  .p-deliv::before{ content:"› "; color:var(--signal-2); }

  /* ============ PRICING ============ */
  .pricing-tabs{ display:flex; gap:8px; margin-bottom:36px; flex-wrap:wrap; }
  .ptab{
    font-family:var(--mono); font-size:13px; padding:12px 22px; border:1px solid var(--line-hair);
    background:var(--surface); color:var(--slate); transition:all .15s ease;
  }
  .ptab.active{ background:var(--surface); color:var(--signal-2); border-color:var(--signal); }
  .pricing-panel{ display:none; }
  .pricing-panel.active{ display:block; }
  .price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  @media (max-width:900px){ .price-grid{ grid-template-columns:1fr; } }
  .price-card{
    background:var(--surface); border:1px solid var(--line-hair); padding:30px 26px;
    display:flex; flex-direction:column; position:relative;
    transition: background-color .25s ease, border-color .25s ease;
  }
  .price-card.best{ border-color:var(--signal); box-shadow:0 0 0 1px var(--signal); }
  .best-tag{
    position:absolute; top:-12px; left:26px; background:var(--signal); color:var(--deep);
    font-family:var(--mono); font-size:10.5px; padding:4px 10px; letter-spacing:0.05em; text-transform:uppercase;
  }
  .price-card .tier{ font-family:var(--mono); font-size:12px; color:var(--slate); text-transform:uppercase; letter-spacing:0.06em; margin-bottom:10px; }
  .price-card .amount{ font-family:var(--display); font-size:32px; font-weight:700; margin-bottom:6px; }
  .price-card .amount-note{ font-size:13.5px; color:var(--slate); margin-bottom:22px; }
  .price-card ul{ display:flex; flex-direction:column; gap:10px; margin-bottom:26px; flex-grow:1; }
  .price-card ul li{ font-size:13.5px; display:flex; gap:8px; }
  .price-card ul li::before{ content:"✓"; color:var(--line); flex-shrink:0; font-weight:600; }

  /* ============ FINAL CTA / CONTACT ============ */
  .final-cta{ text-align:center; }
  .final-cta h2{ color:var(--white); font-size:clamp(28px,3.6vw,42px); margin-bottom:16px; max-width:720px; margin-left:auto; margin-right:auto; }
  .final-cta .sub{ color:var(--line-soft); max-width:560px; margin:0 auto 34px; font-size:16px; }
  .final-cta .micro{ font-family:var(--mono); font-size:12px; color:var(--slate-light); margin-top:14px; }

  .contact-card{
    background:var(--surface); max-width:640px; margin:56px auto 0; padding:40px;
    text-align:left; border:1px solid var(--line-hair);
  }
  .contact-card .row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
  @media (max-width:640px){ .contact-card{ padding:26px; } .contact-card .row{ grid-template-columns:1fr; } }
  .field{ display:flex; flex-direction:column; gap:6px; }
  .field label{ font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.05em; color:var(--slate); }
  .field input, .field select, .field textarea{
    font-family:var(--body); font-size:14.5px; padding:11px 12px; border:1px solid var(--line-hair);
    background:var(--paper); color:var(--ink);
  }
  .field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid var(--line); outline-offset:1px; border-color:var(--line); }
  .contact-card .full{ margin-bottom:16px; }
  .contact-card button.submit{ width:100%; margin-top:6px; justify-content:center; padding:14px; font-size:14px; }

  /* ============ FOOTER ============ */
  footer{ background:var(--deep); color:var(--line-soft); padding:64px 0 32px; }
  .footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; margin-bottom:48px; }
  @media (max-width:760px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
  .footer-grid h5{ font-family:var(--mono); font-size:11.5px; text-transform:uppercase; letter-spacing:0.06em; color:var(--white); margin-bottom:16px; }
  .footer-grid ul{ display:flex; flex-direction:column; gap:10px; }
  .footer-grid a{ font-size:13.5px; color:var(--line-soft); }
  .footer-grid a:hover{ color:var(--white); }
  .footer-logo{ font-family:var(--display); font-weight:700; font-size:20px; color:var(--white); margin-bottom:12px; }
  .footer-tag{ font-size:13.5px; color:var(--slate-light); max-width:260px; margin-bottom:20px; }
  .quiz-link{ font-family:var(--mono); font-size:13px; color:var(--signal); border-bottom:1px dashed var(--signal); padding-bottom:2px; }
  .footer-bottom{
    border-top:1px solid var(--line-hair-dark); padding-top:24px; display:flex;
    justify-content:space-between; flex-wrap:wrap; gap:12px; font-family:var(--mono); font-size:11.5px; color:var(--slate-light);
  }

  /* ============ QUIZ MODAL ============ */
  .modal-overlay{
    position:fixed; inset:0; background:rgba(10,37,64,0.72); display:none;
    align-items:center; justify-content:center; z-index:200; padding:20px;
  }
  .modal-overlay.open{ display:flex; }
  .modal-box{
    background:var(--surface); max-width:480px; width:100%; padding:36px; position:relative;
    transition: background-color .25s ease;
  }
  .modal-close{ position:absolute; top:16px; right:16px; font-family:var(--mono); font-size:20px; line-height:1; color:var(--slate); }
  .quiz-step{ display:none; }
  .quiz-step.active{ display:block; }
  .quiz-q{ font-size:18px; font-weight:600; margin-bottom:20px; font-family:var(--display); }
  .quiz-opt{
    display:block; width:100%; text-align:left; padding:14px 16px; border:1px solid var(--line-hair);
    margin-bottom:10px; font-size:14px; transition:all .15s ease;
  }
  .quiz-opt:hover{ border-color:var(--line); background:var(--paper); }
  .quiz-result{ text-align:center; }
  .quiz-result .r-eyebrow{ margin-bottom:14px; justify-content:center; }
  .quiz-result h3{ font-size:22px; margin-bottom:12px; }
  .quiz-result p{ color:var(--slate); font-size:14.5px; margin-bottom:24px; }

  .sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }

  /* ============ CONTACT FORM STATES ============ */

  /* Honeypot decoy ("Leave this field empty"): clipped out of view with the
     same technique as .sr-only, but kept in the DOM so bots that fill every
     input still trip the server-side check. */
  .hp-wrap{
    position:absolute; width:1px; height:1px; margin:-1px; padding:0;
    overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%);
    white-space:nowrap;
  }

  /* Invalid fields get a red border; the matching message sits under the field. */
  .field-invalid input, .field-invalid select, .field-invalid textarea{ border-color:#C62828; }
  .field-invalid input:focus, .field-invalid select:focus, .field-invalid textarea:focus{ outline-color:#C62828; }
  .field-error{
    font-size:12px; color:#C62828; margin-top:2px;
  }

  /* Global status bar above the submit button, swapped by the JS. */
  .form-msg{ margin:14px 0 2px; font-size:13.5px; line-height:1.45; }
  .form-msg-error{ color:#C62828; }
  .form-msg-success{ color:#3BA55D; }

  /* The math-captcha question sits inside the field's label. */
  .captcha-field label{ line-height:1.6; }
  .captcha-field .captcha-q{
    font-family:var(--mono); font-weight:600; font-size:13.5px; color:var(--ink);
  }
  .mr-2 {
    margin-right: .28em;
  }