:root{--void:#111214;--panel:#18191c;--raised:#222328;--line:#303138;--text:#ebe7df;--muted:#9d988f;--faint:#625e58;--ember:#cf9248;--ember-soft:#cf924822;--oxide:#759299;--ok:#86ae72;--err:#c2603f;font-family:Archivo,Inter,system-ui,sans-serif;color:var(--text);background:var(--void)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% -20%,#28231d 0,#111214 46%);font-size:13px}button,input{font:inherit}button{border:1px solid var(--line);background:var(--raised);color:var(--text);border-radius:4px;padding:8px 11px;cursor:pointer}button:hover{border-color:var(--ember);color:#fff}button.primary{background:var(--ember);border-color:var(--ember);color:#1b1510;font-weight:700}.topbar{height:64px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 20px;gap:24px;background:#17181aee}.brand{display:flex;align-items:center;gap:9px;min-width:220px}.brand strong{letter-spacing:3px;font-size:16px}.brand small{display:block;color:var(--faint);letter-spacing:2px;font-size:8px}.orbit{color:var(--ember);font-size:30px;line-height:1;transform:rotate(-25deg)}.target{display:flex;align-items:center;gap:8px;color:var(--muted);font-family:ui-monospace,monospace;font-size:11px;flex:1}.target b{color:var(--ember);font-weight:500;border-left:1px solid var(--line);padding-left:10px}.dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 10px var(--ok)}.actions{display:flex;gap:8px}.shell{height:calc(100vh - 64px);display:grid;grid-template-columns:240px minmax(420px,1fr) 360px}.rail,.inspector{background:var(--panel);border-right:1px solid var(--line)}.inspector{border-right:0;border-left:1px solid var(--line);overflow:auto}.rail{padding:18px 12px;display:flex;flex-direction:column}.rail-title,.eyebrow{font-size:10px;letter-spacing:1.8px;color:var(--faint);font-family:ui-monospace,monospace}.project-list{margin-top:14px;display:flex;flex-direction:column;gap:4px}.project-item{padding:10px;border:1px solid transparent;border-radius:4px;cursor:pointer}.project-item:hover,.project-item.active{background:var(--raised);border-color:var(--line)}.project-item.active{border-left:2px solid var(--ember)}.project-item strong{font-size:12px;display:block}.project-item small{color:var(--faint);font-family:ui-monospace,monospace;font-size:10px}.rail-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px}.rail-foot a{color:var(--muted);font-size:11px;text-decoration:none;padding:8px}.stage{padding:22px 24px;min-width:0;display:flex;flex-direction:column}.stage-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:16px}.stage-head h1{font-size:24px;font-weight:500;margin:6px 0 4px}.dirty{font:11px ui-monospace,monospace;color:var(--ok)}.dirty.unsaved{color:var(--ember)}.stage-tools{display:flex;gap:5px}.tool{padding:6px 9px;font-size:11px;background:transparent}.tool.active{color:var(--ember);border-color:var(--ember)}.preview{position:relative;flex:1;min-height:320px;border:1px solid var(--line);border-radius:5px;background:radial-gradient(circle at 50% 48%,#2d2620 0,#171719 24%,#121315 65%);overflow:hidden}.preview:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff06 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(transparent,#000 25%,#000 75%,transparent)}.axis{position:absolute;background:#fff3;transform-origin:left center}.axis.x{height:1px;width:45%;left:50%;top:52%;background:#cf924866}.axis.y{height:1px;width:32%;left:50%;top:52%;transform:rotate(-90deg);background:#75929955}.axis.z{height:1px;width:36%;left:50%;top:52%;transform:rotate(28deg);background:#7fae6b55}.glow{position:absolute;border-radius:50%;filter:blur(15px);animation:breathe 2.8s ease-in-out infinite}.g1{width:120px;height:120px;background:#cf5c2840;left:calc(50% - 60px);top:calc(52% - 60px)}.g2{width:70px;height:70px;background:#ffd56a45;left:calc(50% - 35px);top:calc(52% - 35px);animation-delay:-1s}.particle{position:absolute;width:7px;height:7px;border-radius:50%;background:#ffd98a;box-shadow:0 0 14px 5px #ff923b;left:50%;top:52%;animation:float 2.2s ease-in-out infinite}.p1{animation-delay:-.3s}.p2{animation-delay:-.9s;transform:translate(-33px,-44px)}.p3{animation-delay:-1.4s;transform:translate(45px,-26px)}.p4{animation-delay:-1.8s;transform:translate(-60px,22px)}.preview-label{position:absolute;left:14px;bottom:12px;color:var(--faint);font:10px ui-monospace,monospace}.preview-label span{color:var(--ok);margin-left:8px}.timeline{border:1px solid var(--line);border-top:0;border-radius:0 0 5px 5px;padding:11px 14px 10px}.timeline-head{display:flex;gap:16px;align-items:center;color:var(--muted);font:11px ui-monospace,monospace}.timeline-head button{padding:4px 8px;font-size:11px}.timeline input{width:100%;accent-color:var(--ember);margin-top:10px}.ticks{display:flex;justify-content:space-between;color:var(--faint);font:9px ui-monospace,monospace}.inspector-head{padding:18px 18px 0;border-bottom:1px solid var(--line)}.tabs{display:flex;gap:4px;margin-top:16px}.tab{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;padding:9px 6px;font-size:11px;color:var(--muted)}.tab.active{color:var(--ember);border-color:var(--ember)}#inspectorContent{padding:16px 18px}.section-label{font:10px ui-monospace,monospace;letter-spacing:1px;color:var(--faint);margin:17px 0 8px}.node-tree{display:flex;flex-direction:column;gap:5px}.node-row{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid transparent;border-radius:4px;cursor:pointer}.node-row:hover{background:var(--raised)}.node-row.selected{background:var(--ember-soft);border-color:#cf924855}.node-row .node-dot{width:8px;height:8px;border-radius:50%;background:var(--oxide)}.node-row[data-type=effect] .node-dot{background:var(--ember)}.node-row[data-type=emitter] .node-dot{background:#9c8b68}.node-row[data-type=particle] .node-dot{background:var(--oxide)}.node-row small{color:var(--faint);margin-left:auto;font:10px ui-monospace,monospace}.field{border-top:1px solid var(--line);padding:11px 0}.field-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px}.field label{color:var(--muted);font-size:12px}.field code{color:var(--faint);font:10px ui-monospace,monospace}.field input,.field select{width:100%;background:var(--raised);color:var(--text);border:1px solid var(--line);padding:8px;border-radius:3px}.field input[type=range]{padding:0;accent-color:var(--ember)}.field .inline{display:flex;gap:7px}.field .inline input{flex:1}.value{color:var(--ember);font:11px ui-monospace,monospace}.empty{color:var(--faint);padding:22px 0;line-height:1.6}.problem{border-left:3px solid var(--err);background:#c2603f12;padding:10px;margin:7px 0}.problem.warn{border-color:var(--ember)}.problem b{display:block;font-size:11px}.problem small{color:var(--muted)}.curve{border:1px solid var(--line);padding:12px;border-radius:4px;margin-bottom:10px}.curve svg{width:100%;height:90px;background:#121315;margin-top:10px}.toast{position:fixed;right:20px;bottom:20px;background:var(--raised);border:1px solid var(--ember);padding:11px 14px;border-radius:4px;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:none}dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:6px;max-width:440px;width:calc(100% - 32px)}dialog::backdrop{background:#000b}dialog h2{font-size:17px;font-weight:500}.cap-row{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:10px 0}.cap-row span{color:var(--muted)}.cap-row b{color:var(--ok);font:11px ui-monospace,monospace}@keyframes breathe{50%{transform:scale(1.16);opacity:.7}}@keyframes float{0%,100%{margin-top:0}50%{margin-top:-24px}}@media(max-width:950px){.shell{grid-template-columns:190px 1fr}.inspector{position:fixed;right:0;top:64px;bottom:0;width:min(360px,90vw);z-index:5;box-shadow:-14px 0 30px #0008}.brand{min-width:auto}.target{display:none}}@media(max-width:650px){.topbar{padding:0 12px}.actions button:not(.primary){display:none}.shell{display:block;height:auto}.rail{min-height:170px;border:0;border-bottom:1px solid var(--line)}.project-list{flex-direction:row;overflow:auto}.project-item{min-width:180px}.stage{min-height:calc(100vh - 234px);padding:16px 12px}}
