/* Agent BG — silent section marker. Desktop only, motion-respecting.
   The page must stand without this file; deleting it removes BG entirely. */
.bg-marker{display:none}
@media (min-width:1024px) and (prefers-reduced-motion:no-preference){
 /* Sits at the TOP OF THE CONTENT COLUMN, not in an outside gutter.
    Measured 12 Aug 2026: at 1280px the gutter is only ~28px wide, so a
    -3.25rem offset put the 44px glyph at left:-12px — clipped off-screen.
    In-column is robust at every width above the 1024px gate. */
 .bg-marker{display:block;width:44px;height:44px;margin:0 0 1.25rem;pointer-events:auto}
 /* The hero is a two-column grid; the marker must SPAN it rather than
    consume a cell, or the heading is pushed into the second column. */
 .hero .bg-marker{grid-column:1/-1}
 .sec,.hero{position:relative}
 .sec .bg-marker{margin-top:-.5rem}
 .bg-marker svg{width:44px;height:44px;overflow:visible}
 .bg-node{fill:none;stroke:#5B6B62;stroke-width:1.25;transition:stroke .5s ease}
 .bg-ring{fill:none;stroke:#1E2622;stroke-width:1.25}
 .bg-arc{fill:none;stroke:#2DD4A7;stroke-width:1.25;stroke-linecap:round;
  stroke-dasharray:14 100;stroke-dashoffset:0;opacity:0}
 .bg-marker.run{animation:bg-settle 250ms cubic-bezier(.22,1.4,.36,1) both}
 .bg-marker.run .bg-arc{animation:bg-scan 400ms 250ms linear both}
 .bg-marker.run .bg-node{animation:bg-resolve 250ms 650ms ease both}
 @keyframes bg-settle{0%{transform:translateY(5px) scale(.97);opacity:.35}
  60%{transform:translateY(-1px) scale(1.01)}100%{transform:none;opacity:1}}
 @keyframes bg-scan{0%{opacity:1;stroke-dashoffset:0}
  99%{opacity:1;stroke-dashoffset:-114}100%{opacity:0;stroke-dashoffset:-114}}
 @keyframes bg-resolve{to{stroke:#2DD4A7}}
 .bg-marker.held .bg-node{stroke:#2DD4A7}
}