@font-face{font-family:PP Mondwest;src:url(../font/ppmondwest-regular.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Sometype Mono;src:url(../font/sometype-mono-400.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Sometype Mono;src:url(../font/sometype-mono-500.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Sometype Mono;src:url(../font/sometype-mono-700.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:m5x7;src:url(../font/m5x7.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--jw-dark-wood: #1e2421;--jw-dark-indigo: #243d5c;--jw-warm-brown: #3c4a42;--jw-gray-teal: #5d7275;--jw-teal: #5c8b93;--jw-forest: #3e6958;--jw-peach: #d9ac8b;--jw-cream: #e3cfb4;--jw-paper: #ece8e1;--jw-khaki: #b1a58d;--jw-vermillion: #b03a48;--jw-persimmon: #d4804d;--jw-gold: #e0c872;--jw-bg-deep: #161c19;--jw-bg-elevated: #1c2320;--jw-border-dim: #2c3a34;--jw-border-dimmest: #1a221e;--brand: var(--jw-persimmon);--white: var(--jw-cream);--canvas-max-width: 768px;--moss-brand: var(--jw-persimmon);--moss-brand-glow: var(--jw-gold);--moss-bg-page: var(--jw-dark-wood);--moss-bg-card: var(--jw-bg-deep);--moss-bg-elevated: var(--jw-bg-elevated);--moss-bg-input: #131916;--moss-border: var(--jw-warm-brown);--moss-border-subtle: var(--jw-border-dim);--moss-border-dimmest: var(--jw-border-dimmest);--moss-text-primary: var(--jw-cream);--moss-text-secondary: var(--jw-khaki);--moss-text-muted: var(--jw-gray-teal);--moss-text-disabled: #4a5652;--moss-error: var(--jw-vermillion);--moss-success: var(--jw-forest);--moss-link: var(--jw-teal);--moss-hover-bg: rgba(212, 128, 77, .08);--moss-active-bg: rgba(212, 128, 77, .15);--moss-focus-ring: rgba(212, 128, 77, .5);--moss-btn-highlight: var(--jw-warm-brown);--moss-btn-shadow: #1a211e;--font-mono: "Sometype Mono", "Monaco", Courier, monospace;--text-3xs: .5rem;--text-2xs: .625rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.75rem;--text-4xl: 2rem;--text-5xl: 2.5rem;--text-6xl: 3rem;--text-7xl: 3.5rem;--text-8xl: 4rem;--radius-sm: 8px;--radius-md: 8px;--radius-lg: 8px;--space-px: 1px;--space-2xs: 2px;--space-3: 3px;--space-xs: 4px;--space-5: 5px;--space-6: 6px;--space-7: 7px;--space-sm: 8px;--space-10: 10px;--space-md: 12px;--space-14: 14px;--space-lg: 16px;--space-20: 20px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 40px;--space-4xl: 48px;--space-5xl: 64px;--space-6xl: 80px;--space-7xl: 120px;--moss-scroll-track: var(--jw-bg-deep);--moss-scroll-thumb: var(--jw-border-dim);--moss-scroll-hover: var(--jw-warm-brown);--moss-scroll-width: 8px;--moss-scroll-radius: 4px;--moss-shadow-inset: rgba(0, 0, 0, .2);--moss-shadow-md: rgba(0, 0, 0, .3);--moss-shadow-lg: rgba(0, 0, 0, .4);--moss-shadow-heavy: rgba(0, 0, 0, .5);--moss-overlay: rgba(0, 0, 0, .6);--moss-bg-menu: rgba(22, 28, 25, .9);--moss-bg-scrim: rgba(22, 28, 25, .97);--moss-active-bg-subtle: rgba(212, 128, 77, .06);--moss-brand-faint: rgba(212, 128, 77, .08);--moss-brand-mild: rgba(212, 128, 77, .12);--moss-brand-ghost: rgba(212, 128, 77, .25);--moss-border-hover: rgba(227, 207, 180, .4);--moss-teal-faint: rgba(92, 139, 147, .12);--moss-teal-subtle: rgba(92, 139, 147, .15);--moss-teal-select: rgba(92, 139, 147, .25);--moss-teal-select-focus: rgba(92, 139, 147, .35);--moss-gold-faint: rgba(224, 200, 114, .06);--moss-syn-keyword: var(--jw-vermillion);--moss-syn-def: var(--jw-persimmon);--moss-syn-variable: var(--jw-cream);--moss-syn-variable-2: var(--jw-teal);--moss-syn-string: var(--jw-gold);--moss-syn-number: var(--jw-peach);--moss-syn-atom: var(--jw-peach);--moss-syn-property: var(--jw-khaki);--moss-syn-builtin: var(--jw-teal);--moss-syn-comment: var(--jw-gray-teal);--moss-syn-bracket: #624c3c;--moss-syn-operator: var(--jw-khaki);--moss-syn-meta: var(--jw-teal);--moss-syn-error-bg: var(--jw-vermillion);--moss-syn-error-fg: var(--jw-cream);--moss-syn-matching: var(--jw-gold);--moss-syn-nonmatching: var(--jw-vermillion)}html,body{font-family:var(--font-mono);font-size:16px;margin:0;padding:0;height:100%;background:var(--moss-page-bg-color, var(--moss-bg-page));color:var(--moss-text-primary);overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;overscroll-behavior:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:url(../font/grid.png) repeat;image-rendering:pixelated;mix-blend-mode:screen;opacity:.2;pointer-events:none;z-index:0;transition:opacity .4s ease}body.has-hero-pattern:before{background-image:var(--hero-pattern-image);background-repeat:repeat;image-rendering:auto;mix-blend-mode:screen;opacity:.08}img,a,button,[role=button]{-webkit-touch-callout:none}button,input,select,textarea{font-family:inherit}button,.btn,[role=button],input[type=range],input[type=color],.brush-slot,.palette-swatch,.toolbar-btn{touch-action:manipulation}::selection{background:var(--jw-forest)}input:focus{outline:none;border:none}.pad-title{color:var(--moss-text-muted);cursor:default;font-family:"PP Mondwest",var(--font-mono);font-size:1.35rem;line-height:1.65;padding:var(--space-xs);border-radius:var(--radius-sm);transition:color .15s,background .15s;-webkit-user-select:none;user-select:none;word-wrap:break-word;overflow-wrap:break-word}.pad-title:not(.pad-title-readonly):hover{color:var(--moss-brand);background:var(--moss-bg-elevated);cursor:text}.pad-title-readonly{color:var(--moss-text-muted)}.pad-title-input,.pad-title-input:focus{background:transparent;border:none;color:var(--moss-brand);font-family:"PP Mondwest",var(--font-mono);font-size:1.35rem;line-height:1.65;padding:0;width:100%;resize:none;overflow:hidden;outline:none;box-shadow:none}.hidden{display:none!important}body.scene-loading{cursor:wait}#scene-stage{display:flex;justify-content:center;align-items:stretch;overflow-y:auto;height:100vh;height:100dvh;padding:var(--space-xl);box-sizing:border-box;transition:padding .4s ease}#scene-pane{position:relative;display:flex;flex-direction:column;max-width:1200px;min-width:600px;width:100%;margin-block:auto;padding:var(--space-3xl);border:2px solid var(--moss-border-subtle);border-radius:var(--radius-sm);background:var(--moss-bg-card);font-size:var(--text-lg);overflow:hidden;transition:max-width .4s ease,min-width .4s ease,padding .4s ease,border .4s ease,border-radius .4s ease;view-transition-name:card}#code-pane{display:flex;flex-direction:column;flex:0;min-width:0;max-width:0;overflow:hidden;opacity:0;transition:flex .4s ease,min-width .4s ease,max-width .4s ease,opacity .3s ease .1s}#scene-stage.editor-layout{flex-direction:column;align-items:stretch;position:relative;height:auto;flex:1;padding:var(--space-20);padding-bottom:var(--space-3xl);border:2px solid var(--moss-border);border-radius:var(--radius-lg);background:var(--moss-bg-card);box-shadow:0 2px 4px var(--moss-shadow-md);overflow:hidden;view-transition-name:card}.editor-body{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.editor-body>#editor-sidebar{border-radius:0;padding:var(--space-md)}#scene-stage.editor-layout #scene-pane{max-width:none;min-width:300px;min-height:0;flex:1;margin-block:0;padding:0;border:none;border-radius:0;background:transparent;box-shadow:none;view-transition-name:none}#scene-stage.editor-layout #code-pane{flex:1;min-width:200px;max-width:none;opacity:1;background:transparent;border:none;border-radius:0;padding:0;box-shadow:none;transition:flex .3s ease,min-width .3s ease,max-width .3s ease,opacity .3s ease}#scene-stage.code-collapsed #code-pane{flex:0;min-width:0;max-width:0;opacity:0;overflow:hidden;pointer-events:none}#scene-stage.code-collapsed .resize-divider-vertical{cursor:pointer;width:28px;background:var(--moss-bg-elevated);border-right:1px solid var(--moss-border-subtle);border-radius:0;position:relative}#scene-stage.code-collapsed .resize-divider-vertical .resize-divider-handle{display:none}#scene-stage.code-collapsed .resize-divider-vertical:after{content:"❯";display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--moss-text-muted);font-size:14px;transition:color .15s}#scene-stage.code-collapsed .resize-divider-vertical:before{content:"See brush code";position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);white-space:nowrap;padding:var(--space-xs) var(--space-sm);border-radius:var(--space-xs);background:var(--moss-bg-elevated);border:1px solid var(--moss-border-subtle);color:var(--moss-text);font-size:var(--text-xs);pointer-events:none;opacity:0;transition:opacity .15s}#scene-stage.code-collapsed .resize-divider-vertical:hover{background:var(--moss-bg-input)}#scene-stage.code-collapsed .resize-divider-vertical:hover:before{opacity:1}#scene-stage.code-collapsed .resize-divider-vertical:hover:after{color:var(--moss-text)}.resize-divider-vertical.snap-collapse .resize-divider-handle{background:var(--moss-brand);opacity:.5}.editor-body .resize-divider-vertical{background:var(--moss-bg-input)}.editor-header{display:flex;align-items:center;gap:var(--space-md);width:100%;flex-shrink:0;z-index:10;border-bottom:1px solid var(--moss-border-subtle);padding-bottom:var(--space-sm)}.editor-header-left{display:flex;align-items:center;gap:var(--space-sm)}.editor-header-center{flex:1;display:flex;justify-content:center;align-items:center;gap:var(--space-md)}.header-tool-pill{display:flex;align-items:center;gap:var(--space-2xs);padding:var(--space-3);background:#000000e6;border-radius:20px;border:1px solid var(--moss-border-subtle)}.pill-divider{width:1px;height:16px;background:var(--moss-border-subtle);margin:0 var(--space-xs);flex-shrink:0}.floating-tool-pill{position:absolute;top:var(--space-md);left:50%;transform:translate(-50%);z-index:5;box-shadow:0 4px 12px #0006}.floating-tool-pill .header-tool-btn{padding:6px 10px}.floating-tool-pill .header-tool-btn svg{width:18px;height:18px}.floating-tool-pill .pill-divider{height:20px}.editor-only-tools{display:flex;align-items:center;gap:var(--space-2xs);max-width:200px;overflow:hidden;transition:max-width .3s ease,opacity .25s ease .05s,gap .3s ease}body.zen-mode .editor-only-tools{max-width:0;opacity:0;gap:0;pointer-events:none;transition:max-width .3s ease,opacity .15s ease,gap .3s ease}.editor-only-action{transition:opacity .25s ease .05s}body.zen-mode .editor-only-action{opacity:0;pointer-events:none;transition:opacity .15s ease}.sidebar-section-header{transition:max-height .3s ease,opacity .25s ease .05s,margin .3s ease;max-height:40px;overflow:hidden}body.zen-mode .sidebar-section-header{max-height:0;opacity:0;margin:0;transition:max-height .3s ease,opacity .15s ease,margin .3s ease}.sidebar-settings-section>.sidebar-section-label{transition:max-height .3s ease,opacity .25s ease .05s,padding .3s ease;max-height:40px;overflow:hidden}body.zen-mode .sidebar-settings-section>.sidebar-section-label{max-height:0;opacity:0;padding:0;transition:max-height .3s ease,opacity .15s ease,padding .3s ease}body.zen-mode .pad-title{font-size:1.65rem;pointer-events:none;padding:var(--space-sm) var(--space-xs) var(--space-md);transition:font-size .3s ease,padding .3s ease,color .15s,background .15s}.iro-picker-wrap,#add-color-btn{transition:max-height .3s ease,opacity .25s ease .05s,padding .3s ease,margin .3s ease;max-height:200px;overflow:hidden}body.zen-mode .iro-picker-wrap,body.zen-mode #add-color-btn{max-height:0;opacity:0;padding:0;margin:0;pointer-events:none;transition:max-height .3s ease,opacity .15s ease,padding .3s ease,margin .3s ease}.header-tool-btn{display:flex;align-items:center;justify-content:center;padding:var(--space-5) var(--space-sm);background:transparent;border:1px solid transparent;border-radius:14px;color:var(--moss-text-muted);cursor:pointer;transition:all .15s}.header-tool-btn:hover{background:var(--moss-bg-elevated);border-color:var(--moss-border-subtle);color:var(--moss-text-primary)}.header-tool-btn:active{transform:scale(.96)}.header-tool-btn.active{background:var(--moss-bg-elevated);border-color:var(--moss-border-subtle);color:var(--moss-text-primary)}.header-tool-btn.disabled,.header-tool-btn:disabled{opacity:.3;cursor:not-allowed}.editor-header-right{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-sm)}.mode-switch{display:inline-flex;background:#00000059;border-radius:20px;padding:3px;gap:2px;flex-shrink:0;border:1px solid var(--moss-border-subtle)}.mode-switch-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-5) var(--space-lg);background:transparent;border:1px solid transparent;border-radius:17px;color:var(--moss-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);cursor:pointer;transition:all .2s;white-space:nowrap}.mode-switch-btn:hover:not(.active){color:var(--moss-text-secondary);background:#ffffff08}.mode-switch-btn.active{background:var(--moss-bg-elevated);border-color:var(--moss-border-subtle);color:var(--moss-text-primary);cursor:default}.mode-switch-icon{width:18px;height:auto;flex-shrink:0}.mode-switch-label{font-size:.75rem;letter-spacing:.03em}.share-btn{position:relative}.share-popover{position:fixed;z-index:100;background:var(--moss-bg-card);border:1px solid var(--moss-border);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:0 4px 16px #00000080;opacity:0;visibility:hidden;transition:all .15s;pointer-events:none}.share-popover.visible{opacity:1;visibility:visible;pointer-events:auto}.share-popover-label{font-family:var(--font-mono);font-size:.7rem;color:var(--moss-text-muted);margin-bottom:var(--space-sm);white-space:nowrap}.share-popover-options{display:flex;gap:var(--space-sm)}.share-option-btn{display:flex;flex-direction:column;align-items:center;gap:var(--space-6);padding:var(--space-10) var(--space-md);background:var(--moss-bg-elevated);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-md);color:var(--moss-text-secondary);cursor:pointer;transition:all .15s;min-width:90px}.share-option-btn:hover{border-color:var(--moss-border);color:var(--moss-text-primary);background:var(--moss-bg-card)}.share-option-btn:active{transform:scale(.96)}.share-option-preview{width:64px;height:64px;border-radius:var(--radius-sm);overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--moss-bg-page);border:1px solid var(--moss-border-subtle)}.share-option-preview svg{color:var(--moss-text-muted)}.share-option-label{font-family:var(--font-mono);font-size:.65rem;white-space:nowrap}.header-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--moss-text-muted);cursor:pointer;transition:all .15s}.header-action-btn:hover{border-color:var(--moss-border);color:var(--moss-text-primary);background:var(--moss-bg-elevated)}.canvas-size-popover{position:fixed;z-index:1000;background:var(--moss-bg-card);border:1px solid var(--moss-border);border-radius:var(--radius-md);padding:var(--space-md);min-width:220px;box-shadow:0 4px 12px #0006}.canvas-size-header{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-sm)}.canvas-size-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-6)}.canvas-size-label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-text-muted);width:14px;flex-shrink:0}.canvas-size-slider{flex:1;height:4px;accent-color:var(--moss-brand)}.canvas-size-input{width:52px;padding:var(--space-2xs) var(--space-xs);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-text-primary);background:var(--moss-bg-input);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-sm);text-align:center}.canvas-size-input:focus{outline:none;border-color:var(--moss-brand)}.canvas-size-presets{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm)}.canvas-size-preset{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-text-secondary);background:var(--moss-bg-elevated);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-sm);padding:var(--space-2xs) var(--space-sm);cursor:pointer;transition:all .15s}.canvas-size-preset:hover{color:var(--moss-text-primary);border-color:var(--moss-border);background:var(--moss-hover-bg)}.template-popover{position:fixed;z-index:1000;background:var(--moss-bg-card);border:1px solid var(--moss-border);border-radius:var(--radius-md);padding:var(--space-sm) 0;width:360px;max-height:60vh;display:flex;flex-direction:column;box-shadow:0 4px 16px #00000080;opacity:0;transform:translateY(8px);transition:opacity .15s ease-out,transform .15s ease-out}.template-popover.visible{opacity:1;transform:translateY(0)}.template-popover-search{margin:0 var(--space-sm) var(--space-6);padding:var(--space-6) var(--space-sm);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-text-primary);background:var(--moss-bg-input);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-sm);outline:none}.template-popover-search:focus{border-color:var(--moss-brand)}.template-popover-list{overflow-y:auto;flex:1;min-height:0}.template-popover-category{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-text-muted);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-sm) var(--space-md) var(--space-xs)}.template-popover-row{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-6) var(--space-md);border:none;background:none;cursor:pointer;text-align:left;color:var(--moss-text-primary);transition:background .1s}.template-popover-row:hover,.template-popover-row.highlighted{background:var(--moss-brand-faint)}.template-popover-row.highlighted{outline:none}.template-popover-icon{flex-shrink:0}.template-popover-blank-icon{display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--moss-text-muted);border:1px dashed var(--moss-border-subtle);border-radius:var(--radius-sm)}.template-popover-info{display:flex;flex-direction:column;gap:var(--space-px);min-width:0}.template-popover-name{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--moss-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.template-popover-desc{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width: 900px){.template-popover{position:fixed;top:auto!important;left:0!important;right:0;bottom:0;width:100%;max-height:60vh;border-radius:var(--radius-md) var(--radius-md) 0 0;border-bottom:none}}.template-popover-view{display:flex;flex-direction:column;min-height:0}.template-popover-view:first-child{flex:1}.ai-row{background:var(--moss-hover-bg)}.ai-row-icon{display:flex;align-items:center;justify-content:center;font-size:18px;border:1px dashed var(--moss-brand);border-radius:var(--radius-sm);color:var(--moss-brand)}.ai-view-header{display:flex;align-items:center;gap:var(--space-6);padding:var(--space-sm) var(--space-sm) var(--space-xs)}.ai-view-title{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--moss-text-primary);flex:1}.ai-back-btn{background:none;border:none;color:var(--moss-text-muted);font-size:16px;cursor:pointer;padding:var(--space-2xs) var(--space-xs);line-height:1}.ai-back-btn:hover{color:var(--moss-text-primary)}.ai-gear-btn{background:none;border:none;color:var(--moss-text-muted);font-size:14px;cursor:pointer;padding:var(--space-2xs) var(--space-xs);line-height:1}.ai-gear-btn:hover{color:var(--moss-text-primary)}.ai-prompt-input,.ai-key-input{margin:var(--space-xs) var(--space-sm);padding:var(--space-6) var(--space-sm);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-text-primary);background:var(--moss-bg-input);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-sm);outline:none}.ai-prompt-input:focus,.ai-key-input:focus{border-color:var(--moss-brand)}.ai-prompt-input:disabled{opacity:.5}.ai-generate-btn{margin:var(--space-xs) var(--space-sm) var(--space-sm);padding:var(--space-6) var(--space-sm);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-bg-page);background:var(--moss-brand);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .15s}.ai-generate-btn:hover{opacity:.85}.ai-generate-btn.loading{animation:ai-pulse 1.2s ease-in-out infinite;cursor:wait}@keyframes ai-pulse{0%,to{opacity:1}50%{opacity:.5}}.moss-mascot-wrap{display:flex;flex-direction:column;align-items:center;padding:var(--space-md) var(--space-sm) var(--space-xs);gap:var(--space-xs)}.moss-mascot{color:var(--moss-brand);line-height:0}.moss-mascot svg{width:48px;height:30px}.moss-mascot.squishing svg{animation:moss-squish .6s ease-in-out infinite}@keyframes moss-squish{0%,to{transform:scaleX(1) scaleY(1) translateY(0)}50%{transform:scaleX(1.2) scaleY(.7) translateY(4px)}}.ai-key-note{font-family:var(--font-mono);font-size:.65rem;color:var(--moss-text-muted);padding:0 var(--space-10) var(--space-sm);line-height:1.4}.ai-key-note a{color:var(--moss-link);text-decoration:underline}.ai-remove-key-btn{background:none;border:none;font-family:var(--font-mono);font-size:.65rem;color:var(--moss-error);cursor:pointer;padding:0 var(--space-10) var(--space-sm);text-align:left;opacity:.7}.ai-remove-key-btn:hover{opacity:1}.user-brush-row{position:relative}.user-brush-delete{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--moss-text-muted);font-size:14px;cursor:pointer;padding:var(--space-2xs) var(--space-xs);line-height:1;opacity:0;transition:opacity .1s}@media (hover: hover){.user-brush-row:hover .user-brush-delete{opacity:.6}.user-brush-delete:hover{color:var(--moss-error);opacity:1!important}}.editor-header .play-btn{position:relative;top:auto;right:auto}#scene-stage.editor-layout>.status-bar{position:absolute;bottom:0;left:0;right:0}body.pad-mode #scene-pane{max-width:1200px;min-height:0;border-width:6px;border-color:var(--moss-border);border-radius:var(--radius-lg);box-shadow:0 2px 4px var(--moss-shadow-md);padding:var(--space-xl)}body.pad-mode .scene-content{gap:var(--space-xl)}#scene-pane>.scene-content{display:flex;flex-direction:column;flex:1;min-height:0;position:relative;view-transition-name:pane-content;padding:var(--space-xl) 0 var(--space-xl) var(--space-xl)}#scene-pane a{color:var(--moss-brand);text-decoration:none;transition:color .2s ease,text-decoration-color .2s ease}#scene-pane a:hover{color:var(--moss-brand-glow);text-decoration:underline;text-decoration-color:var(--moss-brand-glow)}#scene-pane a:focus-visible{outline:2px solid var(--moss-focus-ring);outline-offset:2px}#code-pane>.scene-content{view-transition-name:code-content}.scene-content{transition:opacity .25s ease}.scene-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;margin-right:calc(-1 * var(--space-3xl));padding-right:var(--space-3xl)}body.welcome-mode #scene-stage{display:none}.scene-empty{display:none;text-align:center;padding:var(--space-3xl) var(--space-xl);color:var(--moss-text-muted);font-family:var(--font-mono);font-size:var(--text-base);line-height:1.8}.scene-empty.visible{display:block}.scene-rail-layout{display:flex;flex-direction:row;flex:1;min-height:0}#scene-stage:has(.scene-rail-layout){overflow:hidden}#scene-pane:has(.scene-rail-layout){padding:0;margin-block:0;flex:1;min-height:0}#scene-pane:has(.scene-rail-layout)>.scene-content{padding:0;flex:1;min-height:0}.scene-rail-layout>.scene-scroll{flex:1;min-width:0;padding:var(--space-2xl);margin-right:0}.page-title{font-family:"PP Mondwest",var(--font-mono);color:var(--moss-text-primary);font-size:1.5rem;margin:0 0 var(--space-lg) 0;animation:gallery-item-in .3s ease-out both}.nav-bar{display:flex;align-items:center;gap:var(--space-md);width:100%;margin-bottom:var(--space-lg);flex-shrink:0}.nav-bar-left{display:flex;align-items:center}.nav-bar-home{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:1px solid var(--moss-border);border-radius:var(--radius-sm);color:var(--moss-text-muted);cursor:pointer;transition:all .15s;padding:0}.nav-bar-home:hover:not(:disabled){border-color:var(--moss-brand);color:var(--moss-brand)}.nav-bar-home:active:not(:disabled){transform:scale(.95)}.nav-bar-home:disabled{border-color:transparent}.nav-bar-logo{width:24px;height:24px;background:var(--moss-brand);mask-image:url(../img/MOSS.svg);mask-size:contain;mask-repeat:no-repeat;mask-position:center;-webkit-mask-image:url(../img/MOSS.svg);-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center}.nav-bar-title{flex:1;min-width:0;font-family:"PP Mondwest",var(--font-mono);font-size:2rem;font-weight:400;color:var(--moss-text-muted);margin:0;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-bar-actions{display:flex;gap:var(--space-sm);flex-shrink:0}.nav-bar-actions .play-btn{position:relative;top:auto;right:auto;z-index:auto}.nav-bar-cta{height:36px;padding:0 var(--space-md);background:transparent;border:2px solid var(--jw-persimmon);border-radius:var(--radius-sm);color:var(--jw-persimmon);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.nav-bar-cta:hover{background:var(--jw-persimmon);color:var(--moss-bg-card)}.nav-bar-cta:active{transform:scale(.95)}.nav-bar-cta.published{border-color:var(--moss-success);color:var(--moss-success)}.nav-bar-cta.published:hover{background:var(--moss-success);color:var(--moss-bg-card)}.nav-bar-cta:disabled{opacity:.5;pointer-events:none}.nav-bar-subtitle{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-text-muted);margin-bottom:var(--space-md)}@keyframes vt-blur-out{to{opacity:0;filter:blur(6px)}}@keyframes vt-blur-in{0%{opacity:0;filter:blur(6px)}}::view-transition-image-pair(root),::view-transition-image-pair(card){mix-blend-mode:plus-lighter}::view-transition-old(root),::view-transition-new(root){animation-duration:.6s;animation-timing-function:ease-in-out}::view-transition-group(card){animation-duration:.45s;animation-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition-old(card),::view-transition-new(card){animation-duration:.35s;animation-timing-function:ease-in-out}::view-transition-old(pane-content),::view-transition-old(code-content){animation:vt-blur-out .2s ease-in forwards}::view-transition-new(pane-content),::view-transition-new(code-content){animation:vt-blur-in .35s ease-out forwards}#scene-root{min-height:100vh;min-height:100dvh;box-sizing:border-box;transition:padding .4s ease}#scene-root:has(>#scene-stage.editor-layout){display:flex;flex-direction:column;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;overflow:hidden;padding:var(--space-xl)}body.booting #scene-pane>*,body.booting #code-pane>*,body.booting #scene-stage>.status-bar,body.booting .editor-header{opacity:0;transform:translateY(8px)}#scene-pane>*,#code-pane>*,#scene-stage>.status-bar,.editor-header{transition:opacity .35s ease,transform .35s ease}.boot-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);background:var(--jw-bg-deep);transition:opacity .3s ease}.boot-overlay:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(../font/grid.png) repeat;image-rendering:pixelated;mix-blend-mode:screen;opacity:.2;pointer-events:none}.boot-logo{width:360px;aspect-ratio:48 / 30;background-color:var(--jw-persimmon);-webkit-mask-image:url(../img/MOSS.svg);mask-image:url(../img/MOSS.svg);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;clip-path:inset(0 0 100% 0);position:relative;z-index:1}.boot-text{font-family:var(--font-mono);font-size:.85rem;color:var(--jw-gray-teal);white-space:nowrap;overflow:hidden;width:0;position:relative;z-index:1}.boot-active .boot-logo{animation:boot-scanline .45s ease-out .05s forwards,boot-glow .3s ease-in-out .5s forwards}.boot-active .boot-text{animation:boot-type .25s steps(14) .15s forwards}@keyframes boot-scanline{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0% 0)}}@keyframes boot-glow{0%{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 20px var(--jw-gold)) drop-shadow(0 0 40px var(--jw-persimmon))}to{filter:drop-shadow(0 0 12px var(--jw-persimmon))}}@keyframes boot-type{0%{width:0}to{width:8.5em}}.boot-logo-fade .boot-logo,.boot-logo-fade .boot-text{opacity:0;transition:opacity .25s ease}.boot-dismiss{opacity:0;pointer-events:none}.ai-prompt-text,.api-guide-content,.icon-picker-body,.template-list,.template-popover-list,.CodeMirror-hints,.moss-scroll,.scene-scroll,#editor-sidebar,#player-brush-sidebar{scrollbar-width:thin;scrollbar-color:var(--moss-scroll-thumb) var(--moss-scroll-track)}.ai-prompt-text::-webkit-scrollbar,.api-guide-content::-webkit-scrollbar,.icon-picker-body::-webkit-scrollbar,.template-list::-webkit-scrollbar,.template-popover-list::-webkit-scrollbar,.CodeMirror-hints::-webkit-scrollbar,.moss-scroll::-webkit-scrollbar,.scene-scroll::-webkit-scrollbar,#editor-sidebar::-webkit-scrollbar,#player-brush-sidebar::-webkit-scrollbar{width:var(--moss-scroll-width);height:var(--moss-scroll-width)}.ai-prompt-text::-webkit-scrollbar-track,.api-guide-content::-webkit-scrollbar-track,.icon-picker-body::-webkit-scrollbar-track,.template-list::-webkit-scrollbar-track,.template-popover-list::-webkit-scrollbar-track,.CodeMirror-hints::-webkit-scrollbar-track,.moss-scroll::-webkit-scrollbar-track,.scene-scroll::-webkit-scrollbar-track,#editor-sidebar::-webkit-scrollbar-track,#player-brush-sidebar::-webkit-scrollbar-track{background:var(--moss-scroll-track)}.ai-prompt-text::-webkit-scrollbar-thumb,.api-guide-content::-webkit-scrollbar-thumb,.icon-picker-body::-webkit-scrollbar-thumb,.template-list::-webkit-scrollbar-thumb,.template-popover-list::-webkit-scrollbar-thumb,.CodeMirror-hints::-webkit-scrollbar-thumb,.moss-scroll::-webkit-scrollbar-thumb,.scene-scroll::-webkit-scrollbar-thumb,#editor-sidebar::-webkit-scrollbar-thumb,#player-brush-sidebar::-webkit-scrollbar-thumb{background:var(--moss-scroll-thumb);border-radius:var(--moss-scroll-radius)}.ai-prompt-text::-webkit-scrollbar-thumb:hover,.api-guide-content::-webkit-scrollbar-thumb:hover,.icon-picker-body::-webkit-scrollbar-thumb:hover,.template-list::-webkit-scrollbar-thumb:hover,.template-popover-list::-webkit-scrollbar-thumb:hover,.CodeMirror-hints::-webkit-scrollbar-thumb:hover,.moss-scroll::-webkit-scrollbar-thumb:hover,.scene-scroll::-webkit-scrollbar-thumb:hover,#editor-sidebar::-webkit-scrollbar-thumb:hover,#player-brush-sidebar::-webkit-scrollbar-thumb:hover{background:var(--moss-scroll-hover)}.moss-brand{display:inline-block;height:48px;aspect-ratio:48 / 30;background-color:var(--moss-brand);-webkit-mask-image:url(../img/MOSS.svg);mask-image:url(../img/MOSS.svg);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.play-btn{position:absolute;top:var(--space-lg);right:var(--space-lg);z-index:10;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:1px solid var(--moss-brand);border-radius:var(--radius-md);color:var(--moss-brand);cursor:pointer;transition:all .15s}.play-btn:hover{background:var(--moss-brand);color:var(--moss-bg-card)}.play-btn:active{transform:scale(.95)}.editor-header-actions{position:absolute;top:var(--space-lg);right:var(--space-lg);z-index:10;display:flex;flex-direction:column;gap:var(--space-sm)}.editor-header-actions .play-btn{position:relative}.file-menu{position:relative;z-index:50;flex-shrink:0}.file-menu.corner-menu{position:absolute;top:var(--space-lg);left:var(--space-lg)}.menu-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:1px solid var(--moss-border-subtle);border-radius:var(--radius-md);color:var(--moss-text-muted);cursor:pointer;transition:all .15s}.menu-btn:hover{border-color:var(--moss-border);color:var(--moss-text-primary);background:var(--moss-bg-elevated)}.corner-menu .file-menu-dropdown{top:calc(100% + var(--space-sm))}.file-menu-btn{display:inline-flex;align-items:center;gap:var(--space-sm);background:var(--moss-bg-menu);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-md);color:var(--moss-text-secondary);font-family:var(--font-mono);font-size:.9rem;padding:var(--space-sm) var(--space-md);cursor:pointer;transition:all .15s}.file-menu-btn:hover{border-color:var(--moss-border);color:var(--moss-text-primary);background:var(--moss-bg-elevated)}.file-menu-btn svg{transition:transform .15s}.file-menu-dropdown{position:absolute;top:calc(100% + var(--space-xs));left:0;min-width:150px;background:var(--moss-bg-card);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-sm);box-shadow:0 2px 4px var(--moss-shadow-md);opacity:0;visibility:hidden;transform:translateY(-4px);transition:all .15s;z-index:200}.file-menu-dropdown.open{opacity:1;visibility:visible;transform:translateY(0)}.file-menu-item{display:block;width:100%;padding:var(--space-md) var(--space-lg);background:none;border:none;color:var(--moss-text-secondary);font-family:var(--font-mono);font-size:.9rem;text-align:left;cursor:pointer;transition:all .1s}.file-menu-item:first-child{border-radius:var(--radius-sm) var(--radius-sm) 0 0}.file-menu-item:last-child{border-radius:0 0 var(--radius-sm) var(--radius-sm)}.file-menu-item:hover{background:var(--moss-hover-bg);color:var(--moss-brand)}.file-menu-item:active{background:var(--moss-active-bg)}.file-menu-divider{height:1px;background:var(--moss-border-subtle);margin:var(--space-xs) 0}.header-btn{display:inline-flex;align-items:center;gap:var(--space-sm);background:var(--moss-bg-elevated);border:1px solid var(--moss-border-subtle);border-top-color:var(--moss-btn-highlight);border-bottom-width:3px;border-bottom-color:var(--moss-btn-shadow);border-radius:var(--radius-sm);color:var(--moss-text-secondary);font-family:var(--font-mono);font-size:.9rem;padding:var(--space-sm) var(--space-14);cursor:pointer;transition:all .15s}.header-btn:hover{border-color:var(--moss-border);border-top-color:var(--moss-btn-highlight);border-bottom-color:var(--moss-btn-shadow);color:var(--moss-text-primary);background:var(--moss-bg-card)}.header-btn:active{transform:translateY(2px);border-bottom-width:1px}.header-btn.play-btn{border-color:var(--moss-brand);color:var(--moss-brand);background:transparent}.header-btn.play-btn:hover{background:var(--moss-brand);color:var(--moss-bg-card)}.canvas-package{display:flex;flex-direction:row;align-items:stretch;gap:var(--space-lg);width:100%;flex:1;min-height:0}body.pad-mode .canvas-package{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-md)}.brush-column{display:flex;flex-direction:column;width:200px;flex-shrink:0;min-height:0}.canvas-column{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;flex:1}#scene-stage.editor-layout .canvas-package{flex:1;min-height:0}#scene-stage.editor-layout #editor-footer-actions{padding-top:var(--space-sm)}#scene-stage.editor-layout .canvas-column{align-items:flex-start;justify-content:flex-start}.palette-strip{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-6);align-items:center;justify-content:flex-start;padding:0;min-width:0}.palette-pill{position:relative;width:28px;height:28px;border:2px solid transparent;border-radius:var(--radius-md);padding:0;cursor:pointer;flex-shrink:0;transition:all .15s;box-shadow:inset 0 -2px 0 var(--moss-shadow-inset)}@media (hover: hover){.palette-pill:hover{transform:scale(1.1);border-color:var(--moss-border-hover)}}.palette-pill.active{border-color:var(--moss-brand);box-shadow:inset 0 -2px 0 var(--moss-shadow-inset);transform:scale(1.1)}.palette-pill.confirming{border-color:var(--moss-error)}.palette-pill.dragging{opacity:.5;cursor:grabbing}.palette-pill.drag-over{border-color:var(--moss-brand);border-style:dashed}.palette-delete{display:none;position:absolute;top:-6px;right:-6px;width:14px;height:14px;line-height:14px;text-align:center;font-size:10px;color:var(--moss-text-primary);background:var(--moss-text-muted);border-radius:50%;cursor:pointer;z-index:1}@media (hover: hover){.palette-pill:hover .palette-delete{display:block}.palette-delete:hover{background:var(--moss-error)}}.palette-key-hint{position:absolute;top:1px;left:2px;font-family:var(--font-mono);font-size:.6rem;font-weight:700;line-height:1;pointer-events:none}.iro-picker-wrap{grid-column:1 / -1;display:flex;justify-content:center;padding:var(--space-sm) 0 var(--space-xs)}.iro-picker-wrap .IroColorPicker{display:flex!important;justify-content:space-between!important;width:100%!important}#add-color-btn{width:24px;height:24px;background:transparent;border:1px dashed var(--moss-border);border-radius:var(--radius-sm);color:var(--moss-text-muted);font-size:1rem;cursor:pointer;transition:all .15s}#add-color-btn:hover{border-color:var(--moss-brand);color:var(--moss-brand)}.param-panel{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-sm);max-width:var(--canvas-max-width);width:100%;min-height:32px;padding:var(--space-xs) 0;box-sizing:border-box}#param-panel{display:none}.param-item{display:flex;align-items:center;gap:var(--space-sm);min-width:120px;flex:1}.param-label{font-size:.8rem;color:var(--moss-text-muted);white-space:nowrap;min-width:50px}.pill-slider{flex:1;height:18px;display:flex;align-items:center}.pill-track{width:100%;height:12px;background:var(--moss-bg-input);border-radius:6px;cursor:ew-resize;overflow:hidden;border:1px solid var(--moss-border-subtle);transition:border-color .1s,background .1s}.pill-fill{height:100%;background:var(--moss-brand);border-radius:6px;pointer-events:none;transition:background .1s}@media (hover: hover){.pill-track:hover{border-color:var(--moss-brand);background:var(--moss-brand-faint)}}.pill-track:active{border-color:var(--moss-brand);background:var(--moss-brand-mild)}.pill-track:active .pill-fill{background:var(--moss-brand-glow)}.param-toggle{width:32px;height:16px;background:var(--moss-bg-input);border:1px solid var(--moss-border-subtle);border-radius:8px;cursor:pointer;position:relative;transition:all .15s}.param-toggle:after{content:"";position:absolute;top:2px;left:2px;width:10px;height:10px;background:var(--moss-text-muted);border-radius:50%;transition:all .15s}.param-toggle.on{background:var(--moss-brand);border-color:var(--moss-brand)}.param-toggle.on:after{left:18px;background:var(--moss-bg-card)}.param-select{flex:1;background:var(--moss-bg-input);color:var(--moss-text-secondary);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.8rem;padding:var(--space-xs) var(--space-sm);cursor:pointer}.param-select:focus{border-color:var(--moss-brand);outline:none}.palette-param{display:flex;flex-wrap:wrap;gap:var(--space-xs);flex:1}.color-swatch{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border:2px solid transparent;border-radius:var(--radius-sm);cursor:pointer;padding:0;transition:border-color .1s,transform .1s}@media (hover: hover){.color-swatch:hover{transform:scale(1.15);border-color:var(--moss-border-hover)}}.color-swatch.active{border-color:var(--moss-brand)}#canvas-wrap,#player-canvas-wrap,.pad-canvas-wrap{position:relative;overflow:hidden;align-self:stretch;flex:1;min-height:0}.surface-grid{background-color:color-mix(in srgb,var(--moss-bg-card) 90%,black);background-size:8px 8px;border-radius:var(--radius-sm);touch-action:none}#canvas-wrap canvas,#player-canvas-wrap canvas,.pad-canvas-wrap canvas{position:absolute;transform-origin:0 0;border-radius:var(--radius-sm);box-shadow:0 2px 6px var(--moss-shadow-lg);touch-action:none;image-rendering:pixelated}.viewport-pan-ready canvas{cursor:grab!important}.viewport-panning canvas{cursor:grabbing!important}.canvas-footer,#canvas-footer{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;width:100%;max-width:var(--canvas-max-width);padding:var(--space-sm) 0}#editor-footer-actions,.pad-footer-actions{display:flex;gap:var(--space-xs);flex-shrink:0}.canvas-actions-column{display:flex;flex-direction:column;gap:var(--space-xs);flex-shrink:0}.brush-size-control{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0;min-width:100px;max-width:160px;padding:0 var(--space-sm)}.brush-size-label{font-family:var(--font-mono);font-size:.75rem;color:var(--moss-text-muted);white-space:nowrap;flex-shrink:0}.brush-size-value{font-family:var(--font-mono);font-size:.75rem;color:var(--moss-text-secondary);min-width:22px;text-align:right;flex-shrink:0}.brush-size-control .pill-track{height:10px}.canvas-action-btn{position:relative;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--moss-bg-elevated);border:1px solid var(--moss-border-subtle);border-top-color:var(--moss-btn-highlight);border-bottom-width:3px;border-bottom-color:var(--moss-btn-shadow);border-radius:var(--radius-md);color:var(--moss-text-muted);cursor:pointer;transition:all .15s}.canvas-action-btn:hover{background:var(--moss-bg-card);border-color:var(--moss-border);border-top-color:var(--moss-btn-highlight);border-bottom-color:var(--moss-btn-shadow);color:var(--moss-text-secondary)}.canvas-action-btn:active{transform:translateY(2px);border-bottom-width:1px}.canvas-action-btn.active{background:var(--moss-bg-card);border-color:var(--moss-border);color:var(--moss-text-secondary)}.canvas-action-btn.disabled,.canvas-action-btn:disabled{opacity:.3;cursor:not-allowed}.canvas-action-btn.disabled:hover,.canvas-action-btn:disabled:hover{background:var(--moss-bg-elevated);border-color:var(--moss-border-subtle);color:var(--moss-text-muted);transform:none}.moss-tooltip{position:fixed;transform:translate(-50%);background:var(--moss-bg-card);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-sm);padding:var(--space-5) var(--space-10);font-family:var(--font-mono);font-size:.75rem;color:var(--moss-text-primary);white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .15s,visibility .15s;pointer-events:none;z-index:10000}.moss-tooltip.visible{opacity:1;visibility:visible}.moss-icon{display:block;width:18px;height:18px;background:currentColor;-webkit-mask-image:url(../img/MOSS.svg);mask-image:url(../img/MOSS.svg);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}#code-pane .scene-content{position:relative;display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}#brush-toolbar{display:flex;flex-direction:row;gap:var(--space-xs);flex-shrink:0;height:36px;align-items:stretch;padding:var(--space-xs) 0;border-bottom:1px solid var(--moss-border-subtle)}#editor-param-toolbar{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-md);min-height:28px;padding:var(--space-xs) 0 var(--space-sm);border-bottom:2px solid var(--moss-border-subtle);margin-bottom:var(--space-sm)}#editor-param-toolbar:empty{display:none}#editor-param-toolbar .param-item{display:flex;align-items:center;gap:var(--space-sm);min-width:100px}#editor-param-toolbar .param-label{font-size:.75rem;color:var(--moss-text-muted);min-width:40px}.slot-tab{position:relative;display:flex;align-items:center;background:var(--moss-bg-elevated);border:1px solid var(--moss-border-subtle);border-top-color:var(--moss-btn-highlight);border-bottom-width:3px;border-bottom-color:var(--moss-btn-shadow);border-radius:var(--radius-md);color:var(--moss-text-secondary);font-family:var(--font-mono);font-size:.9rem;width:25%;padding:0 30px 0 26px;cursor:grab;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .15s;box-sizing:border-box}.slot-tab.empty{background:none;border:1px dashed var(--moss-border-subtle);border-bottom-width:3px;border-bottom-color:transparent;cursor:pointer;opacity:.4;justify-content:center;padding:0;gap:var(--space-6)}.slot-tab.empty:hover{opacity:.7;border-color:var(--moss-border);background:var(--moss-bg-input)}.slot-plus{font-size:1rem;font-weight:700;color:var(--moss-text-tertiary);pointer-events:none}.slot-plus-label{font-size:.75rem;color:var(--moss-text-tertiary);pointer-events:none;letter-spacing:.03em}@media (hover: hover){.slot-tab:hover{border-color:var(--moss-border);background:var(--moss-bg-card)}}.slot-tab.dragging{opacity:.5;cursor:grabbing}.slot-tab.drag-over{border-color:var(--moss-brand);border-style:dashed}.slot-shortcut{position:absolute;left:3px;top:3px;width:14px;height:14px;background:var(--moss-bg-input);border-radius:3px;font-size:.7rem;line-height:14px;text-align:center;color:var(--moss-text-muted)}.slot-tab.active .slot-shortcut{background:var(--moss-active-bg);color:var(--moss-brand)}.slot-preview{width:18px;height:18px;border-radius:3px;margin-right:var(--space-6);flex-shrink:0;image-rendering:pixelated}.slot-tab.active{border-color:var(--moss-brand);color:var(--moss-brand)}.slot-delete{display:none;position:absolute;right:4px;top:50%;transform:translateY(-50%);width:18px;height:18px;line-height:18px;text-align:center;font-size:14px;font-weight:700;color:var(--moss-text-muted);background:var(--moss-shadow-md);border-radius:3px;cursor:pointer;transition:all .1s}@media (hover: hover){.slot-tab:hover .slot-delete{display:block}.slot-delete:hover{color:var(--moss-text-primary);background:var(--moss-error)}}.slot-tab.confirming{border-color:var(--moss-error)}.slot-tab.confirming .slot-delete{display:block;background:var(--moss-error);color:var(--moss-text-primary)}.slot-name{overflow:hidden;text-overflow:ellipsis}.slot-name-input{background:var(--moss-bg-input);color:var(--moss-brand);border:1px solid var(--moss-brand);border-radius:3px;font-family:var(--font-mono);font-size:.85rem;padding:0 var(--space-xs);width:90px;height:20px;outline:none}#editor-area{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;-webkit-user-select:text;user-select:text}#editor-area .CodeMirror{flex:1;height:auto}#ai-bar{display:none;flex-direction:row;align-items:center;gap:var(--space-sm);padding:var(--space-md) 0 var(--space-md) var(--space-lg);background:var(--moss-bg-input);border-bottom:1px solid var(--moss-border-subtle);flex-shrink:0}#ai-bar.ai-bar-visible{display:flex}.ai-bar-icon{flex-shrink:0;color:var(--moss-brand);display:flex;align-items:center}.ai-bar-input{flex:1;min-width:0;padding:var(--space-xs) var(--space-sm);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--moss-text-primary);background:transparent;border:none;outline:none}.ai-bar-input::placeholder{color:var(--moss-text-muted);opacity:.7}.ai-bar-input:disabled{opacity:.5}.ai-bar-submit{padding:var(--space-3) var(--space-10);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-bg-page);background:var(--moss-brand);border:none;border-radius:var(--radius-sm);cursor:pointer;line-height:1.4;transition:opacity .15s}.ai-bar-submit:hover{opacity:.85}.ai-bar-submit:disabled{cursor:wait;opacity:.5}#ai-bar.ai-bar-loading .ai-bar-submit{animation:ai-pulse 1.2s ease-in-out infinite}.ai-bar-collapse{align-self:stretch;margin:calc(-1 * var(--space-md)) 0;padding:0 var(--space-md);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;color:var(--moss-text-muted);background:transparent;border:none;border-left:1px solid var(--moss-border-subtle);cursor:col-resize;transition:color .15s,background .15s;flex-shrink:0}.ai-bar-collapse:hover{color:var(--moss-text);background:var(--moss-bg-elevated)}#validation-indicator{text-align:right;padding:var(--space-xs) var(--space-md);font-size:.85rem;color:var(--moss-text-muted);height:24px;line-height:24px;flex-shrink:0}#validation-indicator.safe{color:var(--moss-success)}#validation-indicator.unsafe{color:var(--moss-error)}.status-bar-help{background:none;border:1px solid var(--moss-border-subtle);color:var(--moss-text-muted);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;width:22px;height:22px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;margin-left:auto;transition:color .15s,border-color .15s}.status-bar-help:hover{color:var(--moss-brand);border-color:var(--moss-brand)}.ai-prompt-intro{color:var(--moss-text-secondary);font-size:1rem;margin-bottom:var(--space-10)}.copy-prompt-btn{background:var(--moss-bg-elevated);color:var(--moss-brand);border:1px solid var(--moss-border-subtle);border-top-color:var(--moss-btn-highlight);border-bottom-width:3px;border-bottom-color:var(--moss-btn-shadow);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.9rem;padding:var(--space-sm) var(--space-14);cursor:pointer;transition:all .15s;margin-bottom:var(--space-md)}.copy-prompt-btn:hover{border-color:var(--moss-border);border-top-color:var(--moss-btn-highlight);border-bottom-color:var(--moss-btn-shadow);color:var(--moss-brand);background:var(--moss-bg-card)}.copy-prompt-btn.copied{background:var(--moss-success);border-color:var(--moss-success);color:var(--moss-text-primary)}.ai-prompt-text{background:var(--moss-bg-input);color:var(--moss-text-secondary);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-sm);padding:var(--space-md);font-family:var(--font-mono);font-size:.85rem;line-height:1.5;max-height:300px;overflow-y:auto;white-space:pre-wrap;word-wrap:break-word}#api-guide-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000080;align-items:center;justify-content:center}#api-guide-backdrop.open{display:flex}#api-guide{display:flex;flex-direction:column;width:min(640px,calc(100vw - 40px));max-height:85vh;overflow:hidden;background:var(--moss-bg-card);border:2px solid var(--moss-border);border-radius:var(--radius-md);box-shadow:0 8px 32px var(--moss-shadow-lg, rgba(0, 0, 0, .4))}.api-guide-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:var(--space-14) var(--space-20);background:var(--moss-bg-elevated);flex-shrink:0;border-bottom:2px solid var(--moss-border-subtle)}.api-guide-header-left{display:flex;align-items:center;gap:var(--space-sm)}.api-guide-popout{color:var(--moss-text-muted);font-size:1.1rem;text-decoration:none;line-height:1;transition:color .15s}.api-guide-popout:hover{color:var(--moss-brand)}.api-guide-title{color:var(--moss-brand);font-family:var(--font-mono);font-size:1.05rem;font-weight:700;letter-spacing:1px}.api-guide-back{color:var(--moss-text-muted);font-family:var(--font-mono);font-size:.85rem;text-decoration:none;transition:color .15s}.api-guide-back:hover{color:var(--moss-brand)}.api-guide-close{background:none;border:none;color:var(--moss-text-muted);font-size:1.4rem;cursor:pointer;padding:0 var(--space-6);line-height:1}.api-guide-close:hover{color:var(--moss-text-primary)}.api-guide-search{display:flex;align-items:center;padding:var(--space-md) 20px;background:var(--moss-bg-elevated);flex-shrink:0;gap:var(--space-sm);border-bottom:2px solid var(--moss-border-subtle)}.api-guide-search input{flex:1;background:var(--moss-bg-input);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-sm);color:var(--moss-text-primary);font-family:var(--font-mono);font-size:1rem;padding:var(--space-10) var(--space-14);outline:none}.api-guide-search input:focus{border-color:var(--moss-brand);box-shadow:0 0 0 2px var(--moss-focus-ring)}.api-guide-search-clear{color:var(--moss-text-muted);font-size:1.2rem;cursor:pointer;display:none;padding:0 var(--space-xs)}.api-guide-search-clear.visible{display:block}.api-guide-content{overflow-y:auto;overscroll-behavior:contain;padding:var(--space-lg) 20px var(--space-xl);flex:1}.api-no-results{display:none;color:var(--moss-text-muted);font-size:1rem;text-align:center;padding:var(--space-xl) 0}.api-no-results.visible{display:block}.api-section{margin-bottom:var(--space-xl)}.api-section.hidden{display:none}.api-section h3{color:var(--moss-brand);font-family:var(--font-mono);font-size:1.05rem;font-weight:700;margin:0 0 var(--space-md);padding-bottom:var(--space-md);border-bottom:2px solid var(--moss-border-subtle)}.api-entry{margin:0;padding:var(--space-md) 0}.api-entry+.api-entry{border-top:1px solid var(--moss-border-subtle)}.api-entry.hidden{display:none}.api-entry>code{color:var(--jw-teal);background:none;padding:0;border-radius:0;font-family:var(--font-mono);font-size:1rem;font-weight:700;cursor:pointer}.api-entry>code:hover{text-decoration:underline}.api-entry>code.copied{color:var(--moss-brand)}.api-entry p code{color:var(--jw-teal);background:var(--moss-bg-elevated);padding:var(--space-2xs) var(--space-6);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.85em;cursor:pointer}.api-entry p code:hover{background:var(--moss-teal-faint)}.api-entry p code.copied{background:var(--moss-active-bg)}.api-entry p{color:var(--moss-text-secondary);font-size:.9rem;margin:var(--space-sm) 0 0 var(--space-xs);line-height:1.5}.api-toc-grid{display:flex;flex-wrap:wrap;gap:var(--space-7)}.api-toc-item{color:var(--jw-teal);background:var(--moss-bg-elevated);padding:var(--space-5) var(--space-md);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.85rem;cursor:pointer;transition:background .15s,color .15s}.api-toc-item:hover{background:var(--moss-teal-subtle);color:var(--moss-brand)}.api-toc-group{margin-bottom:var(--space-md)}.api-toc-label{display:block;color:var(--moss-text-muted);font-family:var(--font-mono);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:var(--space-xs)}.api-toc-group--simulations .api-toc-item{border:1px solid var(--moss-brand)}.api-section-intro{color:var(--moss-text-secondary);font-size:.9rem;margin:0 0 var(--space-md);line-height:1.55}.api-section-intro code{color:var(--jw-teal);background:var(--moss-bg-elevated);padding:var(--space-2xs) var(--space-6);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.9rem}.api-about-section .api-section-intro a{color:var(--moss-brand);text-decoration:none}.api-about-section .api-section-intro a:hover{text-decoration:underline}.api-about-discord{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-md);padding:var(--space-md);background:#00000059;border-radius:var(--radius-md);text-decoration:none;color:var(--moss-text-primary);overflow:hidden;transition:background .15s}.api-about-discord:hover{background:#00000080}.api-about-discord-img{width:100%;display:block;object-fit:cover;border-radius:var(--radius-sm)}.api-about-discord span{font-size:.95rem;line-height:1.4;padding:0 var(--space-xs)}.status-bar-version a{color:var(--moss-brand);text-decoration:none}.status-bar-version a:hover{text-decoration:underline}.api-intro-section .api-entry p{font-size:1rem;color:var(--moss-text-primary);line-height:1.6}.api-gotcha{color:var(--jw-gold);background:var(--moss-gold-faint);font-size:.9rem;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);border-left:2px solid var(--jw-gold);margin:var(--space-md) 0;line-height:1.5}.api-gotcha code{color:var(--jw-teal);background:var(--moss-bg-elevated);padding:var(--space-2xs) var(--space-6);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.9rem;cursor:pointer}.api-gotcha code:hover{background:var(--moss-teal-faint)}.CodeMirror-hints{background:var(--moss-bg-card);border:1px solid var(--moss-brand);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.9rem;max-height:200px;overflow-y:auto;z-index:100;box-shadow:0 2px 4px var(--moss-shadow-md)}.CodeMirror-hint{padding:var(--space-6) var(--space-md);color:var(--moss-text-primary);cursor:pointer}.CodeMirror-hint-active{background:var(--moss-brand);color:var(--moss-bg-card)}.CodeMirror-hint-active .hint-desc{color:var(--moss-bg-card);opacity:.8}.CodeMirror-hint{display:flex;justify-content:space-between;gap:var(--space-lg)}.hint-name{flex-shrink:0}.hint-desc{color:var(--moss-text-muted);font-size:.85rem;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hint-function .hint-name{color:var(--jw-teal)}.hint-variable .hint-name{color:var(--jw-persimmon)}.hint-constant .hint-name{color:var(--jw-peach)}.hint-object .hint-name{color:var(--jw-khaki)}.hint-color .hint-name{color:var(--jw-gold)}.CodeMirror-hint-active .hint-name{color:var(--moss-bg-card)}.cm-signature-tooltip{position:fixed;z-index:101;background:var(--moss-bg-card);border:1px solid var(--moss-brand);border-radius:var(--radius-sm);padding:var(--space-6) var(--space-10);font-family:var(--font-mono);font-size:.9rem;color:var(--moss-text-primary);box-shadow:0 2px 4px var(--moss-shadow-md);max-width:400px;white-space:nowrap}.cm-signature-tooltip strong{color:var(--moss-brand);font-weight:600}.cm-signature-tooltip .sig-desc{color:var(--moss-text-muted);margin-left:var(--space-sm);font-size:.85rem}#template-interstitial{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;background:var(--moss-bg-scrim);overflow:hidden}#template-interstitial.hidden{display:none}.template-search{flex-shrink:0;width:100%;box-sizing:border-box;padding:var(--space-sm) var(--space-md);border:none;border-bottom:1px solid var(--moss-border-subtle);background:var(--moss-bg-card);color:var(--moss-text-primary);font-size:.95rem;font-family:inherit;outline:none}.template-search::placeholder{color:var(--moss-text-muted)}.template-search:focus{border-bottom-color:var(--moss-brand)}.template-list{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-md);gap:var(--space-xs)}.template-row{display:flex;align-items:center;gap:var(--space-14);cursor:pointer;padding:var(--space-10) var(--space-md);border-radius:var(--radius-sm)}.template-row:hover,.template-row.focused{background:var(--moss-hover-bg)}.template-row canvas{width:36px;height:36px;image-rendering:pixelated;border-radius:var(--radius-sm);background:var(--moss-bg-card)}.template-text{display:flex;flex-direction:column;gap:var(--space-3)}.template-name{font-size:1rem;color:var(--moss-text-primary)}.template-desc{font-size:.85rem;color:var(--moss-text-muted)}.template-category-header{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--moss-text-muted);padding:var(--space-sm) var(--space-sm) 0;margin-top:var(--space-xs)}.resize-divider{flex-shrink:0;display:flex;align-items:center;justify-content:center;z-index:10;background:transparent}.resize-divider-handle{background:var(--moss-border-subtle);border-radius:3px;transition:all .15s}.resize-divider:hover .resize-divider-handle,.resize-divider.dragging .resize-divider-handle{background:var(--moss-brand)}.resize-divider-vertical{width:12px;cursor:col-resize;margin:0;transition:opacity .2s ease .1s}body.zen-mode .resize-divider-vertical{opacity:0;pointer-events:none;transition:opacity .2s ease}.resize-divider-vertical .resize-divider-handle{width:2px;height:48px}.resize-divider-horizontal{height:12px;cursor:row-resize;margin:calc(-1 * var(--space-xs)) 0}.resize-divider-horizontal .resize-divider-handle{width:48px;height:6px}.sidebar-section-label{font-family:var(--font-mono);font-size:.7rem;font-weight:400;color:var(--moss-text-muted);letter-spacing:1px;text-transform:uppercase;padding:var(--space-md) 0 var(--space-sm);margin:0}.sidebar-section:first-child .sidebar-section-label{padding-top:0}.sidebar-section-header{display:flex;align-items:center;justify-content:space-between}.sidebar-section-header .sidebar-section-label{flex:1}.palette-dice-btn{position:relative;display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--moss-text-muted);font-size:1.1rem;cursor:pointer;transition:all .15s;padding:0;line-height:1}.palette-dice-btn:hover{color:var(--moss-text-primary)}.palette-dice-btn:active .palette-dice-icon{animation:dice-spin .4s ease-out}@keyframes dice-spin{0%{transform:rotate(0) scale(.9)}50%{transform:rotate(180deg) scale(1.1)}to{transform:rotate(360deg) scale(1)}}.brush-add-slot{border-style:dashed!important;border-color:var(--moss-border-subtle)!important;background:transparent!important;color:var(--moss-text-muted);gap:var(--space-sm)!important;justify-content:center}.brush-add-slot:hover{border-color:var(--moss-brand)!important;color:var(--moss-text-primary);background:var(--moss-hover-bg)!important}.brush-add-plus{font-size:1.1rem;font-weight:600;line-height:1}.brush-add-label{font-size:.85rem}.palette-menu{position:relative}.palette-menu-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--moss-text-muted);font-size:.7rem;cursor:pointer;transition:all .15s;padding:0;line-height:1}.palette-menu-btn:hover{border-color:var(--moss-border-subtle);color:var(--moss-text-primary);background:var(--moss-bg-elevated)}.palette-menu-dropdown{position:absolute;top:calc(100% + var(--space-xs));right:0;min-width:160px;background:var(--moss-bg-card);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-sm);box-shadow:0 2px 4px var(--moss-shadow-md);opacity:0;visibility:hidden;transform:translateY(-4px);transition:all .15s;z-index:200}.palette-menu-dropdown.open{opacity:1;visibility:visible;transform:translateY(0)}.palette-menu-item{display:block;width:100%;padding:var(--space-sm) var(--space-md);background:none;border:none;color:var(--moss-text-secondary);font-family:var(--font-mono);font-size:.8rem;text-align:left;cursor:pointer;transition:all .1s;white-space:nowrap}.palette-menu-item:first-child{border-radius:var(--radius-sm) var(--radius-sm) 0 0}.palette-menu-item:last-child{border-radius:0 0 var(--radius-sm) var(--radius-sm)}.palette-menu-item:only-child{border-radius:var(--radius-sm)}.palette-menu-item:hover{background:var(--moss-hover-bg);color:var(--moss-brand)}.palette-menu-item:active{background:var(--moss-active-bg)}.sidebar-palette-container{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);padding:var(--space-xs) var(--space-xs)}.sidebar-palette-container .palette-pill,.sidebar-palette-container #add-color-btn{width:100%;aspect-ratio:1;height:auto}.sidebar-settings-container{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-sm) 0}#editor-sidebar,#player-brush-sidebar{background:color-mix(in srgb,var(--moss-bg-card) 90%,black 10%);border-radius:var(--radius-lg);padding:var(--space-lg)}#editor-sidebar,#player-brush-sidebar,.brush-column{display:flex;flex-direction:column;align-self:stretch;width:250px;flex-shrink:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.brush-sidebar{display:flex;flex-direction:column;min-height:0}.sidebar-header{display:none}.sidebar-title{margin:0;font-family:var(--font-mono);font-size:.9rem;font-weight:400;color:var(--moss-text-muted);letter-spacing:1px;text-transform:uppercase}.brush-list{display:flex;flex-direction:column;gap:var(--space-xs);padding:0}.brush-item{display:flex;align-items:center;gap:var(--space-md);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);padding:var(--space-10) var(--space-md);cursor:pointer;transition:all .15s;text-align:left;width:100%}@media (hover: hover){.brush-item:hover{background:var(--moss-hover-bg);border-color:var(--moss-border-subtle)}}.brush-item.active{background:var(--moss-active-bg);border-color:var(--moss-brand)}.brush-preview{width:28px;height:28px;border-radius:var(--radius-sm);image-rendering:pixelated;flex-shrink:0;background:var(--moss-bg-elevated)}.brush-preview-placeholder{width:28px;height:28px;border-radius:var(--radius-sm);background:var(--moss-bg-elevated);flex-shrink:0}.brush-info{display:flex;flex-direction:row;align-items:center;gap:var(--space-sm);flex:1;min-width:0}.brush-name{font-family:var(--font-mono);font-size:.85rem;color:var(--moss-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.brush-item.active .brush-name{color:var(--moss-brand)}.brush-shortcut{position:absolute;left:3px;top:3px;width:14px;height:14px;font-family:var(--font-mono);font-size:.7rem;line-height:14px;text-align:center;color:var(--moss-text-muted);background:var(--moss-bg-input);border-radius:3px}.brush-item.active .brush-shortcut{color:var(--moss-brand);background:var(--moss-active-bg)}@media (hover: hover){.brush-item:hover .brush-shortcut{color:var(--moss-text-secondary)}}.sidebar-footer{padding:var(--space-sm) 0 0}.brush-item-wrapper{display:flex;flex-direction:column;width:100%}.brush-param-item{display:flex;flex-direction:row;align-items:center;gap:var(--space-md)}.brush-param-label{font-size:.75rem;color:var(--moss-text-secondary);text-transform:uppercase;letter-spacing:.5px;width:64px;flex-shrink:0;padding-right:var(--space-sm)}.sidebar-settings-container .pill-slider{flex:1;height:18px}.sidebar-settings-container .pill-track{height:12px}.sidebar-settings-container .size-value{font-family:var(--font-mono);font-size:.75rem;color:var(--moss-text-secondary);min-width:22px;text-align:right;flex-shrink:0;margin-left:var(--space-sm)}.sidebar-settings-container .palette-param{gap:var(--space-3)}.sidebar-settings-container .color-swatch{width:18px;height:18px}.brush-delete{display:none;position:absolute;right:var(--space-sm);top:50%;transform:translateY(-50%);width:18px;height:18px;line-height:18px;text-align:center;font-size:14px;font-weight:700;color:var(--moss-text-muted);background:var(--moss-shadow-md);border-radius:3px;cursor:pointer;transition:all .1s}.brush-item{position:relative}@media (hover: hover){.brush-item:hover .brush-delete{display:block}.brush-delete:hover{color:var(--moss-text-primary);background:var(--moss-error)}}.brush-item.confirming{border-color:var(--moss-error)}.brush-item.confirming .brush-delete{display:block;background:var(--moss-error);color:var(--moss-text-primary)}.brush-edit{display:none;position:absolute;right:calc(var(--space-sm) + 22px);top:50%;transform:translateY(-50%);width:18px;height:18px;line-height:18px;text-align:center;font-size:12px;color:var(--moss-text-muted);background:var(--moss-shadow-md);border-radius:3px;cursor:pointer;transition:all .1s}@media (hover: hover){.brush-item:hover .brush-edit{display:block}.brush-edit:hover{color:var(--moss-text-primary);background:var(--moss-brand)}}.brush-item:not(:has(.brush-delete)) .brush-edit{right:var(--space-sm)}.brush-name-input{background:var(--moss-bg-input);color:var(--moss-brand);border:1px solid var(--moss-brand);border-radius:var(--space-3);font-family:var(--font-mono);font-size:.85rem;padding:var(--space-2xs) var(--space-6);width:80px;height:20px;outline:none}.brush-item.dragging{opacity:.5;cursor:grabbing}.brush-item.drag-over{border-color:var(--moss-brand);border-style:dashed}#editor-sidebar .brush-item{cursor:grab}#editor-sidebar .brush-item:active{cursor:grabbing}.sidebar-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;background:transparent;border:1px dashed var(--moss-border-subtle);border-radius:var(--radius-sm);color:var(--moss-text-muted);font-family:var(--font-mono);font-size:.85rem;padding:var(--space-10);cursor:pointer;transition:all .15s}.sidebar-btn:hover{border-color:var(--moss-brand);color:var(--moss-brand)}.brush-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--moss-text-secondary)}.brush-icon svg{display:block}.brush-item.active .brush-icon{color:var(--moss-brand)}.icon-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:var(--moss-overlay);display:flex;align-items:center;justify-content:center}.icon-picker-modal{width:540px;max-width:90vw;max-height:80vh;background:var(--moss-bg-card);border:1px solid var(--moss-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px var(--moss-shadow-heavy)}.icon-picker-header{display:flex;align-items:center;gap:var(--space-6);padding:var(--space-10) var(--space-10) var(--space-10) var(--space-md);border-bottom:1px solid var(--moss-border-subtle);flex-shrink:0}.icon-picker-search{flex:1;background:var(--moss-bg-input);color:var(--moss-text-primary);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.8rem;padding:var(--space-6) var(--space-10);outline:none}.icon-picker-search:focus{border-color:var(--moss-brand);box-shadow:0 0 0 2px var(--moss-focus-ring)}.icon-picker-close{background:none;border:none;color:var(--moss-text-muted);font-size:1.2rem;cursor:pointer;padding:var(--space-2xs) var(--space-6);line-height:1;flex-shrink:0}.icon-picker-close:hover{color:var(--moss-text-primary)}.icon-picker-attribution{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);font-family:var(--font-mono);font-size:.7rem;color:var(--moss-text-muted);border-bottom:1px solid var(--moss-border-subtle);flex-shrink:0}.icon-picker-attribution .moss-icon{width:14px;height:14px;flex-shrink:0;color:var(--moss-text-muted)}.icon-picker-body{overflow-y:auto;padding:var(--space-md) var(--space-lg);flex:1}.icon-picker-category{margin-bottom:var(--space-lg)}.icon-picker-category-label{font-family:var(--font-mono);font-size:.7rem;color:var(--moss-text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--space-sm);padding-left:var(--space-2xs)}.icon-picker-grid{display:flex;flex-wrap:wrap;gap:var(--space-6)}.icon-picker-cell{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--moss-bg-elevated);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-sm);cursor:pointer;color:var(--moss-text-secondary);transition:all .1s;padding:0}.icon-picker-cell:hover{background:var(--moss-hover-bg);border-color:var(--moss-border);color:var(--moss-text-primary)}.icon-picker-cell.selected{background:var(--moss-active-bg);border-color:var(--moss-brand);color:var(--moss-brand)}.play-btn.saved{border-color:var(--moss-success);color:var(--moss-success);transition:all .15s}.consent-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:var(--moss-overlay);display:flex;align-items:center;justify-content:center}.consent-modal{position:relative;width:340px;max-width:85vw;background:var(--moss-bg-card);border:1px solid var(--moss-border-subtle);border-radius:2px;padding:var(--space-xl) var(--space-xl) var(--space-lg);box-shadow:0 4px 24px var(--moss-shadow-heavy);transform:rotate(-1.5deg)}.consent-body{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--moss-text-primary);line-height:1.6;margin:0 0 var(--space-lg) 0}.consent-sig{font-family:"PP Mondwest",var(--font-mono);font-size:var(--text-xl);color:var(--moss-brand);text-align:right;margin-bottom:var(--space-xl)}.consent-mascot{position:absolute;bottom:var(--space-md);left:var(--space-md);width:32px;height:auto;opacity:.35}.consent-buttons{display:flex;gap:var(--space-sm);justify-content:flex-end}.consent-btn{font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--space-6) var(--space-md);border-radius:2px;cursor:pointer;border:none}.consent-btn-primary{background:var(--moss-brand);color:var(--moss-bg-card)}.consent-btn-primary:hover{background:var(--moss-brand-glow)}.consent-btn-secondary{background:transparent;color:var(--moss-text-muted)}.consent-btn-secondary:hover{color:var(--moss-text-primary)}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3xl)}@media (max-width: 1100px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 500px){.gallery-grid{grid-template-columns:1fr}}.my-pads-grid{grid-template-columns:repeat(4,1fr)}@media (max-width: 900px){.my-pads-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 600px){.my-pads-grid{grid-template-columns:repeat(2,1fr)}}.gallery-item{position:relative;display:flex;flex-direction:column;cursor:pointer;animation:gallery-item-in .35s ease-out both}@keyframes gallery-item-in{0%{opacity:0;transform:translateY(6px)}}.gallery-item:nth-child(1){animation-delay:0s}.gallery-item:nth-child(2){animation-delay:.03s}.gallery-item:nth-child(3){animation-delay:.06s}.gallery-item:nth-child(4){animation-delay:.09s}.gallery-item:nth-child(5){animation-delay:.12s}.gallery-item:nth-child(6){animation-delay:.15s}.gallery-item:nth-child(7){animation-delay:.18s}.gallery-item:nth-child(8){animation-delay:.21s}.gallery-item:nth-child(9){animation-delay:.24s}.gallery-item:nth-child(10){animation-delay:.27s}.gallery-item:nth-child(11){animation-delay:.3s}.gallery-item:nth-child(12){animation-delay:.33s}.gallery-thumbnail{width:100%;aspect-ratio:1;object-fit:cover;image-rendering:pixelated;background:var(--moss-bg-page);display:block}.gallery-item-info{padding:var(--space-sm) var(--space-md)}.gallery-item-name{font-family:var(--font-mono);font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s}.gallery-item-date{font-family:var(--font-mono);font-size:var(--text-xs);margin-top:var(--space-2xs);transition:color .2s}.gallery-item-delete{display:none;position:absolute;top:var(--space-xs);right:var(--space-xs);width:24px;height:24px;line-height:24px;text-align:center;font-size:14px;font-weight:700;border-radius:var(--radius-sm);cursor:pointer;transition:border-color .15s,background .15s;z-index:2}.gallery-item:hover .gallery-item-delete{display:block}.gallery-item-play{display:none;position:absolute;top:var(--space-xs);left:var(--space-xs);width:24px;height:24px;padding:0;border-radius:var(--radius-sm);align-items:center;justify-content:center;font-size:var(--text-sm);line-height:1;cursor:pointer;transition:border-color .15s,background .15s,color .15s;z-index:2}.gallery-item:hover .gallery-item-play{display:flex}.cartridge-card{background:var(--moss-bg-card);border:2px solid transparent;border-radius:var(--radius-sm);overflow:hidden;transition:border-color .2s ease}.cartridge-card:hover{border-color:var(--jw-black)}.cartridge-card .cartridge-thumb-wrap{margin:0 var(--space-md)}.cartridge-card .gallery-thumbnail{width:100%;border-radius:2px}.cartridge-header{padding:var(--space-md) var(--space-md) var(--space-sm);text-align:center}.cartridge-title{font-family:"PP Mondwest",var(--font-mono);font-size:var(--text-md);color:var(--moss-brand);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s}.cartridge-author{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-text-muted);margin-top:var(--space-2xs);transition:color .2s}.cartridge-card:hover .cartridge-title{color:var(--moss-brand-bright, var(--moss-brand))}.cartridge-card:hover .cartridge-author{color:var(--moss-text-secondary)}.cartridge-footer{height:var(--space-xl)}.cartridge-card .gallery-item-delete{background:var(--moss-bg-page);border:1px solid var(--moss-border-subtle);color:var(--moss-text-primary)}.cartridge-card .gallery-item-delete:hover{background:var(--moss-error)}.cartridge-thumb-wrap{position:relative}.cartridge-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000073;opacity:0;transition:opacity .2s;pointer-events:none;z-index:1;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;color:var(--jw-cream);letter-spacing:.05em;text-transform:uppercase;border-radius:2px}.cartridge-card:hover .cartridge-card-overlay{opacity:1}.pad-card{background:var(--moss-bg-card);border:2px solid transparent;border-radius:var(--radius-sm);overflow:hidden;transition:border-color .2s ease}.pad-card:hover{border-color:var(--jw-black)}.pad-card .gallery-item-name{color:var(--moss-text-secondary)}.pad-card:hover .gallery-item-name{color:var(--moss-text-primary)}.pad-card .gallery-item-date{color:var(--moss-text-muted)}.pad-card:hover .gallery-item-date{color:var(--moss-text-secondary)}.pad-card .gallery-item-delete{background:var(--moss-bg-page);border:1px solid var(--moss-border-subtle);color:var(--moss-text-primary)}.pad-card .gallery-item-delete:hover{background:var(--moss-error)}.pad-card .gallery-item-play{border:1px solid var(--moss-border-subtle);background:var(--moss-bg-page);color:var(--moss-text-secondary)}.pad-card .gallery-item-play:hover{background:var(--moss-brand);color:var(--moss-bg-card)}.pad-card-edit-overlay{position:absolute;top:0;left:0;right:0;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#00000073;opacity:0;transition:opacity .2s;pointer-events:none;z-index:1;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;color:var(--jw-cream);letter-spacing:.05em;text-transform:uppercase}.pad-card:hover .pad-card-edit-overlay{opacity:1}body.sketch-mode #scene-pane{min-width:0;margin-block:0;padding:0;flex:1;min-height:0}body.sketch-mode #scene-pane>.scene-content{flex:1;align-items:stretch;padding:0;min-height:0}body.sketch-mode #scene-pane .scene-content>.status-bar{margin:0}.sketch-outer{display:flex;flex-direction:row;flex:1;min-height:0;justify-content:flex-start;align-items:center}.nav-rail{display:flex;flex-direction:column;align-items:center;align-self:stretch;gap:var(--space-md);width:64px;flex-shrink:0;padding:var(--space-md) var(--space-sm);border-right:1px solid var(--moss-border-dimmest)}.nav-rail-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;background:transparent;border:1px solid var(--moss-border);border-radius:var(--radius-sm);color:var(--moss-text-muted);cursor:pointer;transition:all .15s;padding:var(--space-sm) 0;height:60px}.nav-rail-icon{display:flex;align-items:center;justify-content:center}.nav-rail-label{font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.02em;line-height:1}.nav-rail-btn:hover{border-color:var(--moss-brand);color:var(--moss-brand)}.nav-rail-btn:active{transform:scale(.95)}.nav-rail-btn--active{border-color:var(--moss-brand);color:var(--moss-brand)}.sketch-layout{display:flex;flex-direction:row;flex:1;justify-content:center;max-height:100%;min-height:0;min-width:0;gap:var(--space-2xl);overflow:hidden;padding:var(--space-2xl) var(--space-xl)}.sketch-canvas-column{display:flex;flex-direction:column;flex:0 1 auto;min-width:0;min-height:0;gap:var(--space-md)}.sketch-canvas-wrap{display:flex;justify-content:center;align-items:center;position:relative;flex:0 1 auto;min-height:0}.sketch-canvas-wrap canvas,.sketch-canvas-wrap img{max-width:100%;max-height:calc(100vh - 160px);min-height:200px;image-rendering:pixelated;border-radius:var(--radius-sm);box-shadow:0 4px 12px var(--moss-shadow-lg),0 1px 3px var(--moss-shadow-sm)}.sketch-replay-bar{display:flex;align-items:center;flex-shrink:0;gap:var(--space-sm);width:100%;padding:var(--space-xs) 0}.sketch-replay-bar .pill-track{flex:1;cursor:pointer;touch-action:none}.sketch-replay-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;background:var(--moss-surface-overlay);border:1px solid var(--moss-border);border-radius:var(--radius-sm);color:var(--moss-text-muted);cursor:pointer;transition:color .15s,border-color .15s}.sketch-replay-btn:hover,.sketch-replay-btn.replaying{color:var(--moss-brand);border-color:var(--moss-brand)}.export-status{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:#000000a6;color:var(--jw-white);font-size:var(--font-xs);padding:var(--space-xs) var(--space-md);border-radius:999px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .25s ease}.export-status.visible{opacity:1}.dot-anim{display:inline-block;width:1.2em;text-align:left;animation:dot-fade 1.5s steps(4,end) infinite}@keyframes dot-fade{0%{clip-path:inset(0 100% 0 0)}25%{clip-path:inset(0 66% 0 0)}50%{clip-path:inset(0 33% 0 0)}75%{clip-path:inset(0 0 0 0)}}#sketch-replay-btn.replaying{border-color:var(--moss-brand);color:var(--moss-brand)}.sketch-sidebar{display:flex;flex-direction:column;flex-shrink:0;width:320px;min-height:0;overflow-y:auto;padding-top:var(--space-sm)}.sketch-title{font-family:"PP Mondwest",var(--font-mono);color:var(--moss-text-primary);margin:0;line-height:1.2}.sketch-author{font-family:var(--font-mono);font-size:1.25rem;color:var(--moss-text-muted);margin-top:var(--space-xs)}.sketch-draw-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:var(--space-sm) var(--space-xl);background:var(--moss-brand);border:1px solid var(--moss-brand);border-radius:var(--radius-md);color:var(--moss-bg-card);font-family:var(--font-mono);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}.sketch-draw-btn:hover{background:transparent;color:var(--moss-brand)}.sketch-publish-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-sm) var(--space-xl);margin-top:var(--space-lg);background:var(--moss-brand);border:1px solid var(--moss-brand);border-radius:var(--radius-md);color:var(--moss-bg-card);font-family:var(--font-mono);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}.sketch-publish-btn:hover{background:transparent;color:var(--moss-brand)}.sketch-publish-btn:disabled{opacity:.5;cursor:default}.sketch-stats{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--moss-text-muted);margin-top:var(--space-sm);opacity:.7}.sketch-draw-row{display:flex;gap:var(--space-sm);width:100%}.sketch-draw-row .sketch-draw-btn,.sketch-draw-row .sketch-try-pad-btn{flex:1;min-width:0}.sketch-share-btn{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;padding:0;background:transparent;border:1px solid var(--moss-brand);border-radius:var(--radius-md);color:var(--moss-brand);cursor:pointer;transition:all .15s}.sketch-share-btn:hover{background:var(--moss-brand);color:var(--moss-bg-card)}.sketch-share-btn:active{transform:scale(.96)}.sketch-source-pad{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-md);margin-top:var(--space-xl);padding:var(--space-lg);background:color-mix(in srgb,var(--moss-bg-card) 90%,black 10%);border:1px solid var(--moss-border-subtle);border-radius:var(--radius-lg)}.sketch-source-inner{display:flex;flex-direction:row;align-items:flex-start;gap:var(--space-md)}.sketch-source-logo{flex-shrink:0;width:36px;height:36px;background:var(--moss-brand);-webkit-mask-image:url(../img/MOSS.svg);mask-image:url(../img/MOSS.svg);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}.sketch-source-label{font-family:var(--font-mono);font-size:.75rem;color:var(--moss-text-muted);text-align:left;line-height:1.6;margin:0}.sketch-try-pad-btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-xl);background:transparent;border:1px solid var(--moss-brand);border-radius:var(--radius-md);color:var(--moss-brand);font-family:var(--font-mono);font-size:.8rem;cursor:pointer;transition:all .15s}.sketch-try-pad-btn:hover{background:var(--moss-brand);color:var(--moss-bg-card)}@media (max-width: 1000px){.sketch-outer{align-items:stretch}.sketch-layout{flex:1;flex-direction:column;overflow-y:auto}.sketch-canvas-wrap{max-height:60vh}.sketch-sidebar{width:100%}}@media (max-width: 600px){.sketch-outer,.scene-rail-layout{flex-direction:column}.nav-rail{flex-direction:row;width:100%;height:auto;padding:var(--space-sm) var(--space-md);border-right:none;border-bottom:1px solid var(--moss-border-dimmest)}.nav-rail-btn{flex-direction:row;width:auto;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm)}.nav-rail-label{font-size:var(--text-xs)}#scene-pane:has(.scene-rail-layout){padding:var(--space-sm)}.scene-rail-layout>.scene-scroll{padding:var(--space-md)}.sketch-layout{padding:var(--space-md);gap:var(--space-lg)}}@media (max-width: 1440px){body:before{opacity:0}#scene-stage:not(.editor-layout){padding:0;align-items:stretch;overflow:hidden}#scene-stage:not(.editor-layout)>#scene-pane{min-width:0;max-width:100%;max-height:100%;margin-block:0;padding:var(--space-xl) 0 0;border:none;border-radius:0}#scene-stage:not(.editor-layout)>#scene-pane:has(.scene-rail-layout){padding:0}.scene-scroll{margin-right:calc(-1 * var(--space-xl));padding-right:var(--space-xl)}#scene-root:has(>#scene-stage.editor-layout){padding:0}#scene-stage.editor-layout{border:none;border-radius:0;box-shadow:none}}@media (max-width: 1024px){.editor-body{flex-direction:column}#code-pane,.resize-divider-vertical{display:none!important}.editor-body>#editor-sidebar,.editor-body>#player-brush-sidebar{width:100%;max-width:100%;flex-direction:column;border-right:none;border-radius:0;padding:var(--space-sm) var(--space-md);overflow:hidden;flex-shrink:0;max-height:none;box-sizing:border-box}.sidebar-title-section,.sidebar-footer,.sidebar-section-header{display:none}.iro-picker-wrap,#add-color-btn{display:none!important}.mode-switch{display:none}.sidebar-colors-section{order:1}.sidebar-palette-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--space-5);padding:var(--space-5) 0}.sidebar-palette-container .palette-pill{flex:1;width:auto;height:28px;aspect-ratio:auto;min-width:20px}.brush-column{width:100%;max-width:100%}.sidebar-brushes-section{order:2}.brush-list{flex-direction:row;overflow:hidden;gap:var(--space-xs);padding:var(--space-5) 0}.brush-item{flex:1;flex-direction:column;min-width:0;padding:var(--space-5);gap:2px;text-align:center;justify-content:center}.brush-item .brush-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.65rem}.brush-slot-number,.brush-item .brush-description{display:none}.brush-add-slot{flex:1;min-width:0}.sidebar-settings-section{display:block;order:3}.sidebar-settings-section>.sidebar-section-label{display:none}.sidebar-settings-container{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm) var(--space-md);padding:var(--space-5) 0}.brush-param-label{width:auto;font-size:.65rem}.editor-header{flex-wrap:wrap}.header-tool-btn{padding:var(--space-6) var(--space-md)}.header-tool-btn svg{width:16px;height:16px}.header-action-btn{width:36px;height:36px}.header-action-btn svg{width:18px;height:18px}.play-btn svg{width:16px;height:16px}.floating-tool-pill .header-tool-btn{padding:var(--space-xs) var(--space-6)}.floating-tool-pill .header-tool-btn svg{width:14px;height:14px}.floating-tool-pill .pill-divider{height:14px}#scene-stage.editor-layout{padding:var(--space-sm);padding-bottom:var(--space-3xl)}#scene-stage.editor-layout #scene-pane{min-width:0;padding:0;margin:0;border:none;border-radius:0}#scene-pane{flex:1;min-height:0}#scene-pane>.scene-content{flex:1;min-height:0;padding:0}#scene-stage.editor-layout .canvas-package{flex-direction:column}.canvas-package,.canvas-column{flex:1;min-height:0;width:100%}}@media (max-width: 900px){.canvas-package{flex-direction:column;align-items:center}body.pad-mode .canvas-package{grid-template-columns:1fr}.brush-column{width:100%;flex-direction:row;padding:0 var(--space-sm)}.canvas-brand{bottom:var(--space-sm);left:var(--space-sm)}.play-btn,.editor-header-actions{top:var(--space-sm);right:var(--space-sm)}.file-menu.corner-menu{top:var(--space-sm);left:var(--space-sm)}}@media (max-width: 600px){.palette-key-hint{display:none}#scene-pane{padding:var(--space-lg)}.scene-scroll{margin-right:calc(-1 * var(--space-lg));padding-right:var(--space-lg)}.moss-brand{height:40px}.header-btn{font-size:.8rem;padding:var(--space-xs) var(--space-sm)}#scene-stage.editor-layout{padding:var(--space-sm);padding-bottom:var(--space-3xl)}#scene-stage.editor-layout #scene-pane{padding:var(--space-md)}.palette-pill{width:20px;height:20px}#canvas-footer{flex-wrap:wrap;justify-content:center;gap:var(--space-xs)}#editor-footer-actions,.pad-footer-actions{justify-content:center}.canvas-actions-column{flex-direction:row;align-self:auto;justify-content:center}.play-btn,.menu-btn{width:32px;height:32px}}@media (hover: none) and (pointer: coarse){.palette-key-hint{display:none}.brush-item{padding:var(--space-md) var(--space-14);min-height:48px}.palette-pill{width:32px;height:32px}.canvas-action-btn{width:40px;height:40px}.header-btn{padding:var(--space-10) var(--space-lg);font-size:.9rem}.pill-track{height:16px;border-radius:8px}.pill-fill{border-radius:8px}.sidebar-settings-container .pill-track{height:16px}.brush-size-control{min-width:120px}.brush-size-control .pill-track{height:14px}}*:focus-visible{outline:2px solid var(--moss-brand);outline-offset:2px}button:focus-visible,.header-btn:focus-visible,.canvas-action-btn:focus-visible,.slot-tab:focus-visible,.brush-item:focus-visible,.palette-pill:focus-visible,.template-row:focus-visible,.param-toggle:focus-visible,.pill-slider:focus-visible,.slot-delete:focus-visible,.brush-delete:focus-visible,.brush-edit:focus-visible,.palette-delete:focus-visible{outline:2px solid var(--moss-brand);outline-offset:2px;box-shadow:0 0 0 4px var(--moss-focus-ring)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--moss-brand);background-color:var(--moss-brand-faint)}@media (prefers-contrast: high){:root{--moss-border: var(--jw-cream);--moss-border-subtle: var(--jw-khaki)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body.lobby-mode #scene-pane{padding-inline:0;min-height:70vh;padding-bottom:0}body.lobby-mode #scene-pane>.scene-content{padding:0}body.lobby-mode #scene-pane .scene-content>.status-bar{margin:auto 0 0}.lobby-scene{gap:0}.lobby-scene .lobby-nav-bar{padding:0 var(--space-xl)}.lobby-scene .scene-scroll{display:flex;flex-direction:column;flex:1;height:100%}.lobby-wordmark{align-self:center;width:30%;aspect-ratio:625 / 160;background:var(--jw-forest);opacity:.18;mask-image:url(../img/moss-wordmark.svg);mask-size:contain;mask-repeat:no-repeat;mask-position:center;-webkit-mask-image:url(../img/moss-wordmark.svg);-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center}.lobby-layout{display:flex;flex-direction:row;align-items:stretch;gap:var(--space-4xl);margin-block:auto;padding:0 var(--space-2xl)}.lobby-aside{flex:2;min-width:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-xl)}.lobby-hero{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-xl) 0 var(--space-lg)}.lobby-hero-logo{width:64px;height:64px;background:var(--moss-brand);mask-image:url(../img/MOSS.svg);mask-size:contain;mask-repeat:no-repeat;mask-position:center;-webkit-mask-image:url(../img/MOSS.svg);-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center}.lobby-hero-greeting{font-family:"PP Mondwest",var(--font-mono);font-size:2rem;font-weight:400;color:var(--moss-text-primary);margin:0}.lobby-tagline{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-brand);text-align:center;line-height:1.6;margin:0;padding:0 var(--space-3xl);margin-bottom:var(--space-xl)}.lobby-decoration{min-width:0;width:80%;margin-top:auto;aspect-ratio:2 / 1;background-image:url(../img/decoration--creek.png);background-size:500% 100%;background-position:0 0;background-repeat:no-repeat;image-rendering:pixelated}.lobby-grid{display:flex;flex-direction:column;gap:var(--space-lg);flex:2;justify-content:center;padding:0 var(--space-xl)}.lobby-card{display:flex;flex-direction:row;align-items:center;gap:var(--space-lg);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .2s,box-shadow .2s,color .2s;text-align:left;background:transparent;border:2px solid var(--moss-border-subtle);padding:var(--space-lg) var(--space-xl)}.lobby-card:hover{border-color:var(--moss-brand);outline:4px solid color-mix(in srgb,var(--moss-brand) 40%,transparent);outline-offset:-2px}.lobby-card-text{display:flex;flex-direction:column;gap:var(--space-xs)}.lobby-card-icon{transition:color .2s;color:var(--moss-brand);flex-shrink:0}.lobby-card:hover .lobby-card-icon{color:var(--moss-brand)}.lobby-card-label{font-family:var(--font-mono);font-size:var(--text-md);font-weight:500;color:var(--moss-text-primary);transition:color .2s}.lobby-card-desc{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--moss-text-muted);transition:color .2s}.lobby-card:hover .lobby-card-label,.lobby-card:hover .lobby-card-desc{color:var(--moss-brand)}.lobby-card-secondary{gap:var(--space-2xl)}.lobby-card-secondary .lobby-card-label{font-size:var(--text-sm)}.lobby-card-thumb-preview{margin-left:auto;flex-shrink:0;width:48px;height:48px;border-radius:var(--radius-sm);overflow:hidden;image-rendering:pixelated}.lobby-card-thumb-preview canvas{width:100%;height:100%;display:block}@media (max-width: 900px){.lobby-layout{flex-direction:column;align-items:stretch}.lobby-aside{align-self:center;max-width:60%}}@media (max-width: 600px){.lobby-aside{max-width:80%}}.lobby-card-thumbs{position:relative;width:80px;height:64px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.lobby-thumb{position:absolute;width:48px;height:48px;object-fit:cover;border-radius:var(--radius-xs);border:2px solid var(--moss-border-subtle);image-rendering:pixelated;box-shadow:0 2px 6px #0000004d;transition:transform .2s,border-color .2s}.lobby-thumbs-messy[data-count="1"] .lobby-thumb:nth-child(1){transform:rotate(-4deg)}.lobby-thumbs-messy[data-count="2"] .lobby-thumb:nth-child(1){transform:translate(-8px,5px) rotate(-14deg);z-index:1}.lobby-thumbs-messy[data-count="2"] .lobby-thumb:nth-child(2){transform:translate(6px,-4px) rotate(8deg)}.lobby-thumbs-messy[data-count="3"] .lobby-thumb:nth-child(1){transform:translate(-12px,6px) rotate(-16deg);z-index:3}.lobby-thumbs-messy[data-count="3"] .lobby-thumb:nth-child(2){transform:translate(4px,-5px) rotate(11deg);z-index:2}.lobby-thumbs-messy[data-count="3"] .lobby-thumb:nth-child(3){transform:translate(10px,4px) rotate(-3deg);z-index:1}.lobby-thumbs-framed .lobby-thumb{border:3px solid var(--moss-border);border-radius:1px;box-shadow:0 2px 6px #0000004d,inset 0 0 0 1px var(--moss-border-subtle)}.lobby-thumbs-framed[data-count="1"] .lobby-thumb:nth-child(1){transform:rotate(0)}.lobby-thumbs-framed[data-count="2"] .lobby-thumb:nth-child(1){transform:translate(-10px) rotate(0);z-index:1}.lobby-thumbs-framed[data-count="2"] .lobby-thumb:nth-child(2){transform:translate(10px) rotate(0)}.lobby-thumbs-framed[data-count="3"] .lobby-thumb:nth-child(1){transform:translate(-14px) rotate(0);z-index:3}.lobby-thumbs-framed[data-count="3"] .lobby-thumb:nth-child(2){transform:translate(0) rotate(0);z-index:2}.lobby-thumbs-framed[data-count="3"] .lobby-thumb:nth-child(3){transform:translate(14px) rotate(0);z-index:1}.lobby-card:hover .lobby-thumbs-messy[data-count="1"] .lobby-thumb:nth-child(1){transform:translate(1px,-1px) rotate(-7deg)}.lobby-card:hover .lobby-thumbs-messy[data-count="2"] .lobby-thumb:nth-child(1){transform:translate(-10px,6px) rotate(-17deg)}.lobby-card:hover .lobby-thumbs-messy[data-count="2"] .lobby-thumb:nth-child(2){transform:translate(8px,-5px) rotate(11deg)}.lobby-card:hover .lobby-thumbs-messy[data-count="3"] .lobby-thumb:nth-child(1){transform:translate(-14px,7px) rotate(-19deg)}.lobby-card:hover .lobby-thumbs-messy[data-count="3"] .lobby-thumb:nth-child(2){transform:translate(5px,-6px) rotate(14deg)}.lobby-card:hover .lobby-thumbs-messy[data-count="3"] .lobby-thumb:nth-child(3){transform:translate(12px,5px) rotate(-6deg)}.lobby-thumbs-framed .lobby-thumb{transition:transform .35s ease-out,border-color .2s}.lobby-card:hover .lobby-thumbs-framed[data-count="2"] .lobby-thumb:nth-child(1){transform:translate(-14px) rotate(0)}.lobby-card:hover .lobby-thumbs-framed[data-count="2"] .lobby-thumb:nth-child(2){transform:translate(14px) rotate(0)}.lobby-card:hover .lobby-thumbs-framed[data-count="3"] .lobby-thumb:nth-child(1){transform:translate(-19px) rotate(0)}.lobby-card:hover .lobby-thumbs-framed[data-count="3"] .lobby-thumb:nth-child(2){transform:translate(0) rotate(0)}.lobby-card:hover .lobby-thumbs-framed[data-count="3"] .lobby-thumb:nth-child(3){transform:translate(19px) rotate(0)}.drop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--moss-bg-page) 85%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .2s}.drop-overlay.visible{opacity:1;pointer-events:auto}.drop-overlay-label{font-family:var(--font-mono);font-size:var(--text-xl);color:var(--moss-brand);border:2px dashed var(--moss-brand);border-radius:var(--radius-sm);padding:var(--space-3xl) var(--space-4xl)}#mobile-gate{display:none}@media (max-width: 599px){#mobile-gate{display:flex;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;justify-content:center;align-items:center;background:var(--moss-bg-page)}#scene-root{display:none}}.mobile-gate-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-3xl);max-width:320px;padding:var(--space-3xl)}.mobile-gate-avatar{width:96px;height:96px;background:var(--moss-brand);mask-image:url(../img/MOSS.svg);mask-size:contain;mask-repeat:no-repeat;mask-position:center;-webkit-mask-image:url(../img/MOSS.svg);-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center}.mobile-gate-text{font-family:var(--font-mono);font-size:1.1rem;line-height:1.6;color:var(--moss-text);text-align:center;margin:0}#welcome-layout{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--moss-bg-page);transition:opacity .5s ease}#welcome-layout.welcome-exit{opacity:0}.welcome-scene{display:flex;flex-direction:column;align-items:center;gap:var(--space-3xl);max-width:520px;width:100%;padding:var(--space-3xl)}.welcome-character{opacity:0;transition:opacity .8s ease}.welcome-character.fade-in{opacity:1}.welcome-avatar{width:120px;height:120px;background:var(--moss-brand);mask-image:url(../img/MOSS.svg);mask-size:contain;mask-repeat:no-repeat;mask-position:center;-webkit-mask-image:url(../img/MOSS.svg);-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center}#welcome-layout.awaiting-click{cursor:pointer}.welcome-dialogue-area{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);min-height:10rem}#welcome-layout.awaiting-click .welcome-dialogue:after{content:"▸";display:block;margin-top:var(--space-lg);font-size:1rem;color:var(--moss-text-muted);animation:welcome-blink 1.2s ease-in-out infinite}@keyframes welcome-blink{0%,to{opacity:.3}50%{opacity:1}}.welcome-dialogue{font-family:var(--font-mono);font-size:2rem;color:var(--moss-text);text-align:center;opacity:0;transition:opacity .4s ease}.welcome-dialogue.fade-in{opacity:1}.welcome-dialogue.fade-out{opacity:0}.welcome-input-wrap{display:flex;align-items:center;gap:var(--space-md);opacity:0;transition:opacity .4s ease}.welcome-input-wrap.fade-in{opacity:1}.welcome-input-wrap.fade-out{opacity:0}.welcome-name-input{font-family:var(--font-mono);font-size:1.5rem;padding:var(--space-md) var(--space-lg);border:2px solid var(--moss-border);border-radius:var(--radius-md);background:var(--moss-bg-elevated);color:var(--moss-text);outline:none;width:280px;text-align:center}.welcome-name-input:focus{border-color:var(--moss-brand)}.welcome-submit-btn{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border:2px solid var(--moss-border);border-radius:var(--radius-md);background:var(--moss-bg-elevated);color:var(--moss-text);cursor:pointer;transition:all .15s}.welcome-submit-btn:hover{border-color:var(--moss-brand);color:var(--moss-brand)}.pads-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-xl)}.weekly-header{display:flex;align-items:baseline;gap:var(--space-md);flex-wrap:wrap}.weekly-date{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--moss-text-muted)}.weekly-hero{display:flex;gap:var(--space-xl);margin:var(--space-lg) 0 var(--space-2xl);align-items:flex-start}.weekly-hero-canvas{flex:0 0 256px;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--moss-border-subtle);background:var(--moss-bg-page)}.weekly-hero-preview{width:100%;height:100%;image-rendering:pixelated}.weekly-hero-info{flex:1;min-width:0}.weekly-authors-note{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--moss-text-secondary);line-height:1.6;margin:0 0 var(--space-lg)}.weekly-submit-btn{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;padding:var(--space-sm) var(--space-lg);border:1px solid var(--moss-brand);border-radius:var(--radius-md);background:transparent;color:var(--moss-brand);cursor:pointer;transition:background .15s,color .15s}.weekly-submit-btn:hover{background:var(--moss-brand);color:var(--moss-bg-page)}.weekly-submit-btn.hidden{display:none}.weekly-section-title{font-family:var(--font-mono);font-size:var(--text-md);font-weight:500;color:var(--moss-text-primary);margin:0 0 var(--space-md)}.weekly-submissions{margin-bottom:var(--space-2xl)}.weekly-thumb-placeholder{aspect-ratio:1;background:var(--moss-bg-elevated);border-radius:var(--radius-sm)}@media (max-width: 600px){.weekly-hero{flex-direction:column}.weekly-hero-canvas{flex:none;width:100%;max-width:256px}}body.pad-mode .pad-canvas-wrap{aspect-ratio:1;flex:none}.pad-player-subtitle{margin-bottom:var(--space-md)}.pad-player-author,.pad-player-description{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-text-muted);margin-top:var(--space-2xs)}.submit-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999}.submit-dialog{background:var(--moss-bg-card);border:1px solid var(--moss-border);border-radius:var(--radius-md);padding:var(--space-xl);min-width:320px;max-width:400px;display:flex;flex-direction:column;gap:var(--space-md)}.submit-dialog-title{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:500;color:var(--moss-text-primary);margin:0}.submit-dialog-label{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--moss-text-secondary)}.submit-dialog-input{font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--space-sm) var(--space-md);border:1px solid var(--moss-border);border-radius:var(--radius-sm);background:var(--moss-bg-input);color:var(--moss-text-primary);outline:none}.submit-dialog-input:focus{border-color:var(--moss-brand);box-shadow:0 0 0 2px var(--moss-focus-ring)}.submit-dialog-status{font-family:var(--font-mono);font-size:var(--text-xs);min-height:1.2em}.submit-dialog-success{color:var(--moss-success)}.submit-dialog-error{color:var(--moss-error)}.submit-dialog-buttons{display:flex;gap:var(--space-sm);justify-content:flex-end}.submit-dialog-cancel,.submit-dialog-submit{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,color .15s}.submit-dialog-cancel{background:transparent;border:1px solid var(--moss-border);color:var(--moss-text-secondary)}.submit-dialog-cancel:hover{border-color:var(--moss-text-muted);color:var(--moss-text-primary)}.submit-dialog-submit{background:var(--moss-brand);border:1px solid var(--moss-brand);color:var(--moss-bg-page)}.submit-dialog-submit:hover{background:var(--moss-brand-glow);border-color:var(--moss-brand-glow)}.submit-dialog-submit:disabled{opacity:.6;cursor:not-allowed}.status-bar{display:flex;align-items:center;gap:var(--space-sm);height:40px;padding:0 var(--space-md);border-top:1px solid var(--moss-border-subtle);background:var(--moss-bg-card);flex-shrink:0;align-self:stretch;margin-top:auto;box-sizing:border-box}.status-bar-logo{display:inline-block;width:16px;height:16px;background:var(--moss-text-muted);mask-image:url(../img/MOSS.svg);-webkit-mask-image:url(../img/MOSS.svg);mask-size:contain;-webkit-mask-size:contain;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center}.status-bar-version{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-text-muted)}.status-bar-sep{color:var(--moss-text-muted);opacity:.4}.status-bar-debug{display:flex;gap:var(--space-sm);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--moss-text-muted);overflow:hidden;min-width:0;flex:1}.status-bar:has(.status-bar-debug:empty) .status-bar-sep{display:none}.status-bar-debug .stat{white-space:nowrap}.status-bar-indicator{width:12px;height:12px;border-radius:2px;background:var(--moss-border);cursor:pointer;transition:background .2s,box-shadow .2s}.status-bar-indicator.running{background:var(--moss-brand);box-shadow:0 0 6px var(--moss-brand-ghost),0 0 14px var(--moss-brand-faint);animation:indicator-pulse 2s ease-in-out infinite}@keyframes indicator-pulse{0%,to{opacity:1}50%{opacity:.6}}#scene-pane .scene-content>.status-bar{margin:auto calc(-1 * var(--space-3xl)) calc(-1 * var(--space-3xl));border-radius:0 0 calc(var(--radius-sm) - 2px) calc(var(--radius-sm) - 2px)}#scene-pane:has(.scene-rail-layout) .scene-content>.status-bar{margin:auto 0 0;border-radius:0 0 calc(var(--radius-sm) - 2px) calc(var(--radius-sm) - 2px)}body.pad-mode #scene-pane .scene-content>.status-bar{margin:auto calc(-1 * var(--space-xl)) calc(-1 * var(--space-xl));padding:0 var(--space-xl);border-radius:0 0 calc(var(--radius-lg) - 6px) calc(var(--radius-lg) - 6px)}.welcome-scene>.status-bar{margin:auto calc(-1 * var(--space-3xl)) calc(-1 * var(--space-3xl));padding:0 var(--space-3xl)}@media (max-width: 1440px){#scene-pane .scene-content>.status-bar{margin:auto calc(-1 * var(--space-xl)) calc(-1 * var(--space-xl));padding:0 var(--space-xl);border-radius:0}}@media (max-width: 600px){#scene-pane .scene-content>.status-bar{margin:auto calc(-1 * var(--space-lg)) calc(-1 * var(--space-lg));padding:0 var(--space-lg)}}#toast-container{position:fixed;top:var(--space-lg);left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:var(--space-sm);pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--moss-bg-elevated);border:1px solid var(--moss-border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--moss-text-primary);pointer-events:auto;animation:toast-slide-in .25s ease-out;box-shadow:0 4px 12px #0000004d}.toast-success{border-color:var(--moss-success)}.toast-error{border-color:var(--moss-error)}.toast-text{flex:1;white-space:nowrap}.toast-close{background:none;border:none;color:var(--moss-text-muted);font-size:var(--text-md);cursor:pointer;padding:0 var(--space-xs);line-height:1}.toast-close:hover{color:var(--moss-text-primary)}.toast-exit{animation:toast-slide-out .2s ease-in forwards}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-slide-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}.pad-card-published-badge{position:absolute;top:var(--space-xs);right:var(--space-xs);padding:var(--space-2xs) var(--space-sm);background:var(--moss-success);color:var(--moss-bg-card);font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border-radius:var(--radius-sm);z-index:2;pointer-events:none}.pad-card-unpublish-btn{position:absolute;bottom:0;left:0;right:0;padding:var(--space-xs) 0;background:var(--moss-error);color:var(--moss-bg-card);border:none;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;opacity:0;transition:opacity .2s;z-index:2}.pad-card--published:hover .pad-card-unpublish-btn{opacity:1}.guide-page{background:var(--moss-bg);color:var(--moss-text-primary);min-height:100vh;-webkit-user-select:text;user-select:text}.guide-page #guide-root{display:flex;flex-direction:column;max-width:720px;margin:0 auto;min-height:100vh}.guide-page .api-guide-header{position:sticky;top:0;z-index:10;border-bottom:2px solid var(--moss-border)}.guide-page .api-guide-search{position:sticky;top:52px;z-index:9}.guide-page .api-guide-content{flex:1;overflow:visible;padding-bottom:var(--space-7xl)}
