@font-face{font-family:Neue Haas Grotesk Display Pro;src:url(/assets/NeueHaasDisplayRoman-D1qglOVU.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Neue Haas Grotesk Display Pro;src:url(/assets/NeueHaasDisplayMediu-yI6FVv_f.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Neue Haas Grotesk Display Pro;src:url(/assets/NeueHaasDisplayBold-Bga3Xkoe.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Neue Haas Grotesk Display Pro;src:url(/assets/NeueHaasDisplayRomanItalic-Cpzhzo7u.woff2)format("woff2");font-style:italic;font-weight:400;font-display:swap}:root{--bottom-ui-offset:0px;--code-width:460px;--font-main:"Neue Haas Grotesk Display Pro", sans-serif;--font-monospace:monospace;--font-size-small:.625rem;--font-size-medium:.75rem;--font-size-main:1rem;--font-size-large:1.5rem;--header-height:1.6rem;--header-gradient:linear-gradient(90deg, #833ab4 0%, #fd1d1d 50%, #fcb045 100%);--sidebar-width:340px;--accent-color:#e0a33e;--accent-border:#5a4520;--button-background:var(--accent-color);--button-color:#17120a;--page-background:#000;--surface-color:#101010;--panel-color:#181818;--text-color:#f7f7f2;--muted-color:#aaa;--border-color:#555;--error-color:#ff8d8d}@media (max-width:900px) and (orientation:landscape){:root{--code-width:260px;--sidebar-width:240px}}button,input,select,textarea{color:inherit;font:inherit}button{box-shadow:none;appearance:none;border:1px solid;border-radius:0;outline:none;margin:2px;transition:none}button[hidden],[hidden]{display:none!important}input,select,textarea{background:var(--panel-color);border:1px solid var(--border-color)}h1,h2,h3,h4{color:var(--text-color);font-weight:500}html{font-size:var(--font-size-large);overscroll-behavior:none}html,body{background:var(--page-background);font-family:var(--font-main);-webkit-user-select:none;user-select:none;touch-action:none}#canvas-parent canvas{touch-action:none;-webkit-user-select:none;user-select:none}#loading-overlay{background:var(--page-background) no-repeat center / cover;opacity:1;pointer-events:none;touch-action:none;filter:blur(64px);transition:opacity .6s ease-out}#loading-overlay.hidden{opacity:0}@media (max-width:900px){#code-header .code-tab,#code-tabs .code-tab{font-size:var(--font-size-medium)}}.header{background:var(--header-gradient)}.header button{background-color:var(--button-background);color:var(--button-color);font-size:var(--font-size-small)}.code-fork-tab{color:var(--surface-color)!important;background-color:var(--button-background)!important}#header-title{font-size:var(--font-size-main);color:var(--page-background)}#header-title-class{font-size:var(--font-size-small);color:var(--page-background)}#header-editing{font-size:var(--font-size-small);color:var(--surface-color);white-space:nowrap}#code-panel{background:var(--panel-color)}#code-header{background:var(--panel-color);border-bottom:1px solid var(--page-background);scrollbar-width:none;touch-action:pan-x}#code-more-menu{background:var(--panel-color);border:1px solid var(--border-color)}#code-more-menu button{text-align:left}#code-tabs .code-tab{font-family:var(--font-monospace);font-size:var(--font-size-medium);letter-spacing:.04em;color:var(--muted-color);background:var(--panel-color);cursor:pointer;white-space:nowrap;touch-action:manipulation;border:none}#code-tabs{background:var(--panel-color);border-bottom:1px solid var(--page-background);scrollbar-width:none;touch-action:pan-x}#code-header .code-tab{font-family:var(--font-monospace);font-size:var(--font-size-medium);letter-spacing:.04em;color:var(--muted-color);background:var(--panel-color);cursor:pointer;white-space:nowrap;touch-action:manipulation;border:none}#code-header .code-tab-edit,#code-header .code-tab-save-sketch{color:var(--accent-color);border-color:var(--accent-border)}#code-header .code-tab-edit:hover,#code-header .code-tab-edit.active{color:var(--accent-color)}#code-header .code-tab:hover,#code-tabs .code-tab:hover{color:var(--muted-color)}#code-header .code-tab.active,#code-tabs .code-tab.active{color:var(--text-color);background:var(--panel-color)}#code-header .code-tab.dirty,#code-header .code-tab.code-tab-edit,#code-header .code-tab.code-tab-edit:hover,#code-header .code-tab.code-tab-edit.active{color:var(--accent-color);border-color:var(--accent-border)}#code-header .code-tab.dirty:after,#code-tabs .code-tab.dirty:after{content:"●";font-size:var(--font-size-small);color:var(--accent-color)}.monaco-editor .inputarea{font-size:var(--font-size-main)!important}#code-actions{background:var(--panel-color);border-top:1px solid var(--page-background)}#code-actions button{font-family:var(--font-monospace);font-size:var(--font-size-medium);letter-spacing:.08em;color:var(--muted-color);background:var(--panel-color);border:1px solid var(--accent-border);cursor:pointer;border-radius:2px}#code-actions button:hover{color:var(--text-color);background:var(--accent-border)}#code-actions button:disabled{opacity:.35;cursor:default}#code-compile.pending{color:var(--accent-color);border-color:var(--accent-border)}#code-actions #code-font button{touch-action:manipulation;line-height:1}#code-auto{font-family:var(--font-monospace);font-size:var(--font-size-medium);letter-spacing:.06em;color:var(--muted-color);cursor:pointer;-webkit-user-select:none;user-select:none}#code-auto input{accent-color:var(--muted-color);cursor:pointer}#code-auto.on{color:var(--muted-color)}#code-status{font-family:var(--font-monospace);font-size:var(--font-size-small);color:var(--border-color);background:var(--panel-color);border-top:1px solid var(--page-background);white-space:pre;text-overflow:ellipsis;line-height:1.5}#code-status.error{color:var(--error-color)}#code-status.ok{color:var(--muted-color)}#code-panel-resize-handle{cursor:col-resize;background:0 0;transition:background .15s}#code-panel-resize-handle:hover,#code-panel-resize-handle.dragging{background:var(--panel-color)}#code-panel-resize-handle:after{content:"";background:var(--panel-color);border-radius:1px;transition:background .15s}#code-panel-resize-handle:hover:after,#code-panel-resize-handle.dragging:after{background:var(--muted-color)}#dev-panel{background:var(--panel-color)}#dev-panel .gui_root .row.has_timeline,#timeline-panel .tl-track.has_timeline{box-shadow:inset 3px 0 0 0 var(--muted-color);background:var(--panel-color)}#timeline-panel .tl-tracks-rest .tl-track:nth-child(2n),#timeline-panel .tl-tracks-rest .tl-track:nth-child(2n) .tl-lane,#timeline-panel .tl-tracks-rest .tl-track.tl-hover,#timeline-panel .tl-tracks-rest .tl-track.tl-hover .tl-lane{background:var(--panel-color)}#timeline-panel .tl-tracks-rest .tl-track.tl-sel,#timeline-panel .tl-tracks-rest .tl-track.tl-sel .tl-lane{background:var(--border-color)}#dev-panel .gui_root .row.tl-xhover{background:var(--panel-color)}#dev-panel .gui_root .row.has_timeline .tl-keyframe-btn{color:var(--muted-color)}#dev-panel .gui_root .row.has_timeline .tl-keyframe-btn:active{color:var(--text-color)}#dev-panel .gui_root .tweak_lock{cursor:pointer;pointer-events:auto;color:var(--border-color)}#dev-panel .gui_root .tweak_lock:hover{color:var(--text-color)}#dev-panel .gui_root .row.lock_tint .tweak_lock{color:var(--lock-tint,var(--accent-color))}#dev-panel .gui_root .row.lock_tint{box-shadow:inset 3px 0 0 0 var(--lock-tint,var(--accent-color));background:var(--accent-border)}#dev-panel .gui_root .lock-mode-btn.lock-on{color:var(--lock-tint,var(--accent-color));box-shadow:inset 0 0 0 1px var(--lock-tint,var(--accent-color))}#dev-panel .panel_scroll{overscroll-behavior:contain}#dev-panel .watch_btn.is_active,#dev-panel .watched_footer .watch_btn{color:var(--gui-color-6)}#dev-panel-resize-handle{cursor:col-resize;background:0 0;transition:background .15s}#dev-panel-resize-handle:hover,#dev-panel-resize-handle.dragging{background:var(--panel-color)}#dev-panel-resize-handle:after{content:"";background:var(--panel-color);border-radius:1px;transition:background .15s}#dev-panel-resize-handle:hover:after,#dev-panel-resize-handle.dragging:after{background:var(--muted-color)}#debug-error{background:var(--accent-border);color:var(--accent-color);font-size:var(--font-size-large);font-weight:500;line-height:38px;font-family:var(--font-monospace);text-decoration:none}#pause-btn{background:var(--page-background);border:1px solid var(--border-color);color:var(--muted-color);font-family:var(--font-monospace);font-size:var(--font-size-main);cursor:pointer;border-radius:50%;line-height:1;transition:opacity .2s}#pause-btn:hover{border-color:var(--text-color);color:var(--text-color)}.icon-btn{background:var(--text-color);border:1px solid var(--page-background);color:var(--muted-color);cursor:pointer;border-radius:50%;transition:border-color .2s,color .2s}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round}.icon-btn:hover{border-color:var(--page-background);color:var(--page-background)}#menu-scrim{background:var(--page-background)}#menu-fullscreen-square{color:var(--text-color);background:var(--panel-color)!important;border:1px solid var(--text-color)!important}#menu-sidebar{background:var(--panel-color);border-right:1px solid var(--page-background);touch-action:pan-y}.menu-item{font-family:var(--font-monospace);font-size:var(--font-size-medium);letter-spacing:.08em;text-align:left;color:var(--muted-color);cursor:pointer;background:0 0;border:none}.menu-item:hover,.menu-item:focus-visible{color:var(--text-color);background:var(--panel-color)}.menu-heading{font-family:var(--font-monospace);font-size:var(--font-size-small);letter-spacing:.14em;text-transform:uppercase;color:var(--border-color);border-top:1px solid var(--panel-color)}#menu-sketches{touch-action:pan-y;-webkit-overflow-scrolling:touch}.menu-autosaves{border-bottom:1px solid var(--panel-color)}.menu-autosaves-summary{font-family:var(--font-monospace);font-size:var(--font-size-medium);letter-spacing:.08em;text-transform:uppercase;color:var(--muted-color);cursor:pointer;list-style:none}.menu-autosaves-summary:before{content:"›";font-size:var(--font-size-main);line-height:1;transition:transform .15s}.menu-autosaves-summary:hover,.menu-autosaves-summary:focus-visible{color:var(--text-color)}.menu-sketch{font-family:var(--font-monospace);font-size:var(--font-size-medium);letter-spacing:.04em;text-align:left;color:var(--muted-color);cursor:pointer;touch-action:manipulation;background:0 0;border:1px solid #0000;border-radius:2px}.menu-sketch:hover,.menu-sketch:focus-visible{color:var(--text-color);background:var(--panel-color)}.menu-sketch.active{color:var(--text-color);background:var(--panel-color);border-color:var(--panel-color)}.menu-sketch-separator{font-family:var(--font-monospace);font-size:var(--font-size-small);letter-spacing:.1em;text-transform:uppercase;color:var(--border-color);border-bottom:1px dashed var(--panel-color)}.menu-sketch .menu-sketch-thumb{background:linear-gradient(135deg, var(--panel-color), var(--accent-border))}.menu-sketch .menu-sketch-thumb img{transition:opacity .3s}.menu-sketch .menu-sketch-name{text-overflow:ellipsis;white-space:nowrap}#preset-prev,#preset-next{background:var(--page-background);border:1px solid var(--border-color);color:var(--muted-color);font-family:var(--font-monospace);font-size:var(--font-size-medium);cursor:pointer;transition:border-color .2s,color .2s}#preset-prev{border-radius:3px 0 0 3px}#preset-next{border-radius:0 3px 3px 0}#preset-name{background:var(--page-background);border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);color:var(--muted-color);font-family:var(--font-monospace);font-size:var(--font-size-medium);letter-spacing:.1em;cursor:default;white-space:nowrap;text-align:center;border-left:none;border-right:none;transition:border-color .2s,color .2s}#preset-prev:hover,#preset-next:hover{border-color:var(--text-color);color:var(--text-color)}#replay-btn{background:var(--page-background);border:1px solid var(--border-color);color:var(--muted-color);font-family:var(--font-monospace);font-size:var(--font-size-medium);letter-spacing:.1em;cursor:pointer}#touch-btn{background-color:var(--border-color);cursor:pointer;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);pointer-events:none;opacity:0;background-image:url(../textures/png/gui/touch.png);background-position:50%;background-repeat:no-repeat;background-size:50%;border:none;border-radius:50%;transition:opacity 1.5s}#touch-btn:before{content:"";background:conic-gradient(from 0deg, var(--accent-color) 0%, var(--accent-color) 10%, var(--accent-color) 20%, var(--border-color) 30%, var(--muted-color) 40%, var(--muted-color) 50%, var(--muted-color) 60%, var(--border-color) 70%, var(--muted-color) 80%, var(--error-color) 90%, var(--accent-color) 100%);-webkit-mask-image:radial-gradient(circle, transparent 0%, transparent 7vh, var(--page-background) 7.4vh, var(--page-background) 8.1vh, transparent 8.1vh);mask-image:radial-gradient(circle, transparent 0%, transparent 7vh, var(--page-background) 7.4vh, var(--page-background) 8.1vh, transparent 8.1vh);border-radius:50%}#touch-btn.hidden{opacity:0}#touch-btn:hover{background-color:var(--muted-color)}#timeline-panel{background:var(--panel-color);border-top:1px solid var(--panel-color)}#timeline-panel.tl-system-disabled:after{content:"Snapshot System Disabled";background:var(--panel-color);color:var(--text-color);font-size:var(--font-size-medium);letter-spacing:.1em;text-transform:uppercase;pointer-events:none}#timeline-panel-resize-handle{cursor:row-resize;background:0 0;transition:background .15s}#timeline-panel-resize-handle:hover,#timeline-panel-resize-handle.dragging{background:var(--panel-color)}.tl-time{font-family:var(--font-monospace);font-size:var(--font-size-medium);color:var(--text-color);text-align:center;white-space:nowrap}.tl-time span{color:var(--border-color)}.tl-track-label{font-size:var(--font-size-medium);color:var(--muted-color);white-space:nowrap;text-overflow:ellipsis;cursor:pointer}.tl-track-label:hover{color:var(--text-color)}.tl-ruler-label{color:var(--border-color);font-size:var(--font-size-small)}.tl-lane,.gui_root .tl-track-header>.tl-lane{background:var(--surface-color);cursor:crosshair;border-radius:2px}.tl-ruler .tl-lane{background:var(--panel-color)}.tl-section-band{pointer-events:none}.tl-section-band span{font-size:var(--font-size-small);color:var(--text-color);opacity:.85;white-space:nowrap}.tl-section-playback{opacity:.85;pointer-events:none}.tl-section-playback svg{fill:var(--text-color)}.tl-section-handle{cursor:ew-resize}.tl-section-handle:hover{background:var(--border-color)}.tl-tick{background:var(--border-color);pointer-events:none}.tl-tick span{font-size:var(--font-size-small);color:var(--muted-color);white-space:nowrap}.tl-kfd{background:var(--gui-color-6,var(--accent-color));border:1px solid var(--page-background);cursor:pointer}.tl-kfd:hover,.tl-kfd.tl-active{background:var(--text-color)}#timeline-panel .gui_root .tl-body .tl-tracks-rest{border-top:1px solid var(--panel-color);overflow-anchor:none}.tl-secline{background:var(--panel-color);pointer-events:none}.tl-curve{pointer-events:none}.tl-curve polyline{fill:none;stroke:var(--gui-color-6,var(--muted-color));stroke-opacity:.65;stroke-width:1.5px;vector-effect:non-scaling-stroke}.tl-gradient{opacity:.55;pointer-events:none;border-radius:2px}.tl-marker{background:var(--accent-color);border:1px solid var(--page-background);cursor:pointer}.tl-marker:hover{background:var(--accent-color)}.tl-marker.tl-sel{background:var(--text-color);border-color:var(--accent-color)}.tl-marker.tl-eased{border-color:var(--muted-color)}.tl-empty{color:var(--border-color);font-size:var(--font-size-medium)}.tl-playhead{background:var(--accent-color);box-shadow:0 0 4px var(--accent-color);pointer-events:none}.tl-playhead-snapped{background:var(--muted-color);box-shadow:none}.tl-playhead i{border-left:5px solid #0000;border-right:5px solid #0000;border-top:7px solid var(--accent-color)}.tl-selname{font-size:var(--font-size-medium);color:var(--text-color);white-space:nowrap}.tl-selname span{color:var(--muted-color)}.tl-easelabel{font-size:var(--font-size-small);color:var(--muted-color)}.code-scrubber{background:var(--panel-color);border:1px solid var(--accent-border);box-shadow:0 4px 14px var(--page-background);font-family:var(--font-monospace);font-size:var(--font-size-medium);border-radius:3px}.code-scrubber-name,.code-scrubber-bound{background:var(--panel-color);border:1px solid var(--accent-border);color:var(--text-color);font-family:var(--font-monospace);font-size:var(--font-size-medium);border-radius:2px}.code-scrubber-slider{accent-color:var(--accent-color)}.code-scrubber-value{color:var(--accent-color);text-align:right}.code-scrubber-field{background:var(--panel-color);border:1px solid var(--accent-border);font-family:var(--font-monospace);font-size:var(--font-size-medium);appearance:textfield;border-radius:2px}.code-scrubber-field:focus{border-color:var(--accent-color);outline:none}.code-scrubber-field::-webkit-inner-spin-button{-webkit-appearance:none}.code-scrubber-field::-webkit-outer-spin-button{-webkit-appearance:none}.code-scrubber-tag{color:var(--border-color)}.code-scrubber-close{color:var(--border-color);cursor:pointer;font-size:var(--font-size-medium);background:0 0;border:none;line-height:1}.code-scrubber-close:hover{color:var(--text-color)}.code-scrubber-promote{background:var(--panel-color);border:1px solid var(--accent-border);color:var(--accent-color);cursor:pointer;font-family:var(--font-monospace);font-size:var(--font-size-small);white-space:nowrap;border-radius:2px}.code-scrubber-promote:hover{background:var(--accent-border);color:var(--text-color)}.code-scrubber-axis{color:var(--border-color);text-align:center}.code-scrubber-newname{background:var(--panel-color);border:1px solid var(--accent-border);color:var(--text-color);font-family:var(--font-monospace);font-size:var(--font-size-small);border-radius:2px}.code-scrubber-newname::placeholder{color:var(--border-color)}.code-scrubber-note{color:var(--border-color);font-size:var(--font-size-small);white-space:nowrap}#code-sketch{font-family:var(--font-monospace);font-size:var(--font-size-medium);color:var(--muted-color)}.code-sketch-head{color:var(--border-color);letter-spacing:.1em;text-transform:uppercase;font-size:var(--font-size-small)}.code-sketch-label{color:var(--muted-color);text-overflow:ellipsis}.code-sketch-input{background:var(--panel-color);border:1px solid var(--accent-border);color:var(--text-color);font-family:var(--font-monospace);font-size:var(--font-size-medium);border-radius:2px}.code-sketch-meta{color:var(--border-color);font-size:var(--font-size-small)}.code-sketch-del,.code-sketch-add{color:var(--border-color);cursor:pointer;font-family:var(--font-monospace);font-size:var(--font-size-medium);background:0 0;border:1px solid #0000}.code-sketch-add{border-color:var(--accent-border);background:var(--panel-color)}.code-sketch-del:hover,.code-sketch-add:hover{color:var(--text-color);background:var(--accent-border)}.code-sketch-empty{color:var(--border-color)}.code-live-value{font-style:italic;color:var(--accent-color)!important}.code-sketch-weight{accent-color:var(--accent-color)}.code-capture-cancel{color:var(--error-color);border-color:var(--accent-border)}.code-capture-cancel:not(:disabled):hover{color:var(--text-color);background:var(--accent-border);border-color:var(--error-color)}.code-sketch-time{background:var(--panel-color);border-radius:2px}.code-sketch-time-bar{background:var(--muted-color);border-radius:1px}.code-sketch-time.playing .code-sketch-time-bar{background:var(--muted-color)}#canvas-parent.letterboxed canvas{background:var(--page-background)}#code-capture{font-family:var(--font-monospace);font-size:var(--font-size-medium);color:var(--muted-color)}#code-capture select.code-sketch-input{cursor:pointer}.code-sketch-thumbnail{background:var(--surface-color)}.code-sketch-save{font-family:var(--font-monospace);font-size:var(--font-size-small);letter-spacing:.1em;color:var(--muted-color);background:var(--panel-color);border:1px solid var(--accent-border);cursor:pointer;border-radius:2px}.code-sketch-save:hover:not(:disabled){color:var(--text-color);background:var(--accent-border)}.code-sketch-save:disabled{opacity:.35;cursor:default}.code-sketch-save.dirty{color:var(--accent-color);border-color:var(--accent-border)}#account-scrim,#revision-scrim{background:var(--page-background);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text-color)}#room-presence{color:var(--text-color);font:var(--font-size-medium) var(--font-monospace);background:var(--surface-color);border:1px solid var(--border-color)}.room-person:before{content:"";background:var(--room-person-color);border-radius:50%}#room-presence button{color:inherit;font:inherit;background:var(--panel-color);border:1px solid var(--border-color)}#room-pointers{pointer-events:none}.room-pointer{color:var(--room-person-color);border-top:.8rem solid;border-right:.5rem solid #0000;transition:left .18s linear,top .18s linear}.room-pointer span{color:var(--surface-color);white-space:nowrap;font:var(--font-size-medium) var(--font-monospace);background:var(--room-person-color)}.room-active-other{outline:2px solid var(--room-person-color);outline-offset:2px}.yRemoteSelectionHead:after{color:var(--surface-color);white-space:nowrap;font:var(--font-size-small) var(--font-monospace)}#account-form{background:var(--panel-color);border:1px solid var(--border-color)}#account-form h1{font-size:var(--font-size-large)}#account-form input,#account-form button,#library-panel button,#revision-panel button{font:inherit}#account-form input{color:var(--text-color);background:var(--surface-color);border:1px solid var(--border-color)}#account-form button{color:var(--button-color);background:var(--button-background);border-color:var(--accent-border)}#browse-new,#browse-new-room{color:var(--button-color);background:var(--button-background);border:2px solid var(--accent-border);font:bold var(--font-size-main) var(--font-monospace);text-align:left;cursor:pointer}#browse-new-room{border-width:1px}#browse-account{font:bold var(--font-size-main) var(--font-monospace)}#account-error,#library-status{color:var(--error-color)}#browse-page,#admin-page,#revision-scrim,#user-page,#home-page{color:var(--text-color);background:var(--surface-color)}#home-panel{text-align:center}#home-panel h1,#home-panel p{font-size:var(--font-size-large)}#home-new-shader{color:var(--button-color);background:var(--button-background);border:2px solid var(--accent-border);font:bold var(--font-size-main) var(--font-monospace);text-decoration:none}#library-panel,#admin-panel,#revision-panel,#user-panel{background:var(--surface-color);border:1px solid var(--border-color)}.user-info{border-bottom:1px solid var(--border-color)}#user-form input{color:var(--text-color);background:var(--panel-color);border:1px solid var(--accent-border)}#user-form>button,#user-logout{color:var(--button-color);background-color:var(--button-background);cursor:pointer;border:1px solid}#library-tabs button,#revision-close{color:inherit;background:var(--panel-color);border:1px solid var(--border-color)}#library-tabs button.active{color:var(--surface-color);background:var(--text-color)}.library-card{text-align:left;color:inherit;font:inherit;background:var(--panel-color);border:1px solid var(--border-color);cursor:pointer;text-decoration:none}.library-card img,.library-card-placeholder{background:var(--page-background)}.library-category-heading{color:var(--accent-color);font-size:var(--font-size-main)}.library-card-copy small{color:var(--muted-color)}.library-card-copy button{color:var(--button-color);background-color:var(--button-background);font-size:var(--font-size-small);cursor:pointer;border:1px solid}.library-card-public{color:var(--surface-color);background:var(--button-background);font:bold var(--font-size-medium) var(--font-monospace)}#admin-categories,#admin-rooms{border-top:1px solid var(--border-color)}.admin-room-row{border:1px solid var(--border-color)}.admin-room-row button,#admin-room-new{color:inherit;background:var(--panel-color);border:1px solid var(--border-color)}#admin-room-status{color:var(--error-color)}#admin-category-new{color:inherit;background:var(--panel-color);border:1px solid var(--accent-border)}.revision-row{text-align:left;color:inherit;background:var(--panel-color);border:1px solid var(--border-color)}#admin-form{border:1px solid var(--border-color)}#admin-form input,#admin-form select,#admin-form button,.admin-user-row button{color:inherit;background:var(--panel-color);border:1px solid var(--border-color)}#admin-error{color:var(--error-color)}.admin-user-row{border:1px solid var(--border-color)}.code-sketch-note{resize:vertical}.code-sketch-metadata-actions button{color:var(--button-color);background:var(--button-background);border-color:var(--accent-border);cursor:pointer}.code-sketch-readonly-notice{color:var(--error-color);background:var(--panel-color);border:1px solid var(--accent-border);line-height:1.4}.code-sketch-readonly-notice a{color:var(--accent-color)}.code-sketch-save-state{font-size:var(--font-size-medium)}.code-sketch-save-state.ok{color:var(--muted-color)}.code-sketch-save-state.error{color:var(--error-color)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{overflow:auto}html,body{width:100%;height:100%;position:relative}#canvas-parent{width:100%;height:100%;display:block}#canvas-parent canvas{width:100%;height:100%}#loading-overlay{z-index:10;width:100%;height:100%;position:absolute;top:0;left:0}@media (max-width:900px){#code-header .code-tab,#code-tabs .code-tab{min-height:40px;padding:6px 14px}}#app-row{flex-direction:row;flex:auto;min-height:0;display:flex;position:relative}.header{height:var(--header-height);z-index:100;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.header-left,.header-right{align-items:center;gap:.5rem;padding:.3rem 1cap;display:flex}.header button{padding:.3rem}#header-title-class{padding-left:.2rem}#header-editing[hidden]{display:none}#viewport-column{flex-direction:column;flex:auto;min-width:0;height:100%;display:flex;position:relative}#canvas-container{flex:auto;width:100%;min-height:0;position:relative}#code-panel{flex:0 0 var(--code-width);width:var(--code-width);z-index:10;height:100%;display:none;position:relative;overflow:hidden}#code-panel.visible{flex-direction:column;display:flex}#code-header{flex-direction:column;flex:none;justify-content:flex-end;align-items:stretch;gap:1px;display:flex;position:relative;overflow:visible}#code-more-menu{z-index:20;flex-direction:column;min-width:110px;padding:4px;display:flex;position:absolute;top:100%;right:0}#code-more,#code-more-menu[hidden]{display:none}.code-header-row{justify-content:flex-end;align-items:stretch;min-height:0;display:flex}#code-header>.code-header-row{flex-direction:column}.code-header-row[hidden]{display:none}#code-editor-row,#code-settings-row{width:100%}#code-editor-row .code-tab-edit{flex:auto;width:100%}#code-header::-webkit-scrollbar{display:none}#code-content,#code-editor-parent{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}#code-tabs .code-tab{flex:none;padding:6px 10px}#code-tabs{flex:none;align-items:stretch;gap:1px;display:flex;overflow:auto hidden}#code-tabs::-webkit-scrollbar{display:none}#code-header .code-tab{flex:none;padding:6px 10px}#code-header .code-tab-edit{flex:auto;width:100%}#code-header .code-tab.dirty:after,#code-tabs .code-tab.dirty:after{margin-left:6px}#code-editor{flex-direction:column;flex:auto;width:100%;min-height:0;display:flex}#code-editor-mount{flex:auto;width:100%;min-height:0}#code-actions{flex:none;align-items:center;gap:6px;padding:5px 6px;display:flex}#code-actions button{padding:3px 12px}#code-font{gap:4px;margin-left:auto;display:flex}#code-actions #code-font button{min-width:24px;padding:3px 8px}#code-auto{align-items:center;gap:4px;display:flex}#code-auto input{margin:0}#code-status{flex:none;padding:4px 10px;overflow:hidden}#code-panel-resize-handle{left:var(--code-width);z-index:15;width:6px;height:100%;display:none;position:fixed;top:0}#code-panel-resize-handle.visible{display:block}#code-panel-resize-handle:after{width:2px;height:32px;position:absolute;top:50%;left:2px;transform:translateY(-50%)}#dev-panel{flex:0 0 var(--sidebar-width);width:var(--sidebar-width);z-index:10;height:100%;display:none;position:relative;overflow:hidden}#dev-panel.visible{flex-direction:column;display:flex}#dev-panel .gui_root.gui_panel{box-sizing:border-box;flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}#dev-panel .gui_root .tl-keyframe-btn .icon.gui_icon_dot{transform:rotate(45deg)}#dev-panel .gui_root .tweak_lock{width:1lh;height:1lh;display:none;position:absolute;top:0;left:0}#dev-panel.lock_mode .gui_root .label>.tweak_lock{display:flex}#dev-panel.lock_mode .gui_root .label:has(>.tweak_lock){padding-left:1lh}#dev-panel .gui_root .tweak_lock .gui_icon_unlock{display:none}#dev-panel .gui_root .row.lock_tint .tweak_lock .gui_icon_unlock{display:flex}#dev-panel .gui_root .row.lock_tint .tweak_lock .gui_icon_lock{display:none}#dev-panel .panel_header{flex:none}#dev-panel .panel_content{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}#dev-panel .panel_content>*{flex:none}#dev-panel .panel_scroll{flex:auto;min-height:0;overflow-y:auto}#dev-panel .watched_footer{flex:none;max-height:40%;overflow-y:auto}#dev-panel-resize-handle{right:var(--sidebar-width);z-index:15;width:6px;height:100%;display:none;position:fixed;top:0}#dev-panel-resize-handle.visible{display:block}#dev-panel-resize-handle:after{width:2px;height:32px;position:absolute;top:50%;left:2px;transform:translateY(-50%)}#debug-error{z-index:90;padding:2%;display:none;position:absolute;inset:0}#pause-btn{z-index:20;justify-content:center;align-items:center;width:2rem;height:2rem;display:flex;position:absolute;bottom:3.75rem;left:50%;transform:translate(-50%)}#pause-btn.hidden{display:none}.icon-btn{bottom:calc(1rem + var(--bottom-ui-offset));z-index:20;justify-content:center;align-items:center;width:1.3rem;height:1.3rem;padding:0;display:none;position:absolute}.icon-btn svg{width:.8rem;height:.8rem}#menu-btn{left:1.5rem}#app-content{top:var(--header-height);flex-direction:column;width:100%;height:auto;min-height:0;display:flex;position:fixed;bottom:0;left:0;right:0}#menu-scrim{z-index:100;display:flex;position:absolute;inset:0}#menu-scrim[hidden]{display:none}#menu-fullscreen-square{z-index:101;width:7rem;height:7rem;padding:.5rem;position:fixed;bottom:1rem;right:1rem}#menu-sidebar{min-width:11rem;max-width:80vw;padding:.75rem 0;padding-left:env(safe-area-inset-left,0px);flex-direction:column;gap:1px;display:flex;overflow-y:auto}.menu-item{flex:none;width:100%;min-height:44px;padding:.6rem 1.25rem;display:block}.menu-heading{flex:none;margin-top:.5rem;padding:.9rem 1.25rem .35rem}#menu-sketches{flex-direction:column;flex:auto;gap:1px;min-height:0;padding:0 .5rem .5rem;display:flex;overflow-y:auto}.menu-autosaves{flex:none;margin-bottom:.25rem}.menu-autosaves-summary{align-items:center;gap:.5rem;min-height:36px;padding:.35rem .25rem;display:flex}.menu-autosaves-summary::-webkit-details-marker{display:none}.menu-autosaves[open]>.menu-autosaves-summary:before{transform:rotate(90deg)}.menu-autosaves-list{flex-direction:column;gap:1px;padding-bottom:.25rem;display:flex}.menu-sketch{flex:none;align-items:center;gap:.5rem;width:100%;padding:.25rem;display:flex}.menu-sketch-separator{flex:none;margin:.75rem 0 .25rem;padding:0 .25rem .25rem}.menu-sketch .menu-sketch-thumb{width:3rem;aspect-ratio:var(--thumbnail-aspect-ratio,1 / 3);flex:none;overflow:hidden}.menu-sketch .menu-sketch-thumb img{object-fit:cover;width:100%;height:100%}.menu-sketch .menu-sketch-name{flex:auto;min-width:0;overflow:hidden}#menu-timeline{display:none}body.has-timeline #menu-timeline{display:block}body.timelines-disabled #menu-timeline,body.timelines-disabled #timeline-panel,body.timelines-disabled #timeline-panel-resize-handle{display:none!important}#menu-new-sketch{display:none}body.can-create-sketch #menu-new-sketch{display:block}#menu-panels,body.panels-hidden #code-panel,body.panels-hidden #code-panel-resize-handle,body.panels-hidden #dev-panel,body.panels-hidden #dev-panel-resize-handle,body.panels-hidden #timeline-panel,body.panels-hidden #timeline-panel-resize-handle,body.no-native-fullscreen #menu-fullscreen,body.panels-forced-hidden #menu-panels{display:none}.icon-btn.visible{display:flex}#preset-container{z-index:20;flex-direction:row;align-items:stretch;display:none;position:absolute;bottom:3.5rem;left:50%;transform:translate(-50%)}#preset-container.visible{display:flex}#preset-prev,#preset-next{justify-content:center;align-items:center;width:2rem;display:flex}#preset-name{width:11rem;padding:.375rem .875rem}#replay-btn{bottom:calc(1.5rem + var(--bottom-ui-offset));z-index:20;padding:.375rem .875rem;display:none;position:absolute;right:50%;transform:translate(50%)}#touch-btn{z-index:100;justify-content:center;align-items:center;width:16vh;height:16vh;display:flex;position:absolute;top:75%;left:50%;transform:translate(-50%,-50%)}#touch-btn:before{z-index:-1;position:absolute;inset:0}#timeline-panel{flex:0 0 var(--timeline-height,120px);width:100%;height:var(--timeline-height,120px);z-index:10;display:none;position:relative;overflow:hidden}body.has-timeline #timeline-panel{flex-direction:column;display:flex}#timeline-panel.tl-system-disabled:after{z-index:50;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#timeline-panel .gui_root.gui_panel{box-sizing:border-box;flex-direction:column;gap:3px;width:100%;height:100%;padding:4px 8px;display:flex;overflow:hidden}#timeline-panel .gui_root.gui_panel>*{flex:none}#timeline-panel-resize-handle{left:0;right:var(--sidebar-width);bottom:var(--timeline-height,120px);z-index:15;height:4px;display:none;position:fixed}body.has-timeline #timeline-panel-resize-handle{display:block}body.timeline-collapsed #timeline-panel,body.timeline-collapsed #timeline-panel-resize-handle{display:none}#timeline-panel .gui_root.gui_panel>.tl-transport{flex:none;align-items:center}.tl-time{min-width:92px}#timeline-panel .gui_root.gui_panel>.tl-body{--tl-label-w:120px;flex-direction:column;flex:auto;gap:2px;min-height:0;display:flex;position:relative}.tl-track-label{flex:0 0 var(--tl-label-w);width:var(--tl-label-w);box-sizing:border-box;justify-content:flex-end;align-items:center;padding-right:8px;display:flex;overflow:hidden}.gui_root .tl-track-label.tl-section-btns{flex:0 0 var(--tl-label-w);width:var(--tl-label-w);box-sizing:border-box;justify-content:flex-end;align-items:center;gap:2px;padding-right:8px;display:flex}.tl-lane,.gui_root .tl-track-header>.tl-lane{flex:auto;min-width:0;position:relative;overflow:hidden}.tl-row.tl-ruler{flex:none;height:26px;margin-bottom:2px;display:flex}.tl-section-band{box-sizing:border-box;height:26px;position:absolute;top:0;overflow:hidden}.tl-track-header .tl-section-band{height:22px}.tl-section-band span{padding-left:4px}.tl-section-playback{width:12px;height:12px;position:absolute;top:50%;right:3px;transform:translateY(-50%)}.tl-section-playback svg{width:100%;height:100%}.tl-section-handle{z-index:3;width:5px;position:absolute;top:0;bottom:0}.tl-section-handle[data-edge=start]{margin-left:0}.tl-section-handle[data-edge=end]{margin-left:-5px}.tl-tick{width:1px;height:26px;position:absolute;top:0}.tl-tick span{position:absolute;top:11px;left:3px}.tl-kfd{box-sizing:border-box;z-index:2;width:9px;height:9px;position:absolute;top:50%;transform:translate(-50%,-50%)rotate(45deg)}#timeline-panel .gui_root .tl-body .tl-tracks-rest{flex-direction:column;flex:auto;gap:2px;min-height:0;padding-top:2px;display:flex;overflow-y:auto}.tl-track,.gui_root .tl-body .tl-track.tl-track-header{flex:none;height:22px;display:flex}.tl-secline{width:1px;height:22px;position:absolute;top:0}.tl-curve{width:calc(100% - 4px);height:calc(100% - 4px);position:absolute;inset:2px}.tl-gradient{width:calc(100% - 4px);height:calc(100% - 8px);position:absolute;inset:4px 2px}.tl-marker{box-sizing:border-box;width:9px;height:9px;position:absolute;top:50%;transform:translate(-50%,-50%)rotate(45deg)}.tl-empty{padding:10px}.tl-playhead{z-index:5;width:2px;height:22px;margin-left:-1px;position:absolute;top:0}.tl-playhead-ruler{height:26px}.tl-playhead-snapped{z-index:4}.tl-playhead i{position:absolute;top:0;left:50%;transform:translate(-50%)}#timeline-panel .gui_root.gui_panel>.tl-selrow,#timeline-panel .gui_root.gui_panel>.tl-sections,#timeline-panel .gui_root.gui_panel .tl-selrow-actions{flex:none;align-items:center}.tl-selname{min-width:110px}.code-scrubber{z-index:40;padding:5px 6px}.code-scrubber-row{align-items:center;gap:5px;display:flex}.code-scrubber-name,.code-scrubber-bound{padding:2px 4px}.code-scrubber-name{width:92px}.code-scrubber-bound{width:54px}.code-scrubber-slider{width:150px}.code-scrubber-value{min-width:52px}.code-scrubber-field{box-sizing:border-box;width:52px;padding:1px 3px}.code-scrubber-field::-webkit-inner-spin-button{margin:0}.code-scrubber-field::-webkit-outer-spin-button{margin:0}.code-scrubber-tag,.code-scrubber-close{padding:0 2px}.code-scrubber-promote{padding:2px 6px}.code-scrubber-axis{width:10px}.code-scrubber-newname{width:74px;padding:2px 4px}.code-scrubber-bounds{padding-bottom:2px}.code-scrubber-boundspan{justify-content:space-between;width:150px;display:flex}#code-sketch{flex:auto;min-height:0;padding:8px 10px;overflow-y:auto}.code-sketch-head{margin:10px 0 4px}.code-sketch-head:first-child{margin-top:0}.code-sketch-row{align-items:center;gap:6px;padding:2px 0;display:flex}.code-sketch-label{flex:0 0 78px;overflow:hidden}.code-sketch-input{flex:auto;min-width:0;padding:2px 5px}.code-sketch-meta{flex:auto}.code-sketch-del,.code-sketch-add{padding:1px 6px}.code-sketch-empty{padding:2px 0}.code-sketch-weight{flex:0 0 70px}.code-capture-scrub{flex:auto;width:100%;min-width:0}.code-capture-cancel-row{margin-top:4px}.code-capture-cancel{width:100%}.code-capture-cancel:disabled{display:none}.code-sketch-time{flex:0 0 46px;height:3px;position:relative}.code-sketch-time-bar{width:2px;height:7px;position:absolute;top:-2px;transform:translate(-1px)}#canvas-parent.letterboxed canvas{object-fit:contain}#code-capture{flex:auto;min-height:0;padding:8px 10px;overflow-y:auto}.code-sketch-bar{gap:6px;margin-bottom:8px;display:flex}.code-sketch-settings-row{grid-template-columns:100px minmax(0,1fr);align-items:start;gap:10px;display:grid}.code-sketch-thumbnail-column,.code-sketch-settings-column{min-width:0}.code-sketch-thumbnail-column{flex-direction:column;gap:6px;display:flex}.code-sketch-thumbnail{width:100px;aspect-ratio:var(--thumbnail-aspect-ratio,1 / 3);object-fit:cover;display:block}.code-sketch-settings-actions{gap:6px;margin-bottom:8px;display:flex}.code-sketch-save{flex:auto;padding:4px 8px}button{margin:2px}button[hidden],#dev-panel .panel_actions,#dev-panel .panel_footer,.gui_root .panel_footer,#dev-panel .random_bar_legacy{display:none!important}#account-scrim,#revision-scrim{z-index:10000;position:fixed;inset:0}#account-scrim[hidden],#revision-scrim[hidden],#browse-page[hidden],#admin-page[hidden],#admin-form[hidden],#header-admin[hidden]{display:none}#room-presence{z-index:111;flex-wrap:wrap;gap:.45rem;max-width:calc(100% - 1.5rem);padding:.45rem .6rem;display:flex;position:absolute;top:.75rem;left:.75rem}#room-presence[hidden]{display:none}.room-person:before{width:.55rem;height:.55rem;margin-right:.25rem;display:inline-block}#room-presence button{padding:.1rem .35rem}#room-pointers{z-index:110;position:fixed;inset:0;overflow:hidden}.room-pointer{width:0;height:0;position:absolute;transform:translate(-.15rem,-.15rem)rotate(-35deg)}.room-pointer span{padding:.15rem .3rem;position:absolute;top:.2rem;left:.45rem;transform:rotate(35deg)}.yRemoteSelectionHead{position:relative}.yRemoteSelectionHead:after{z-index:20;padding:1px 4px;position:absolute;bottom:100%;left:-2px}#account-scrim{place-items:center;display:grid}#account-form{gap:1rem;width:min(25rem,100vw - 2rem);padding:2rem;display:grid}#account-form h1{margin:0 0 .5rem}#account-form label{gap:.4rem;display:grid}#account-form input,#account-form button{padding:.75rem}#browse-create-actions{gap:.6rem;width:min(28rem,100%);margin:0 0 1.25rem;display:grid}#browse-new,#browse-new-room{width:100%;padding:1rem 1.25rem;display:block}#browse-new-room[hidden]{display:none}#browse-actions{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}#browse-account{align-items:center;gap:.75rem;display:flex}#browse-user-settings{padding:.75rem 1rem}#account-error,#library-status{min-height:1.2em}#browse-page,#admin-page,#revision-scrim,#user-page,#home-page{min-height:100vh;padding:calc(var(--header-height) + 1rem) 1rem 1rem;overflow:auto}#home-panel{width:min(48rem,100%);margin:12vh auto 0}#home-panel h1{margin-bottom:3rem}#home-new-shader{margin-top:1rem;padding:1.25rem 2rem;display:inline-block}#library-panel,#admin-panel,#revision-panel,#user-panel{width:min(72rem,100%);min-height:calc(100vh - 2rem);margin:0 auto;padding:1.25rem}#user-panel{max-width:36rem}#user-panel h1{margin-top:0}#user-form{gap:.75rem;display:grid}#user-form label{gap:.35rem;display:grid}.user-info{justify-content:space-between;gap:1rem;padding:.65rem 0;display:flex}#user-form input{padding:.65rem}#user-status{min-height:1.2em}#user-logout{margin-top:2rem}#user-form>button,#user-logout{width:100%;padding:.5rem .8rem}#library-header,.admin-header,.revision-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}#library-tabs{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}#library-tabs button,#revision-close{padding:.55rem .8rem}#library-sketches{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:1rem;display:grid}.library-card{grid-template-rows:auto 1fr;padding:0;display:grid;position:relative;overflow:hidden}.library-card img,.library-card-placeholder{aspect-ratio:3/4;object-fit:cover;width:100%;height:280px}.library-category-heading{grid-column:1/-1;margin:1rem 0 .25rem}.library-card-copy{gap:.25rem;padding:.7rem;display:grid}.library-card-copy button{align-self:flex-start;margin-top:.65rem;padding:.3rem}.library-card-public{z-index:1;padding:.25rem .4rem;position:absolute;top:.6rem;right:.6rem}.admin-category-row{align-items:center;gap:.5rem;margin:.35rem 0;display:flex}.admin-category-row strong{flex:1}#admin-categories,#admin-rooms{margin-top:2rem;padding-top:1rem}#admin-section-rooms,#admin-room-list{gap:.5rem;margin-top:.75rem;display:grid}.admin-room-row{grid-template-columns:minmax(10rem,1fr) minmax(8rem,1fr) auto auto auto;align-items:center;gap:.75rem;padding:.7rem;display:grid}.admin-room-row button,#admin-room-new{padding:.65rem}#admin-room-status{min-height:1.2em;margin-top:.75rem}#admin-categories-status{min-height:1.2em}#admin-category-add{gap:.5rem;margin:.75rem 0;display:flex}#admin-category-new{flex:1;padding:.5rem}#revision-list{gap:.5rem;margin-top:1rem;display:grid}.revision-row{justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:.8rem;display:flex}.revision-thumbnail{object-fit:cover;vertical-align:middle;width:3rem;height:3rem;margin-right:.5rem}body.online-readonly #code-save,body.online-readonly #code-save-sketch,#library-all[hidden]{display:none!important}@media (max-width:760px){#library-sketches{grid-template-columns:repeat(2,minmax(0,1fr))}}#admin-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0 2rem;padding:1rem;display:grid}#admin-form label{gap:.35rem;display:grid}#admin-form input,#admin-form select,#admin-form button,.admin-user-row button{padding:.65rem}.admin-form-actions,#admin-error{grid-column:1/-1}#admin-users{gap:.5rem;display:grid}.admin-user-row{grid-template-columns:1fr 1fr 1fr auto;align-items:center;gap:1rem;padding:.7rem;display:grid}.code-sketch-note{min-height:6rem}.code-sketch-metadata-actions{flex-wrap:wrap;gap:.4rem;display:flex}.code-sketch-metadata-actions button{padding:.5rem .7rem}.code-sketch-readonly-notice{margin:0 0 .75rem;padding:.65rem .75rem}.code-sketch-save-state{min-height:1.5em;margin:0 0 8px}@media (max-width:700px){#admin-form{grid-template-columns:1fr}.admin-user-row{grid-template-columns:1fr auto}}
