:root{--theme-page:#111015;--theme-panel:#18161b;--theme-stage:#151419;--theme-accent:#a86dde;--theme-node:#d7c2ef;--theme-link:#b8a9ce;--theme-text:#f1edf5;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--theme-page);color:var(--theme-text);font-synthesis:none;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--theme-page);min-width:320px}body{background:radial-gradient(circle at 12% 8%, color-mix(in srgb, var(--theme-accent) 13%, transparent), transparent 27rem), linear-gradient(145deg, color-mix(in srgb, var(--theme-page) 92%, white) 0%, var(--theme-page) 72%);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{color:inherit}.lab-shell{width:min(1460px,100% - 48px);margin:0 auto;padding:44px 0 52px}.lab-header{grid-template-columns:minmax(0,1fr) minmax(300px,500px);align-items:end;gap:80px;margin-bottom:34px;display:grid}.eyebrow{color:color-mix(in srgb, var(--theme-text) 58%, var(--theme-page));letter-spacing:.15em;text-transform:uppercase;align-items:center;gap:9px;margin-bottom:12px;font:600 11px/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:flex}.eyebrow i,.status i{background:var(--theme-accent);width:7px;height:7px;box-shadow:0 0 14px color-mix(in srgb, var(--theme-accent) 70%, transparent);border-radius:50%;display:inline-block}h1{letter-spacing:-.065em;max-width:720px;margin:0;font-size:clamp(45px,6.2vw,92px);font-weight:360;line-height:.86}h1 span{color:color-mix(in srgb, var(--theme-accent) 72%, var(--theme-text))}.intro{max-width:46ch;color:color-mix(in srgb, var(--theme-text) 66%, var(--theme-page));margin:0 0 3px;font-size:15px;line-height:1.7}.intro-block{flex-direction:column;align-items:flex-start;gap:18px;display:flex}.fullscreen-launch{border:1px solid color-mix(in srgb, var(--theme-accent) 62%, #3a3440);background:linear-gradient(115deg, color-mix(in srgb, var(--theme-accent) 22%, var(--theme-panel)), color-mix(in srgb, var(--theme-panel) 90%, transparent));width:min(100%,430px);min-height:68px;color:var(--theme-text);box-shadow:0 14px 40px color-mix(in srgb, var(--theme-accent) 10%, transparent);border-radius:11px;justify-content:space-between;align-items:center;gap:24px;padding:0 20px 0 22px;font-size:14px;font-weight:600;text-decoration:none;transition:border-color .16s,transform .16s,background .16s;display:flex}.fullscreen-launch i{color:var(--theme-accent);font-size:22px;font-style:normal;font-weight:400}.fullscreen-launch:hover,.fullscreen-launch:focus-visible{border-color:var(--theme-accent);background:linear-gradient(115deg, color-mix(in srgb, var(--theme-accent) 30%, var(--theme-panel)), var(--theme-panel));outline:none;transform:translateY(-2px)}.workbench{grid-template-columns:minmax(0,1fr) 340px;gap:18px;display:grid}.stage-column{min-width:0}.engine-switch{background:color-mix(in srgb, var(--theme-panel) 78%, transparent);border:1px solid #2f2b34;border-bottom:0;border-radius:14px 14px 0 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.engine-tab{color:#77707d;cursor:pointer;background:0 0;border:0;border-right:1px solid #2f2b34;min-height:62px;transition:color .16s,background .16s}.engine-tab:last-child{border-right:0}.engine-tab span{color:#5e5765;margin-right:10px;font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace}.engine-tab.is-active{color:var(--theme-text);background:linear-gradient(180deg, color-mix(in srgb, var(--theme-accent) 14%, transparent), color-mix(in srgb, var(--theme-accent) 3%, transparent));box-shadow:inset 0 -2px var(--theme-accent)}.engine-tab:hover:not(.is-active){color:#b0a6b7;background:#ffffff05}.stage-frame{background:linear-gradient(#ffffff05 1px, transparent 1px), linear-gradient(90deg, #ffffff05 1px, transparent 1px), radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--theme-accent) 12%, transparent), transparent 45%), var(--theme-stage);background-size:28px 28px,28px 28px,auto,auto;border:1px solid #312d36;border-radius:0 0 14px 14px;position:relative;overflow:hidden}.fullscreen-controls,.fullscreen-scrim{display:none}.fullscreen-icon-button{border:1px solid color-mix(in srgb, var(--theme-text) 18%, transparent);background:color-mix(in srgb, var(--theme-panel) 78%, transparent);width:46px;height:46px;color:color-mix(in srgb, var(--theme-text) 82%, var(--theme-page));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;border-radius:50%;padding:0;box-shadow:0 8px 30px #0000003d}.fullscreen-icon-button:hover,.fullscreen-icon-button:focus-visible{border-color:var(--theme-accent);color:var(--theme-text);outline:none}.menu-button{flex-direction:column;justify-content:center;align-items:center;gap:5px;display:flex}.menu-button span{background:currentColor;border-radius:2px;width:18px;height:1.5px}.stage-toolbar{z-index:4;pointer-events:none;justify-content:space-between;align-items:center;padding:15px 17px;display:flex;position:absolute;top:0;left:0;right:0}.status{color:#817985;letter-spacing:.04em;align-items:center;gap:9px;font:550 11px ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.status i{width:6px;height:6px;animation:1.8s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.45;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.stage-actions{pointer-events:auto;gap:7px;display:flex}.stage-actions button{color:#99909f;cursor:pointer;background:#161419d1;border:1px solid #3a3440;border-radius:7px;padding:7px 10px;font-size:11px}.stage-actions button:hover{color:#e8dff0;border-color:#6f547f}.graph-stage{width:100%;height:clamp(470px,54vh,670px);min-height:420px;position:relative;overflow:hidden}.physics-canvas{touch-action:none;cursor:default;display:block}.physics-canvas.has-hover{cursor:grab}.physics-canvas.is-dragging{cursor:grabbing}.drag-hint{color:#6d6672;pointer-events:none;align-items:center;gap:8px;font-size:11px;display:flex;position:absolute;bottom:16px;left:18px}.drag-hint span{color:var(--theme-accent);font-size:15px}.engine-note{grid-template-columns:44px 1fr;align-items:start;gap:15px;padding:17px 7px 0;display:grid}.engine-note>span{color:#755a8f;padding-top:2px;font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace}.engine-note p{color:#7f7784;max-width:76ch;margin:0;font-size:12px;line-height:1.65}.engine-note strong{color:#aaa0b0;font-weight:600}.control-panel{background:color-mix(in srgb, var(--theme-panel) 84%, transparent);border:1px solid #312d36;border-radius:14px;flex-direction:column;min-height:100%;padding:24px 25px;display:flex}.panel-heading>span,.observation>span{color:#7b7085;letter-spacing:.15em;text-transform:uppercase;font:600 10px ui-monospace,SFMono-Regular,Menlo,monospace}.dashboard-section{border-top:1px solid #2e2a32;margin-top:24px;padding-top:24px}.dashboard-section h3{color:color-mix(in srgb, var(--theme-text) 78%, var(--theme-page));margin:0 0 16px;font-size:13px;font-weight:600}.color-list{grid-template-columns:1fr 1fr;gap:10px;display:grid}.color-list label{min-width:0;color:color-mix(in srgb, var(--theme-text) 72%, var(--theme-page));justify-content:space-between;align-items:center;gap:8px;font-size:10px;display:flex}.color-list input[type=color]{cursor:pointer;background:0 0;border:1px solid #433b49;border-radius:6px;flex:none;width:28px;height:24px;padding:2px}.theme-actions{gap:8px;margin-top:16px;display:flex}.theme-actions button{background:color-mix(in srgb, var(--theme-panel) 75%, var(--theme-page));min-height:34px;color:color-mix(in srgb, var(--theme-text) 78%, var(--theme-page));cursor:pointer;border:1px solid #433b49;border-radius:7px;padding:0 13px;font-size:11px}#theme-save-button{border-color:color-mix(in srgb, var(--theme-accent) 58%, #433b49);color:var(--theme-text)}.theme-actions button:hover,.theme-actions button:focus-visible{border-color:var(--theme-accent);outline:none}.save-with-tooltip{position:relative}.cookie-tooltip{z-index:8;background:color-mix(in srgb, var(--theme-panel) 92%, black);width:245px;color:color-mix(in srgb, var(--theme-text) 82%, var(--theme-page));opacity:0;pointer-events:none;border:1px solid #443b4b;border-radius:7px;padding:9px 10px;font-size:10px;line-height:1.45;transition:opacity .14s,transform .14s;position:absolute;bottom:calc(100% + 9px);left:0;transform:translateY(4px);box-shadow:0 10px 30px #00000047}.save-with-tooltip:hover .cookie-tooltip,.save-with-tooltip:focus-within .cookie-tooltip{opacity:1;transform:translateY(0)}.panel-heading h2{letter-spacing:-.025em;margin:7px 0 0;font-size:22px;font-weight:470}.control-list{margin-top:0}.control{border-bottom:1px solid #2e2a32;margin:0 0 23px;padding:0 0 23px;display:block}.control-copy{color:#cfc7d5;justify-content:space-between;align-items:baseline;margin-bottom:12px;font-size:13px;display:flex}.control output{color:var(--theme-accent);font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace}.control small{color:#68616d;margin-top:8px;font-size:10px;display:block}input[type=range]{--range-progress:50%;appearance:none;cursor:pointer;background:0 0;border:0;outline:0;width:100%;height:14px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--theme-accent) var(--range-progress), #3a3540 var(--range-progress));border-radius:999px;height:3px}input[type=range]::-moz-range-track{background:#3a3540;border-radius:999px;height:3px}input[type=range]::-moz-range-progress{background:var(--theme-accent);height:3px}input[type=range]::-webkit-slider-thumb{appearance:none;background:color-mix(in srgb, var(--theme-accent) 72%, white);border:2px solid #18151c;border-radius:50%;width:14px;height:14px;margin-top:-5.5px;box-shadow:0 0 0 1px #8d62ad,0 0 11px #b478e159}input[type=range]::-moz-range-thumb{background:color-mix(in srgb, var(--theme-accent) 72%, white);border:2px solid #18151c;border-radius:50%;width:11px;height:11px}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px #ae79e159}.observation{border-left:2px solid #76538d;margin-top:auto;padding:2px 0 2px 14px}.observation p{color:#857d8b;margin:8px 0 0;font-size:11px;line-height:1.55}body.fullscreen-view{background:var(--theme-stage);height:100dvh;overflow:hidden}body.fullscreen-view .lab-shell{width:100%;height:100dvh;margin:0;padding:0}body.fullscreen-view .lab-header,body.fullscreen-view .engine-switch,body.fullscreen-view .engine-note,body.fullscreen-view .stage-actions{display:none}body.fullscreen-view .workbench,body.fullscreen-view .stage-column,body.fullscreen-view .stage-frame{width:100%;height:100%}body.fullscreen-view .workbench{display:block}body.fullscreen-view .stage-frame{border:0;border-radius:0}body.fullscreen-view .graph-stage{height:100dvh;min-height:0}body.fullscreen-view .stage-toolbar{width:auto;padding:0;inset:auto auto 18px 18px}body.fullscreen-view .status{border:1px solid color-mix(in srgb, var(--theme-text) 12%, transparent);background:color-mix(in srgb, var(--theme-panel) 72%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;padding:9px 12px}body.fullscreen-view .drag-hint{bottom:65px;left:24px}body.fullscreen-view .fullscreen-controls{z-index:12;pointer-events:none;justify-content:space-between;display:flex;position:fixed;top:18px;left:18px;right:18px}body.fullscreen-view .fullscreen-icon-button{pointer-events:auto}body.fullscreen-view .fullscreen-scrim{z-index:9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:default;background:#0403067a;border:0;width:100%;height:100%;padding:0;display:block;position:fixed;inset:0}body.fullscreen-view .fullscreen-scrim[hidden]{display:none}body.fullscreen-view .control-panel{z-index:10;background:color-mix(in srgb, var(--theme-panel) 96%, transparent);border-width:0 0 0 1px;border-radius:0;width:min(370px,100% - 64px);height:100dvh;min-height:0;padding:80px 28px 30px;transition:transform .22s;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(105%);box-shadow:-20px 0 60px #00000059}body.fullscreen-view .control-panel.is-open{transform:translate(0)}body.fullscreen-view.menu-open .menu-button{background:color-mix(in srgb, var(--theme-accent) 22%, var(--theme-panel))}.lesson-window{z-index:30;border:1px solid color-mix(in srgb, var(--theme-accent) 36%, #39333f);background:color-mix(in srgb, var(--theme-panel) 97%, transparent);width:min(560px,100vw - 32px);min-width:min(360px,100vw - 20px);max-width:min(900px,100vw - 20px);height:min(620px,100dvh - 32px);min-height:360px;max-height:calc(100dvh - 20px);box-shadow:0 28px 90px #00000085, 0 0 50px color-mix(in srgb, var(--theme-accent) 7%, transparent);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-radius:18px;flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:hidden}.lesson-window-resize{z-index:5;cursor:nwse-resize;touch-action:none;width:24px;height:24px;position:absolute;bottom:0;right:0}.lesson-window-resize:after{border-right:2px solid color-mix(in srgb, var(--theme-accent) 70%, transparent);border-bottom:2px solid color-mix(in srgb, var(--theme-accent) 70%, transparent);content:"";border-radius:0 0 3px;width:11px;height:11px;position:absolute;bottom:7px;right:7px}.lesson-window[hidden]{display:none}.lesson-window-header{border-bottom:1px solid color-mix(in srgb, var(--theme-text) 10%, transparent);background:linear-gradient(110deg, color-mix(in srgb, var(--theme-accent) 13%, var(--theme-panel)), var(--theme-panel));cursor:move;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:none;justify-content:space-between;align-items:center;gap:18px;min-height:88px;padding:17px 18px 17px 23px;display:flex}.lesson-window.is-dragging .lesson-window-header{cursor:grabbing}.lesson-window-heading{min-width:0}.lesson-window-heading span{color:color-mix(in srgb, var(--theme-text) 50%, var(--theme-page));letter-spacing:.13em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin-bottom:5px;font:600 9px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;display:block;overflow:hidden}.lesson-window-heading h2{color:var(--theme-text);letter-spacing:-.025em;margin:0;font-size:22px;font-weight:480}.lesson-window-nav{flex:none;gap:7px;display:flex}.lesson-window-nav button{background:color-mix(in srgb, var(--theme-panel) 80%, var(--theme-page));width:36px;height:36px;color:color-mix(in srgb, var(--theme-text) 78%, var(--theme-page));cursor:pointer;border:1px solid #453d4b;border-radius:9px;place-items:center;padding:0;font-size:11px;display:grid}#lesson-close{font-size:21px;font-weight:300}.lesson-window-nav button:hover,.lesson-window-nav button:focus-visible{border-color:var(--theme-accent);color:var(--theme-text);outline:none}.lesson-window-nav button:disabled{color:#514a56;cursor:default;border-color:#332e37}.lesson-window-content{min-height:0;color:color-mix(in srgb, var(--theme-text) 75%, var(--theme-page));scrollbar-color:color-mix(in srgb, var(--theme-accent) 55%, #3a3440) transparent;scrollbar-width:thin;padding:30px 34px 44px;overflow-y:auto}.lesson-window-content:focus{outline:none}.lesson-window-content .chapter-number{color:var(--theme-accent);letter-spacing:.14em;text-transform:uppercase;margin:0 0 22px;font:600 10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace}.lesson-window-content h3{color:var(--theme-text);letter-spacing:-.04em;margin:0 0 18px;font-size:clamp(26px,4vw,38px);font-weight:420;line-height:1.1}.lesson-window-content h4{color:color-mix(in srgb, var(--theme-text) 90%, var(--theme-page));margin:32px 0 10px;font-size:15px;font-weight:600}.lesson-window-content p{max-width:70ch;margin:0 0 17px;font-size:14px;line-height:1.75}.lesson-window-content .chapter-note{border-left:2px solid var(--theme-accent);background:color-mix(in srgb, var(--theme-accent) 8%, transparent);color:color-mix(in srgb, var(--theme-text) 84%, var(--theme-page));border-radius:0 9px 9px 0;margin:28px 0;padding:16px 18px}@media (width<=980px){.lab-shell{width:min(100% - 28px,820px);padding-top:28px}.lab-header{grid-template-columns:1fr;gap:24px}.intro{max-width:60ch}.workbench{grid-template-columns:1fr}.control-panel{min-height:auto}.control-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;display:grid}.observation{margin-top:4px}}@media (width<=620px){.lab-shell{width:min(100% - 20px,520px);padding:22px 0 34px}h1{font-size:clamp(42px,15vw,66px)}.engine-tab{min-height:54px;font-size:11px}.engine-tab span{display:none}.stage-toolbar{align-items:flex-start}.stage-actions{flex-direction:column}.graph-stage{height:480px}.control-panel{padding:21px 19px}.control-list{grid-template-columns:1fr}.fullscreen-launch{width:100%;min-height:62px}body.fullscreen-view .control-list{grid-template-columns:1fr}body.fullscreen-view .control-panel{padding-left:20px;padding-right:20px}.lesson-window{border-radius:14px;width:calc(100vw - 20px);min-width:300px;height:min(680px,100dvh - 20px);min-height:320px}.lesson-window-header{min-height:78px;padding:13px 12px 13px 17px}.lesson-window-heading h2{font-size:18px}.lesson-window-nav{gap:4px}.lesson-window-nav button{width:32px;height:32px}.lesson-window-content{padding:25px 22px 36px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
