:root{color-scheme:dark;--bg: #0f1218;--panel: #171b24;--card: #1c212c;--border: #2a2f3a;--text: #dfe5f2;--muted: #8b93a7;--accent: #4cc9f0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}body{margin:0;background:var(--bg);color:var(--text)}header{padding:12px 20px 4px}header h1{margin:0 0 4px;font-size:20px}header p{margin:4px 0;max-width:1100px;color:var(--muted)}a{color:var(--accent)}nav.links{display:flex;flex-wrap:wrap;gap:2px 16px;margin:6px 0 4px;font-size:13px}main{display:flex;flex-direction:column;gap:16px;padding:10px 20px 24px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px 16px 14px}.panel-title{margin:0 0 10px;font-size:16px}.subtitle{margin-left:6px;font-size:13px;font-weight:400;color:var(--muted)}.demo{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.optimizer{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start}fieldset{background:var(--card);border:1px solid var(--border);border-radius:6px;margin:0 0 10px;padding:4px 10px 8px;min-width:0}legend{padding:0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}h3{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:14px 0 6px}label{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:6px 0}label.check{justify-content:flex-start}label.stack{flex-direction:column;align-items:stretch;gap:4px}label.slider input[type=range]{flex:1;min-width:0}label.slider output{min-width:3.2em;text-align:right;font-variant-numeric:tabular-nums}input[type=number],input[type=text],select{width:96px;background:#0f1218;color:var(--text);border:1px solid var(--border);border-radius:4px;padding:3px 5px}select.wide{width:170px}select.full{width:100%}input[type=file]{font-size:12px;color:var(--muted)}.row{display:flex;gap:6px;margin:6px 0}.row .grow{flex:1;width:0;min-width:0}.buttons{display:flex;gap:8px;margin:8px 0}button{background:#222838;color:var(--text);border:1px solid var(--border);border-radius:5px;padding:6px 12px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button.primary{background:#1f6f8b}button:disabled{opacity:.5;cursor:not-allowed}input:disabled,select:disabled{cursor:not-allowed}fieldset:disabled,fieldset:not(:disabled) label:has(input:disabled,select:disabled,button:disabled){opacity:.5}details.help summary,#shaderPanel summary{cursor:pointer;color:var(--muted);font-size:12px}details.help{margin-top:4px}.note{color:var(--muted);font-size:12px;margin:4px 0}.status{font-variant-numeric:tabular-nums;color:var(--text);margin:0 0 10px}.status.small{font-size:12px;color:var(--muted);margin:6px 0 0}#sceneStatus{white-space:pre-wrap;overflow-wrap:anywhere}#sceneStatus[data-error]{color:#faa}textarea{width:100%;box-sizing:border-box;background:#0b0e13;color:var(--text);border:1px solid var(--border);border-radius:6px;font-family:ui-monospace,Consolas,monospace;font-size:12px}#blurCanvas{display:block;max-width:100%;border-radius:6px;background:#000;cursor:crosshair;touch-action:none}#shaderPanel{margin-top:10px}.player{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}.player button{padding:4px 8px;min-width:2.2em;line-height:1.2}.player button.play{min-width:3em}.player #seek{flex:1;min-width:120px}.player label{margin:0;gap:4px}.player #sceneTime{width:76px}.player #durationOut{color:var(--muted);font-variant-numeric:tabular-nums}.player select{width:auto}.player label:has(input:disabled,select:disabled),.player input:disabled,.player select:disabled{opacity:.5}.viewport:fullscreen{background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px;box-sizing:border-box}.viewport:fullscreen>:not(#blurCanvas,#player,#sceneStatus){display:none}.viewport:fullscreen #sceneStatus{width:100%;max-height:25vh;overflow-y:auto;flex-shrink:0}.viewport:fullscreen #player{width:100%}.plot-controls{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center}.grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:10px;margin-top:6px}.plot{width:100%;height:260px;background:var(--card);border:1px solid var(--border);border-radius:6px}.disc-wrap{grid-row:span 2}#disc{width:320px;height:320px;border:1px solid var(--border);border-radius:6px;image-rendering:pixelated}.decomposition{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start;overflow-x:auto}.decomposition figure{margin:0;max-width:100%}.decomposition figure .note{max-width:40em}.decomposition figcaption{font-weight:600}@media(max-width:1100px){.demo,.optimizer,.grid{grid-template-columns:minmax(0,1fr)}.disc-wrap{grid-row:auto}.sidebar{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;align-items:start}.sidebar fieldset{margin:0}}
