/* ============================================================
   BIG SISTER AI - SALES BRAIN
   Dark hero, the sensor scene and the /brain page. Shared by index.html
   (hero + sensor band at the top of the page) and brain.html (dark end to
   end). Linked after css/nav-footer.css and before the page's inline
   <style>, same load order as that file.

   Depends on tokens each page defines in :root: --ink, --lime, --lime-ink,
   --lime-deep, --maxw, --font-display, --font-body, --ease.

   The scene markup is content/brain-scene.html, written into both pages by
   scripts/build_brain.py. assets/brain.js sets --brain-scale and pauses
   the loop off screen. Everything that moves is a CSS keyframe on ONE
   shared 12s timeline (percentages below are of those 12s):
     01   0-18%  rep video call  -> interaction scored 72, skill updated
     02  28-46%  CRM stage moved -> deal linked to its scored calls
     03  56-74%  AI agent call   -> interaction scored 81, same method
     Later 85-97% pattern        -> suggested skill, dashed, to approve
   At rest (prefers-reduced-motion, or .still on the section) the scene
   shows the END state: every node, link, tag and log row at full opacity,
   chips and rings hidden, nothing moving. Base styles ARE that end state;
   the keyframes only hide things early in the loop.
   ============================================================ */

:root{--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;}
/* Inter, self-hosted (Latin subset, variable 400-700, same file Google Fonts
   serves). Declared after the Google Fonts stylesheet so it wins for Latin
   text, and preloaded in the <head> of index.html and brain.html: the hero
   sub is the LCP element and should not wait on a second origin.
   License: assets/fonts/Inter-OFL.txt */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/inter-latin-var.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
/* Arial sized to Inter's metrics, so the hero copy does not reflow (and push
   the CTAs) when Inter arrives. Values match the widely used Inter fallback. */
@font-face{font-family:"Inter Fallback";src:local("Arial"),local("ArialMT");ascent-override:90.49%;descent-override:22.56%;line-gap-override:0%;size-adjust:107.06%;}
.bband{font-family:'Inter','Inter Fallback',-apple-system,BlinkMacSystemFont,sans-serif;}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;}

