:root{color-scheme:dark;font-family:SFMono-Regular,Cascadia Code,Roboto Mono,Consolas,monospace;background:#01040a;color:#d2e8ffbd;font-synthesis:none}*{box-sizing:border-box}html,body,.app-shell{width:100%;height:100%;margin:0;overflow:hidden}body{background:#01040a}.app-shell{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:minmax(0,1fr);background:#01040a}.scene-viewport{position:relative;min-width:0;min-height:0;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 50% 48%,rgba(0,48,102,.11),transparent 43%),#01040a}#scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none}#scene:active{cursor:grabbing}.vignette,.grain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.vignette{background:radial-gradient(ellipse at 46% 48%,transparent 38%,rgba(0,2,7,.28) 72%,rgba(0,2,7,.76) 100%)}.grain{top:-40%;right:-40%;bottom:-40%;left:-40%;width:180%;height:180%;opacity:.022;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain-shift .7s steps(2) infinite}@keyframes grain-shift{0%{transform:translateZ(0)}33%{transform:translate3d(2%,-3%,0)}66%{transform:translate3d(-3%,2%,0)}}#controls.sh-panel{position:relative;inset:auto;max-width:none;height:100%;grid-column:2;grid-row:1;touch-action:pan-y}.sh-panel-hint{display:none}.panel-note{margin:3px 4px 8px;padding:8px 9px;border-left:1px solid var(--sh-border);color:var(--sh-text-dim);font-size:9px;line-height:1.55;letter-spacing:.05em}.panel-stat{margin:1px 4px 7px;color:var(--sh-text-dim);font-size:9px;letter-spacing:.08em;text-transform:uppercase}@media(max-width:760px){.app-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}#controls.sh-panel{grid-column:1;grid-row:2;width:100%;max-width:none;height:min(42vh,360px);border-left:0;border-top:1px solid var(--sh-border);transition:height .28s cubic-bezier(.4,0,.2,1),opacity .2s ease}#controls.sh-panel.collapsed{width:100%;height:0;min-height:0;border-top-width:0}}@media(prefers-reduced-motion:reduce){.grain{animation:none}}:root{--sh-bg: rgba(8, 8, 8, .94);--sh-border: rgba(255, 255, 255, .06);--sh-text: rgba(255, 255, 255, .88);--sh-text-dim: rgba(255, 255, 255, .38);--sh-text-mid: rgba(255, 255, 255, .55);--sh-surface: rgba(255, 255, 255, .06);--sh-surface-hover: rgba(255, 255, 255, .1);--sh-accent: rgba(255, 255, 255, .7);--sh-radius: 4px;--sh-width: 320px;--sh-font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}.sh-panel{position:fixed;top:0;right:0;width:var(--sh-width);max-width:50vw;height:100%;box-sizing:border-box;background:var(--sh-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-left:1px solid var(--sh-border);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;z-index:100;transition:width .28s cubic-bezier(.4,0,.2,1),opacity .2s ease,min-width .28s cubic-bezier(.4,0,.2,1);font-family:var(--sh-font);color:var(--sh-text);font-size:12px;line-height:1.4;-webkit-user-select:none;user-select:none}.sh-panel input:not([type=range]):not([type=color]):not([type=checkbox]):not([type=radio]),.sh-panel textarea,.sh-panel [contenteditable=true]{-webkit-user-select:text;user-select:text}.sh-panel.collapsed{width:0;min-width:0;opacity:0;pointer-events:none;overflow:hidden;border-left-width:0}.sh-panel-body{padding:16px 14px 32px;display:flex;flex-direction:column;gap:2px}.sh-panel-hint{position:fixed;right:14px;bottom:14px;padding:5px 10px;font-family:var(--sh-font);font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--sh-text-dim);background:#ffffff0a;border:1px solid var(--sh-border);border-radius:999px;pointer-events:none;z-index:101;transition:opacity .6s ease}.sh-panel-hint.hidden{opacity:0}.sh-folder{margin-bottom:2px}.sh-folder-head{display:flex;align-items:center;gap:6px;padding:8px 2px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1.8px;color:var(--sh-text-mid);transition:color .15s ease}.sh-folder-head:hover{color:var(--sh-text)}.sh-arrow{font-size:10px;transition:transform .2s ease;display:inline-block}.sh-folder.collapsed .sh-arrow{transform:rotate(-90deg)}.sh-folder-body{display:flex;flex-direction:column;gap:2px;padding-left:4px;overflow:hidden;max-height:4000px;transition:max-height .3s ease,opacity .2s ease}.sh-folder.collapsed>.sh-folder-body{max-height:0;opacity:0;pointer-events:none}.sh-ctrl{padding:6px 4px;display:flex;flex-direction:column;gap:6px}.sh-ctrl-head{display:flex;justify-content:space-between;align-items:baseline}.sh-label{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:1.4px;color:var(--sh-text-dim)}.sh-value{font-size:11px;font-variant-numeric:tabular-nums;color:var(--sh-text-mid);min-width:36px;text-align:right}.sh-slider input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:3px;background:var(--sh-surface);border-radius:2px;cursor:pointer;outline:none}.sh-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:10px;height:10px;background:#fff;border-radius:50%;box-shadow:0 0 6px #ffffff40;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.sh-slider input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.25);box-shadow:0 0 10px #fff6}.sh-slider input[type=range]::-moz-range-thumb{width:10px;height:10px;background:#fff;border:none;border-radius:50%;box-shadow:0 0 6px #ffffff40;cursor:pointer}.sh-slider input[type=range]::-moz-range-track{height:3px;background:var(--sh-surface);border-radius:2px}.sh-color{flex-direction:row;align-items:center;justify-content:space-between}.sh-color input[type=color]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:36px;height:20px;padding:0;border:1px solid var(--sh-border);border-radius:var(--sh-radius);background:transparent;cursor:pointer}.sh-color input[type=color]::-webkit-color-swatch-wrapper{padding:1px}.sh-color input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.sh-toggle{flex-direction:row;align-items:center;justify-content:space-between}.sh-switch{position:relative;display:inline-block;width:32px;height:16px;cursor:pointer}.sh-switch input{opacity:0;width:0;height:0;position:absolute}.sh-knob{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--sh-surface);border-radius:999px;transition:background .2s ease}.sh-knob:after{content:"";position:absolute;left:2px;top:2px;width:12px;height:12px;background:#ffffff59;border-radius:50%;transition:transform .2s ease,background .2s ease}.sh-switch input:checked+.sh-knob{background:#ffffff26}.sh-switch input:checked+.sh-knob:after{transform:translate(16px);background:#fff}.sh-btn{display:block;width:100%;padding:7px 12px;margin:2px 0;font-family:var(--sh-font);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1.6px;color:var(--sh-text);background:var(--sh-surface);border:1px solid var(--sh-border);border-radius:var(--sh-radius);cursor:pointer;transition:background .15s ease,border-color .15s ease}.sh-btn:hover{background:var(--sh-surface-hover);border-color:#ffffff1f}.sh-btn:active{background:#ffffff24}.sh-select{flex-direction:row;align-items:center;justify-content:space-between}.sh-select select{padding:4px 8px;font-family:var(--sh-font);font-size:11px;color:var(--sh-text);background:var(--sh-surface);border:1px solid var(--sh-border);border-radius:var(--sh-radius);outline:none;cursor:pointer;min-width:90px;transition:border-color .15s ease}.sh-select select:hover{border-color:#ffffff26}.sh-select select option{background:#111;color:var(--sh-text)}.sh-file{padding:4px}.sh-panel::-webkit-scrollbar{width:5px}.sh-panel::-webkit-scrollbar-track{background:transparent}.sh-panel::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.sh-panel::-webkit-scrollbar-thumb:hover{background:#fff3}
