@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{font-family:Manrope,Arial,sans-serif;color:#e9f0ee;background:#101b22;font-synthesis:none;--bg:#101b22;--panel:#152128;--line:#ffffff13;--muted:#889b9f;--accent:#bbefb0;--ink:#e9f0ee;--button:#ffffff08;--mono:'IBM Plex Mono',monospace}
*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,a,input{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{border:1px solid var(--line);background:var(--button)}button:hover{border-color:var(--accent)}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:disabled{opacity:.45;cursor:wait}button[hidden],[hidden]{display:none!important}
.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:12px;font-size:14px;letter-spacing:1.2px;font-weight:800;white-space:nowrap}.brand svg{width:29px;height:29px;stroke:var(--accent);fill:none;stroke-width:1.3}.brand-light{font-weight:400;color:var(--muted)}nav{display:flex;height:100%;gap:35px}nav a{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);border-bottom:2px solid transparent}nav a span{font:10px var(--mono);opacity:.65}nav a.active{color:var(--ink);border-color:var(--accent)}.about-button{border:0;background:none;font-size:12px;white-space:nowrap}.about-button span{padding-left:18px;color:var(--accent)}
.workspace{height:calc(100dvh - 124px);min-height:650px;display:grid;grid-template-columns:minmax(0,1fr) 326px}.stage{position:relative;overflow:hidden;background:var(--bg)}#viewport{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}.stage-heading{position:absolute;top:39px;left:40px;pointer-events:none}.eyebrow{font:10px var(--mono);letter-spacing:1.8px;color:var(--accent)}h1{font-size:clamp(27px,3vw,47px);line-height:1.17;letter-spacing:-1.9px;font-weight:500;margin:14px 0} .stage-heading p{font-size:12px;color:var(--muted);margin:0}.scene-meta{position:absolute;top:42px;right:30px;display:flex;align-items:center;gap:8px;font:8px var(--mono);letter-spacing:1px;color:var(--muted)}.status-dot{display:inline-block;width:5px;height:5px;border-radius:100%;background:var(--accent);box-shadow:0 0 10px #bbefb055}.stage-footer{position:absolute;bottom:22px;left:38px;right:27px;display:flex;justify-content:space-between;gap:12px;font:9px var(--mono);color:var(--muted);pointer-events:none}.stage-footer>span{display:flex;align-items:center;gap:10px}.stage-footer svg{width:12px;height:17px;fill:none;stroke:currentColor;stroke-width:1}.engine-label i{width:3px;height:3px;background:var(--muted);border-radius:50%}.view-tools{position:absolute;right:24px;bottom:65px;display:flex;flex-direction:column;gap:6px}.view-tools button{width:36px;height:36px;background:var(--panel);border-radius:5px;font-size:22px}.view-tools button:last-child{font:10px var(--mono)}.view-tools button[aria-pressed=true]{color:var(--accent)}.back-button{position:absolute;left:40px;top:197px;font-size:11px;padding:10px 14px;background:var(--panel);border-radius:5px}.labels{position:absolute;inset:0;pointer-events:none}.hotspot{position:absolute;top:0;left:0;display:flex;align-items:center;gap:8px;pointer-events:auto;font:9px var(--mono);letter-spacing:.3px;border:1px solid #82a1a03d;border-radius:4px;background:#14272beb;padding:7px 10px;color:#e5ece7;white-space:nowrap;transition:opacity .2s}.hotspot:before{content:'';width:5px;height:5px;flex-shrink:0;background:#b9f2b0;border-radius:50%;box-shadow:0 0 0 4px #b9f2b017}.hotspot:after{content:'↗';margin-left:8px;color:#b9f2b0}.hotspot:hover{background:#254c4e}.panel{padding:30px 25px 22px;border-left:1px solid var(--line);background:var(--panel);overflow:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.panel-top{display:flex;justify-content:space-between;align-items:center;font:9px var(--mono);letter-spacing:1px;color:var(--muted)}.pill{border:1px solid var(--line);border-radius:20px;padding:5px 8px;font:8px var(--mono);color:var(--accent)}.panel h2{font-size:22px;letter-spacing:-.7px;font-weight:500;margin:21px 0 7px}.panel-description{font-size:11px;line-height:1.8;color:var(--muted);margin:0 0 23px}.divider{height:1px;background:var(--line);margin:22px 0}.section-label{font:9px var(--mono);letter-spacing:1.2px;color:var(--muted);margin-bottom:13px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 10px}.metric-label{color:var(--muted);font-size:9px;margin-bottom:7px}.metric-value{font:25px var(--mono);letter-spacing:-1px}.metric-value small{font:10px var(--mono);color:var(--muted);margin-left:4px}.metric-note{font:8px var(--mono);color:var(--accent);margin-top:6px}.sparkline{width:100%;height:39px;margin-top:16px}.sparkline path{fill:none;stroke:var(--accent);stroke-width:1.5}.asset-list{display:flex;flex-direction:column;gap:7px}.asset{width:100%;text-align:left;padding:12px;display:flex;gap:11px;align-items:center;border-radius:5px;background:transparent}.asset-index{font:10px var(--mono);color:var(--muted)}.asset-main{flex:1}.asset strong{font-size:11px;font-weight:500;display:block}.asset small{display:block;font:8px var(--mono);color:var(--muted);margin-top:4px}.asset-arrow{color:var(--accent);font-size:14px}.asset.selected{background:#bbedb00b;border-color:#bbedb05c}.primary{width:100%;padding:13px 15px;background:var(--accent);color:#14251c;border:0;border-radius:4px;display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:700}.primary:hover{filter:brightness(1.08)}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;margin:14px 0}.switch{position:relative;width:31px;height:18px;border-radius:20px;background:#566366;padding:2px;transition:background .2s}.switch:after{content:'';display:block;width:12px;height:12px;background:white;border-radius:50%;transition:transform .2s}.switch[aria-checked=true]{background:#83af78}.switch[aria-checked=true]:after{transform:translateX(12px)}.small-note{font-size:9px;line-height:1.7;color:var(--muted);margin-top:18px}.site-footer{height:42px;border-top:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between;font:8px var(--mono);letter-spacing:.8px;color:var(--muted);gap:16px}.footer-sep{padding:0 13px;opacity:.5}.range-header{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-top:20px}.range-header output{font:11px var(--mono);color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent);margin:16px 0 4px;cursor:pointer}.range-ends{display:flex;justify-content:space-between;font:8px var(--mono);color:var(--muted)}.swatches{display:flex;gap:9px;margin:11px 0}.swatch{height:29px;width:29px;border-radius:50%;border:3px solid var(--panel);outline:1px solid transparent}.swatch.selected{outline-color:var(--ink)}.swatch[data-color=blue]{background:#244956}.swatch[data-color=silver]{background:#aeb9ba}.swatch[data-color=orange]{background:#c56539}.part-info{border-left:2px solid var(--accent);padding:2px 0 2px 12px;margin-top:13px}.part-info strong{font-size:11px;display:block;font-weight:600}.part-info p{font-size:10px;color:var(--muted);line-height:1.7;margin:5px 0}.part-info small{font:8px var(--mono);color:var(--accent)}
body.pump{--bg:#e9e8e3;--panel:#f4f3ee;--line:#1a292217;--muted:#79817e;--accent:#46664a;--ink:#25352d;--button:#ffffff70;background:var(--bg);color:var(--ink)}body.pump .scene-meta .status-dot{background:#6b8b68}body.pump .hotspot{color:#334239;background:#f5f4eee8;border-color:#64786644}body.pump .hotspot:before{background:#6f8a62;box-shadow:0 0 0 4px #76916b18}body.pump .hotspot:after{color:#58764e}body.pump .hotspot:hover{background:#fff}body.pump .primary{color:#fff}body.pump .asset.selected{border-color:#72926760;background:#7396600b}
.loading,.error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);z-index:10}.loading{font:11px var(--mono);color:var(--muted)}.loader{width:30px;height:30px;border:1px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}.error{padding:30px;text-align:center}.error h2{font-size:24px}.error p{font-size:13px;max-width:360px;line-height:1.7;color:var(--muted)}.error button{padding:12px 18px}@keyframes spin{to{transform:rotate(360deg)}}dialog{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px;width:min(620px,calc(100% - 36px));padding:40px;max-height:85vh;overflow:auto}dialog::backdrop{background:#061115b8;backdrop-filter:blur(7px)}dialog h2{font-size:32px;font-weight:500;letter-spacing:-1px}dialog p{font-size:12px;line-height:1.9;color:var(--muted)}.dialog-close{position:absolute;right:15px;top:12px;font-size:25px;border:0;background:transparent}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:25px 0}.about-grid h3{font-size:12px}.disclaimer{border-top:1px solid var(--line);padding-top:18px}.text-link{font-size:12px;color:var(--accent)}
@media(min-width:1600px){.workspace{grid-template-columns:minmax(0,1fr) 370px}.panel{padding:35px}.panel h2{font-size:26px}.panel-description,.asset strong{font-size:12px}.metric-grid{gap:25px 10px}.stage-heading{top:45px;left:50px}}
@media(max-width:1100px){.scene-meta{display:none}.workspace{grid-template-columns:minmax(0,1fr) 295px}.topbar{padding:0 22px;gap:18px}nav{gap:20px}.brand{font-size:12px}.stage-heading{left:25px}.panel{padding:25px 20px}.stage-footer{left:25px}.engine-label{display:none!important}}
@media(max-width:760px){.topbar{height:112px;padding:17px 20px 0;flex-wrap:wrap;gap:0;align-content:space-between}.brand{height:31px}.about-button{margin-left:auto;font-size:11px}nav{order:3;width:100%;height:48px;gap:25px}nav a{font-size:11px}.workspace{display:flex;flex-direction:column;height:auto;min-height:0}.stage{height:620px;height:72svh;min-height:440px;max-height:650px}.stage-heading{top:24px;left:21px}.stage-heading h1{font-size:31px;margin:11px 0;letter-spacing:-1px}.stage-heading p{font-size:10px}.eyebrow{font-size:8px}.panel{border-left:0;border-top:1px solid var(--line);padding:25px;overflow:visible}.panel h2{margin-top:14px}.metric-grid{grid-template-columns:repeat(4,1fr);gap:12px}.metric-value{font-size:22px}.stage-footer{left:20px;bottom:19px;font-size:8px}.view-tools{right:15px;bottom:48px}.back-button{left:21px;top:165px}.site-footer{height:auto;min-height:55px;padding:15px 23px;flex-wrap:wrap;font-size:7px;gap:10px}.hotspot{font-size:8px;padding:6px;gap:6px}.hotspot:after{margin-left:2px}.asset-list{display:grid;grid-template-columns:1fr 1fr}.panel-description{max-width:440px}.sparkline{height:30px}.about-grid{grid-template-columns:1fr;gap:0}dialog{padding:30px 25px}dialog h2{font-size:27px}.range-header{margin-top:15px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.loader{animation:none}}