/* ---------- DARK NAV (modifier on the shared .nav) ---------- */
.nav--dark{background:rgba(0,0,0,.84);border-bottom-color:rgba(255,255,255,.1);}
.nav--dark .nav__logo svg path{fill:#fff;}
.nav--dark .nav__badge{color:#fff;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);}
.nav--dark .nav__links a{color:rgba(255,255,255,.72);}
.nav--dark .nav__links a:hover{color:#fff;}
.nav--dark .nav__links a.is-active{color:#fff;box-shadow:inset 0 -2px 0 var(--lime);padding-bottom:2px;}
.nav--dark .nav__login{color:rgba(255,255,255,.62);}
.nav--dark .nav__login:hover{color:#fff;}

/* ---------- DARK BAND (hero + sensor section share it) ---------- */
.bband{background-color:#000;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1.3px);background-size:20px 20px;color:#fff;}
.bband a:focus-visible,.nav--dark a:focus-visible,.brain a:focus-visible,.brain button:focus-visible{outline:2px solid var(--lime);outline-offset:3px;}

/* ---------- HERO ---------- */
.bhero{padding:88px 32px 56px;}
.bhero__in{max-width:var(--maxw);margin:0 auto;display:flex;flex-wrap:wrap;gap:32px 48px;align-items:flex-end;justify-content:space-between;}
.bhero__badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.02em;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);padding:5px 12px;border-radius:9999px;margin-bottom:26px;}
.bhero h1{flex:1 1 560px;min-width:0;margin:0;font-size:clamp(40px,8vw,104px);line-height:.9;letter-spacing:-.03em;text-transform:uppercase;color:#fff;}
.bhero__copy{flex:1 1 420px;min-width:0;max-width:560px;display:flex;flex-direction:column;gap:22px;}
.bhero__sub{margin:0;font-size:18px;line-height:1.5;color:rgba(255,255,255,.7);}
.bhero__cta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.bhero__note{margin:0;font-size:13px;color:rgba(255,255,255,.55);}

/* ---------- SENSOR SECTION ---------- */
.brain{padding:0 32px 72px;scroll-margin-top:64px;}
.brain__wrap{max-width:var(--maxw);margin:0 auto;}
.brain__panel{border:1px solid rgba(255,255,255,.12);border-radius:16px;overflow:hidden;background:#030303;}
.brain__head{display:flex;justify-content:space-between;align-items:center;gap:12px 16px;flex-wrap:wrap;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.08);}
.brain__title{margin:0;font-family:var(--font-mono);font-size:11px;font-weight:500;line-height:1.4;letter-spacing:.14em;color:rgba(255,255,255,.7);text-transform:uppercase;}
.brain__steps{margin:0;padding:0;list-style:none;display:flex;gap:22px;flex-wrap:wrap;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.85);}
.brain__num{color:var(--lime);}
.brain__legend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px;padding:14px 20px 0;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.65);}
.brain__legend span{display:flex;align-items:center;gap:6px;}
.brain__legend svg{flex:none;}

/* Scene: a fixed 1200x660 stage scaled to the wrapper width. */
.brain__scenewrap{position:relative;width:100%;max-width:1200px;margin:0 auto;aspect-ratio:1200/660;overflow:hidden;--brain-scale:1;}
.brain__scene{position:absolute;left:0;top:0;width:1200px;height:660px;transform-origin:0 0;transform:scale(var(--brain-scale));}
.brain__floor{position:absolute;left:-300px;right:-300px;top:400px;height:800px;transform-origin:50% 0;transform:perspective(520px) rotateX(68deg);background-image:linear-gradient(rgba(196,237,131,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(196,237,131,.09) 1px,transparent 1px);background-size:80px 80px;-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 25%,#000 100%);mask-image:linear-gradient(to bottom,transparent 0%,#000 25%,#000 100%);}
.brain__halo{position:absolute;left:600px;top:370px;width:560px;height:560px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(196,237,131,.16),rgba(196,237,131,0) 100%);}
.brain__svg{position:absolute;left:0;top:0;display:block;}
.brain__labels{font-family:var(--font-mono);}
.ring,.grow{transform-box:fill-box;transform-origin:center;}

/* Source cards. In the scene they sit at fixed stage positions; under 760px
   .src-in hides and the same five cards render in .brain__srclist. */
.src{box-sizing:border-box;padding:12px 14px;border-radius:10px;background:rgba(0,0,0,.85);display:flex;flex-direction:column;gap:4px;font-family:var(--font-body);}
.src--live{border:1px solid rgba(196,237,131,.45);}
.src--nov{border:1px dashed rgba(255,255,255,.3);}
.src--later{border:1px dashed rgba(255,255,255,.2);opacity:.85;}
.src-in{position:absolute;width:210px;}
.src--video{left:30px;top:128px;}
.src--phone{left:30px;top:282px;}
.src--email{left:30px;top:452px;}
.src--crm{left:960px;top:128px;}
.src--msg{left:960px;top:452px;}
.src__top{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.src__group{font-size:10px;letter-spacing:.14em;color:rgba(255,255,255,.6);text-transform:uppercase;}
.src__label{font-size:16px;color:#fff;}
.src__tools{font-size:11px;line-height:1.4;color:rgba(255,255,255,.6);}
.src__soon{display:flex;align-items:center;gap:6px;font-size:11px;line-height:1.4;color:rgba(255,255,255,.6);}
.brain__srclist .src__tools,.brain__srclist .src__soon{font-size:12px;}

/* Status pills: Live solid lime, November and Soon white outline, Later dashed. */
.badge{display:inline-block;font-size:9px;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;border-radius:9999px;white-space:nowrap;}
.badge--live{color:#000;background:var(--lime);padding:2px 7px;}
.badge--nov,.badge--soon{color:#fff;border:1px solid rgba(255,255,255,.5);padding:1px 6px;}
.badge--later{color:rgba(255,255,255,.65);border:1px dashed rgba(255,255,255,.35);padding:1px 6px;}

/* Travelling chips */
.chip{position:absolute;left:250px;top:170px;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--lime);border-radius:9px;background:#0b0b0b;white-space:nowrap;opacity:0;font-family:var(--font-body);}
.chip__txt{display:flex;flex-direction:column;gap:1px;}
.chip__kind{font-size:9px;letter-spacing:.12em;color:rgba(255,255,255,.6);text-transform:uppercase;}
.chip__who{font-size:13px;color:#fff;}
.chip__score{overflow:hidden;font-size:18px;font-weight:500;color:var(--lime);padding-left:6px;border-left:1px solid rgba(255,255,255,.12);}

.brain__note{margin:0;padding:10px 20px 14px;font-size:10px;letter-spacing:.12em;color:rgba(255,255,255,.55);text-transform:uppercase;}

/* Event log: real text, doubles as the text alternative for the scene. */
.brain__log{border-top:1px solid rgba(255,255,255,.08);padding:16px 20px;display:flex;flex-direction:column;gap:10px;}
.brain__loghead{font-size:10px;letter-spacing:.14em;color:rgba(255,255,255,.55);text-transform:uppercase;padding-bottom:2px;}
.logrow{display:flex;gap:16px;font-size:12px;line-height:1.5;color:rgba(255,255,255,.85);}
.lognum{width:28px;flex:none;color:var(--lime);}
.logsrc{width:170px;flex:none;}
.logtxt{flex:1;min-width:0;}
.logrow--later{color:rgba(255,255,255,.7);border:1px dashed rgba(255,255,255,.25);border-radius:8px;padding:8px 10px;margin:2px -10px 0;}
.logrow--later .lognum{color:rgba(196,237,131,.8);}
.logtag{color:rgba(255,255,255,.55);}

.brain__srclist{display:none;flex-direction:column;gap:8px;padding:16px 20px;border-top:1px solid rgba(255,255,255,.08);}

/* Four outputs */
.brain__outs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.08);border-top:1px solid rgba(255,255,255,.08);}
.bout{background:#030303;padding:20px;display:flex;flex-direction:column;gap:8px;}
.bout__k{font-size:10px;letter-spacing:.12em;color:rgba(255,255,255,.55);text-transform:uppercase;}
.bout__v{font-size:14px;line-height:1.5;color:rgba(255,255,255,.85);}
.bout__q{font-size:13px;color:var(--lime);}

/* Five-part strip under the panel on the homepage; each links into /brain. */
.parts{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px 24px;padding:40px 0 0;}
.parts a{display:flex;flex-direction:column;gap:6px;min-height:44px;padding:10px 0;color:#fff;border-top:1px solid rgba(255,255,255,.14);transition:border-color .15s;}
.parts a:hover{border-top-color:var(--lime);}
.parts__t{font-family:var(--font-display);font-weight:600;font-size:20px;letter-spacing:.02em;text-transform:uppercase;}
.parts__d{font-size:13px;line-height:1.5;color:rgba(255,255,255,.65);}
.parts__d b{color:var(--lime);font-weight:500;}

/* ---------- /brain PAGE ---------- */
.bpage{background:#000;color:#fff;}
.bpage .bhero{padding-bottom:40px;}
.bpart{padding:72px 32px;border-top:1px solid rgba(255,255,255,.1);scroll-margin-top:64px;}
.bpart__in{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px 64px;align-items:start;}
.bpart__num{display:block;font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;color:var(--lime);text-transform:uppercase;margin-bottom:14px;}
.bpart h2{margin:0 0 18px;font-size:clamp(34px,4.6vw,56px);line-height:.96;letter-spacing:-.03em;text-transform:uppercase;color:#fff;}
.bpart__lead{margin:0;font-size:18px;line-height:1.55;color:rgba(255,255,255,.7);max-width:520px;}
.bpart__body{display:flex;flex-direction:column;gap:22px;min-width:0;}
.bpart__body p{margin:0;font-size:16px;line-height:1.6;color:rgba(255,255,255,.8);}
.bpart__body p b{color:#fff;font-weight:600;}
.bpart__body a{color:var(--lime);text-decoration:underline;text-underline-offset:3px;}
.bpart__body a:hover{color:#e2f7bf;}

/* sources table (part 01) */
.btable{width:100%;border-collapse:collapse;font-size:14px;}
.btable th,.btable td{text-align:left;vertical-align:top;padding:12px 14px 12px 0;border-bottom:1px solid rgba(255,255,255,.1);}
.btable th{font-family:var(--font-mono);font-weight:500;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55);}
.btable td{color:rgba(255,255,255,.85);line-height:1.5;}
.btable td:first-child{color:#fff;font-weight:600;white-space:nowrap;}
.btable td:last-child{white-space:nowrap;}
.btable .badge{vertical-align:middle;}
.btable__soon{display:block;margin-top:4px;font-size:12px;color:rgba(255,255,255,.6);}
.btable__soon .badge{margin-right:6px;}

/* lists and cards (parts 02 to 05) */
.blist{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.blist li{position:relative;padding-left:22px;font-size:16px;line-height:1.5;color:rgba(255,255,255,.85);}
.blist li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--lime);}
.blist li.is-later::before{background:transparent;border:1px dashed rgba(255,255,255,.5);}
.blist .badge{margin-left:8px;vertical-align:middle;}
.bcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.bcard{border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:18px;background:#030303;display:flex;flex-direction:column;gap:8px;}
.bcard--later{border-style:dashed;}
.bcard__k{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55);display:flex;justify-content:space-between;gap:8px;align-items:center;}
.bcard__t{font-family:var(--font-display);font-weight:600;font-size:22px;letter-spacing:.01em;text-transform:uppercase;color:#fff;}
.bcard__d{font-size:14px;line-height:1.5;color:rgba(255,255,255,.75);}
.bcard__d a{display:inline-flex;align-items:center;min-height:44px;color:var(--lime);text-decoration:underline;text-underline-offset:3px;}
.bcard__q{font-family:var(--font-mono);font-size:13px;color:var(--lime);}
.bscore{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;}
.bscore__n{font-family:var(--font-mono);font-size:64px;line-height:1;font-weight:500;color:var(--lime);letter-spacing:-.02em;}
.bscore__l{font-size:14px;line-height:1.5;color:rgba(255,255,255,.7);max-width:300px;}

/* closing band */
.bclose{padding:88px 32px 96px;border-top:1px solid rgba(255,255,255,.1);text-align:center;}
.bclose__in{max-width:760px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:22px;}
.bclose h2{margin:0;font-size:clamp(40px,7vw,88px);line-height:.9;letter-spacing:-.03em;text-transform:uppercase;color:#fff;}
.bclose p{margin:0;font-size:18px;line-height:1.5;color:rgba(255,255,255,.7);}
.bclose__note{font-size:13px;color:rgba(255,255,255,.55);}

/* ---------- KEYFRAMES (one 12s timeline) ---------- */
@keyframes halo{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes zv{0%{opacity:.35}1%,6%{opacity:1}12%,56%{opacity:.35}57%,62%{opacity:1}68%,100%{opacity:.35}}
@keyframes zc{0%,28%{opacity:.35}29%,34%{opacity:1}40%,100%{opacity:.35}}
@keyframes pv{0%{box-shadow:none}1%,6%{box-shadow:0 0 0 1px #c4ed83,0 0 28px rgba(196,237,131,.35)}12%,56%{box-shadow:none}57%,62%{box-shadow:0 0 0 1px #c4ed83,0 0 28px rgba(196,237,131,.35)}68%,100%{box-shadow:none}}
@keyframes pc{0%,28%{box-shadow:none}29%,34%{box-shadow:0 0 0 1px #c4ed83,0 0 28px rgba(196,237,131,.35)}40%,100%{box-shadow:none}}
@keyframes s1{0%,6%{opacity:1}8%,27%{opacity:.4}28%,34%{opacity:1}36%,55%{opacity:.4}56%,62%{opacity:1}64%,100%{opacity:.4}}
@keyframes s2{0%{opacity:.4}1%,12%{opacity:1}14%,28%{opacity:.4}29%,40%{opacity:1}42%,56%{opacity:.4}57%,68%{opacity:1}70%,100%{opacity:.4}}
@keyframes s3{0%,11%{opacity:.4}12%,16%{opacity:1}18%,67%{opacity:.4}68%,72%{opacity:1}74%,100%{opacity:.4}}
@keyframes s4{0%,14%{opacity:.4}15%,27%{opacity:1}28%,42%{opacity:.4}43%,55%{opacity:1}56%,70%{opacity:.4}71%,97%{opacity:1}100%{opacity:.4}}
@keyframes cv{0%{left:250px;top:170px;opacity:0;transform:translate(-50%,-50%) scale(.9)}1%{opacity:1}12%,15%{left:430px;top:300px;opacity:1;transform:translate(-50%,-50%) scale(1)}18%,100%{left:430px;top:300px;opacity:0;transform:translate(-50%,-50%) scale(.3)}}
@keyframes cc{0%,28%{left:950px;top:170px;opacity:0;transform:translate(-50%,-50%) scale(.9)}29%{left:950px;top:170px;opacity:1}35%{left:760px;top:330px;opacity:1;transform:translate(-50%,-50%) scale(1)}40%,43%{left:471px;top:304px;opacity:1;transform:translate(-50%,-50%) scale(1)}46%,100%{left:471px;top:304px;opacity:0;transform:translate(-50%,-50%) scale(.3)}}
@keyframes ca{0%,56%{left:250px;top:170px;opacity:0;transform:translate(-50%,-50%) scale(.9)}57%{opacity:1}68%,71%{left:520px;top:535px;opacity:1;transform:translate(-50%,-50%) scale(1)}74%,100%{left:520px;top:535px;opacity:0;transform:translate(-50%,-50%) scale(.3)}}
@keyframes scv{0%,11%{max-width:0;opacity:0}13%,100%{max-width:60px;opacity:1}}
@keyframes sca{0%,67%{max-width:0;opacity:0}69%,100%{max-width:60px;opacity:1}}
@keyframes ap1{0%,13%{opacity:0;transform:scale(0)}16%,97%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
@keyframes ap3{0%,69%{opacity:0;transform:scale(0)}72%,97%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
@keyframes ap5{0%,85%{opacity:0;transform:scale(0)}88%,97%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
@keyframes ea{0%,15%{stroke-dashoffset:1;opacity:1}21%,97%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes eb{0%,19%{stroke-dashoffset:1;opacity:1}25%,97%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes ec{0%,43%{stroke-dashoffset:1;opacity:1}50%,97%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes ed{0%,71%{stroke-dashoffset:1;opacity:1}77%,97%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes eg{0%,75%{stroke-dashoffset:1;opacity:1}81%,97%{stroke-dashoffset:0;opacity:1}100%{stroke-dashoffset:0;opacity:0}}
@keyframes lf{0%,86%{opacity:0}91%,97%{opacity:1}100%{opacity:0}}
@keyframes ra{0%,23%{opacity:0;transform:scale(1)}24%{opacity:.9}33%,100%{opacity:0;transform:scale(3.4)}}
@keyframes rb{0%,39%{opacity:0;transform:scale(1)}40%{opacity:.9}49%,100%{opacity:0;transform:scale(3.4)}}
@keyframes rd{0%,79%{opacity:0;transform:scale(1)}80%{opacity:.9}89%,100%{opacity:0;transform:scale(3.4)}}
@keyframes rc{0%,87%{opacity:0;transform:scale(1)}88%{opacity:.9}96%,100%{opacity:0;transform:scale(3)}}
@keyframes ta{0%,15%{opacity:0}18%,97%{opacity:1}100%{opacity:0}}
@keyframes tb{0%,24%{opacity:0}27%,97%{opacity:1}100%{opacity:0}}
@keyframes tc{0%,40%{opacity:0}43%,97%{opacity:1}100%{opacity:0}}
@keyframes td{0%,71%{opacity:0}74%,97%{opacity:1}100%{opacity:0}}
@keyframes tg{0%,80%{opacity:0}83%,97%{opacity:1}100%{opacity:0}}
@keyframes tf{0%,88%{opacity:0}91%,97%{opacity:1}100%{opacity:0}}
@keyframes l1{0%,14%{opacity:.3}18%,97%{opacity:1}100%{opacity:.3}}
@keyframes l2{0%,42%{opacity:.3}46%,97%{opacity:1}100%{opacity:.3}}
@keyframes l3{0%,70%{opacity:.3}74%,97%{opacity:1}100%{opacity:.3}}
@keyframes l4{0%,86%{opacity:.3}90%,97%{opacity:1}100%{opacity:.3}}

.brain .halo{animation:halo 5s ease-in-out infinite;}
.brain .zv{animation:zv 12s linear infinite;}.brain .zc{animation:zc 12s linear infinite;}
.brain .pv{animation:pv 12s linear infinite;}.brain .pc{animation:pc 12s linear infinite;}
.brain .s1{animation:s1 12s linear infinite;}.brain .s2{animation:s2 12s linear infinite;}.brain .s3{animation:s3 12s linear infinite;}.brain .s4{animation:s4 12s linear infinite;}
.brain .cv{animation:cv 12s cubic-bezier(.4,0,.2,1) infinite;}.brain .cc{animation:cc 12s cubic-bezier(.4,0,.2,1) infinite;}.brain .ca{animation:ca 12s cubic-bezier(.4,0,.2,1) infinite;}
.brain .cv .sc{animation:scv 12s linear infinite;}.brain .ca .sc{animation:sca 12s linear infinite;}
.brain .ap1{animation:ap1 12s ease-out infinite;}.brain .ap3{animation:ap3 12s ease-out infinite;}.brain .ap5{animation:ap5 12s ease-out infinite;}
.brain .ea{animation:ea 12s ease-out infinite;}.brain .eb{animation:eb 12s ease-out infinite;}.brain .ec{animation:ec 12s ease-out infinite;}.brain .ed{animation:ed 12s ease-out infinite;}.brain .eg{animation:eg 12s ease-out infinite;}
.brain .lf{animation:lf 12s ease-out infinite;}
.brain .ra{animation:ra 12s ease-out infinite;}.brain .rb{animation:rb 12s ease-out infinite;}.brain .rd{animation:rd 12s ease-out infinite;}.brain .rc{animation:rc 12s ease-out infinite;}
.brain .ta{animation:ta 12s linear infinite;}.brain .tb{animation:tb 12s linear infinite;}.brain .tc{animation:tc 12s linear infinite;}.brain .td{animation:td 12s linear infinite;}.brain .tg{animation:tg 12s linear infinite;}.brain .tf{animation:tf 12s linear infinite;}
.brain .l1{animation:l1 12s linear infinite;}.brain .l2{animation:l2 12s linear infinite;}.brain .l3{animation:l3 12s linear infinite;}.brain .l4{animation:l4 12s linear infinite;}

/* Off screen (set by assets/brain.js): hold the whole timeline. */
.brain.is-paused .brain__panel *{animation-play-state:paused;}

/* End state: .still on the section, or the visitor asked for reduced motion. */
.brain.still .brain__panel *{animation:none;}
.brain.still .chip,.brain.still .ring{display:none;}
@media (prefers-reduced-motion:reduce){
  .brain .brain__panel *{animation:none;}
  .brain .chip,.brain .ring{display:none;}
  .parts a{transition:none;}
}

/* ---------- RESPONSIVE ---------- */
@media(max-width:900px){
  .bhero{padding:56px 22px 40px;}
  .brain{padding:0 22px 56px;}
  .bpart,.bclose{padding-left:22px;padding-right:22px;}
  .bpart__in{grid-template-columns:1fr;gap:28px;}
}
@media(max-width:760px){
  .bhero h1{font-size:40px;}
  .bhero__sub{font-size:17px;}
  .brain__steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;}
  .brain__outs{grid-template-columns:repeat(2,minmax(0,1fr));}
  .parts{grid-template-columns:repeat(2,minmax(0,1fr));}
  .logrow{flex-wrap:wrap;gap:2px 12px;}
  .logsrc{width:auto;}
  .logtxt{flex-basis:100%;}
  .src-in{display:none;}
  .brain__srclist{display:flex;}
  .bcards{grid-template-columns:1fr;}
  /* sources table stacks into labelled rows */
  .btable thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
  .btable,.btable tbody,.btable tr,.btable td{display:block;width:100%;}
  .btable tr{padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1);}
  .btable td{padding:3px 0;border:0;white-space:normal;}
  .btable td:last-child{white-space:normal;}
  .btable td[data-label]::before{content:attr(data-label);display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:2px;}
  .btable td:first-child{font-size:17px;padding-bottom:6px;}
  .btable td:first-child::before{display:none;}
}
@media(max-width:480px){
  .brain__outs{grid-template-columns:minmax(0,1fr);}
  .parts{grid-template-columns:minmax(0,1fr);}
  .bhero__cta .btn{width:100%;justify-content:center;}
  .bscore__n{font-size:52px;}
}
