.swarm-page{--site-accent:#e9cc94;--swarm-cyan:#85e1dc}.swarm-page .lab-main{background:#0d1826}.swarm-page .lab-heading{padding:38px 34px 27px}.swarm-page .lab-heading h1{font-size:clamp(55px,5.5vw,82px);line-height:1.05;letter-spacing:-2px;margin:20px 0 22px}.swarm-page .lab-heading h1 em{color:#d0b3e4;font-weight:400}.swarm-page .lab-heading>p:last-child{font-size:17px;line-height:1.8;max-width:720px;color:#bdcbd8}.swarm-topbar{padding:0 34px;display:flex;align-items:center;justify-content:space-between;gap:20px}.swarm-themes{display:flex;gap:8px}.swarm-themes button{padding:12px 18px;min-height:45px;border:1px solid #66738a;background:#182638;color:#d9e3e6;font-size:14px}.swarm-themes button[aria-pressed=true]{border-color:#ddc5e5;background:#3a304d;color:#f4e7ee}.swarm-view-note{font-size:12px;line-height:1.7;color:#a9bdca;padding:13px 34px 22px}.swarm-stage{border-block:1px solid #384457}.swarm-stage>canvas{display:block;width:100%;height:540px;cursor:crosshair;touch-action:pan-y}.swarm-stage-caption{display:flex;justify-content:space-between;gap:18px;font-size:12px;line-height:1.6;padding:13px 23px;background:#162337;color:#bacad6}.swarm-stage-caption>span:last-child{white-space:nowrap}.swarm-transport{display:flex;flex-wrap:wrap;gap:9px;align-items:center;padding:23px 28px 10px}.swarm-transport label{display:flex;gap:7px;align-items:center;color:#bdcfda;font-size:13px}.swarm-page select{max-width:100%;padding:10px;background:#18293b;color:#e0e8e7;border:1px solid #556d80;font-size:14px}.swarm-transport>span{flex-basis:100%;font-size:13px;color:#a9bdcf;font-variant-numeric:tabular-nums;padding-top:7px}.swarm-view-controls{padding:10px 28px 0;display:flex;gap:14px 23px;flex-wrap:wrap}.swarm-view-controls label{font-size:13px;color:#bdd0db;display:flex;align-items:center;gap:7px}.swarm-caption{font-size:13px;color:#a7bdcd;line-height:1.8;margin:16px 28px 24px}.swarm-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:24px 28px 27px;gap:17px;border-block:1px solid #334558;margin:0;background:#112332}.swarm-metrics dt{font-size:12px;line-height:1.7;color:#adc7d5;min-height:40px}.swarm-metrics dd{font:34px var(--world-serif);color:#c5e6db;margin:7px 0 0;font-variant-numeric:tabular-nums}.swarm-metrics dd small{font:11px var(--world-sans);color:#acc0cf}.swarm-metrics>div:nth-child(2) dd{color:#e9c582}.swarm-metrics>div:nth-child(3) dd{color:#c5b1ed}.swarm-stimuli{padding:29px 28px 8px;border-bottom:1px solid #354457;background:#291f353b}.swarm-stimuli h2,.swarm-inspector h2,.swarm-history h2{font:33px/1.2 var(--world-serif);margin:11px 0 16px;color:#e1e7df}.swarm-stimuli>div>p:not(.kicker),.inspector-heading>p:not(.kicker){font-size:14px;line-height:1.8;color:#b9cad8}.stimulus-buttons{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.stimulus-buttons .lab-button{font-size:13px}.swarm-stimuli>.swarm-caption{margin-inline:0}.swarm-inspector{display:grid;grid-template-columns:1fr 1fr;gap:25px;padding:30px 28px;border-bottom:1px solid #354457}.inspector-nav{display:flex;gap:13px;align-items:center;margin:22px 0 17px}.inspector-nav strong{font-size:14px;font-weight:500;color:#e9dba9}.inspector-nav button{padding:10px 16px}.inspector-heading .swarm-caption{margin-inline:0;font-size:12px}.inspector-figure canvas{display:block;width:100%;height:280px;border:1px solid #384b60}.inspector-figure>.swarm-caption{margin:13px 0 0;font-size:12px}.swarm-force-key{display:flex;gap:9px 14px;flex-wrap:wrap;font-size:11px;margin-top:13px;color:#bed0d8}.swarm-force-key span:before{content:'';display:inline-block;width:12px;height:3px;vertical-align:middle;margin-right:5px;background:var(--key)}.swarm-force-key .sep{--key:#ef9789}.swarm-force-key .ali{--key:#85e1dc}.swarm-force-key .coh{--key:#e9c582}.swarm-force-key .obs{--key:#b5a1f3}.swarm-force-key .thr{--key:#ff8797}.swarm-history{padding:30px 28px 10px}.swarm-history h2{margin:0 0 25px}.swarm-history canvas{display:block;width:100%;height:220px}.swarm-history .swarm-caption{margin-inline:0}.swarm-plot-key{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:#bdcdd9;margin:12px 0}.swarm-plot-key span:before{content:'';display:inline-block;width:20px;height:3px;background:#8cddd6;vertical-align:middle;margin-right:7px}.swarm-plot-key span+span:before{background:repeating-linear-gradient(90deg,#e8c583 0 5px,transparent 5px 8px)}.swarm-rule{border-top:1px solid #354a5d;padding:22px 0 0}.rule-title{display:flex;align-items:center;gap:10px}.rule-title>span{color:var(--rule-colour);font-size:12px}.rule-title h3{font:23px/1.2 var(--world-serif);margin:0;flex:1;color:#e0e6df}.rule-title label{display:flex;gap:5px;align-items:center;font-size:12px;color:#bcd1dc;white-space:nowrap}.swarm-rule>p{font-size:13px;color:#b2c4d2;line-height:1.8;margin:13px 0 16px}.swarm-rule .control-field{margin-bottom:22px}.swarm-rule .control-field label{font-size:12px}.swarm-rule .control-field small:empty{display:none}.swarm-controls .control-note,.swarm-controls .control-field small{font-size:13px;line-height:1.8}.swarm-controls .control-field label{flex-wrap:wrap;gap:8px;font-size:14px}.swarm-controls .control-field input[type=range]{accent-color:#a5d9d2}.swarm-rule-actions{display:grid;gap:9px;margin:0 0 28px}.swarm-rule-actions button{font-size:12px;white-space:normal}.swarm-environment{padding:22px 0 3px;margin-bottom:22px;border-block:1px solid #41536b}.swarm-environment .kicker{font-size:10px;margin-bottom:14px;color:#c6b0ec}.swarm-select{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;color:#cad7df;font-size:14px}.swarm-samples{border-block:1px solid #3a5062;padding:22px 0;margin:24px 0}.swarm-samples p{color:#bcd2d8;font-size:13px;margin-bottom:13px}.swarm-samples .lab-button{white-space:normal;width:100%;font-size:13px}.swarm-guides{grid-template-columns:repeat(2,minmax(0,1fr))}.swarm-lessons{display:grid;grid-template-columns:1fr 1fr;gap:38px 55px;margin:65px 0}.swarm-lessons article{border-top:1px solid #3b465a;padding-top:24px}.swarm-lessons article>span{font-size:11px;letter-spacing:1.3px;color:#c7b3e0}.swarm-lessons h3{font:32px/1.2 var(--world-serif);color:#e0e7dc;margin:19px 0}.swarm-lessons p{font-size:16px;line-height:1.85;color:#b9cbd8}.swarm-page .equation{font-size:16px;line-height:2;overflow-x:auto}.swarm-page .model-content{overflow-wrap:anywhere}.swarm-related{font-size:17px;color:#bdd0d6;margin:35px 0}.swarm-page [hidden]{display:none!important}.swarm-page :is(button,input,select,canvas):focus-visible{outline:2px solid #e4d4a6;outline-offset:4px}.swarm-page button:disabled{opacity:.5;cursor:default}.swarm-page .lab-status{line-height:1.8}
@media(min-width:1600px){.swarm-workspace{grid-template-columns:minmax(0,1fr) 360px}.swarm-stage>canvas{height:620px}}
@media(max-width:1200px){.swarm-workspace{grid-template-columns:minmax(0,1fr) 310px}.swarm-stage>canvas{height:450px}.swarm-inspector{grid-template-columns:1fr}.inspector-figure{max-width:500px}.swarm-metrics{grid-template-columns:1fr 1fr;gap:20px}.swarm-metrics dt{min-height:0}.swarm-topbar{display:block}.swarm-topbar>.text-link{margin-top:12px}.swarm-stage-caption{flex-wrap:wrap;gap:6px}.rule-title h3{font-size:21px}}
@media(max-width:900px){.swarm-workspace{grid-template-columns:1fr}.swarm-controls{border-top:1px solid #384c5c;border-left:0}.swarm-stage>canvas{height:500px}.swarm-inspector{grid-template-columns:1fr 1fr}.swarm-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.swarm-metrics dt{min-height:40px}.swarm-topbar{display:flex}.swarm-topbar>.text-link{margin-top:0}}
@media(max-width:640px){.swarm-page .lab-heading{padding:28px 22px 23px}.swarm-page .lab-heading h1{font-size:clamp(45px,10vw,64px);letter-spacing:-1.2px}.swarm-page .lab-heading>p:last-child{font-size:15px}.swarm-topbar{padding-inline:22px;display:block}.swarm-topbar>.text-link{margin-top:12px}.swarm-themes button{padding:11px 15px;font-size:13px}.swarm-view-note{padding-inline:22px;font-size:12px}.swarm-stage>canvas{height:330px}.swarm-stage-caption{padding-inline:20px;font-size:11px}.swarm-transport{padding-inline:20px}.swarm-transport .lab-button{font-size:12px;padding-inline:13px}.swarm-view-controls{padding-inline:20px;gap:13px}.swarm-view-controls label{font-size:12px}.swarm-caption{margin-inline:20px}.swarm-metrics{padding-inline:20px;grid-template-columns:1fr 1fr}.swarm-metrics dt{min-height:0}.swarm-metrics dd{font-size:31px}.swarm-stimuli,.swarm-history{padding-inline:20px}.swarm-inspector{grid-template-columns:1fr;padding:26px 20px}.swarm-inspector h2,.swarm-history h2,.swarm-stimuli h2{font-size:29px}.stimulus-buttons>button{width:100%;white-space:normal}.inspector-figure{max-width:none}.swarm-controls{padding:30px 22px}.swarm-lessons{grid-template-columns:1fr;gap:32px;margin:45px 0}.swarm-guides{grid-template-columns:1fr}.swarm-page .equation{font-size:14px}}
@media(prefers-reduced-motion:reduce){.swarm-page *{scroll-behavior:auto!important}}
