:root{
  --sfl-bg:#000;
  --sfl-panel:#080b0c;
  --sfl-panel2:#0c1113;
  --sfl-line:rgba(255,255,255,.12);
  --sfl-line-strong:rgba(255,255,255,.2);
  --sfl-text:#f6f7f7;
  --sfl-muted:#969ca0;
  --sfl-muted2:#687277;
  --sfl-accent:#1ed889;
  --sfl-accent-deep:#123f37;
  --sfl-blue:#738dff;
  --sfl-warm:#ffad43;
}
.sf-labs-body{background:#000!important;color:var(--sfl-text)}
/* Labs is always dark: the layout declares data-bs-theme="light", whose Bootstrap heading colour is near-black. */
.sf-labs-body :is(h1,h2,h3,h4){color:var(--sfl-text)}
.sf-labs-page-main{max-width:none!important;width:100%!important;padding:0!important;margin:0!important;background:#000;display:flow-root}
.sf-labs-body .main-content{min-height:0}
.sfl-shell{width:min(1180px,calc(100% - 48px));margin:0 auto;position:relative}
.sfl-kicker,.sfl-eyebrow{font:700 .69rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.15em;color:var(--sfl-accent)}
.sfl-eyebrow{display:flex;align-items:center;gap:10px}
.sfl-eyebrow span{width:7px;height:7px;border-radius:50%;background:var(--sfl-accent);box-shadow:0 0 14px rgba(36,229,140,.75)}
.sfl-hero{position:relative;background:#000;border-bottom:1px solid var(--sfl-line);padding:58px 0 34px;overflow:hidden}
.sfl-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 72% 26%,rgba(36,229,140,.08),transparent 27%),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:auto,52px 52px,52px 52px;mask-image:linear-gradient(to bottom,#000,transparent 96%)}
.sfl-hero-layout{display:grid;grid-template-columns:.96fr 1.04fr;gap:56px;align-items:center;min-height:600px}
.sfl-hero-copy{position:relative;z-index:2}
/* Same type as the main site hero title (.sf-hero-title in styles-page.css). */
.sfl-hero h1{font-size:clamp(2.4rem,7vw,3.75rem);line-height:1.04;letter-spacing:-.03em;margin:22px 0 24px;font-weight:500;color:#fafafa;max-width:650px}
.sfl-hero h1 strong{color:var(--sfl-accent);font-weight:500}
.sfl-lead{max-width:560px;color:#a1a6a9;font-size:1.08rem;line-height:1.6;margin:0}
.sfl-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.sfl-btn{display:inline-flex;align-items:center;justify-content:center;gap:13px;min-height:48px;padding:0 22px;border-radius:999px;border:1px solid var(--sfl-line-strong);font-size:.9rem;font-weight:650;text-decoration:none;transition:.2s ease;position:relative;z-index:4}
.sfl-btn-primary{background:#123f37;color:#fff;border-color:#235c50;box-shadow:0 0 0 1px rgba(18,63,55,.28),0 12px 32px rgba(0,0,0,.28)}
.sfl-btn-primary:hover{background:#185247;color:#fff;transform:translateY(-1px)}
.sfl-btn-ghost{color:#f5f5f5;background:rgba(255,255,255,.02)}
.sfl-btn-ghost:hover{background:rgba(255,255,255,.06);color:#fff}
.sfl-carousel-dots{display:flex;gap:14px;margin-top:36px}
.sfl-carousel-dots button{width:6px;height:6px;border-radius:50%;border:0;padding:0;background:#4f5558;cursor:pointer;transition:.25s ease}
.sfl-carousel-dots button.is-active{width:39px;border-radius:999px;background:var(--sfl-accent)}
.sfl-carousel{position:relative;min-width:0;z-index:2}
.sfl-carousel-track{position:relative;height:520px}
.sfl-hero-slide{position:absolute;inset:0;opacity:0;transform:translateX(22px) scale(.985);pointer-events:none;transition:opacity .5s ease,transform .55s cubic-bezier(.2,.8,.2,1);border:1px solid var(--sfl-line);border-radius:18px;overflow:hidden;background:linear-gradient(135deg,#0b1012,#050708)}
.sfl-hero-slide.is-active{opacity:1;transform:none;pointer-events:auto}
.sfl-slide-index{position:absolute;left:20px;top:18px;z-index:3;font:700 .64rem ui-monospace,monospace;letter-spacing:.12em;color:#809096}
.sfl-slide-copy{position:absolute;left:26px;bottom:27px;z-index:3;width:48%}
.sfl-slide-copy>span{font:700 .62rem ui-monospace,monospace;letter-spacing:.13em;color:var(--sfl-accent)}
.sfl-slide-copy h2{font-size:1.85rem;line-height:1;letter-spacing:-.045em;margin:10px 0 12px}
.sfl-slide-copy p{color:#9ba2a5;line-height:1.5;font-size:.9rem;margin:0 0 17px}
.sfl-slide-copy a{color:#fff;text-decoration:none;font-weight:650;font-size:.83rem}
.sfl-slide-art{position:absolute;inset:0;overflow:hidden}
.sfl-slide-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.96) 0,rgba(0,0,0,.72) 36%,rgba(0,0,0,.08) 70%),linear-gradient(to top,rgba(0,0,0,.62),transparent 45%)}
.sfl-slide-art--mva{background:radial-gradient(circle at 72% 48%,rgba(111,72,255,.27),transparent 35%),radial-gradient(circle at 61% 44%,rgba(0,180,255,.18),transparent 28%),#05080a}
.sfl-slide-art--fly{background:radial-gradient(circle at 72% 50%,rgba(36,229,140,.13),transparent 35%),#050807}
.sfl-live-tag{position:absolute;right:24px;top:24px;font:700 .62rem ui-monospace,monospace;letter-spacing:.12em;color:var(--sfl-accent);display:flex;align-items:center;gap:7px}.sfl-live-tag i{width:6px;height:6px;border-radius:50%;background:var(--sfl-accent);box-shadow:0 0 10px var(--sfl-accent)}
.sfl-slide-art--music{background:radial-gradient(circle at 73% 42%,rgba(93,104,255,.22),transparent 33%),#050609}
.sfl-carousel-arrow{position:absolute;top:50%;width:42px;height:42px;border-radius:50%;border:1px solid var(--sfl-line-strong);background:rgba(5,8,9,.82);color:#fff;z-index:5;cursor:pointer;display:grid;place-items:center;transform:translateY(-50%);backdrop-filter:blur(8px)}.sfl-carousel-prev{left:-21px}.sfl-carousel-next{right:-21px}.sfl-carousel-arrow:hover{border-color:rgba(36,229,140,.5);color:var(--sfl-accent)}
.sfl-research,.sfl-projects,.sfl-workbench,.sfl-principles{background:#000}
.sfl-research{padding:76px 0 0}
.sfl-section-head--split{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:end}
/* Labs type scale: hero 3.75rem > section 2.6rem > slide 1.85rem > card 1.35rem. */
.sfl-section-head h2,.sfl-principles h2{font-size:clamp(2rem,3.7vw,2.6rem);line-height:1.02;letter-spacing:-.045em;margin:12px 0 0;font-weight:600}
.sfl-section-head p{margin:0;color:var(--sfl-muted);font-size:.98rem;line-height:1.7}
.sfl-filter-row{margin-top:44px;display:flex;gap:0;border-bottom:1px solid var(--sfl-line);overflow-x:auto;scrollbar-width:none}.sfl-filter-row::-webkit-scrollbar{display:none}.sfl-filter-row span{padding:14px 24px 15px 0;margin-right:34px;color:#777f83;font-size:.86rem;white-space:nowrap;position:relative}.sfl-filter-row span.is-active{color:#fff}.sfl-filter-row span.is-active:after{content:"";position:absolute;left:0;right:24px;bottom:-1px;height:2px;background:var(--sfl-accent)}
.sfl-projects{padding:48px 0 92px}.sfl-projects-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.sfl-projects-head>span:last-child{font:600 .65rem ui-monospace,monospace;color:#5d686d;letter-spacing:.12em}
.sfl-project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.sfl-project-card{position:relative;border:1px solid var(--sfl-line);border-radius:16px;overflow:hidden;background:#06090a;min-width:0;transition:.22s ease}.sfl-project-card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.24)}
.sfl-project-link{position:absolute;inset:0;z-index:4}.sfl-card-visual{height:240px;position:relative;overflow:hidden;border-bottom:1px solid var(--sfl-line)}.sfl-card-label{position:absolute;left:18px;top:17px;z-index:2;font:700 .61rem ui-monospace,monospace;letter-spacing:.12em;color:var(--sfl-accent)}.sfl-card-visual--fly{background:radial-gradient(circle at 72% 54%,rgba(36,229,140,.16),transparent 36%),#07100c}.sfl-card-fly{position:absolute;width:230px;right:-20px;bottom:8px;color:var(--sfl-accent);transform:rotate(-7deg);filter:drop-shadow(0 0 18px rgba(36,229,140,.16))}.sfl-card-fly svg{width:100%}.sfl-card-visual--mva{background:radial-gradient(circle at 68% 52%,rgba(94,88,255,.24),transparent 38%),#070811}.sfl-card-mva{position:absolute;right:20px;bottom:28px;text-align:right}.sfl-card-mva strong{display:block;color:#a9baff;font:800 2.1rem ui-monospace,monospace;letter-spacing:.08em}.sfl-card-mva span{color:#7186c3;font:700 .68rem ui-monospace,monospace;letter-spacing:.08em}.sfl-card-visual--music{background:radial-gradient(circle at 60% 50%,rgba(255,173,67,.12),transparent 38%),#0b0905}
.sfl-card-copy{padding:22px}.sfl-card-copy h3{font-size:1.35rem;letter-spacing:-.03em;margin:0 0 11px}.sfl-card-copy p{color:#90979b;line-height:1.55;font-size:.88rem;min-height:82px;margin:0}.sfl-card-copy>span{display:block;margin-top:20px;color:#fff;font-size:.83rem;font-weight:650}
.sfl-workbench{padding:84px 0;border-top:1px solid var(--sfl-line)}.sfl-system-ok{justify-self:end;align-self:end;display:flex;align-items:center;gap:8px;color:#8f999c;font-size:.83rem}.sfl-system-ok i{width:7px;height:7px;border-radius:50%;background:var(--sfl-accent);box-shadow:0 0 11px rgba(36,229,140,.8)}
.sfl-workbench-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}.sfl-workbench-grid article{border:1px solid var(--sfl-line);border-radius:14px;padding:18px;background:#050708;min-height:205px}.sfl-run-row{display:flex;justify-content:space-between;gap:14px;align-items:center;font-size:.8rem}.sfl-run-row b{font:700 .56rem ui-monospace,monospace;color:var(--sfl-accent);letter-spacing:.08em}.sfl-workbench-grid p{font-size:.82rem;color:#858d91;line-height:1.5;margin:16px 0 0}.sfl-mini-chart{height:70px;margin-top:22px;position:relative;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.05)}
.sfl-mini-chart--line:before{content:"";position:absolute;inset:12px 0 9px;background:linear-gradient(135deg,transparent 0 10%,rgba(36,229,140,.8) 11% 12%,transparent 13% 20%,rgba(36,229,140,.5) 21% 22%,transparent 23% 35%,rgba(36,229,140,.75) 36% 37%,transparent 38% 53%,rgba(36,229,140,.9) 54% 55%,transparent 56% 66%,rgba(36,229,140,.5) 67% 68%,transparent 69% 80%,rgba(36,229,140,.75) 81% 82%,transparent 83%);filter:drop-shadow(0 0 5px rgba(36,229,140,.4))}
.sfl-mini-chart--bars{background:repeating-linear-gradient(90deg,transparent 0 8px,rgba(36,229,140,.62) 8px 12px,transparent 12px 17px);mask-image:linear-gradient(to top,#000,transparent 82%)}.sfl-mini-chart--wave{background:repeating-linear-gradient(90deg,transparent 0 5px,rgba(115,141,255,.72) 5px 7px,transparent 7px 11px);mask-image:radial-gradient(ellipse at center,#000 28%,transparent 77%)}


/* Current Workbench — instrument-grade visual language */
.sfl-workbench-grid--instrumented{gap:18px}
.sfl-workbench-card{position:relative;overflow:hidden;padding:18px!important;background:#040607!important;border-color:rgba(255,255,255,.11)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 18px 50px rgba(0,0,0,.2)}
.sfl-workbench-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(circle at 84% 4%,rgba(30,216,137,.045),transparent 27%),
  linear-gradient(rgba(255,255,255,.014) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px);
  background-size:auto,30px 30px,30px 30px;mask-image:linear-gradient(to bottom,#000,transparent 92%)}
.sfl-workbench-card>*{position:relative;z-index:1}
.sfl-console{position:relative;margin-top:18px;border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden;background:linear-gradient(180deg,rgba(7,11,12,.94),rgba(2,5,6,.96));box-shadow:inset 0 0 28px rgba(0,0,0,.44)}
.sfl-console:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.025) 46%,transparent 62%);transform:translateX(-120%);animation:sflConsoleSheen 8s ease-in-out infinite}
.sfl-console-bar,.sfl-console-foot{position:relative;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;font:700 .48rem/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;color:#647176}
.sfl-console-bar{border-bottom:1px solid rgba(255,255,255,.055)}
.sfl-console-bar span{display:flex;align-items:center;gap:7px}
.sfl-console-bar i{width:5px;height:5px;border-radius:50%;background:var(--sfl-accent);box-shadow:0 0 10px rgba(30,216,137,.85)}
.sfl-console-bar strong{font-size:.49rem;color:#a5b0b4}
.sfl-console-foot{border-top:1px solid rgba(255,255,255,.055);color:#465156}
.sfl-console-foot span{display:grid;gap:4px}
.sfl-console-foot b{font-size:.5rem;color:#899498;letter-spacing:.1em}
.sfl-console-stage{position:relative;height:152px;overflow:hidden}
.sfl-console-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.sfl-console-grid path{fill:none;stroke:rgba(255,255,255,.042);stroke-width:1;vector-effect:non-scaling-stroke}
.sfl-console-playhead{fill:rgba(30,216,137,.055);animation:sflConsoleSweep 5.8s linear infinite}

/* NeuroFly */
.sfl-workbench-card--neurofly{border-color:rgba(30,216,137,.18)!important}
.sfl-console--neurofly{background:
  radial-gradient(circle at 84% 48%,rgba(30,216,137,.075),transparent 28%),
  linear-gradient(180deg,#050a09,#020504)}
.sfl-nf-signal-halo,.sfl-nf-signal,.sfl-nf-spikes path{fill:none;vector-effect:non-scaling-stroke}
.sfl-nf-signal-halo{stroke:rgba(30,216,137,.11);stroke-width:11}
.sfl-nf-signal{stroke:#1ed889;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:11 9;animation:sflSignalRun 3.8s linear infinite}
.sfl-nf-spikes path{stroke:#58efab;stroke-width:1.6;stroke-linecap:round;animation:sflSpikePulse 2.7s ease-in-out infinite}
.sfl-nf-spikes path:nth-child(2){animation-delay:.75s}.sfl-nf-spikes path:nth-child(3){animation-delay:1.45s}
.sfl-nf-radar{position:absolute;right:22px;top:27px;width:92px;height:92px;border:1px solid rgba(30,216,137,.13);border-radius:50%;z-index:3}
.sfl-nf-radar:before,.sfl-nf-radar:after,.sfl-nf-radar i{content:"";position:absolute;inset:18%;border:1px solid rgba(30,216,137,.09);border-radius:50%}
.sfl-nf-radar:after{inset:37%}.sfl-nf-radar i:nth-child(1){inset:0;border:0;border-left:1px solid rgba(30,216,137,.11);border-radius:0;left:50%}
.sfl-nf-radar i:nth-child(2){inset:0;border:0;border-top:1px solid rgba(30,216,137,.11);border-radius:0;top:50%}
.sfl-nf-radar i:nth-child(3){inset:5%;border:0;background:conic-gradient(from 0deg,transparent 0 315deg,rgba(30,216,137,.13) 342deg,rgba(30,216,137,.02) 360deg);animation:sflRadarSpin 5s linear infinite}
.sfl-nf-radar span{position:absolute;width:6px;height:6px;border-radius:50%;background:#1ed889;left:24%;top:31%;box-shadow:0 0 10px #1ed889;animation:sflRadarPing 2.4s ease-in-out infinite}
.sfl-channel-stack{position:absolute;left:14px;right:132px;bottom:10px;z-index:3;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.sfl-channel-stack>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px;font:700 .42rem ui-monospace,monospace;letter-spacing:.08em;color:#536066}
.sfl-channel-stack i{height:3px;background:rgba(255,255,255,.055);overflow:hidden;border-radius:999px}
.sfl-channel-stack b{display:block;width:var(--level);height:100%;background:linear-gradient(90deg,rgba(30,216,137,.28),#1ed889);box-shadow:0 0 9px rgba(30,216,137,.32);animation:sflLevelPulse 3.4s ease-in-out infinite alternate}

/* MVA */
.sfl-workbench-card--mva{border-color:rgba(86,144,242,.16)!important;background:
  radial-gradient(circle at 78% 7%,rgba(86,144,242,.055),transparent 28%),#040507!important}
.sfl-console--mva{background:
  radial-gradient(circle at 45% 50%,rgba(86,144,242,.07),transparent 32%),
  linear-gradient(180deg,#050812,#02040a)}
.sfl-mva-variants-panel{position:absolute;z-index:4;left:12px;top:13px;display:flex;gap:7px}
.sfl-mva-variants-panel span{padding:5px 7px;border:1px solid rgba(118,176,251,.16);border-radius:6px;background:rgba(86,144,242,.055);font:700 .45rem ui-monospace,monospace;letter-spacing:.07em;color:#86b4ec}
.sfl-mva-rail-bg,.sfl-mva-rail,.sfl-mva-orbit ellipse{fill:none;vector-effect:non-scaling-stroke}
.sfl-mva-rail-bg{stroke:rgba(118,176,251,.10);stroke-width:9}
.sfl-mva-rail{stroke:#5690f2;stroke-width:2;stroke-dasharray:10 10;animation:sflMvaFlow 3.2s linear infinite}
.sfl-mva-station>circle:first-child{fill:rgba(86,144,242,.055);stroke:#5690f2;stroke-opacity:.52;stroke-width:1.3}
.sfl-mva-station .core{fill:#9cd3ff;transform-box:fill-box;transform-origin:center;animation:sflMvaNode 2.6s ease-in-out calc(var(--i)*.35s) infinite}
.sfl-mva-orbit ellipse{stroke:rgba(156,211,255,.22);stroke-width:1}
.sfl-mva-orbit circle{fill:#9cd3ff;transform-box:fill-box;transform-origin:-42px 15px;animation:sflMvaOrbit 4s linear infinite}
.sfl-mva-scan{fill:rgba(86,144,242,.045);animation:sflConsoleSweep 6.8s linear infinite}
.sfl-mva-stage-labels{position:absolute;z-index:4;left:17%;right:5%;bottom:12px;display:grid;grid-template-columns:repeat(4,1fr);text-align:center;gap:6px;font:700 .42rem ui-monospace,monospace;letter-spacing:.08em;color:#50617a}

/* Music */
.sfl-workbench-card--music{border-color:rgba(115,141,255,.17)!important;background:
  radial-gradient(circle at 77% 7%,rgba(115,141,255,.06),transparent 30%),
  radial-gradient(circle at 16% 90%,rgba(240,122,196,.035),transparent 26%),#04050a!important}
.sfl-console--music{background:
  radial-gradient(circle at 74% 46%,rgba(115,141,255,.08),transparent 32%),
  linear-gradient(180deg,#07091a,#03040b)}
.sfl-music-wave{animation:sflMusicStaff 12s linear infinite}
.sfl-music-wave path{fill:none;stroke:#738dff;stroke-opacity:.28;stroke-width:1.35;vector-effect:non-scaling-stroke}
.sfl-music-note-row g{fill:#b8c3ff;stroke:#b8c3ff;stroke-width:2;stroke-linecap:round;transform-box:fill-box;transform-origin:center;animation:sflMusicNote 3.4s ease-in-out calc(var(--i)*-.55s) infinite alternate}
.sfl-music-note-row g:nth-child(2){fill:#f07ac4;stroke:#f07ac4}.sfl-music-note-row g:nth-child(3){fill:#55c8ff;stroke:#55c8ff}.sfl-music-note-row g:nth-child(4){fill:#ffb457;stroke:#ffb457}
.sfl-music-sparks circle{fill:#fff;opacity:.5;transform-box:fill-box;transform-origin:center;animation:sflMusicSpark 2.8s ease-in-out infinite}
.sfl-music-sparks circle:nth-child(even){animation-delay:.9s}
.sfl-music-playhead{fill:#b8c3ff;opacity:.32;filter:drop-shadow(0 0 5px rgba(184,195,255,.5));animation:sflMusicPlayhead 5.5s linear infinite}
.sfl-chord-sequencer{position:absolute;z-index:4;left:14px;right:14px;bottom:10px;display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.sfl-chord-sequencer span{display:grid;place-items:center;height:24px;border:1px solid rgba(115,141,255,.12);border-radius:6px;background:rgba(115,141,255,.035);font:700 .48rem ui-monospace,monospace;color:#6874a7;animation:sflChordStep 8s ease-in-out calc(var(--i)*2s) infinite}
.sfl-console--music .sfl-console-bar i{background:#8b7cff;box-shadow:0 0 10px rgba(139,124,255,.85)}

@keyframes sflConsoleSheen{0%,68%{transform:translateX(-120%)}82%,100%{transform:translateX(120%)}}
@keyframes sflConsoleSweep{from{transform:translateX(0)}to{transform:translateX(850px)}}
@keyframes sflSignalRun{to{stroke-dashoffset:-80}}
@keyframes sflSpikePulse{0%,100%{opacity:.3}50%{opacity:1}}
@keyframes sflRadarSpin{to{transform:rotate(360deg)}}
@keyframes sflRadarPing{0%,100%{opacity:.35;transform:scale(.65)}50%{opacity:1;transform:scale(1.4)}}
@keyframes sflLevelPulse{from{opacity:.55;transform:scaleX(.88);transform-origin:left}to{opacity:1;transform:scaleX(1);transform-origin:left}}
@keyframes sflMvaFlow{to{stroke-dashoffset:-80}}
@keyframes sflMvaNode{0%,100%{opacity:.35;transform:scale(.65)}50%{opacity:1;transform:scale(1.6)}}
@keyframes sflMvaOrbit{to{transform:rotate(360deg)}}
@keyframes sflMusicStaff{from{transform:translateX(0)}to{transform:translateX(-36px)}}
@keyframes sflMusicNote{from{transform:translateY(-5px) rotate(-2deg)}to{transform:translateY(6px) rotate(2deg)}}
@keyframes sflMusicSpark{0%,100%{opacity:.18;transform:scale(.65)}50%{opacity:.9;transform:scale(1.4)}}
@keyframes sflMusicPlayhead{from{transform:translateX(0)}to{transform:translateX(724px)}}
@keyframes sflChordStep{0%,18%,100%{color:#6874a7;border-color:rgba(115,141,255,.12);background:rgba(115,141,255,.035);box-shadow:none}4%,12%{color:#fff;border-color:rgba(184,195,255,.42);background:rgba(115,141,255,.14);box-shadow:0 0 16px rgba(115,141,255,.18)}}

.sfl-workbench-card:not(.is-in-view) .sfl-console *{animation-play-state:paused!important}

@media(max-width:1024px){
  .sfl-console-stage{height:168px}
  .sfl-channel-stack{right:145px}
}
@media(max-width:760px){
  .sfl-workbench-card{padding:16px!important}
  .sfl-console-stage{height:176px}
  .sfl-console-bar,.sfl-console-foot{padding:10px}
  .sfl-nf-radar{width:82px;height:82px;right:12px}
  .sfl-channel-stack{left:10px;right:108px;grid-template-columns:1fr;gap:5px}
  .sfl-channel-stack>div{grid-template-columns:48px 1fr}
  .sfl-mva-stage-labels{left:8%;right:3%;font-size:.38rem}
}
@media(max-width:480px){
  .sfl-console-stage{height:166px}
  .sfl-console-foot{font-size:.41rem;letter-spacing:.08em}
  .sfl-console-foot b{font-size:.43rem}
  .sfl-mva-variants-panel{top:10px}
  .sfl-chord-sequencer{left:10px;right:10px}
}
@media(prefers-reduced-motion:reduce){
  .sfl-console *{animation:none!important;transition:none!important}
}

.sfl-principles{padding:90px 0;border-top:1px solid var(--sfl-line)}.sfl-principles-layout{display:grid;grid-template-columns:.92fr 1.08fr;gap:80px}.sfl-protocol{border-top:1px solid var(--sfl-line)}.sfl-protocol>div{display:grid;grid-template-columns:42px 130px 1fr;gap:15px;padding:20px 0;border-bottom:1px solid var(--sfl-line);align-items:start}.sfl-protocol b{font:700 .64rem ui-monospace,monospace;color:#566166}.sfl-protocol span{font-size:.85rem;font-weight:650}.sfl-protocol p{margin:0;color:#7f888c;font-size:.83rem;line-height:1.5}

@media(max-width:1024px){
  .sfl-shell{width:min(930px,calc(100% - 40px))}
  .sfl-hero{padding-top:calc(56px + 1.75rem)}
  .sfl-hero-layout{grid-template-columns:.9fr 1.1fr;gap:32px;min-height:540px}
  .sfl-carousel-track{height:455px}
  .sfl-slide-copy{width:52%;left:22px;bottom:22px}
  .sfl-project-grid{grid-template-columns:repeat(2,1fr)}
  .sfl-project-card:last-child{grid-column:1/-1}
  .sfl-card-copy p{min-height:auto}
  .sfl-workbench-grid{grid-template-columns:1fr}
  .sfl-workbench-grid article{min-height:170px}
  .sfl-principles-layout{grid-template-columns:1fr;gap:36px}
}

@media(max-width:760px){
  .sfl-shell{width:min(100% - 32px,680px)}
  .sfl-hero{padding:calc(45px + 1.5rem) 0 28px}
  .sfl-hero-layout{display:block;min-height:0}
  .sfl-hero h1{max-width:620px;margin:18px 0 20px}
  .sfl-lead{font-size:.98rem;line-height:1.55}
  .sfl-hero-actions{margin-top:25px}
  .sfl-btn{min-height:46px;padding:0 18px;font-size:.85rem}
  .sfl-carousel-dots{margin:28px 0 20px}
  .sfl-carousel{margin-top:6px}
  .sfl-carousel-track{height:390px}
  .sfl-hero-slide{border-radius:14px}
  .sfl-slide-copy{width:62%;left:18px;bottom:20px}
  .sfl-slide-copy h2{font-size:1.6rem}
  .sfl-slide-copy p{font-size:.78rem}
  .sfl-carousel-arrow{width:36px;height:36px}.sfl-carousel-prev{left:8px}.sfl-carousel-next{right:8px}
  .sfl-research{padding-top:62px}
  .sfl-section-head--split{grid-template-columns:1fr;gap:22px}
  .sfl-filter-row{margin-top:28px}
  .sfl-projects{padding:36px 0 72px}
  .sfl-project-grid{grid-template-columns:1fr}
  .sfl-project-card:last-child{grid-column:auto}
  .sfl-card-visual{height:210px}
  .sfl-card-copy{padding:20px}
  .sfl-workbench{padding:70px 0}
  .sfl-system-ok{justify-self:start}
  .sfl-principles{padding:72px 0}
  .sfl-protocol>div{grid-template-columns:34px 112px 1fr}
}

@media(max-width:480px){
  .sfl-shell{width:calc(100% - 28px)}
  .sfl-hero-actions{display:grid;grid-template-columns:1fr 1fr}
  .sfl-btn{width:100%;padding:0 10px}
  .sfl-carousel-track{height:360px}
  .sfl-slide-copy{width:67%}
  .sfl-slide-copy h2{font-size:1.45rem}
  .sfl-slide-copy p{font-size:.75rem}
  .sfl-slide-art:after{background:linear-gradient(90deg,rgba(0,0,0,.97) 0,rgba(0,0,0,.76) 48%,rgba(0,0,0,.12) 88%),linear-gradient(to top,rgba(0,0,0,.7),transparent 45%)}
  .sfl-live-tag{top:17px;right:15px;font-size:.52rem}
  .sfl-projects-head>span:last-child{display:none}
  .sfl-protocol>div{grid-template-columns:30px 1fr}.sfl-protocol p{grid-column:2}
}

@media(prefers-reduced-motion:reduce){
  .sfl-hero-slide{transition:none}
}
.sfl-protein-callout{position:absolute;right:7%;bottom:7%;z-index:2;text-align:right;display:grid;gap:4px}
.sfl-protein-callout span{font:700 .57rem ui-monospace,monospace;letter-spacing:.14em;color:#7187b8}
.sfl-protein-callout strong{font:800 2rem ui-monospace,monospace;letter-spacing:.08em;color:#b4c3ff}
.sfl-protein-callout small{font:700 .64rem ui-monospace,monospace;color:#7c8fca}
.sfl-card-fly-photo{position:absolute;inset:0;width:100%;height:100%}
.sfl-card-fly-photo svg{width:100%;height:100%;display:block}
.sfl-card-visual--fly:after,.sfl-card-visual--mva:after,.sfl-card-visual--music:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.9),rgba(0,0,0,.18) 70%),linear-gradient(to top,rgba(0,0,0,.48),transparent 55%)}
.sfl-card-label,.sfl-card-mva{z-index:2}
.sfl-hero-slide,.sfl-project-card{box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 20px 55px rgba(0,0,0,.18)}
.sfl-slide-art--mva,.sfl-card-visual--mva{background:radial-gradient(circle at 76% 48%,rgba(63,79,216,.28),transparent 34%),radial-gradient(circle at 62% 44%,rgba(0,145,255,.12),transparent 27%),#040609}
.sfl-slide-art--music,.sfl-card-visual--music{background:radial-gradient(circle at 73% 46%,rgba(189,105,42,.15),transparent 33%),#070604}
.sfl-slide-art--fly,.sfl-card-visual--fly{background:radial-gradient(circle at 72% 50%,rgba(24,138,103,.22),transparent 38%),#030705}
@media(max-width:760px){
  .sfl-protein-callout{right:5%;bottom:5%}
  .sfl-protein-callout strong{font-size:1.45rem}
}
@media(max-width:480px){
  .sfl-protein-callout{display:none}
}

/* Match Featured NeuroFly card to the animated hero agent */
.sfl-card-fly-live{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 67% 54%,rgba(30,216,137,.13),transparent 34%),#030705}
.sfl-card-live-tag{position:absolute;right:16px;bottom:14px;display:flex;align-items:center;gap:7px;color:var(--sfl-accent);font:700 .55rem ui-monospace,monospace;letter-spacing:.11em}
.sfl-card-live-tag i{width:6px;height:6px;border-radius:50%;background:var(--sfl-accent);box-shadow:0 0 10px rgba(30,216,137,.9)}

/* NeuroFly NF-001 specimen: photograph + aligned vector overlay
   (views/partials/labs/neurofly-overlay.ejs). The stage keeps the photo's
   1420:941 ratio so overlay coordinates stay on the anatomy at any size. */
.sfl-nf-stage{position:absolute;top:0;bottom:0;right:0;height:100%;aspect-ratio:1420/941;overflow:hidden}
.sfl-nf-photo,.sfl-nf-overlay{position:absolute;inset:0;width:100%;height:100%;display:block}
.sfl-nf-photo{object-fit:cover}
/* Photo and overlay share one box, so the same drift keeps the overlay on the anatomy. */
.sfl-nf-photo,.sfl-nf-overlay{transform-origin:72% 45%;animation:sflNfDrift 14s ease-in-out infinite alternate}
.sfl-nf-overlay [data-part]{transform-box:fill-box;transform-origin:50% 50%}
.sfl-nf-shimmer{animation:sflNfShimmer 5.5s ease-in-out infinite;mix-blend-mode:screen}
.sfl-nf-glint{mix-blend-mode:screen;animation:sflNfGlint 3.8s ease-in-out infinite}
.sfl-nf-scan{animation:sflNfScan 7s linear infinite}
.sfl-nf-tracking{fill:none;stroke:#1ed889;stroke-width:2.5;stroke-opacity:.6;animation:sflNfTrack 4.2s ease-in-out infinite}
.sfl-nf-tracking circle{fill:#1ed889;stroke:none}
.sfl-nf-neural{fill:none;stroke-linecap:round;stroke-linejoin:round;transition:opacity .4s ease}
.sfl-nf-neural-brain{fill:#9c5cff;fill-opacity:.18;stroke:#9c5cff;stroke-width:3}
.sfl-nf-neural-visual{stroke:#32b5ff;stroke-width:3.5}
.sfl-nf-neural-motor{stroke:#ff9e31;stroke-width:3}
.sfl-nf-neural-active{stroke:#1ed889;stroke-width:4.5}
.sfl-nf-neural-active circle{fill:#1ed889;stroke:none}
@keyframes sflNfDrift{from{transform:scale(1) translate(0,0)}to{transform:scale(1.035) translate(-.6%,.4%)}}
@keyframes sflNfShimmer{0%,35%{transform:translateX(0)}75%,100%{transform:translateX(1150px)}}
@keyframes sflNfGlint{0%,100%{opacity:.35}50%{opacity:.9}}
@keyframes sflNfScan{from{transform:translateY(0)}to{transform:translateY(1030px)}}
@keyframes sflNfTrack{0%,100%{opacity:.85}50%{opacity:.4}}
.sfl-slide-art--fly .sfl-nf-stage{right:-6%}
.sfl-card-fly-live .sfl-nf-stage{height:132%;top:-10%;bottom:auto;right:-14%}
@media(max-width:760px){.sfl-slide-art--fly .sfl-nf-stage{right:-12%;height:92%}}
@media(max-width:480px){.sfl-slide-art--fly .sfl-nf-stage{right:-24%;height:78%}}
/* Only the visible slide animates; reduced motion keeps the still photo. */
.sfl-hero-slide:not(.is-active) .sfl-nf-stage *{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.sfl-nf-stage *{animation:none!important;transition:none!important}.sfl-nf-scan,.sfl-nf-shimmer{display:none}}

/* Music Lab animated artwork (views/partials/labs/music-waves.ejs).
   Only transform/opacity animate; no SVG filters. */
.sfl-mw{position:absolute;inset:0;width:100%;height:100%;display:block}
.sfl-mw [data-part],.sfl-mw-note,.sfl-mw-spark,.sfl-mw-dot{transform-box:fill-box;transform-origin:50% 50%}
.sfl-mw-staff-line{fill:none;stroke-width:2.6;stroke-linecap:round;opacity:.9}
.sfl-mw-staff-glow{fill:none;stroke-width:9;stroke-linecap:round;opacity:.16}
.sfl-mw-staff{animation:sflMwFlow 9s linear infinite}
.sfl-mw-glyph{stroke:#fff;stroke-opacity:.35;stroke-width:1.2}
.sfl-mw-note{animation:sflMwBob var(--dur,4s) ease-in-out var(--delay,0s) infinite alternate}
.sfl-mw-spark{fill:#fff;animation:sflMwTwinkle 2.6s ease-in-out var(--d,0s) infinite}
.sfl-mw-dot{opacity:.55;animation:sflMwPulse 4.4s ease-in-out var(--d,0s) infinite alternate}
@keyframes sflMwFlow{from{transform:translateX(0)}to{transform:translateX(-300px)}}
@keyframes sflMwBob{from{transform:translateY(-7px) rotate(-3deg)}to{transform:translateY(7px) rotate(3deg)}}
@keyframes sflMwTwinkle{0%,100%{opacity:.25;transform:scale(.55)}50%{opacity:1;transform:scale(1)}}
@keyframes sflMwPulse{from{opacity:.25;transform:translateY(4px)}to{opacity:.75;transform:translateY(-6px)}}
.sfl-slide-art--music,.sfl-card-visual--music{background:#070a2a}
.sfl-hero-slide:not(.is-active) .sfl-mw *{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.sfl-mw *{animation:none!important}}

/* MVA Rare Disease Lab rotating DNA helix (views/partials/labs/dna-helix.ejs,
   public/assets/js/labs-dna.js). No SVG filters: glow is a wide soft stroke. */
.sfl-dna{position:absolute;inset:0;width:100%;height:100%;display:block}
.sfl-dna-b0{fill:#0e2466}.sfl-dna-b1{fill:#132f86}.sfl-dna-b2{fill:#1a3fa6}.sfl-dna-b3{fill:#2352c4}.sfl-dna-b4{fill:#3a72e0}.sfl-dna-b5{fill:#5690f2}.sfl-dna-b6{fill:#76b0fb}.sfl-dna-b7{fill:#9cd3ff}
.sfl-dna-glow{fill:#4aa3ff;fill-opacity:.17}
.sfl-dna-core{fill:#f2fbff;fill-opacity:.8}
.sfl-dna-rungs line{stroke:#a8dcff;stroke-linecap:round}
.sfl-dna-far{fill:#3a74f0;fill-opacity:.12}.sfl-dna-far--wide{fill-opacity:.05}
.sfl-dna-far-drift{animation:sflDnaDrift 16s ease-in-out infinite alternate}
.sfl-dna-twinkle{animation:sflDnaTwinkle 3.2s ease-in-out var(--d,0s) infinite alternate}
@keyframes sflDnaDrift{from{transform:translate(0,0)}to{transform:translate(18px,-10px)}}
@keyframes sflDnaTwinkle{from{opacity:.15}to{opacity:.9}}
.sfl-slide-art--mva,.sfl-card-visual--mva{background:#01030f}
.sfl-hero-slide:not(.is-active) .sfl-dna *{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.sfl-dna *{animation:none!important}}

/* Closing CTA (views/partials/cta-final.ejs): Labs is always dark but its
   layout declares data-bs-theme="light", so apply the dark variant that
   dark-theme.css gives the rest of the site. */
.sf-labs-body .sf-cta-inner{background:#0b0b0d;border-color:#1f2024}
.sf-labs-body .sf-cta-inner::before,.sf-labs-body .sf-cta-inner::after{background-image:repeating-linear-gradient(to bottom,#24262b 0 7px,transparent 7px 14px)}
.sf-labs-body .sf-cta-title{color:#fafafa}
.sf-labs-body .sf-cta-btn--primary{background:#fafafa;color:#0b0b0d!important}
.sf-labs-body .sf-cta-btn--primary:hover{background:#fff}
.sf-labs-body .sf-cta-btn--ghost{background:transparent;color:#ededed!important;border-color:#2a2a2a}
.sf-labs-body .sf-cta-btn--ghost:hover{border-color:#555}

/* Labs project pages (/labs/neurofly, /labs/mva): same type, panels and
   colours as /labs, so each project reads as part of the site. */
/* The site navbar is fixed (56px, 45px on phones): the top padding clears it, as .sf-hero does. */
.sflp-hero{position:relative;background:#000;border-bottom:1px solid var(--sfl-line);padding:calc(56px + 3.5rem) 0 64px;overflow:hidden}
.sflp-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 30%,rgba(36,229,140,.07),transparent 30%),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:auto,52px 52px,52px 52px;mask-image:linear-gradient(to bottom,#000,transparent 96%)}
.sflp-hero-layout{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.sflp-crumb{display:flex;align-items:center;gap:10px;font:700 .69rem/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.15em;color:var(--sfl-accent)}
.sflp-crumb a{color:var(--sfl-muted);text-decoration:none}
.sflp-crumb a:hover{color:#fff}
.sflp-crumb span[aria-hidden]{color:#3c4448}
.sflp-hero h1{font-size:clamp(2.4rem,7vw,3.75rem);line-height:1.04;letter-spacing:-.03em;font-weight:500;color:#fafafa;margin:22px 0 20px}
.sflp-lead{max-width:600px;color:#a1a6a9;font-size:1.08rem;line-height:1.6;margin:0}
.sflp-note{margin-top:24px;max-width:600px;padding:13px 15px;border:1px solid rgba(255,173,67,.28);background:rgba(255,173,67,.05);color:#e9c48a;border-radius:12px;font-size:.86rem;line-height:1.55}
.sflp-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.sflp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:40px 0 0}
.sflp-stat{border:1px solid var(--sfl-line);border-radius:14px;background:#050708;padding:18px 18px 20px}
.sflp-stat strong{display:block;font-size:1.85rem;line-height:1.1;letter-spacing:-.03em;font-weight:500;color:#fafafa;font-variant-numeric:tabular-nums}
.sflp-stat span{display:block;margin-top:8px;color:var(--sfl-muted);font-size:.82rem;line-height:1.45}
.sflp-section{background:#000;padding:84px 0;border-top:1px solid var(--sfl-line)}
.sflp-section:first-of-type{border-top:0}
.sflp-section .sfl-section-head{margin-bottom:32px}
.sflp-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.sflp-cards--2{grid-template-columns:repeat(2,1fr)}
.sflp-card{border:1px solid var(--sfl-line);border-radius:16px;background:#06090a;padding:22px;min-width:0}
.sflp-card h3{font-size:1.35rem;letter-spacing:-.03em;font-weight:500;margin:12px 0 10px;color:#fafafa}
.sflp-card p{color:#90979b;line-height:1.55;font-size:.88rem;margin:0}
.sflp-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.sflp-tag{display:inline-block;font:700 .6rem ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--sfl-accent);border:1px solid rgba(30,216,137,.25);border-radius:999px;padding:5px 9px}
.sflp-card code,.sflp-mono{font:600 .74rem ui-monospace,SFMono-Regular,Menlo,monospace;color:#8fa0a6;background:none;padding:0}
.sflp-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.sflp-chips span{font:600 .68rem ui-monospace,monospace;color:#9ba4a8;padding:6px 8px;border:1px solid var(--sfl-line);border-radius:7px}
.sflp-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--sfl-line);counter-reset:sflp}
.sflp-steps li{counter-increment:sflp;display:grid;grid-template-columns:42px 1fr;gap:15px;padding:20px 0;border-bottom:1px solid var(--sfl-line)}
.sflp-steps li:before{content:counter(sflp,decimal-leading-zero);font:700 .64rem ui-monospace,monospace;color:#566166;padding-top:4px}
.sflp-steps strong{display:block;font-size:.95rem;font-weight:600;color:#fafafa;margin-bottom:4px}
.sflp-steps p{margin:0;color:#7f888c;font-size:.86rem;line-height:1.55}
.sflp-code{margin:0;background:#050708;border:1px solid var(--sfl-line);border-radius:14px;padding:18px;overflow:auto;font:12.5px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;color:#b8c6ca;white-space:pre}
.sflp-code .c{color:#566166}
.sflp-code .k{color:var(--sfl-accent)}
.sflp-split{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.sflp-split p{color:#90979b;line-height:1.7;font-size:.95rem;margin:0 0 14px}
.sflp-quote{margin:0;padding:18px 20px;border-left:2px solid var(--sfl-accent);background:#050708;border-radius:0 12px 12px 0;color:#d6dbdd;font-size:1.02rem;line-height:1.55}
.sflp-links{display:flex;gap:18px;flex-wrap:wrap;margin-top:22px}
.sflp-links a{color:#fff;font-size:.86rem;font-weight:600;text-decoration:none}
.sflp-links a:hover{color:var(--sfl-accent)}
@media(max-width:1024px){
  .sflp-hero-layout{grid-template-columns:1fr;gap:36px}
  .sflp-stats{grid-template-columns:repeat(2,1fr)}
  .sflp-cards{grid-template-columns:repeat(2,1fr)}
  .sflp-split{grid-template-columns:1fr;gap:28px}
}
@media(max-width:640px){
  .sflp-hero{padding:calc(45px + 1.75rem) 0 44px}
  .sflp-cards,.sflp-cards--2{grid-template-columns:1fr}
  .sflp-stats{gap:12px}
  .sflp-stat strong{font-size:1.5rem}
  .sflp-section{padding:64px 0}
  .sflp-steps li{grid-template-columns:32px 1fr}
}

/* MVA Rare Disease Lab (/labs/mva) */
.mva-panel{border:1px solid var(--sfl-line-strong);border-radius:18px;overflow:hidden;background:#01030f;box-shadow:0 24px 70px rgba(0,0,0,.4)}
.mva-panel-bar{height:46px;display:flex;align-items:center;gap:8px;padding:0 13px;border-bottom:1px solid var(--sfl-line);background:#0b0d12;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.mva-dot{width:11px;height:11px;border-radius:50%;background:#2a2e36}
.mva-panel-title{margin-left:5px;color:#9aa8ad;font-size:.68rem;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mva-panel-badge{margin-left:auto;color:#8fc4ff;border:1px solid rgba(95,180,255,.35);border-radius:999px;padding:5px 8px;font-size:.58rem;letter-spacing:.1em}
.mva-panel-art{position:relative;aspect-ratio:640/420;overflow:hidden}
.mva-panel-foot{display:flex;justify-content:space-between;gap:14px;padding:11px 14px;border-top:1px solid var(--sfl-line);font:10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;color:#7f8f98}
.mva-led{display:inline-block;width:7px;height:7px;border-radius:50%;background:#5fb4ff;box-shadow:0 0 8px rgba(95,180,255,.6);margin-right:6px}
.mva-intro,.mva-outro{max-width:760px;color:#90979b;line-height:1.7;font-size:.95rem;margin:0 0 28px}
.mva-outro{margin:28px 0 0}
.mva-side{margin-top:16px!important}
.sflp-tag.mva-tag--stop{color:#ff9a7a;border-color:rgba(255,122,92,.3)}
.mva-protein{margin:28px 0 0;padding:22px 22px 16px;border:1px solid var(--sfl-line);border-radius:16px;background:#050708;overflow-x:auto}
/* Keeps the labels legible on phones; the figure scrolls sideways instead. */
.mva-protein svg{display:block;width:100%;min-width:620px;height:auto;overflow:visible}
.mva-protein figcaption{margin-top:10px;color:var(--sfl-muted2);font-size:.8rem}
.mva-p-axis text,.mva-p-label,.mva-p-note,.mva-p-mark,.mva-p-domain-label{font:600 13px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em}
.mva-p-axis text{fill:#566166}
.mva-p-label{fill:#9ba4a8}
.mva-p-body{fill:#1b2b3a}
.mva-p-lost{fill:none;stroke:#2c3438;stroke-dasharray:5 5}
.mva-p-stop{stroke:#ff7a5c;stroke-width:3}
.mva-p-mark{fill:#fafafa}
.mva-p-mark--stop{fill:#ff9a7a}
.mva-p-note{fill:#566166}
.mva-p-domain{fill:rgba(95,180,255,.28);stroke:#5fb4ff;stroke-width:1.2}
.mva-p-domain-label{fill:#bfe6ff;font-size:11px}
.mva-p-hit{fill:#1ed889}
.mva-p-hit-ring{fill:none;stroke:#1ed889;stroke-width:2;transform-box:fill-box;transform-origin:center;animation:mvaPing 2.4s ease-out infinite}
@keyframes mvaPing{from{transform:scale(1);opacity:.9}to{transform:scale(3.2);opacity:0}}
.mva-chain{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.mva-chain li{position:relative;border:1px solid var(--sfl-line);border-radius:16px;background:#06090a;padding:20px}
.mva-chain li span{font:700 .64rem ui-monospace,monospace;color:var(--sfl-accent);letter-spacing:.12em}
.mva-chain strong{display:block;margin:12px 0 8px;font-size:1.05rem;font-weight:600;color:#fafafa}
.mva-chain p{margin:0;color:#90979b;font-size:.86rem;line-height:1.55}
.mva-funnel{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.mva-funnel li{display:grid;grid-template-columns:150px 1fr auto;gap:20px;align-items:center;padding:16px 20px;border:1px solid var(--sfl-line);border-radius:14px;background:linear-gradient(90deg,rgba(30,216,137,calc(.02 + var(--i) * .018)),transparent 70%),#050708}
.mva-funnel strong{font-size:1.35rem;font-weight:500;letter-spacing:-.03em;color:#fafafa;font-variant-numeric:tabular-nums}
.mva-funnel span{color:#b8c0c4;font-size:.9rem}
.mva-funnel code{font:600 .72rem ui-monospace,SFMono-Regular,Menlo,monospace;color:#7fa9a0;background:none;padding:0;text-align:right}
.mva-page .sflp-card code{font-size:.72rem}
@media(max-width:1024px){
  .mva-chain{grid-template-columns:repeat(2,1fr)}
  .mva-funnel li{grid-template-columns:130px 1fr}
  .mva-funnel code{grid-column:1/-1;text-align:left}
}
@media(max-width:640px){
  .mva-chain{grid-template-columns:1fr}
  .mva-funnel li{grid-template-columns:1fr;gap:4px}
  .mva-panel-foot span:last-child{display:none}
  .mva-protein{padding:14px 12px 12px}
}
@media(prefers-reduced-motion:reduce){.mva-p-hit-ring{animation:none;opacity:0}}
