.engine-lab{--el-text:#edf4fc;--el-muted:#9aacc0;--el-line:rgba(144,180,215,.17);--el-blue:#72b8ff;color:var(--el-text);background:#0b121c;border:1px solid var(--el-line);border-radius:20px;overflow:hidden;isolation:isolate;font-family:inherit;text-align:left}
.engine-lab *{box-sizing:border-box}.engine-lab [hidden]{display:none!important}.engine-lab button,.engine-lab input,.engine-lab select{font:inherit}.engine-lab button{cursor:pointer;color:var(--el-text);border:1px solid var(--el-line);background:#152131;border-radius:7px;padding:10px 14px;min-height:42px;transition:background .2s,border-color .2s,color .2s}.engine-lab button:hover{background:#1c324c;border-color:#629ace}.engine-lab button:focus-visible,.engine-lab input:focus-visible,.engine-lab select:focus-visible,.engine-lab .el-viewport:focus-visible,.engine-lab summary:focus-visible,.engine-lab a:focus-visible{outline:2px solid #83c2ff;outline-offset:4px}.engine-lab button:disabled{opacity:.4;cursor:default}.engine-lab button[aria-pressed=true]{background:#173551;border-color:#6aa9e1;color:#cfe9ff}.engine-lab a{color:#8fc7ff}.engine-lab p{font-size:14px;line-height:1.65;margin:0;color:var(--el-muted)}
.engine-lab .el-intro{display:flex;align-items:center;justify-content:space-between;padding:32px 32px 18px;gap:20px}.engine-lab .el-eyebrow{display:block;color:#7baad6;font-size:10px;font-weight:700;letter-spacing:.18em;line-height:1.5}.engine-lab .el-intro h1{font-size:clamp(30px,3.5vw,46px);font-weight:500;line-height:1.13;letter-spacing:-.04em;margin:10px 0 9px;color:#f2f7fd}.engine-lab .el-intro h1 em{font-style:normal;color:#8bc7ff}.engine-lab .el-intro p{font-size:13px}.engine-lab .el-model-tag{font-size:9px;letter-spacing:.11em;line-height:1.6;white-space:nowrap;color:#a5c5e1;border:1px solid #33506c;border-radius:3px;padding:7px 9px}.engine-lab .el-disclosure{padding:0 32px 22px;max-width:1050px;font-size:12px;color:#95a9be}
.engine-lab .el-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:14px 24px;border-top:1px solid var(--el-line);border-bottom:1px solid var(--el-line);background:#0d1825}.engine-lab .el-toolbar button{font-size:12px;padding:8px 12px}.engine-lab .el-speed{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:11px;color:#9eb4c9}.engine-lab input[type=range]{width:100px;accent-color:#72b8ff;cursor:pointer}
.engine-lab .el-camera-controls{display:flex;align-items:center;gap:4px;padding-left:8px;border-left:1px solid var(--el-line)}
.engine-lab .el-camera-controls button{width:36px;min-height:36px;padding:4px;font-size:15px;line-height:1}
.engine-lab .el-workspace{display:grid;grid-template-columns:minmax(0,1fr) 290px}.engine-lab .el-stage{position:relative;min-width:0;background:radial-gradient(ellipse at 50% 42%,#19334c 0,#101f2e 42%,#0b1420 75%);overflow:hidden}.engine-lab .el-viewport{height:540px;width:100%;position:relative}.engine-lab .el-viewport canvas{display:block;width:100%;height:100%;cursor:grab}.engine-lab .el-viewport canvas:active{cursor:grabbing}.engine-lab .el-view-label{position:absolute;top:20px;left:22px;right:22px;display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:.13em;color:#afc4d8;pointer-events:none}.engine-lab .el-live-dot{height:5px;width:5px;border-radius:50%;background:#7ac7ff;box-shadow:0 0 12px #4da9ff}.engine-lab .el-render-status{margin-left:auto;font-size:8px;color:#7494af}.engine-lab .el-viewport-note{position:absolute;left:22px;bottom:20px;font-size:10px;line-height:1.8;color:#8ca5bc;pointer-events:none}.engine-lab .el-fallback{position:absolute;inset:120px 30px auto;max-width:460px;color:#bbccdc;padding:26px;background:#0d1a29;border:1px solid #35516c;border-radius:12px}.engine-lab.el-no-webgl .el-viewport{height:330px}.engine-lab.el-no-webgl .el-viewport-note{display:none}
.engine-lab .el-inspector{padding:27px 24px 22px;border-left:1px solid var(--el-line);background:#0d1724;display:flex;flex-direction:column;align-items:flex-start}.engine-lab .el-part-name{font-size:24px;line-height:1.2;letter-spacing:-.025em;font-weight:500;margin:17px 0 13px;color:#eef6ff}.engine-lab .el-location{font-size:11px;line-height:1.55;color:#85bce9;padding-left:11px;border-left:2px solid #417da9;margin-bottom:17px}.engine-lab .el-description{font-size:13px;color:#b2c2d2}.engine-lab .el-technical{font-size:12px;margin:18px 0 0;width:100%;color:#b4cee4}.engine-lab summary{cursor:pointer;padding:5px 0;min-height:30px}.engine-lab .el-technical p{font-size:12px;margin-top:8px}.engine-lab .el-connections{margin-top:23px;width:100%}.engine-lab .el-connections>span{font-size:9px;letter-spacing:.12em;color:#6f8da9}.engine-lab .el-connections>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.engine-lab .el-connections button{padding:6px 8px;font-size:10px;min-height:32px;line-height:1.3;background:#142638;color:#bdd8ef}.engine-lab .el-focus{margin-top:22px;width:100%;font-size:12px;background:#193a57;color:#c8e7ff}.engine-lab .el-select-status{font-size:10px;margin-top:13px;color:#7692ab}
.engine-lab .el-flow-controls{padding:17px 24px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--el-line);border-bottom:1px solid var(--el-line);background:#0e1a27}.engine-lab .el-flow-controls label{font-size:12px;font-weight:600;color:#bcd1e4;white-space:nowrap}.engine-lab select{min-height:40px;border:1px solid #34516a;border-radius:6px;background:#172a3b;color:#d8ebfb;padding:7px 28px 7px 12px;font-size:12px;max-width:100%}.engine-lab .el-flow-note{flex:1;min-width:220px;font-size:11px;color:#90b1ce}
.engine-lab .el-parts-heading{display:flex;gap:14px;align-items:center;padding:23px 24px 14px}.engine-lab .el-parts-heading label{font-size:12px;color:#c0d2e3;white-space:nowrap}.engine-lab input[type=search]{width:100%;max-width:350px;min-height:42px;padding:10px 13px;color:#e4f2ff;background:#101e2c;border:1px solid #2d4459;border-radius:6px;font-size:12px}.engine-lab input::placeholder{color:#748fa7}.engine-lab .el-search-count{font-size:10px;white-space:nowrap;color:#708ca6;margin-left:auto}.engine-lab .el-parts{padding:0 24px 25px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.engine-lab .el-parts button{position:relative;text-align:left;font-size:11px;padding:11px 11px 11px 23px;background:#101d2b;line-height:1.4;color:#b2c9de}.engine-lab .el-parts button:before{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;content:'';background:var(--part-color)}.engine-lab .el-parts button.is-selected{background:#163550;border-color:#629fd0;color:#dfedfa}.engine-lab .el-no-parts{padding:0 24px 22px;color:#aac2d8}.engine-lab .el-footer{display:flex;justify-content:space-between;gap:16px;padding:15px 24px;border-top:1px solid var(--el-line);font-size:10px;line-height:1.6;color:#6c8aa3}.engine-lab .el-footer a{text-decoration:none;font-size:10px;color:#82add1}
@media(max-width:1000px){.engine-lab .el-workspace{grid-template-columns:minmax(0,1fr) 260px}.engine-lab .el-inspector{padding:23px 18px}.engine-lab .el-viewport{height:520px}.engine-lab .el-parts{grid-template-columns:repeat(3,minmax(0,1fr))}.engine-lab .el-speed{margin-left:0}}
@media(max-width:720px){.engine-lab{border-radius:12px}.engine-lab .el-intro{padding:25px 20px 16px;align-items:flex-start;gap:12px}.engine-lab .el-intro h1{font-size:34px}.engine-lab .el-model-tag{font-size:7px;white-space:normal;max-width:93px;padding:6px}.engine-lab .el-disclosure{padding:0 20px 20px;font-size:11px}.engine-lab .el-toolbar{padding:12px 15px;gap:6px}.engine-lab .el-toolbar button{font-size:10px;padding:8px 10px;min-height:40px}.engine-lab .el-camera-controls{flex-basis:100%;order:1;padding:7px 0 0;border:0}.engine-lab .el-speed{padding:4px 0}.engine-lab .el-workspace{grid-template-columns:1fr}.engine-lab .el-viewport{height:440px}.engine-lab .el-inspector{border-left:0;border-top:1px solid var(--el-line);padding:24px 20px;display:block}.engine-lab .el-part-name{font-size:25px;margin-top:10px}.engine-lab .el-description{max-width:580px}.engine-lab .el-connections{margin-top:17px}.engine-lab .el-focus{max-width:260px;margin-top:17px}.engine-lab .el-select-status{margin-top:8px}.engine-lab .el-flow-controls{padding:15px 20px;gap:10px}.engine-lab .el-flow-note{flex-basis:100%;min-width:0}.engine-lab .el-parts-heading{padding:20px 16px 13px;flex-wrap:wrap;gap:9px}.engine-lab .el-parts-heading label{flex-basis:100%}.engine-lab input[type=search]{max-width:none;flex:1;min-width:150px}.engine-lab .el-parts{padding:0 16px 20px;grid-template-columns:repeat(2,minmax(0,1fr))}.engine-lab .el-parts button{min-height:48px;font-size:10px}.engine-lab .el-footer{padding:15px 20px;flex-direction:column;gap:6px}.engine-lab .el-view-label{left:16px;right:16px;font-size:8px}.engine-lab .el-viewport-note{left:16px;font-size:9px}}
@media(max-width:400px){.engine-lab .el-viewport{height:365px}.engine-lab .el-intro h1{font-size:29px}.engine-lab .el-render-status{display:none}.engine-lab .el-parts button{font-size:9px;padding-left:20px}.engine-lab .el-speed{font-size:10px}}
@media(prefers-reduced-motion:reduce){.engine-lab button{transition:none}}
.engine-lab .el-cycle-status{padding:10px 24px;color:#b4cee4;font-size:12px;border-bottom:1px solid var(--el-line);background:#0d1724;min-height:42px}
.engine-lab .el-hotspots{position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none}
.engine-lab .el-hotspot{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:34px;height:34px;min-height:34px;padding:0;border:1px solid #c3e5ff;background:#0c2135e8;color:#eaf6ff;border-radius:50%;font-size:9px;font-weight:700;pointer-events:auto;box-shadow:0 0 0 4px #72b8ff24,0 4px 14px #0008}
.engine-lab .el-hotspot:hover,.engine-lab .el-hotspot[aria-pressed=true]{background:#2582c9;border-color:#e2f4ff;color:#fff;transform:translate(-50%,-50%) scale(1.08)}
.engine-lab .el-hotspot:focus-visible{z-index:2;outline:3px solid #fff;outline-offset:3px}
.engine-lab.el-no-webgl .el-hotspots{display:none}
.engine-lab .el-model-specific{width:100%;margin-top:18px;padding:13px 12px;border:1px solid #33506c;border-radius:6px;background:#102033}
.engine-lab .el-model-specific>span{display:block;color:#87bde9;font-size:9px;letter-spacing:.08em;line-height:1.5}
.engine-lab .el-model-specific p{margin:8px 0;font-size:11px;line-height:1.6;color:#c0d2e3}
.engine-lab .el-model-specific a{font-size:10px;text-decoration:none}
.engine-lab .el-model-specific a span{margin-left:.3em}
@media(max-width:720px){.engine-lab .el-cycle-status{padding:10px 20px}.engine-lab .el-model-specific{margin:15px 0}}
@media(prefers-reduced-motion:reduce){.engine-lab .el-hotspot{transition:none}}
@media(max-width:600px){.engine-lab .el-hotspot{width:28px;height:28px;min-height:28px}}

/* Guided learning stays usable with or without the WebGL renderer. */
.engine-lab .el-intro h1{font-family:inherit;font-size:clamp(30px,3.5vw,46px);font-weight:500;line-height:1.13;letter-spacing:-.04em;margin:10px 0 9px;color:var(--el-text)}
.engine-lab{--el-panel:#121f2e;--el-soft:#182b3d;--el-positive:#9ddaca}
.engine-lab .el-learning{margin:0 24px 24px;padding:24px;border:1px solid #35516d;border-radius:16px;background:linear-gradient(120deg,#172d43,#101c2b)}
.engine-lab .el-learning-heading{display:flex;justify-content:space-between;gap:24px;align-items:center}.engine-lab .el-learning-heading h3{margin:8px 0 9px;font-size:25px;line-height:1.2;letter-spacing:-.6px;color:var(--el-text)}.engine-lab .el-learning-heading p{font-size:12px}.engine-lab .el-learning-heading>a{flex:none;font-size:12px;min-height:44px;display:flex;align-items:center}
.engine-lab .el-tour-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:20px}.engine-lab .el-tour-choices button{text-align:left;display:flex;flex-direction:column;gap:8px;justify-content:center;min-height:84px;border-radius:10px;background:#142336;padding:15px}.engine-lab .el-tour-choices button>span{font-size:9px;letter-spacing:.08em;color:var(--el-muted)}.engine-lab .el-tour-choices button>strong{font-size:13px;font-weight:600;line-height:1.5}.engine-lab .el-tour-choices button[aria-pressed=true]{border-color:#95c9f4;background:#20496b;color:#fff}
.engine-lab .el-tour-current{margin-top:18px;padding:20px 0 0;border-top:1px solid #35516d;display:flex;align-items:center;justify-content:space-between;gap:18px}.engine-lab .el-tour-current h4{margin:7px 0;font-size:19px;color:var(--el-text)}.engine-lab .el-tour-current p{font-size:12px}.engine-lab .el-tour-navigation{display:flex;gap:7px;flex-wrap:wrap;flex-shrink:0;max-width:300px}.engine-lab .el-tour-navigation button{font-size:11px;min-height:44px}.engine-lab .el-tour-navigation [data-tour-exit]{border:0;background:transparent;color:#9cc8eb}
.engine-lab .el-cycle-lesson{display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px;padding:22px 28px;border-bottom:1px solid var(--el-line);background:#101c29;align-items:center}.engine-lab .el-stroke-diagram{padding:9px 0;text-align:center}.engine-lab .el-stroke-diagram svg{display:block;width:160px;max-width:100%;height:126px}.engine-lab .el-cylinder{fill:none;stroke:#7d95ad;stroke-width:5;stroke-linecap:round}.engine-lab .el-valve{stroke:#7d95ad;stroke-width:5;fill:none}.engine-lab .el-piston rect{fill:#9ab6d0;stroke:#d6e7f8;stroke-width:2}.engine-lab .el-piston>path{stroke:#9ab6d0;stroke-width:7}.engine-lab .el-charge{fill:#477a9c;opacity:.2}.engine-lab .el-flow-arrow{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;opacity:.15}.engine-lab .el-air-arrow{stroke:#77c7ff}.engine-lab .el-exhaust-arrow{stroke:#ffad82}.engine-lab[data-stroke="0"] .el-inlet{stroke:#77c7ff;transform:translateY(7px)}.engine-lab[data-stroke="0"] .el-air-arrow,.engine-lab[data-stroke="3"] .el-exhaust-arrow{opacity:1}.engine-lab[data-stroke="1"] .el-piston,.engine-lab[data-stroke="3"] .el-piston{transform:translateY(-27px)}.engine-lab[data-stroke="2"] .el-charge{fill:#ffad61;opacity:.8}.engine-lab[data-stroke="3"] .el-outlet{stroke:#ffad82;transform:translateY(7px)}.engine-lab .el-stroke-movement{font-size:11px;color:var(--el-muted);line-height:1.5}.engine-lab .el-stroke-content h3{font-size:23px;letter-spacing:-.5px;margin:7px 0 10px;color:var(--el-text)}.engine-lab .el-stroke-content p{font-size:13px;max-width:780px}.engine-lab .el-stroke-content small{display:block;font-size:10px;line-height:1.75;color:var(--el-muted);max-width:800px;margin-top:12px}.engine-lab .el-stroke-choices{display:flex;gap:7px;flex-wrap:wrap;margin-top:15px}.engine-lab .el-stroke-choices button{font-size:11px;min-height:42px}
.engine-lab .el-camera-controls{margin-left:auto;flex-wrap:wrap}.engine-lab .el-camera-controls button{min-height:42px;width:42px}.engine-lab .el-toolbar{gap:10px}.engine-lab .el-speed{margin-left:0}.engine-lab .el-parts button{min-height:46px}.engine-lab .el-search-count{color:#a1b8ce}.engine-lab .el-footer{color:#9eb6cd}.engine-lab .el-parts-heading{scroll-margin-top:110px}

html[data-theme=light] .engine-lab{--el-text:#193149;--el-muted:#50677e;--el-line:#b9cddd;--el-blue:#245f92;--el-panel:#fff;--el-soft:#e9f1f8;background:#f4f8fc;border-color:#aec6da;color:var(--el-text)}
html[data-theme=light] .engine-lab :is(.el-intro h1,.el-part-name){color:#193149}html[data-theme=light] .engine-lab .el-intro h1 em{color:#245f92}html[data-theme=light] .engine-lab :is(.el-eyebrow,.el-location,.el-cycle-status){color:#376480}html[data-theme=light] .engine-lab .el-model-tag{color:#376480;border-color:#a1bdd3}html[data-theme=light] .engine-lab .el-disclosure{color:#50677e}
html[data-theme=light] .engine-lab button{background:#fff;color:#264b6b;border-color:#b0c7da}html[data-theme=light] .engine-lab button:hover{background:#e3eff9;border-color:#6295bd}html[data-theme=light] .engine-lab button[aria-pressed=true]{background:#225f90;color:#fff;border-color:#225f90}
html[data-theme=light] .engine-lab :is(.el-learning,.el-inspector,.el-cycle-lesson,.el-toolbar,.el-cycle-status,.el-flow-controls,.el-model-specific){background:#e9f1f8;border-color:#b0c8dc}html[data-theme=light] .engine-lab .el-learning{background:linear-gradient(120deg,#e3eef8,#fff)}html[data-theme=light] .engine-lab .el-tour-current{border-color:#b0c8dc}html[data-theme=light] .engine-lab .el-learning-heading>a,html[data-theme=light] .engine-lab a{color:#235c8c}html[data-theme=light] .engine-lab .el-tour-choices button[aria-pressed=true]>span{color:#d3e8fa}
html[data-theme=light] .engine-lab .el-stage{background:radial-gradient(ellipse at 50% 42%,#bfd4e6,#dbe8f3 50%,#ecf3fa)}html[data-theme=light] .engine-lab :is(.el-view-label,.el-viewport-note,.el-render-status){color:#2e5578}html[data-theme=light] .engine-lab :is(.el-description,.el-flow-note,.el-technical,.el-model-specific p,.el-model-specific>span,.el-connections>span,.el-select-status,.el-parts-heading label,.el-search-count,.el-speed,.el-flow-controls label,.el-footer){color:#44647f}html[data-theme=light] .engine-lab .el-fallback{background:#fff;border-color:#8faec6;color:#2d526e}
html[data-theme=light] .engine-lab :is(input[type=search],select){background:#fff;border-color:#a4bfd4;color:#244963}html[data-theme=light] .engine-lab input::placeholder{color:#607a91}html[data-theme=light] .engine-lab .el-parts button.is-selected{background:#225f90;color:#fff}html[data-theme=light] .engine-lab .el-hotspot{background:#225f90;color:#fff;border-color:#fff}html[data-theme=light] .engine-lab .el-tour-navigation [data-tour-exit]{color:#235c8c;background:transparent}
html[data-theme=light] .engine-lab .el-cylinder,html[data-theme=light] .engine-lab .el-valve{stroke:#597993}html[data-theme=light] .engine-lab .el-air-arrow{stroke:#176ba5}html[data-theme=light] .engine-lab .el-exhaust-arrow{stroke:#aa4f22}html[data-theme=light] .engine-lab[data-stroke="0"] .el-inlet{stroke:#176ba5}html[data-theme=light] .engine-lab[data-stroke="3"] .el-outlet{stroke:#aa4f22}
@media(max-width:1000px){.engine-lab .el-learning-heading{align-items:flex-start;flex-direction:column;gap:6px}.engine-lab .el-tour-current{align-items:flex-start;flex-direction:column}.engine-lab .el-tour-navigation{max-width:none}.engine-lab .el-camera-controls{margin-left:0}}
@media(max-width:720px){.engine-lab .el-learning{margin:0 16px 18px;padding:18px}.engine-lab .el-learning-heading h3{font-size:23px}.engine-lab .el-tour-choices{grid-template-columns:1fr;gap:8px;margin-top:14px}.engine-lab .el-tour-choices button{min-height:68px;padding:12px 14px;gap:5px}.engine-lab .el-cycle-lesson{padding:18px;grid-template-columns:100px minmax(0,1fr);gap:14px}.engine-lab .el-stroke-diagram svg{height:105px}.engine-lab .el-stroke-choices{gap:6px}.engine-lab .el-stroke-choices button{font-size:10px;padding:8px 10px}.engine-lab .el-camera-controls{flex-basis:100%;border:0;padding-left:0}.engine-lab .el-toolbar button{font-size:11px;min-height:44px}.engine-lab .el-flow-controls select{font-size:16px;width:100%;max-width:none}.engine-lab input[type=search]{font-size:16px}.engine-lab .el-tour-navigation button{min-height:44px}.engine-lab .el-inspector{padding:20px}.engine-lab .el-model-tag{display:none}}
@media(max-width:440px){.engine-lab .el-cycle-lesson{grid-template-columns:1fr}.engine-lab .el-stroke-diagram{display:flex;align-items:center;gap:20px;text-align:left}.engine-lab .el-stroke-diagram svg{width:95px;height:80px}.engine-lab .el-stroke-movement{max-width:125px}.engine-lab .el-stroke-choices button{flex:1 1 42%}.engine-lab .el-tour-navigation{display:grid;grid-template-columns:1fr 1fr;width:100%}.engine-lab .el-tour-navigation [data-tour-exit]{grid-column:1/-1}.engine-lab .el-viewport{height:340px}}
.engine-lab .el-learning{padding:18px 22px;margin-bottom:18px}.engine-lab .el-learning-heading h3{font-size:21px;margin:5px 0}.engine-lab .el-learning-heading p{display:none}.engine-lab .el-tour-choices{margin-top:13px}.engine-lab .el-tour-choices button{min-height:68px;padding:12px 14px;gap:5px}.engine-lab .el-learning-heading{flex-direction:row;align-items:center;gap:12px}
@media(max-width:720px){.engine-lab .el-learning{padding:15px;margin-inline:16px}.engine-lab .el-learning-heading h3{font-size:19px}.engine-lab .el-learning-heading>a{display:none}.engine-lab .el-tour-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.engine-lab .el-tour-choices button{padding:10px 8px;min-height:74px;gap:4px}.engine-lab .el-tour-choices button>strong{font-size:11px;overflow-wrap:anywhere}.engine-lab .el-tour-choices button>span{font-size:8px;letter-spacing:0}.engine-lab .el-tour-current{padding-top:14px;margin-top:13px;gap:10px}.engine-lab .el-tour-current h4{font-size:17px}.engine-lab .el-tour-current p{display:none}}
