:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0c0a;--panel:#11120f;--line:#2b2d25;--ink:#dfddd1;--muted:#a5a397;--dim:#8a8b7e;--accent:#d7d4c4;--sage:#b7c6a0;--number:#e3c59b;--error-ink:#ecc6b4;--error-line:#80594b;--error-bg:#211711;--warn-ink:#e6d6a0;--warn-line:#6d6340;--warn-bg:#1c1a10;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0}main{max-width:1440px;margin:auto;padding:40px 40px 24px}button,input,select,textarea{font:inherit}button{cursor:pointer;color:var(--muted);border:1px solid var(--line);background:0 0;border-radius:7px;padding:8px 12px}button:hover:not(:disabled){color:var(--ink);background:#24261f}button:disabled{opacity:.4;cursor:default}button[aria-pressed=true],button.primary{background:var(--accent);border-color:var(--accent);color:#14150f}button.primary:hover:not(:disabled){color:#14150f;background:#ece9db}:focus-visible{outline:2px solid var(--sage);outline-offset:3px}code{color:var(--sage)}.muted{letter-spacing:1px;color:var(--dim);font-size:10px}.help{color:var(--dim);margin:10px 0;font-size:11px;line-height:1.8}.masthead{flex-wrap:wrap;align-items:center;gap:48px;margin-bottom:32px;display:flex}.identity{align-items:center;gap:18px;display:flex}.monogram{border:1.5px solid var(--accent);border-radius:6px;place-items:center;width:52px;height:55px;font:300 36px Arial,sans-serif;display:grid}h1{letter-spacing:-2px;margin:0 0 8px;font:44px/.98 Georgia,serif}.eyebrow{letter-spacing:2.4px;color:var(--muted);font-size:10px}.masthead p{color:var(--muted);margin:0;font-size:13px;line-height:1.8}.edition{color:var(--dim);letter-spacing:1px;align-self:flex-start;margin-left:auto;padding-top:8px;font-size:10px}.layout{border-top:1px solid var(--line);grid-template-columns:minmax(380px,470px) minmax(0,1fr);gap:0;display:grid}.sidebar{border-right:1px solid var(--line);min-width:0;padding-right:24px}.stage{min-width:0;padding-left:26px}.panel{border-bottom:1px solid var(--line);padding-bottom:18px}.panel-heading{justify-content:space-between;align-items:center;gap:12px;padding:18px 0 14px;display:flex}h2{font:inherit;margin:0;font-size:12px;font-weight:400}h2>span{color:var(--dim);margin-right:12px;font-size:10px}h3{font:inherit;flex-wrap:wrap;align-items:baseline;gap:10px;margin:0 0 12px;font-size:12px;font-weight:400;display:flex}.rows{background:var(--panel);border-block:1px solid var(--line);margin:0;padding:0;list-style:none}.row{border-bottom:1px solid #1b1c17;gap:6px;padding:5px 4px 5px 0;display:flex}.row:last-child{border-bottom:0}.row-number{text-align:right;width:26px;color:var(--dim);flex-shrink:0;padding-top:9px;font-size:12px}.row-body{flex:1;min-width:0}.row-line{align-items:center;gap:8px;display:flex}.row-input{min-width:0;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:5px;flex:1;padding:6px 8px;font-size:15px}.row-input:hover{border-color:var(--line)}.row-input:focus-visible{border-color:var(--sage);background:#151612;outline:none}.row.has-error .row-input{border-color:var(--error-line)}.row-kind{align-items:center;gap:10px;min-height:18px;padding:0 9px 3px;display:flex}.row-value{color:var(--number);white-space:nowrap;font-size:11px}.badge{letter-spacing:.8px;text-transform:uppercase;color:var(--dim);border:1px solid var(--line);border-radius:4px;padding:2px 5px;font-size:9px}.kind-coordinate .badge{color:var(--sage);border-color:#3c4532}.kind-invalid .badge{color:var(--error-ink);border-color:var(--error-line)}button.icon{color:var(--dim);border:0;padding:4px 8px;font-size:16px}.diagnostics{gap:4px;margin:4px 0 6px;padding:0;list-style:none;display:grid}.diagnostic{border:1px solid;border-radius:5px;flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:6px 9px;font-size:11px;line-height:1.6;display:flex}.diagnostic.error{color:var(--error-ink);background:var(--error-bg);border-color:var(--error-line)}.diagnostic.warning{color:var(--warn-ink);background:var(--warn-bg);border-color:var(--warn-line)}.diagnostic.info{color:var(--muted);border-color:var(--line)}.diagnostic .severity{letter-spacing:1px;text-transform:uppercase;opacity:.8;font-size:9px}.diagnostic .message{flex:200px}.diagnostic .hint{color:var(--muted)}.diagnostic .locate{color:inherit;border-color:currentColor;padding:1px 6px;font-size:10px}.excerpt{color:var(--muted);white-space:pre;flex-basis:100%;font-size:12px;overflow-x:auto}.excerpt mark{color:var(--error-ink);text-underline-offset:3px;background:0 0;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.diagnostic.warning .excerpt mark{color:var(--warn-ink)}.panel-actions{flex-direction:column;align-items:flex-start;gap:4px;padding-top:12px;display:flex}.segmented{gap:4px;display:flex}.segmented button{padding:4px 9px;font-size:10px}.sliders{gap:10px;display:grid}.slider{grid-template-columns:112px minmax(0,1fr) 128px;align-items:center;gap:12px;display:grid}.slider label{flex-direction:column;gap:2px;display:flex}.param-name{color:var(--sage);font-size:14px}.param-label{color:var(--dim);font-size:10px}.slider input[type=range]{width:100%;accent-color:var(--accent)}.param-value{align-items:center;gap:6px;display:flex}.param-value input,.interval input{background:var(--panel);border:1px solid var(--line);width:84px;color:var(--number);text-align:right;border-radius:5px;padding:5px 7px}.unit{color:var(--dim);font-size:11px}.computed{gap:6px;margin:14px 0 0;display:grid}.computed div{gap:12px;display:flex}.computed dt{color:var(--sage);min-width:60px}.computed dd{color:var(--number);margin:0}.gravity-preset{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px 12px;min-width:0;display:flex}.gravity-preset label{color:var(--muted);font-size:11px}.gravity-preset select{background:var(--panel);min-width:0;max-width:100%;color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:6px}.gravity-preset .help{flex-basis:100%;margin:0}.graph-readout{border:1px solid var(--line);background:var(--panel);border-radius:8px;margin-bottom:12px;padding:10px 12px}.graph-readout h3{color:var(--muted);font-variant-numeric:tabular-nums;margin:0 0 8px;font-size:11px;font-weight:400}.graph-readout .readouts{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px 14px;display:grid}.graph-readout .readouts div{border:0;padding:0;display:block}.graph-readout .readouts dd{text-align:left;font-variant-numeric:tabular-nums}.graph-readout .note{margin:8px 0 0}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.files{border-bottom:0}.file-actions{flex-wrap:wrap;gap:8px;padding-top:18px;display:flex}.file-status{color:var(--muted);margin:10px 0 0;font-size:11px}.file-status.error{color:var(--error-ink)}.view{position:relative}.trajectory-canvas{border:1px solid var(--line);cursor:grab;touch-action:none;background:#0e0f0c;border-radius:8px;width:100%;height:clamp(320px,52vh,560px);display:block}.trajectory-canvas:active{cursor:grabbing}.view-tools{gap:4px;display:flex;position:absolute;top:10px;right:10px}.view-tools button{background:#14150fcc;padding:4px 10px}.view-tools button[aria-pressed=true]{background:var(--accent)}.stale-banner{color:var(--warn-ink);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:6px;max-width:calc(100% - 180px);margin:0;padding:6px 10px;font-size:11px;position:absolute;top:10px;left:10px}.view-hint{color:var(--dim);margin:6px 0 0;font-size:10px}.banner{border-radius:6px;margin:0 0 10px;padding:8px 12px;font-size:12px}.banner.error{color:var(--error-ink);background:var(--error-bg);border:1px solid var(--error-line)}.timeline{flex-wrap:wrap;align-items:center;gap:10px;padding-top:14px;display:flex}.timeline .primary{min-width:92px}.scrub{accent-color:var(--number);flex:200px}.time{min-width:150px;color:var(--number)}.speed{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.speed select{background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:5px}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;display:grid}.card{border-bottom:1px solid var(--line);min-width:0;padding:18px 20px 18px 0}.card+.card{border-left:1px solid var(--line);padding-left:20px}.card p{color:var(--muted);margin:0 0 10px;font-size:11px;line-height:1.7}.readouts{gap:7px;margin:0;display:grid}.readouts div{border-bottom:1px dotted #23251e;justify-content:space-between;gap:10px;padding-bottom:5px;font-size:12px;display:flex}.readouts dt{color:var(--muted)}.readouts dd{color:var(--number);text-align:right;white-space:nowrap;margin:0}.symbol{color:var(--sage);min-width:26px;display:inline-block}.note{color:var(--dim)!important;font-size:10px!important}.note.warning{color:var(--warn-ink)!important}.note.error{color:var(--error-ink)!important}.model-badge{border:1px solid var(--line);border-radius:5px;padding:3px 8px;font-size:12px}.model-badge.ideal{color:#14150f;background:var(--sage);border-color:var(--sage)}.model-badge.custom{color:var(--number);border-color:#6c5a3f}.model-badge.none{color:var(--muted)}.interval{color:var(--muted);flex-wrap:wrap;gap:12px;margin-bottom:10px;font-size:11px;display:flex}.interval label{align-items:center;gap:6px;display:flex}.interval input{width:64px}details{color:var(--muted);font-size:11px}details summary{cursor:pointer;color:var(--muted)}details ul{margin:6px 0 0;padding-left:18px;line-height:1.7}footer{border-top:1px solid var(--line);letter-spacing:1px;color:var(--dim);flex-wrap:wrap;justify-content:space-between;gap:20px;margin-top:26px;padding-top:18px;font-size:9px;display:flex}.footer-dot{color:var(--sage);margin-left:12px}@media (width<=1180px){.cards{grid-template-columns:1fr 1fr}.cards .card:nth-child(3){border-left:0;grid-column:1/-1;padding-left:0}}@media (width<=980px){main{padding:24px 16px}.layout{grid-template-columns:1fr}.sidebar{border-right:0;padding-right:0}.stage{padding-left:0}.edition{display:none}}@media (width<=620px){.cards{grid-template-columns:1fr}.card+.card{border-left:0;padding-left:0}.slider{grid-template-columns:1fr 128px}.slider input[type=range]{grid-area:2/1/auto/-1}h1{font-size:36px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}:root{--apex:#e3c59b;--target:#9cc4cf;--launch:#c3b2e3;--invalid:#e08b75}.canvas-wrap{border-radius:8px;position:relative;overflow:hidden}.handle-layer{pointer-events:none;position:absolute;inset:1px;overflow:visible}.handle{pointer-events:auto;cursor:grab;touch-action:none;background:0 0;border:0;border-radius:50%;place-items:center;width:34px;height:34px;padding:0;display:grid;position:absolute;transform:translate(-50%,-50%)}.handle:hover:not(:disabled){background:#dfddd114}.handle:active,.handle.is-active{cursor:grabbing}.handle:focus-visible{outline:2px solid var(--sage);outline-offset:0}.handle-glyph{pointer-events:none;display:block}.handle-apex .handle-glyph{background:var(--apex);width:14px;height:14px;box-shadow:0 0 0 2px var(--apex);border:2px solid #14150f;transform:rotate(45deg)}.handle-target .handle-glyph{border:2px solid var(--target);background:radial-gradient(circle, var(--target) 0 3px, transparent 3.5px), #14150fcc;border-radius:50%;width:18px;height:18px;box-shadow:0 0 0 2px #14150f}.handle-launch .handle-glyph{background:var(--launch);width:13px;height:13px;box-shadow:0 0 0 2px var(--launch);border:2px solid #14150f;border-radius:2px}.handle.is-invalid .handle-glyph{box-shadow:0 0 0 2px var(--invalid);border-color:var(--invalid)}.handle.is-invalid.handle-launch .handle-glyph,.handle.is-invalid.handle-apex .handle-glyph{background:var(--invalid)}.handle-label{pointer-events:none;white-space:nowrap;letter-spacing:.5px;color:#14150f;background:var(--apex);border-radius:4px;padding:2px 6px;font-size:10px;position:absolute;top:-2px;left:30px}.handle-target .handle-label{background:var(--target)}.handle-launch .handle-label{background:var(--launch)}.handle.label-below .handle-label{top:30px;left:50%;right:auto;transform:translate(-50%)}.handle.label-left .handle-label{left:auto;right:30px}.handle.is-invalid .handle-label{background:var(--invalid)}.manipulation{padding-bottom:20px}.history{gap:6px;display:flex}.history button{padding:5px 10px;font-size:11px}.manip-status{color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:6px;min-height:44px;margin:0 0 16px;padding:10px 12px;font-size:12px;line-height:1.7}.manip-status.tone-preview{color:var(--ink);border-color:#4b5a3c}.manip-status.tone-applied{color:var(--sage);border-color:#4b5a3c}.manip-status.tone-rejected{color:var(--error-ink);background:var(--error-bg);border-color:var(--error-line)}.manip-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px;display:grid}.handle-form{border:1px solid var(--line);border-radius:8px;min-width:0;margin:0;padding:14px 16px}.handle-form.is-active{border-color:var(--sage)}.handle-form legend{color:var(--ink);align-items:center;gap:8px;padding:0 6px;font-size:12px;display:flex}.legend-glyph{width:10px;height:10px;display:inline-block}.legend-glyph.glyph-apex{background:var(--apex);transform:rotate(45deg)}.legend-glyph.glyph-target{border:2px solid var(--target);border-radius:50%}.legend-glyph.glyph-launch{background:var(--launch);border-radius:2px}.form-description,.form-hint,.unavailable,.branch-note{color:var(--muted);margin:4px 0 10px;font-size:11px;line-height:1.7}.unavailable{color:var(--warn-ink)}.roles{flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.chip{letter-spacing:.4px;border:1px solid var(--line);color:var(--dim);border-radius:4px;padding:2px 7px;font-size:10px}.chip.solving{color:#14150f;background:var(--sage);border-color:var(--sage)}.xy{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:11px;display:flex}.xy label{align-items:center;gap:6px;display:flex}.xy input{background:var(--panel);border:1px solid var(--line);width:96px;color:var(--number);text-align:right;border-radius:5px;padding:5px 7px}.form-actions{gap:8px;margin-top:12px;display:flex}.form-actions button{padding:6px 12px;font-size:11px}.branches{gap:6px;margin-top:12px;display:grid}.branches label{border:1px solid var(--line);cursor:pointer;border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:8px;padding:6px 8px;font-size:12px;display:flex}.branches label.is-selected{border-color:var(--target)}.branches input{accent-color:var(--target)}.branch-detail{color:var(--dim);font-size:11px}fieldset:disabled .roles,fieldset:disabled .form-description{opacity:.6}.slider.role-solving .param-name,.slider.role-solving .param-value input,.slider.role-moving .param-name,.slider.role-moving .param-value input{color:var(--sage)}.role-badge{letter-spacing:.6px;text-transform:uppercase;border:1px solid var(--line);color:var(--dim);vertical-align:middle;border-radius:3px;margin-left:8px;padding:1px 5px;font-size:9px}.role-badge.solving,.role-badge.moving{color:#14150f;background:var(--sage);border-color:var(--sage)}.row.is-preview{background:#172015}.row.is-preview .row-input{color:var(--sage)}.badge-preview{color:#14150f;background:var(--sage);border-color:var(--sage)}.row-input:read-only{cursor:default}@media (width<=760px){.manip-grid{grid-template-columns:1fr}}.air .segmented button:disabled{opacity:.5}.air-fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px 16px;margin-top:4px;display:grid}.air-fields label{color:var(--muted);gap:4px;min-width:0;font-size:11px;display:grid}.air-fields .symbol{min-width:0;margin-right:2px}.air-input{align-items:center;gap:6px;display:flex}.air-input input{background:var(--panel);border:1px solid var(--line);width:100%;min-width:0;color:var(--number);text-align:right;font:inherit;border-radius:5px;padding:5px 7px}.air-input input:disabled{opacity:.55}.air-fields label.has-error input{border-color:var(--invalid)}.air-input .unit{min-width:38px;color:var(--dim);font-size:11px}.field-errors{min-height:0;color:var(--warn-ink);margin:6px 0 0;font-size:11px}.field-errors:empty{display:none}.air-derived{margin-top:8px}.motion-equations{background:#121510;border:1px solid #4b5a3c;border-radius:8px;margin:0 0 14px;padding:10px 12px}.motion-equations figcaption{color:var(--sage);margin-bottom:8px;font-size:11px}.motion-equations pre{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);margin:0;font-size:12px;line-height:1.7}.motion-equations .help{margin:8px 0 0}.model-badge.drag{color:#14150f;background:#9aa9bf}.method-settings{gap:4px;margin:8px 0 0;font-size:11px;display:grid}.method-settings div{gap:8px;display:flex}.method-settings dt{color:var(--muted);min-width:92px}.method-settings dd{color:var(--ink);margin:0}.vector-controls{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 4px;font-size:11px;display:flex}.vector-controls button{padding:5px 10px;font-size:11px}.vector-controls button[aria-pressed=true].vector-velocity{color:#14150f;background:#7fd1c1;border-color:#7fd1c1}.vector-controls button[aria-pressed=true].vector-acceleration{color:#14150f;background:#f0a070;border-color:#f0a070}.vector-controls button:disabled{opacity:.45}.launch-mode{margin:0 0 12px}.launch-mode button{padding:4px 10px;font-size:11px}.xy input:read-only{opacity:.6;cursor:not-allowed}.vector-controls button[aria-pressed=true].vector-forces{color:#14150f;background:#d9c36a;border-color:#d9c36a}
