:root{color-scheme:dark;font-family:Inter,Avenir Next,Segoe UI,system-ui,sans-serif;font-synthesis:none;--ink-950: #080b14;--ink-900: #0e1421;--ink-850: #151d2c;--grid: #293349;--paper: #f4f7e9;--mist: #b8c3bd;--signal: #81f7c1;--signal-ink: #08251c;--pulse: #ff8f70;--ion: #8cb4ff;--warning: #ffd166;--danger: #ff7e9d;background:var(--ink-950);color:var(--paper);font-size:16px}*{box-sizing:border-box}html{min-width:320px;background:var(--ink-950)}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--ink-950);background-image:linear-gradient(rgba(41,51,73,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(41,51,73,.14) 1px,transparent 1px);background-size:32px 32px}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E");z-index:50}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:var(--signal);text-underline-offset:4px}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--pulse);outline-offset:3px}button:disabled{cursor:wait;opacity:.62}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:8px;transform:translateY(-140%);z-index:100;padding:12px 16px;background:var(--signal);color:var(--signal-ink);font-weight:700}.skip-link:focus{transform:none}.topbar{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:8px 20px max(8px,env(safe-area-inset-right)) 8px max(20px,env(safe-area-inset-left));border-bottom:1px solid var(--grid);background:#080b14f5;position:relative;z-index:10}.brand{color:var(--paper);text-decoration:none;display:flex;align-items:center;gap:10px;font:700 13px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em;white-space:nowrap}.brand-mark{color:var(--signal);border:1px solid var(--signal);padding:6px;box-shadow:3px 3px 0 var(--signal)}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.save-state{color:var(--mist);font:11px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em;margin-right:8px}.status-dot{width:7px;height:7px;display:inline-block;background:var(--mist)}.licensed .status-dot{background:var(--signal);box-shadow:0 0 8px var(--signal)}.offline-banner{padding:9px 20px;background:var(--warning);color:#211900;text-align:center;font:700 12px/1.4 ui-monospace,monospace;letter-spacing:.04em}.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--grid);padding:0 18px;text-decoration:none;font-weight:700;cursor:pointer;clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px));transition:transform .14s ease,background .14s ease,color .14s ease}.button:hover{border-color:var(--mist)}.button:active{transform:translateY(2px)}.button.compact{min-height:44px;padding:0 14px;font-size:14px}.button.primary{background:var(--signal);border-color:var(--signal);color:var(--signal-ink);box-shadow:3px 3px #356b56}.button.ghost{background:var(--ink-850);color:var(--paper)}.button.danger{color:var(--danger);background:transparent;border-color:var(--danger)}.icon-button,.close-button{width:44px;height:44px;border:1px solid var(--grid);background:var(--ink-850);cursor:pointer;font:24px/1 ui-monospace,monospace}.icon-button:hover,.close-button:hover{border-color:var(--signal);color:var(--signal)}.text-button{border:0;background:transparent;color:var(--signal);text-decoration:underline;text-underline-offset:4px;cursor:pointer;padding:10px 0;min-height:44px}.workspace{display:grid;grid-template-columns:minmax(250px,272px) minmax(440px,1fr) minmax(270px,304px);min-height:calc(100vh - 64px);max-width:1800px;margin:0 auto;background:var(--ink-950)}.inspector,.timeline-panel{background:#0e1421f0;padding:22px 18px 32px}.inspector{border-right:1px solid var(--grid)}.timeline-panel{border-left:1px solid var(--grid)}.stage-panel{min-width:0;display:flex;flex-direction:column;padding:30px clamp(20px,4vw,56px);overflow:hidden}.panel-heading{margin-bottom:24px}.panel-heading h2,.modal h2{margin:4px 0 0;font:650 20px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace}.timeline-heading{display:flex;justify-content:space-between;align-items:end;gap:16px}.eyebrow{color:var(--signal);font:700 11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.14em}.stage-meta{display:flex;justify-content:space-between;align-items:start;gap:20px;margin-bottom:6px}.stage-meta h1{margin:3px 0 0;max-width:700px;font:650 clamp(24px,3vw,38px)/1.12 Inter,"Avenir Next",sans-serif;letter-spacing:-.035em}.frame-readout{color:var(--pulse);font:12px/1.4 ui-monospace,monospace;letter-spacing:.08em;white-space:nowrap;border-top:2px solid var(--pulse);padding-top:7px;font-variant-numeric:tabular-nums}.formula-display{color:var(--ion);min-height:36px;margin:8px 0 14px;font:20px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}.field{display:grid;gap:7px;color:var(--mist);font-size:13px}.field>span:first-child,.parameter-set legend{font-weight:650;letter-spacing:.01em}.field .hint{font-weight:400;float:right;color:#8f9b99}.field input,.field select{width:100%;min-height:44px;border:1px solid var(--grid);background:var(--ink-950);color:var(--paper);padding:9px 10px;border-radius:0}.field input,.field select{font-size:16px}.field input:hover,.field select:hover{border-color:#4e5c78}.field input[aria-invalid=true]{border-color:var(--danger)}.control-stack{display:grid;gap:16px}.microcopy{color:#9ca8a3;font-size:12px;line-height:1.5;margin:-8px 0 0}.field-error,.export-warning{color:var(--danger);font-size:13px;line-height:1.4;padding:8px 10px;margin:0;border-left:3px solid var(--danger);background:#ff7e9d14}.parameter-set{border:0;padding:0;margin:26px 0}.parameter-set legend{color:var(--mist);font-size:13px;padding:0 0 12px}.parameter-row{display:grid;grid-template-columns:78px 1fr 48px;align-items:center;gap:9px;min-height:54px;border-top:1px solid var(--grid)}.parameter-row:last-child{border-bottom:1px solid var(--grid)}.parameter-row label{display:flex;gap:7px;align-items:baseline;min-width:0}.parameter-row label strong{font:700 17px ui-monospace,monospace;color:var(--ion)}.parameter-row label span{font-size:11px;color:var(--mist);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.parameter-row output{text-align:right;font:12px ui-monospace,monospace;color:var(--paper);font-variant-numeric:tabular-nums}input[type=range]{accent-color:var(--signal);min-height:44px;cursor:pointer}.plot-window{border-top:1px solid var(--grid);border-bottom:1px solid var(--grid)}.plot-window summary{min-height:48px;display:flex;align-items:center;cursor:pointer;font-size:13px;color:var(--mist)}.plot-window summary::marker{color:var(--signal)}.range-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.plot-window .range-grid{padding:0 0 16px}.plot-figure{flex:1;min-height:340px;margin:0;position:relative;border:1px solid var(--grid);background:var(--ink-950);box-shadow:6px 6px #29334999;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}.plot-figure:before{content:"LIVE";position:absolute;z-index:1;top:12px;right:18px;color:var(--signal);font:10px ui-monospace,monospace;letter-spacing:.12em}.plot-figure canvas{display:block;width:100%;height:100%;min-height:340px}.empty-plot{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:8px;background:#080b14e6;color:var(--mist);text-align:center;padding:20px}.empty-plot>span{font:48px ui-monospace,monospace;color:var(--pulse)}.empty-plot strong{color:var(--paper)}.empty-plot small{color:var(--mist)}.transport{display:grid;grid-template-columns:auto minmax(100px,1fr) auto;gap:16px;align-items:center;margin-top:20px}.play-button{min-width:104px;min-height:48px;border:1px solid var(--signal);background:var(--signal);color:var(--signal-ink);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:9px;font-weight:750;box-shadow:3px 3px #356b56}.play-button:active{transform:translateY(2px);box-shadow:1px 1px #356b56}.scrubber-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.scrubber{width:100%}.time-output{min-width:104px;text-align:right;color:var(--mist);font:12px ui-monospace,monospace;font-variant-numeric:tabular-nums}.shortcut-line{margin:12px 0 0;text-align:center;color:#8f9b99;font-size:11px}kbd{border:1px solid #4e5c78;background:var(--ink-850);padding:2px 5px;color:var(--paper);font:10px ui-monospace,monospace;box-shadow:1px 1px #4e5c78}.deck-settings{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-bottom:24px;border-bottom:1px solid var(--grid)}.with-unit{display:flex;align-items:stretch;position:relative}.with-unit input{padding-right:34px}.with-unit small{position:absolute;right:9px;top:14px;font:10px ui-monospace,monospace;color:var(--mist);pointer-events:none}.timeline-ruler{display:flex;justify-content:space-between;margin:20px 0 7px;color:#9ca8a3;font:10px ui-monospace,monospace;font-variant-numeric:tabular-nums}.interval-track{border:1px solid var(--grid);padding:8px 6px;margin-bottom:16px;background-image:linear-gradient(90deg,transparent 49.5%,var(--grid) 50%,transparent 50.5%)}.track-lane{height:54px;position:relative;background:var(--ink-950);overflow:hidden}.interval-block{position:absolute;left:var(--left);width:max(20px,var(--width));top:7px;height:40px;border:1px solid currentColor;background:var(--ink-850);color:var(--signal);cursor:pointer;overflow:hidden;padding:0 7px;text-align:left;font:10px/1 ui-monospace,monospace;box-shadow:inset 0 -4px 0 currentColor}.interval-block.param-b,.interval-glyph.param-b{color:var(--ion)}.interval-block.param-c,.interval-glyph.param-c{color:var(--pulse)}.interval-block span{color:var(--paper);white-space:nowrap}.track-playhead{position:absolute;top:0;bottom:0;left:var(--time);width:2px;background:var(--pulse);pointer-events:none;z-index:3}.track-playhead:before{content:"";width:8px;height:8px;background:var(--pulse);position:absolute;top:0;left:-3px;transform:rotate(45deg)}.interval-list{display:grid;gap:7px}.interval-item{width:100%;min-height:58px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid transparent;background:transparent;text-align:left;padding:7px;cursor:pointer}.interval-item:hover,.interval-item.selected{background:var(--ink-850);border-color:var(--grid)}.interval-item>span:nth-child(2){min-width:0}.interval-item strong,.interval-item small{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.interval-item strong{font-size:13px}.interval-item small{color:var(--mist);font:10px/1.6 ui-monospace,monospace;font-variant-numeric:tabular-nums}.interval-glyph{border:1px solid currentColor;color:var(--signal);padding:7px;text-align:center;font:700 13px ui-monospace,monospace}.timeline-empty{border:1px dashed #4e5c78;padding:18px;display:grid;gap:7px;color:var(--mist);font-size:13px}.timeline-empty strong{color:var(--paper)}.interval-note{color:#9ca8a3;font-size:11px;line-height:1.5;margin-top:20px}.interval-note span{color:var(--signal)}.site-footer{border-top:1px solid var(--grid);min-height:72px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:#9ca8a3;font-size:12px;background:var(--ink-950)}.site-footer nav{display:flex;gap:18px;align-items:center}.site-footer p{margin:0}.site-footer a{color:var(--mist)}.modal{width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow:auto;border:1px solid var(--grid);color:var(--paper);background:var(--ink-900);padding:0;box-shadow:8px 8px #81f7c138;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%)}.modal::backdrop{background:#03050ad1;backdrop-filter:blur(5px)}.modal-top{display:flex;justify-content:space-between;align-items:start;gap:24px;padding:22px 24px;border-bottom:1px solid var(--grid)}.form-modal form{display:grid;gap:18px}.form-modal form>.field,.form-modal form>.range-grid,.form-modal form>.field-error{margin-inline:24px}.modal-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;border-top:1px solid var(--grid);padding:18px 24px;margin-top:6px}.modal-lede{color:var(--mist);line-height:1.5;max-width:60ch;margin:20px 24px}.export-options{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--grid)}.export-options article{display:grid;align-content:start;padding:26px 24px;min-height:300px}.export-options article+article{border-left:1px solid var(--grid)}.export-options h3{margin:16px 0 7px;font-size:18px}.export-options p{color:var(--mist);line-height:1.5;margin:0 0 20px;min-height:72px}.export-options small{color:#9ca8a3;margin-top:10px;text-align:center}.format-mark{color:var(--signal);font:700 12px ui-monospace,monospace;letter-spacing:.12em}.export-options progress{width:100%;margin-top:12px;accent-color:var(--signal)}.export-warning{margin:0 24px 24px}.welcome-modal{width:min(960px,calc(100vw - 32px));overflow:hidden;display:none;grid-template-columns:1.08fr .92fr}.welcome-modal[open]{display:grid}.welcome-art{min-height:500px;position:relative;background:#090d18;overflow:hidden}.welcome-art picture,.welcome-art img{width:100%;height:100%;display:block;object-fit:cover;image-rendering:auto}.welcome-art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(8,11,20,.76));pointer-events:none}.welcome-art span{position:absolute;z-index:1;left:20px;bottom:17px;color:var(--signal);font:11px ui-monospace,monospace;letter-spacing:.12em}.welcome-copy{display:flex;flex-direction:column;justify-content:center;padding:42px}.welcome-copy h2{margin:10px 0 20px;font:700 clamp(32px,4.2vw,52px)/.98 Inter,sans-serif;letter-spacing:-.05em}.welcome-copy p{color:var(--mist);font-size:17px;line-height:1.55;margin:0 0 28px}.welcome-copy small{margin-top:20px;color:#9ca8a3}.welcome-actions{display:flex;gap:10px}.license-modal{width:min(600px,calc(100vw - 32px))}.license-modal>.button,.license-modal>.restore-block,.license-modal>.remove-license,.license-modal>.legal-line{margin-inline:24px}.buy-link{width:calc(100% - 48px)}.restore-block{border-top:1px solid var(--grid);margin-top:28px;padding-top:24px;display:grid;gap:13px}.restore-block h3{margin:0;font-size:16px}.restore-block .button{justify-self:start}.restore-block .microcopy{margin:0;min-height:18px}.remove-license{margin-top:16px}.legal-line{color:#9ca8a3;border-top:1px solid var(--grid);margin-top:20px;padding:18px 0 24px;font-size:11px;line-height:1.5}.toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translate(-50%,20px);z-index:90;padding:12px 16px;background:var(--paper);color:var(--ink-950);box-shadow:4px 4px 0 var(--signal);font-size:14px;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s}.toast.visible{opacity:1;transform:translate(-50%)}.presenter{position:fixed;inset:0;z-index:60;background:var(--ink-950);padding:clamp(24px,5vw,72px)}.presenter-content{height:100%;display:flex;flex-direction:column}.presenter-content p{color:var(--ion);font:clamp(18px,2.6vw,32px) ui-monospace,monospace;margin:0 0 18px}.presenter-canvas,#presenter-canvas{width:100%;flex:1;min-height:0;border:1px solid var(--grid)}.presenter-time{color:var(--pulse);margin-top:14px;text-align:right;font:13px ui-monospace,monospace}.presenter-exit{position:absolute;z-index:1;top:20px;right:20px;min-height:44px;border:1px solid var(--grid);background:var(--ink-900);color:var(--paper);padding:0 14px;cursor:pointer;opacity:.28}.presenter-exit:hover,.presenter-exit:focus-visible{opacity:1}body.presenting{overflow:hidden}@media(max-width:1100px){.workspace{grid-template-columns:260px minmax(430px,1fr)}.timeline-panel{grid-column:1 / -1;border-left:0;border-top:1px solid var(--grid);display:grid;grid-template-columns:220px minmax(0,1fr);column-gap:24px}.timeline-panel .panel-heading,.timeline-panel .deck-settings,.timeline-panel .interval-note{grid-column:1}.timeline-ruler,.interval-track,.interval-list,.timeline-empty{grid-column:2}.timeline-ruler{grid-row:1;align-self:end}.interval-track{grid-row:2}.interval-list,.timeline-empty{grid-row:3 / span 3}.stage-panel{min-height:720px}}@media(max-width:740px){body{background-size:24px 24px;padding-bottom:env(safe-area-inset-bottom)}.topbar{padding-inline:12px;flex-wrap:wrap;gap:8px}.brand{min-height:44px}.brand span:last-child{display:none}.top-actions{flex:1}.save-state,#reset-button,#license-button span:last-child{display:none}.button.compact{padding-inline:10px}.workspace{display:flex;flex-direction:column}.stage-panel{order:1;min-height:auto;padding:22px 14px 32px}.inspector{order:2;border-right:0;border-top:1px solid var(--grid);padding:24px 16px}.timeline-panel{order:3;display:block;border-top:1px solid var(--grid);padding:24px 16px}.stage-meta{align-items:end}.stage-meta h1{font-size:26px}.plot-figure,.plot-figure canvas{min-height:310px}.transport{grid-template-columns:auto 1fr;gap:10px}.time-output{grid-column:1/-1;grid-row:2;text-align:right}.shortcut-line{display:none}.timeline-ruler{display:flex}.site-footer{align-items:start;flex-direction:column}.site-footer nav{flex-wrap:wrap}.site-footer nav span{flex-basis:100%}.welcome-modal[open]{display:block}.welcome-art{min-height:210px;max-height:34vh}.welcome-copy{padding:26px 22px calc(26px + env(safe-area-inset-bottom))}.welcome-copy h2{font-size:36px}.welcome-actions{flex-direction:column}.export-options{grid-template-columns:1fr}.export-options article+article{border-left:0;border-top:1px solid var(--grid)}.export-options article{min-height:0}.export-options p{min-height:0}.modal-actions{grid-template-columns:1fr 1fr}.modal-actions>span{display:none}.modal-actions .danger{grid-column:1/-1}.presenter{padding:68px 14px 20px}}@media(max-width:390px){.top-actions{gap:6px}#present-button{font-size:0;width:44px}#present-button span{font-size:14px}.stage-panel{padding-inline:10px}.frame-readout{font-size:10px}.plot-figure,.plot-figure canvas{min-height:270px}.range-grid{gap:8px}.parameter-row{grid-template-columns:74px 1fr 44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
