.vl-spatial-host{container:lab-spatial / inline-size;position:relative;overflow:hidden;background:radial-gradient(ellipse at 22% 15%,#22405059,transparent 47%),radial-gradient(ellipse at 73% 60%,#332c4752,transparent 53%),radial-gradient(ellipse at 43% 42%,#173540 0%,#0b1825 46%,#040a13 89%);color:#d9e9f1;min-height:320px;isolation:isolate}
.vl-spatial-host::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(112deg,#adcfd705,transparent 35%,#7498ad03 52%,transparent 71%);box-shadow:inset 0 0 100px #0005}
.vl-spatial-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab;outline:none}
.vl-spatial-canvas:focus-visible{box-shadow:inset 0 0 0 2px #61dbb3}
.vl-spatial-canvas:active{cursor:grabbing}
.vl-spatial-top{position:absolute;top:12px;left:14px;right:14px;display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:none;font-size:12px;color:#a7c3d2}
.vl-spatial-top>span{padding:8px 11px;background:#0b1725b3;border:1px solid #415a6b66;border-radius:8px;backdrop-filter:blur(10px)}.vl-spatial-top>div{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;pointer-events:auto}
.vl-spatial-host button{padding:7px 10px;border:1px solid #385062;border-radius:8px;background:rgba(15,32,46,.92);color:#cce1eb;font:inherit;font-size:12px;cursor:pointer}
.vl-spatial-host button:hover{border-color:#79c8ca;background:#163746}.vl-spatial-host button:focus-visible{outline:2px solid #9aeade;outline-offset:3px}
.vl-spatial-host button[aria-pressed=true]{border-color:#53dba7;background:#183b37;color:#d9fff1}
.vl-spatial-card{position:absolute;right:14px;top:62px;width:224px;max-width:29%;box-sizing:border-box;max-height:calc(100% - 145px);overflow:auto;padding:14px;border:1px solid #7392a234;border-top:2px solid var(--part-color,#61dbb3);border-radius:14px;background:linear-gradient(145deg,#172b3ac9,#081320e0);backdrop-filter:blur(20px);box-shadow:0 18px 40px #0005,inset 0 1px 0 #d9f2ff0b;pointer-events:auto;scrollbar-width:thin;scrollbar-color:#506877 transparent}
.vl-spatial-card strong{display:block;font-size:20px;line-height:1.45;overflow-wrap:anywhere;color:#f1f8fc}.vl-spatial-card p{font-size:12px;line-height:1.7;color:#b5cad7;margin:9px 0}.vl-spatial-card small{font-size:10px;color:#839dab}
.vl-spatial-parts{position:absolute;left:14px;right:14px;bottom:36px;display:flex;justify-content:center;flex-wrap:wrap;gap:5px;pointer-events:none}.vl-spatial-parts button{pointer-events:auto;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}.vl-spatial-parts button::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:6px;vertical-align:middle;background:var(--part-color,#88bdce);box-shadow:0 0 7px var(--part-color,#88bdce)}
.vl-spatial-hint{position:absolute;bottom:12px;left:14px;right:14px;text-align:center;font-size:11px;color:#a1b8c8;text-shadow:0 1px 3px #000;pointer-events:none}
.vl-spatial-info{display:none}
@media(max-width:650px){.vl-spatial-info{display:block}.vl-spatial-top{top:10px;left:10px;right:10px;flex-wrap:wrap}.vl-spatial-top>span{display:none}.vl-spatial-top>div{gap:5px;width:100%;justify-content:flex-start}.vl-spatial-host button{font-size:11px;min-height:34px;padding:8px}.vl-spatial-card{right:10px;left:10px;top:54px;width:auto;max-width:none;max-height:42px;padding:8px 11px}.vl-spatial-card p,.vl-spatial-card small{display:none}.vl-spatial-host[data-info-open=true] .vl-spatial-card{max-height:calc(100% - 140px)}.vl-spatial-host[data-info-open=true] .vl-spatial-card p,.vl-spatial-host[data-info-open=true] .vl-spatial-card small{display:block}.vl-spatial-card strong{font-size:13px}.vl-spatial-card p{font-size:11px;line-height:1.6}.vl-spatial-card small{font-size:10px}.vl-spatial-parts{left:10px;right:10px;bottom:32px;gap:5px;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:3px 0 6px;scrollbar-width:thin;scrollbar-color:#3e6069 transparent;pointer-events:auto}.vl-spatial-parts button{flex-shrink:0}.vl-spatial-hint{font-size:10px}}
@container lab-spatial (max-width:900px){.vl-spatial-info{display:block}.vl-spatial-top{top:10px;left:10px;right:10px;flex-wrap:wrap}.vl-spatial-top>span{display:none}.vl-spatial-top>div{gap:5px;width:100%;justify-content:flex-start}.vl-spatial-host button{font-size:11px;min-height:34px;padding:8px}.vl-spatial-card{right:10px;left:10px;top:54px;width:auto;max-width:none;max-height:42px;padding:8px 11px}.vl-spatial-card p,.vl-spatial-card small{display:none}.vl-spatial-host[data-info-open=true] .vl-spatial-card{max-height:calc(100% - 140px)}.vl-spatial-host[data-info-open=true] .vl-spatial-card p,.vl-spatial-host[data-info-open=true] .vl-spatial-card small{display:block}.vl-spatial-card strong{font-size:13px}.vl-spatial-card p{font-size:11px;line-height:1.6}.vl-spatial-card small{font-size:10px}.vl-spatial-parts{left:10px;right:10px;bottom:32px;gap:5px;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:3px 0 6px;scrollbar-width:thin;scrollbar-color:#3e6069 transparent;pointer-events:auto}.vl-spatial-parts button{flex-shrink:0}.vl-spatial-hint{font-size:10px}}
@media(prefers-reduced-motion:reduce){.vl-spatial-host *{scroll-behavior:auto}}
/* Tall hydrostatic rigs need the central upper area for calibrated readouts. */
@container lab-spatial (max-width:900px){.vl-spatial-host[data-rig-readouts=true][data-info-open=false] .vl-spatial-card{display:none}}
@media(max-width:650px){.vl-spatial-host[data-rig-readouts=true][data-info-open=false] .vl-spatial-card{display:none}}

.vl-spatial-parts[hidden]{display:none!important}
.vl-spatial-host .vl-spatial-parts-toggle{position:absolute;right:14px;bottom:35px;z-index:2;min-height:34px;box-shadow:0 3px 14px #0004;backdrop-filter:blur(12px)}
.vl-spatial-parts-toggle::before{content:'⌃';margin-right:6px;display:inline-block}
.vl-spatial-parts-toggle[aria-expanded=true]::before{transform:rotate(180deg)}
.vl-spatial-host[data-parts-open=true] .vl-spatial-parts{bottom:78px;max-height:32%;overflow:auto;padding:8px;border:1px solid #38506280;border-radius:10px;background:#081723e8;backdrop-filter:blur(12px);pointer-events:auto}

.vl-spatial-host[data-lens-rig=true]{background:radial-gradient(ellipse at 50% 72%,#313431 0%,#191f23 58%,#12191e 100%)}
.vl-spatial-host[data-lens-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-lens-rig=true][data-info-open=false] .vl-spatial-card{display:none}
.vl-spatial-host[data-elastic-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-elastic-rig=true][data-info-open=false] .vl-spatial-card{display:none}
.vl-spatial-host[data-mechanics-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-mechanics-rig=true][data-info-open=false] .vl-spatial-card{display:none}
.vl-spatial-host[data-optics-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-optics-rig=true][data-info-open=false] .vl-spatial-card{display:none}
.vl-lens-observation{position:absolute;left:14px;top:58px;width:280px;max-width:36%;pointer-events:none;border:1px solid #415a6b99;border-radius:12px;box-shadow:0 8px 24px #0003}
.vl-lens-observation[hidden]{display:none}.vl-lens-observation svg{display:block;width:100%;height:auto}
@container lab-spatial (max-width:700px){.vl-lens-observation{top:auto;bottom:62px;width:220px;max-width:48%}}
.vl-spatial-host[data-acoustic-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-acoustic-rig=true][data-info-open=false] .vl-spatial-card{display:none}
.vl-spatial-host[data-measurement-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-measurement-rig=true][data-info-open=false] .vl-spatial-card{display:none}

.vl-spatial-host[data-circuit-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-circuit-rig=true][data-info-open=false] .vl-spatial-card{display:none}

.vl-spatial-host[data-electromagnet-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-electromagnet-rig=true][data-info-open=false] .vl-spatial-card{display:none}

.vl-spatial-host[data-induction-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-induction-rig=true][data-info-open=false] .vl-spatial-card{display:none}

.vl-spatial-host[data-wave-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-wave-rig=true][data-info-open=false] .vl-spatial-card{display:none}

.vl-spatial-host[data-collision-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-collision-rig=true][data-info-open=false] .vl-spatial-card{display:none}

.vl-spatial-host[data-projectile-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-projectile-rig=true][data-info-open=false] .vl-spatial-card{display:none}

.vl-spatial-host[data-motion-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-motion-rig=true][data-info-open=false] .vl-spatial-card{display:none}

.vl-spatial-host[data-vector-energy-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-vector-energy-rig=true][data-info-open=false] .vl-spatial-card{display:none}

.vl-spatial-host[data-interference-rig=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-interference-rig=true][data-info-open=false] .vl-spatial-card{display:none}

.vl-spatial-host[data-electrical-instruments=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-electrical-instruments=true][data-info-open=false] .vl-spatial-card{display:none}

.vl-spatial-host[data-magnetic-instruments=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-magnetic-instruments=true][data-info-open=false] .vl-spatial-card{display:none}

.vl-spatial-host[data-matter-instruments=true] .vl-spatial-info{display:block}
.vl-spatial-host[data-matter-instruments=true][data-info-open=false] .vl-spatial-card{display:none}
