#sinapsis-main .snp-immune-lab{color:#e6f2f6;padding:24px;border:1px solid #36566c;border-radius:27px;background:linear-gradient(145deg,#17374a,#0d1f32 70%);box-shadow:0 22px 60px #04121f45;max-width:100%;overflow:hidden}
#sinapsis-main .im-topline{display:flex;justify-content:space-between;gap:16px;color:#99c9d3;font-size:11px;letter-spacing:.13em;font-weight:750;margin:0 0 18px;line-height:1.5}
#sinapsis-main .im-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
#sinapsis-main .im-tabs button,#sinapsis-main .im-controls button{font:inherit;font-size:14px;line-height:1.35;color:#d6e7ee;border:1px solid #3e6075;background:#153145;min-height:44px;padding:11px 14px;border-radius:12px;cursor:pointer;transition:background .2s,border-color .2s}
#sinapsis-main .im-tabs button{display:flex;align-items:center;gap:8px}
#sinapsis-main .im-tabs button i{width:6px;height:6px;flex:none;border:1px solid #a8cfdb;border-radius:50%}
#sinapsis-main .im-tabs button.is-seen i{background:#87ead1;border-color:#87ead1}
#sinapsis-main .im-tabs button[aria-pressed=true]{background:linear-gradient(120deg,#97efd8,#63c9c5);color:#09373b;border-color:#b4f7e4;font-weight:750}
#sinapsis-main .im-tabs button[aria-pressed=true] i{background:#165554;border-color:#165554}
#sinapsis-main .snp-immune-lab button:focus-visible{outline:3px solid #f2c685;outline-offset:3px}
#sinapsis-main .im-tabs button:hover,#sinapsis-main .im-controls button:hover{border-color:#8cdbc9}
#sinapsis-main .im-stage{border:1px solid #345468;border-radius:20px;overflow:hidden;background:#0d2033}
#sinapsis-main .im-stage svg{display:block;width:100%;height:auto;max-height:400px;margin:auto}
#sinapsis-main .im-caption{margin-top:18px;padding:20px 22px;border:1px solid #3a5c70;border-left:3px solid #87ead1;border-radius:16px;background:#0b2131}
#sinapsis-main .im-caption>span{display:block;font-size:10px;letter-spacing:.15em;color:#91bdc9;font-weight:750;margin-bottom:8px}
#sinapsis-main .im-caption h3{margin:0;color:#a4efd9;font-size:23px;line-height:1.3;letter-spacing:-.02em}
#sinapsis-main .im-caption p{margin:9px 0 0;font-size:17px;line-height:1.65;color:#d9e8ef}
#sinapsis-main .im-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:17px;font-size:13px;color:#b5d1de}
#sinapsis-main .im-controls>div{display:flex;flex-wrap:wrap;gap:8px}
#sinapsis-main .im-controls button{font-size:13px;padding:9px 12px}
#sinapsis-main .snp-immune-lab>small{display:block;margin-top:14px;color:#95b5c7;font-size:11px;line-height:1.6}
#sinapsis-main .snp-immune-lab:fullscreen{overflow:auto;width:100%;height:100%;border-radius:0;padding:32px max(24px,calc((100vw - 1100px)/2));background:#0d2033}
#sinapsis-main .snp-immune-lab:fullscreen .im-stage svg{max-height:52vh}
#sinapsis-main .snp-immune-lab.is-expanded .im-stage svg{max-height:none}
#sinapsis-main .im-enter{animation:imAppear .45s ease-out both}
#sinapsis-main .im-float{animation:imFloat 3.6s ease-in-out infinite alternate}
#sinapsis-main .im-breathe{animation:imBreathe 4.4s ease-in-out infinite alternate}
#sinapsis-main .im-flow{animation:imFlow 1.8s linear infinite}
#sinapsis-main .im-pulse{animation:imPulse 2s ease-in-out infinite alternate}
#sinapsis-main .im-flow-cell{animation:imCell 4s linear infinite;animation-delay:var(--delay,0s)}
#sinapsis-main .im-leak{animation:imLeak 3s ease-out infinite;animation-delay:var(--delay,0s)}
#sinapsis-main .im-cilia{animation:imCilia 1.3s ease-in-out infinite alternate}
#sinapsis-main .im-assemble{animation:imAssemble .65s ease-out both;animation-delay:var(--delay,0s)}
#sinapsis-main .im-draw{stroke-dasharray:900;animation:imDraw 1.2s ease-out both}
#sinapsis-main .snp-immune-lab.is-paused *,#sinapsis-main .snp-immune-lab.is-reduced *{animation-play-state:paused!important}
#sinapsis-main .snp-immune-lab.is-reduced .im-assemble,#sinapsis-main .snp-immune-lab.is-reduced .im-enter,#sinapsis-main .snp-immune-lab.is-reduced .im-draw{animation:none!important}
@keyframes imAppear{from{opacity:.35}to{opacity:1}}
@keyframes imFloat{from{transform:translateY(-3px)}to{transform:translateY(3px)}}
@keyframes imBreathe{from{transform:scale(.985)}to{transform:scale(1.015)}}
@keyframes imFlow{to{stroke-dashoffset:-28}}
@keyframes imPulse{from{opacity:.6}to{opacity:1}}
@keyframes imCell{from{transform:translateX(-18px)}to{transform:translateX(18px)}}
@keyframes imLeak{0%{transform:translateY(-12px);opacity:0}30%{opacity:.9}100%{transform:translateY(22px);opacity:0}}
@keyframes imCilia{from{transform:translateX(-2px)}to{transform:translateX(2px)}}
@keyframes imAssemble{from{opacity:0;transform:translateY(-25px)}to{opacity:1;transform:translateY(0)}}
@keyframes imDraw{from{stroke-dashoffset:900}to{stroke-dashoffset:0}}
@media(max-width:600px){#sinapsis-main .snp-immune-lab{padding:14px;border-radius:20px}#sinapsis-main .im-topline{font-size:9px;gap:10px}#sinapsis-main .im-tabs{gap:6px}#sinapsis-main .im-tabs button{font-size:12px;padding:10px;flex-grow:1}#sinapsis-main .im-caption{padding:16px}#sinapsis-main .im-caption h3{font-size:20px}#sinapsis-main .im-caption p{font-size:16px}#sinapsis-main .im-controls{font-size:12px}#sinapsis-main .im-stage{border-radius:13px}#sinapsis-main .im-stage svg{min-height:145px}#sinapsis-main .snp-immune-lab:fullscreen{padding:18px}#sinapsis-main .snp-immune-lab:fullscreen .im-stage svg{min-height:200px}}
@media(prefers-reduced-motion:reduce){#sinapsis-main .snp-immune-lab *{animation:none!important;transition:none!important}}

/* Pausing should freeze mechanism motion without leaving entry effects transparent. */
#sinapsis-main .snp-immune-lab.is-paused .im-enter,#sinapsis-main .snp-immune-lab.is-paused .im-assemble,#sinapsis-main .snp-immune-lab.is-paused .im-draw{animation:none!important;opacity:1;stroke-dashoffset:0}
