.vpt-stage{position:relative;display:grid;place-items:center;min-width:1px;width:100%;height:360px;overflow:hidden;isolation:isolate}
.vpt-source{display:block;max-width:86%;width:86%;font-family:var(--vpt-font-family,Arial,sans-serif);font-size:var(--vpt-font-size,60px);font-weight:var(--vpt-font-weight,700);font-style:var(--vpt-font-style,normal);line-height:var(--vpt-line-height,1.2);letter-spacing:var(--vpt-letter-spacing,0px);text-align:var(--vpt-text-align,center);white-space:pre-line;overflow-wrap:anywhere}
.vpt-source[hidden]{display:none!important}
[data-vpt-ready="1"] .vpt-source{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.vpt-canvas{position:absolute;inset:0;display:block;width:100%;height:100%}
.vpt-editor{color:#ecf4fb;background:#101e2b;border:1px solid #344a5b;border-radius:14px;padding:22px;font:14px/1.5 system-ui,sans-serif;color-scheme:dark}
.vpt-editor *{box-sizing:border-box}
/* Compact desktop workspace; settings scroll independently from the scene. */
.vpt-particle-overlay:has(>.vpt-compact){padding:12px}
.vpt-particle-overlay>.vpt-editor.vpt-compact{width:min(1440px,100%);max-height:none;overflow:hidden}
.vpt-editor.vpt-compact{height:min(820px,calc(100dvh - 24px));min-height:440px;padding:10px;border-radius:9px;font:12.5px/1.35 system-ui,sans-serif;display:flex;flex-direction:column;overflow:hidden}
.vpt-editor.vpt-compact .vpt-header{margin:0 0 8px;gap:8px;flex:none}
.vpt-editor.vpt-compact h2{font-size:16px}.vpt-editor.vpt-compact h3{font-size:13px;margin:6px 0}
.vpt-editor.vpt-compact p{font-size:11.5px;line-height:1.35;margin:6px 0 9px}
.vpt-editor.vpt-compact label{font-size:12px;gap:3px}
.vpt-editor.vpt-compact input,.vpt-editor.vpt-compact select,.vpt-editor.vpt-compact button,.vpt-editor.vpt-compact textarea{font-size:12.5px;line-height:1.3;padding:4px 6px;border-radius:4px;min-height:27px}
.vpt-editor.vpt-compact input[type=checkbox]{min-height:0;width:14px;height:14px;padding:0}
.vpt-editor.vpt-compact input[type=range]{height:28px;min-height:28px;padding:0;touch-action:none;user-select:none;cursor:ew-resize}
.vpt-editor.vpt-compact .vpt-dial{grid-template-columns:minmax(65px,1fr) 66px;gap:6px}
.vpt-editor.vpt-compact .vpt-fields{gap:8px 10px}
.vpt-editor.vpt-compact .vpt-row{gap:6px}
.vpt-workspace{display:grid;grid-template-columns:minmax(350px,43%) minmax(280px,1fr);gap:12px;flex:1;min-height:0}
.vpt-controls{display:flex;flex-direction:column;min-width:0;min-height:0;border-right:1px solid #344a5b;padding-right:10px}
.vpt-tabbar{display:flex;gap:4px;margin-bottom:9px;flex:none}
.vpt-tabbar button{flex:1}.vpt-tabbar button[aria-selected=true]{background:#254a51;border-color:#7de5c2;color:#c3ffea}
.vpt-settings-scroll,.vpt-inline-dialog{overflow:auto;overscroll-behavior:contain;min-height:0;scrollbar-gutter:stable;padding:0 5px 10px 0}
.vpt-preview-column{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}
.vpt-editor.vpt-compact .vpt-preview{flex:1;min-height:100px;display:flex;align-items:center;justify-content:center}
.vpt-editor.vpt-compact .vpt-preview .vpt-stage{max-height:none;flex:none;transform:scale(var(--vpt-preview-scale,1));transform-origin:center}
.vpt-editor.vpt-compact .vpt-timeline{flex:none;margin:7px 0;gap:7px}
.vpt-preview-column>.vpt-row{flex:none}.vpt-preview-column .vpt-guide-toggle{display:flex;align-items:center;font-size:11px!important}
.vpt-editor.vpt-compact .vpt-footer{flex:none;border-top:1px solid #344a5b;padding-top:8px;margin-top:8px;min-height:36px}
.vpt-editor.vpt-compact .vpt-status{margin:0;min-height:0;flex:1;font-size:11.5px}
.vpt-editor.vpt-compact details.vpt-module-panel{border:0;padding:0;border-radius:0;margin-top:10px}
.vpt-module-inactive{display:none!important}.vpt-module-choice{position:sticky;top:0;background:#101e2b;padding-bottom:6px;z-index:2}
.vpt-quick-editors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:12px 0}
.vpt-masters{display:grid;gap:4px}.vpt-master{display:grid;grid-template-columns:130px minmax(65px,1fr) 53px;gap:6px;align-items:center}
.vpt-editor .vpt-master label{display:flex;align-items:center;gap:5px}
.vpt-equations{border-top:1px solid #344a5b;margin-top:12px;padding-top:9px;color:#b9cbd5}
.vpt-editor.vpt-compact .vpt-preset-compact{padding:8px;margin:0 0 10px}.vpt-preset-compact>summary{margin:0}
.vpt-titlebar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.vpt-editor .vpt-titlebar>[data-workspace-presets]{border-color:#7de5c2;color:#c3ffea;background:#254a51}
.vpt-editor.vpt-compact .vpt-mesh-layout{grid-template-columns:minmax(120px,40%) minmax(0,1fr);gap:9px}
.vpt-editor.vpt-compact .vpt-mesh-canvas{width:100%;height:auto}.vpt-editor.vpt-compact .vpt-speed-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.vpt-editor.vpt-compact .vpt-embedded{position:static;display:block;padding:0;background:none;inset:auto;width:auto;height:auto}
.vpt-editor.vpt-compact .vpt-embedded>.vpt-editor{padding:0;border:0;border-radius:0;max-height:none;overflow:visible;width:100%;background:transparent}
.vpt-editor.vpt-compact .vpt-embedded .vpt-path-layout,.vpt-editor.vpt-compact .vpt-embedded .vpt-gravity-layout{display:flex;flex-direction:column;gap:10px}
.vpt-editor.vpt-compact .vpt-embedded canvas{width:100%;height:auto;max-width:100%}
.vpt-editor.vpt-compact .vpt-embedded .vow-path-editor{min-width:0}
@media(max-width:850px){.vpt-workspace{grid-template-columns:minmax(310px,46%) minmax(240px,1fr)}.vpt-editor.vpt-compact .vpt-mesh-layout{grid-template-columns:1fr}.vpt-master{grid-template-columns:116px minmax(50px,1fr) 48px}.vpt-quick-editors{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.vpt-editor.vpt-compact{min-height:520px}.vpt-workspace{display:flex;flex-direction:column}.vpt-controls{order:2;flex:1;border:0;padding:0}.vpt-preview-column{order:1;height:37%;min-height:165px}.vpt-preview-column>.vpt-row,.vpt-preview-column>[data-text-points-toggle]{display:none!important}.vpt-settings-scroll,.vpt-inline-dialog{flex:1}.vpt-editor.vpt-compact .vpt-header p{display:none}.vpt-workspace{gap:7px}.vpt-editor.vpt-compact .vpt-footer{align-items:flex-start}}
.vpt-editor [hidden]{display:none!important}
.vpt-editor h2{font:600 24px/1.2 system-ui;margin:0;color:#ecf4fb}
.vpt-editor h3{font:600 15px system-ui;margin:0 0 12px;color:#ecf4fb}
.vpt-editor p{color:#aebdca;font-size:12px;margin:8px 0 14px}
.vpt-editor .vpt-header,.vpt-editor .vpt-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.vpt-editor .vpt-header{justify-content:space-between;margin-bottom:18px}
.vpt-editor label{display:grid;gap:5px;font-size:12px;min-width:0}
.vpt-editor input,.vpt-editor select,.vpt-editor button,.vpt-editor textarea{font:inherit;color:#ecf4fb;background:#182a3a;border:1px solid #405568;border-radius:6px;padding:8px;max-width:100%;min-width:0}
.vpt-editor button{cursor:pointer}
.vpt-editor button:hover{border-color:#7de5c2}
.vpt-editor :focus-visible{outline:2px solid #7de5c2;outline-offset:2px}
.vpt-editor .vpt-primary{background:#7de5c2;color:#10251e;font-weight:600}
.vpt-editor textarea{width:100%;resize:vertical}
.vpt-editor .vpt-preview{background:radial-gradient(ellipse at center,#1d3541,#091521);border:1px solid #344a5b;border-radius:10px;overflow:hidden;color:#7de5c2}
.vpt-editor .vpt-timeline{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin:12px 0}
.vpt-editor input[type=range]{width:100%;padding:0;accent-color:#7de5c2}
.vpt-editor .vpt-tabs{display:grid;grid-template-columns:1fr;gap:12px;margin:16px 0}
.vpt-editor details{border:1px solid #344a5b;border-radius:8px;padding:12px;min-width:0}
.vpt-editor summary{cursor:pointer;font-weight:600;margin-bottom:12px}
.vpt-editor .vpt-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vpt-editor .vpt-wide{grid-column:1/-1}
.vpt-editor .vpt-presets{border-top:1px solid #344a5b;padding-top:16px;margin-top:16px}
.vpt-editor .vpt-status{margin:12px 0 0;min-height:20px}
.vpt-particle-launch{position:fixed;left:50%;right:auto;bottom:18px;transform:translateX(-50%);z-index:10010;background:#7de5c2;color:#10251e;border:1px solid #10251e;border-radius:24px;padding:12px 20px;font:650 14px system-ui;cursor:pointer}
.vpt-particle-launch[hidden]{display:none}
.vpt-particle-overlay{position:fixed;inset:0;z-index:10020;background:#0008;display:flex;align-items:center;justify-content:center;padding:20px}
.vpt-particle-overlay>.vpt-editor{width:min(960px,100%);max-height:95vh;overflow:auto}
@media(max-width:600px){.vpt-editor{padding:12px}.vpt-editor .vpt-tabs{grid-template-columns:1fr}.vpt-editor .vpt-fields{grid-template-columns:1fr}.vpt-editor .vpt-wide{grid-column:auto}.vpt-particle-overlay{padding:6px}}

.vpt-editor .vpt-dial{display:grid;grid-template-columns:minmax(70px,1fr) 85px;align-items:center;gap:8px}.vpt-editor input[type=color]{width:100%;height:40px;padding:4px;cursor:pointer}.vpt-editor .vpt-wide{grid-column:1/-1}

.vpt-guide{position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:none}.vpt-guide path{fill:none;stroke:#fff9;stroke-width:1;stroke-dasharray:5 5}.vpt-guide circle{fill:none;stroke:#ffd08aaa;stroke-width:1.5}.vpt-guide line{stroke-width:1.5}.vpt-editor .vpt-guide-toggle{display:flex;align-items:center;gap:6px}.vpt-route-overlay{position:fixed;inset:0;z-index:10040;background:#000b;display:grid;place-items:center;padding:12px}.vpt-route-panel{width:min(730px,100%);max-height:95vh;overflow:auto}.vpt-route-panel .vp-graph{max-height:50vh;display:block;margin:auto}.vpt-mesh-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px}.vpt-mesh-canvas{width:240px;height:190px;max-width:100%;border:1px solid #405568;border-radius:8px;margin-top:8px}.vpt-editor .vpt-key-row{display:grid;grid-template-columns:repeat(4,minmax(44px,1fr)) 30px;gap:5px;margin:7px 0}.vpt-key-row input{width:100%;padding:6px}.vpt-key-row button{padding:4px}.vpt-editor input[type=checkbox]{width:auto}@media(max-width:720px){.vpt-mesh-layout{grid-template-columns:1fr}.vpt-key-row{font-size:12px}}
.vpt-editor .vpt-rotation-toggle{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.vpt-speed-panel{margin-top:20px;padding-top:18px;border-top:1px solid #405568}
.vpt-speed-controls,.vpt-speed-selection{display:grid;grid-template-columns:1.3fr 1fr auto 1.3fr;gap:10px;align-items:end;margin:10px 0}
.vpt-speed-selection{grid-template-columns:1fr 1fr auto auto;align-items:center}
.vpt-speed-selection output{grid-column:1/-1;font-variant-numeric:tabular-nums;color:#ffd08a}
.vpt-speed-graph{display:block;width:100%;height:240px;touch-action:none;user-select:none;cursor:crosshair}
.vpt-speed-graph text{font:12px system-ui;fill:#aebdca;pointer-events:none}
.vpt-speed-graph circle{cursor:grab}.vpt-speed-graph circle:focus-visible{stroke:#fff;stroke-width:3;outline:none}
.vpt-speed-graph [data-speed-scale]{cursor:ns-resize;touch-action:none;outline:none}
.vpt-speed-graph [data-speed-scale]:focus-visible rect{stroke:#fff;stroke-width:3}
.vpt-speed-graph [data-speed-duration]{cursor:ew-resize;touch-action:none;outline:none}
.vpt-speed-graph [data-speed-duration]:focus-visible rect{stroke:#fff;stroke-width:2}
.vpt-editor .vpt-axis-controls{display:grid;grid-template-columns:minmax(150px,1fr) 1fr;align-items:end;gap:14px;margin:12px 0}
.vpt-axis-controls output{font-variant-numeric:tabular-nums;color:#ffd08a;padding:8px 0}
.vpt-editor .vpt-duration-control{max-width:260px;margin-top:18px}
.vpt-editor [data-tilt-section]{margin-top:24px;padding-top:18px;border-top:1px solid #405568}
.vpt-speed-graph [data-tilt-scale],.vpt-speed-graph [data-tilt-shift]{cursor:ns-resize;touch-action:none;outline:none}
.vpt-speed-graph [data-tilt-duration]{cursor:ew-resize;touch-action:none;outline:none}
.vpt-speed-graph [data-tilt-scale]:focus-visible rect,.vpt-speed-graph [data-tilt-duration]:focus-visible rect{stroke:#fff;stroke-width:2}
.vpt-speed-graph [data-tilt-shift]:focus-visible{stroke:#ffffff55;stroke-width:10}
@media(max-width:600px){.vpt-speed-controls,.vpt-speed-selection{grid-template-columns:1fr 1fr}}
@media(max-width:440px){.vpt-editor .vpt-axis-controls{grid-template-columns:1fr}}

.vpt-gravity-panel{width:min(900px,100%)}
.vpt-path-mode{width:min(1120px,100%)}
.vpt-path-mode .vpt-path-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(0,1.2fr);gap:22px;align-items:start}
.vpt-path-mode .vpt-fields{grid-template-columns:1fr}
.vpt-path-mode .vpt-path-layout canvas{position:sticky;top:0}
@media(max-width:800px){.vpt-path-mode .vpt-path-layout{grid-template-columns:1fr}.vpt-path-mode .vpt-path-layout canvas{position:static;grid-row:1}}
.vpt-gravity-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end;margin:12px 0}
.vpt-gravity-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}
.vpt-gravity-panel canvas{display:block;width:100%;height:auto;background:#091521;border:1px solid #526779;border-radius:8px;touch-action:none;cursor:crosshair}
.vpt-gravity-panel canvas:focus-visible{outline:2px solid #7de5c2;outline-offset:2px}
.vpt-gravity-panel [data-gravity-counts]{font-variant-numeric:tabular-nums;color:#7de5c2}
.vpt-gravity-panel input[type=range]{width:100%}.vpt-gravity-panel output{color:#ffd08a;margin-left:8px}
@media(max-width:600px){.vpt-gravity-controls{grid-template-columns:1fr}.vpt-gravity-overlay{padding:5px}}

.vpt-influence-graph{display:block;width:100%;height:240px;touch-action:none;user-select:none;margin:16px 0}.vpt-influence-graph text{font:12px system-ui;fill:#aebdca}.vpt-influence-graph [data-envelope-handle]{cursor:ew-resize;outline:none}.vpt-influence-graph [data-envelope-handle="influence_amount"]{cursor:ns-resize}.vpt-influence-graph [data-envelope-handle]:focus-visible{stroke:#fff;stroke-width:4;stroke-opacity:1}.vpt-editor [data-envelope-status]{color:#ffd08a;font-variant-numeric:tabular-nums}

.vpt-editor.vpt-compact>[data-particle-help]{display:none!important}
.vpt-editor.vpt-compact .vpt-module-help{padding:7px;margin-top:10px}
.vpt-module-help>summary{margin:0!important;font-size:11px}
@media(max-width:620px){.vpt-editor.vpt-compact{min-height:560px}.vpt-preview-column{height:44%;min-height:250px}.vpt-preview-column>.vpt-row{display:flex!important}.vpt-preview-column>[data-text-points-toggle]:not([hidden]){display:flex!important}}
