@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#11171d;--panel:#171e25;--line:#2b353d;--text:#edf2f2;--muted:#91a0aa;--green:#a6efc1;--blue:#92b8ef;font-family:'DM Sans',system-ui,sans-serif;font-size:16px}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text)}
button,select,input{font:inherit}button,select{cursor:pointer}button{color:inherit;border:0}
button:disabled,select:disabled{opacity:.45;cursor:wait}
button:focus-visible,select:focus-visible,input:focus-visible,[role=application]:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:4px}
a{color:inherit}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.topbar{height:72px;display:flex;align-items:center;padding:0 34px;gap:32px;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;white-space:nowrap}
.brand svg{width:31px;fill:none;stroke:var(--green);stroke-width:2}
.brand strong{font-family:'Space Grotesk',sans-serif;font-size:23px;font-weight:600;letter-spacing:-1px}
.brand span{font-weight:400;color:var(--muted)}
.header-meta{display:flex;gap:20px;font-size:12px;letter-spacing:1.5px;color:var(--muted);margin-left:22px}
.header-meta span,.byline{letter-spacing:0;padding-left:20px;border-left:1px solid var(--line)}
.byline{text-decoration:none}.byline:hover{color:var(--text)}
.button{margin-left:auto;border:1px solid #46574e;background:#a6efc114;color:var(--green);border-radius:7px;padding:10px 15px;font-size:14px}
.button span{margin-left:14px}

main{display:grid;grid-template-columns:minmax(0,1fr) 520px;grid-template-areas:"work side" "mix side";grid-template-rows:auto 1fr;max-width:1920px;margin:auto}
.workspace{grid-area:work;padding:28px 30px 0;min-width:0}
.mix-panel{grid-area:mix;padding:26px 30px 32px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;align-items:start;min-width:0}
.side{grid-area:side;border-left:1px solid var(--line);background:linear-gradient(145deg,#1b232b,#171e25);padding:26px 26px 28px;min-width:0}

.viewport-top{display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative;z-index:2}
.eyebrow{font-size:12px;letter-spacing:1.7px;color:var(--muted);font-weight:500;text-transform:uppercase}
h1.eyebrow{margin:0}
.motion-title{font-family:'Space Grotesk',sans-serif;font-size:22px;font-weight:500;margin:8px 0 0;letter-spacing:-.5px}
.motion-title span{color:#60717c;padding:0 8px}
.view-buttons{display:flex;background:#202931;padding:4px;border-radius:6px}
.view-buttons button{background:none;padding:7px 10px;font-size:12px;color:var(--muted);border-radius:4px}
.view-buttons button.selected{background:#36434c;color:#fff}
#viewport{height:clamp(360px,58vh,640px);position:relative;margin-top:-12px}
#scene{width:100%;height:100%;display:block;touch-action:none}
#loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:#11171dea;text-align:center;padding:20px}
#loading[hidden]{display:none}
#loading-detail{font-size:14px;color:var(--muted);max-width:360px}
.loader{width:26px;height:26px;border:2px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin 1.2s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.viewport-bottom{display:flex;justify-content:space-between;gap:12px;color:#7b8d99;font-size:12px;align-items:center;margin-top:-14px;position:relative}
.axis-label{letter-spacing:.8px}.axis-label b{color:var(--green);margin-right:6px}
.toggle{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}
.toggle input{accent-color:var(--green);width:15px;height:15px;margin:0}

.transport{display:flex;align-items:center;gap:22px;padding:19px 0 23px;border-bottom:1px solid var(--line);margin-top:15px}
.play{border:1px solid var(--line);background:var(--panel);width:44px;height:44px;border-radius:50%;font-size:19px;color:var(--green);flex-shrink:0}
.timeline{flex:1}
.timeline>div{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-bottom:8px}
input[type=range]{width:100%;height:4px;display:block;margin:10px 0;accent-color:var(--green);cursor:pointer}
input[type=range]::-webkit-slider-thumb{min-height:12px}
.speed,.cycle-time{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}
.speed select{background:none;border:0;color:var(--text);font-size:14px;padding:0;width:67px}
.cycle-time{border-left:1px solid var(--line);padding-left:20px}
.cycle-time strong{font-size:14px;color:var(--text);font-weight:400;white-space:nowrap}
select{background:#1d262d;border:1px solid #344049;border-radius:5px;color:var(--text);padding:11px;width:100%;font-size:14px}
option{background:var(--panel)}

.side-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px}
.side-head h2{font-family:'Space Grotesk',sans-serif;font-size:21px;letter-spacing:-.5px;font-weight:500;margin:8px 0 0}
.jump{width:190px;flex-shrink:0}.jump select{padding:8px 10px;font-size:13px}
.text-button{background:none;color:var(--muted);font-size:13px;text-decoration:underline;text-underline-offset:4px;padding:0 0 3px}
.text-button:hover{color:var(--text)}

/* Motion map */
.map-wrap{width:100%;max-width:380px;aspect-ratio:1;margin:14px auto 0}
#motion-map{width:100%;height:100%;display:block;touch-action:none;user-select:none;-webkit-user-select:none;cursor:crosshair;border-radius:50%}
#motion-map:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.map-disc{fill:#141b21;stroke:#34424b;stroke-width:.008}
.map-ring{fill:none;stroke:#222d35;stroke-width:.004}
.map-axis{stroke:#1f2a32;stroke-width:.004}
.map-dot{opacity:.5;stroke:none;transition:opacity .15s}
.map-dot.mixed{opacity:.95;stroke:#edf2f2;stroke-width:.01}
.map-dot.hover{opacity:1;stroke:#fff;stroke-width:.012}
.map-link{stroke:var(--green);stroke-linecap:round;fill:none}
.cursor-halo{fill:#a6efc122;stroke:var(--green);stroke-width:.012}
.cursor-core{fill:var(--green);stroke:#0d1217;stroke-width:.008}
#map-cursor{cursor:grab}#motion-map.dragging,#motion-map.dragging #map-cursor{cursor:grabbing}
.map-label{font-family:'DM Sans',system-ui,sans-serif;font-size:.056px;font-weight:500;fill:var(--text);paint-order:stroke;stroke:#11171d;stroke-width:.026;stroke-linejoin:round;pointer-events:none}
.map-tools{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:22px;align-items:center;margin-top:14px}
.spread{display:grid;grid-template-columns:auto minmax(0,1fr) 16px;gap:10px;align-items:center;font-size:12px;color:var(--muted)}
.spread input{margin:0}.spread output{color:var(--text);text-align:right}
.legend{display:flex;align-items:center;gap:10px;font-size:11px;color:#80919d}
.legend i{flex:1;min-width:30px;height:6px;border-radius:3px}

/* Shaping pads */
.shape-panel{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.pads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.pad-card{min-width:0}
.pad-title{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;margin-bottom:8px}
.pad-title strong{font-weight:550}
.pad-surface{position:relative;aspect-ratio:1;border:1px solid #34424b;border-radius:8px;background:
  linear-gradient(#2a363f,#2a363f) center/1px 100% no-repeat,
  linear-gradient(#2a363f,#2a363f) center/100% 1px no-repeat,
  radial-gradient(circle at center,#1b252c 0,#141b21 100%);
  cursor:crosshair;touch-action:none;user-select:none;-webkit-user-select:none;overflow:hidden}
.pad-card.edited .pad-surface{border-color:#4b6658}
.pad-edge{position:absolute;font-size:9.5px;letter-spacing:.3px;color:#6f8290;pointer-events:none;white-space:nowrap}
.pad-edge.top{top:5px;left:50%;transform:translateX(-50%)}.pad-edge.bottom{bottom:5px;left:50%;transform:translateX(-50%)}
.pad-edge.left{left:6px;top:50%;transform:translateY(-50%)}.pad-edge.right{right:6px;top:50%;transform:translateY(-50%)}
.pad-handle{position:absolute;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;background:#a6efc122;border:2px solid var(--green);pointer-events:none;box-shadow:0 0 0 4px #11171d99}
.pad-handle:after{content:'';position:absolute;inset:4px;border-radius:50%;background:var(--green)}
.pad-surface.dragging{cursor:grabbing}
.pad-readout{margin:10px 0 0;display:grid;gap:9px}
.pad-readout>div{min-width:0}
.pad-readout dt{font-size:11px;color:var(--muted);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pad-readout dd{margin:0;display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-size:14px;font-variant-numeric:tabular-nums}
.pad-readout b{font-weight:500}
.pad-readout i{font-style:normal;font-size:12px;color:#667985}
.pad-readout i.up{color:var(--green)}.pad-readout i.down{color:var(--blue)}
.range{position:relative;height:3px;margin-top:6px;border-radius:2px;background:#26323a}
.range .delta{position:absolute;top:0;bottom:0;border-radius:2px;background:var(--green)}
.range .delta.down{background:var(--blue)}
.range .tick{position:absolute;top:-2px;width:2px;height:7px;margin-left:-1px;background:#d8e4e8;border-radius:1px}
.guard{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:20px;padding-top:14px}
.guard>span{font-size:11px;color:#a6efc1aa}

/* Mix and model note */
.mix h3{font-size:12px;letter-spacing:1.5px;color:var(--muted);font-weight:500;margin:0 0 12px}
.mix-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;min-height:176px;align-content:start}
.mix-item{display:grid;grid-template-columns:10px minmax(0,1fr) 44px;grid-template-rows:auto 3px;column-gap:10px;row-gap:6px;align-items:center;width:100%;background:none;text-align:left;padding:5px 6px;border-radius:5px;font-size:13px}
.mix-item:hover{background:#a6efc10b}
.mix-swatch{width:10px;height:10px;border-radius:50%}
.mix-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mix-weight{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums}
.mix-track{grid-column:2 / 4;height:3px;border-radius:2px;background:#26323a;overflow:hidden}
.mix-track i{display:block;height:100%;border-radius:2px}
.mix-hint{font-size:12px;line-height:1.6;color:#667985;padding:6px 6px 0}
.model-note{border:1px solid #344049;border-radius:7px;padding:16px}
.model-note>div{display:flex;gap:12px;align-items:center}
.model-mark{font-family:'Space Grotesk',sans-serif;border:1px solid #4b6658;border-radius:8px;padding:8px;color:var(--green);font-size:18px}
.model-note strong{display:block;font-size:13px;font-weight:500}
.model-note span:not(.model-mark){display:block;margin-top:4px;color:var(--muted);font-size:11px}
.model-note p{font-size:12px;line-height:1.65;color:var(--muted);margin-bottom:0}
details{font-size:12px;color:var(--muted);margin-top:12px}
summary{cursor:pointer;color:#b6c6d0}
#quality-details{line-height:1.7;padding-top:9px}
#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);padding:12px 20px;background:#d4f8e0;color:#163426;border-radius:7px;box-shadow:0 6px 25px #0004;font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s}
#toast.show{opacity:1}

.about{max-width:960px;margin:0 auto;padding:44px 30px 64px;border-top:1px solid var(--line);color:#b9c5cc;line-height:1.75}
.about h2{font-family:'Space Grotesk',sans-serif;font-size:26px;letter-spacing:-.6px;font-weight:500;color:var(--text);margin:0 0 14px}
.about h3{font-family:'Space Grotesk',sans-serif;font-size:17px;letter-spacing:-.3px;font-weight:500;color:var(--text);margin:30px 0 10px}
.about p,.about li{font-size:15px}.about p{margin:0 0 14px}
.about ul{margin:0;padding-left:20px;display:grid;gap:6px}
.about-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 44px}
.about details{border-top:1px solid var(--line);margin:0;padding:14px 0;font-size:15px;color:#b9c5cc}
.about details:last-of-type{border-bottom:1px solid var(--line)}
.about summary{color:var(--text);font-weight:500}
.about details p{margin:10px 0 0}
.about a{color:var(--green);text-underline-offset:3px}
.about-cta{margin-top:30px!important;color:var(--muted)}
@media(min-width:1700px){main{grid-template-columns:minmax(0,1fr) 580px}.workspace,.mix-panel{padding-left:45px;padding-right:45px}.map-wrap{max-width:480px}}
@media(max-width:1180px){main{grid-template-columns:minmax(0,1fr) 440px}.side{padding:22px 18px}.workspace{padding:24px 20px 0}.mix-panel{padding:22px 20px 28px;grid-template-columns:1fr;gap:22px}.header-meta{margin-left:0}.header-meta span{display:none}.motion-title{font-size:19px}.view-buttons button{padding:6px 8px}.viewport-bottom>span:nth-child(2){display:none}.pads{gap:9px}.pad-edge{font-size:9px}.jump{width:150px}}
@media(max-width:900px){.about{padding:36px 20px 52px}.about-grid{grid-template-columns:1fr}.topbar{height:70px;padding:0 20px}.header-meta{display:none}main{grid-template-columns:1fr;grid-template-areas:"work" "side" "mix"}.side{border-left:0;border-top:1px solid var(--line);padding:25px 20px}.workspace{padding:22px 20px 0}#viewport{height:clamp(300px,52vh,460px)}.map-wrap{max-width:520px}.transport{padding-bottom:20px}.mix-list{min-height:0}}
@media(max-width:430px){.topbar{padding:0 15px;gap:10px}.brand strong{font-size:21px}.button{padding:9px 10px}.button span{margin-left:5px}.workspace{padding:20px 15px 0}.viewport-top{align-items:flex-start}.motion-title{font-size:16px;max-width:210px}.view-buttons button{font-size:11px;padding:6px}.eyebrow{font-size:10px}.transport{gap:13px}.cycle-time{display:none}.side{padding:23px 15px}.side-head{align-items:flex-start;flex-direction:column;gap:12px}.jump{width:100%}.pads{gap:6px}.pad-edge{font-size:8px}.pad-readout dd{font-size:12px;flex-wrap:wrap}.mix-panel{padding:22px 15px 28px}}
