@font-face{font-family:Geist Sans;src:url(/glint-studio/assets/Geist-Variable-CrgPqtmy.woff2) format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Geist Mono;src:url(/glint-studio/assets/GeistMono-Variable-BNLlm6Cd.woff2) format("woff2");font-weight:100 900;font-display:swap}:root{--bg-base: #101012;--bg-surface: #18181b;--bg-elevated: #1f1f23;--bg-field: #26262b;--bg-hover: #2c2c32;--bg-active: #34343b;--border: #2a2a30;--border-subtle: #222228;--border-focus: #4a4a55;--border-field: #303038;--text-primary: #ececef;--text-secondary: #9b9ba4;--text-muted: #5a5a65;--text-dim: #44444e;--accent: #7c6aef;--accent-hover: #8f7ff7;--accent-muted: rgba(124, 106, 239, .12);--accent-subtle: rgba(124, 106, 239, .06);--error: #f06060;--error-muted: rgba(240, 96, 96, .12);--success: #3ec97a;--sidebar-width: 340px;--header-height: 48px;--font-ui: "Geist Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "Geist Mono", "SF Mono", monospace;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-lg: 15px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-field: 10px}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg-base);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}::selection{background:var(--accent);color:#fff}#app{width:100%;height:100%;display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--header-height) 1fr;transition:grid-template-columns .25s ease}#app.sidebar-closed{grid-template-columns:0px 1fr}#app.sidebar-closed .sidebar{opacity:0;pointer-events:none}.header{grid-column:1 / -1;grid-row:1;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-5);background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:10}.header-left{display:flex;align-items:center;gap:var(--space-4)}.header-logo{font-family:var(--font-mono);font-weight:600;font-size:var(--text-lg);color:var(--text-primary);letter-spacing:.02em;display:flex;align-items:center;gap:6px}.header-logo span{color:var(--accent);font-size:var(--text-sm)}.sidebar-name-field{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) var(--space-5)}.sidebar-name-label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.sidebar-shader-name{width:100%;font-size:var(--text-sm);font-family:var(--font-ui);font-weight:400;color:var(--text-secondary);background:var(--bg-field);border:1px solid var(--border-field);border-radius:var(--radius-field);padding:8px 12px;outline:none;transition:border-color .2s,color .2s,background .2s;box-sizing:border-box}.sidebar-shader-name:focus{border-color:var(--accent);color:var(--text-primary);background:var(--bg-elevated)}.header-center,.header-right{display:flex;align-items:center;gap:var(--space-2)}.sidebar{grid-column:1;grid-row:2;background:var(--bg-surface);border-right:1px solid var(--border);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;transition:opacity .2s ease}.sidebar::-webkit-scrollbar{width:5px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.main-area{grid-column:2;grid-row:2;display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}.preview-container{flex:1;position:relative;min-height:0;background:#000;overflow:hidden}.preview-container canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.preview-error{position:absolute;bottom:var(--space-4);left:var(--space-4);right:var(--space-4);padding:var(--space-3) var(--space-4);background:#100c0cd9;border:1px solid var(--error);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--error);white-space:pre-wrap;max-height:120px;overflow-y:auto;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.editor-container{position:relative;background:var(--bg-surface);border-top:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.editor-drag-handle{height:4px;cursor:ns-resize;background:transparent;position:absolute;top:0;left:0;right:0;z-index:5}.editor-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-4);background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.editor-header-label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.editor-content{flex:1;min-height:0;overflow:hidden}.editor-content .cm-editor{height:100%}.editor-content .cm-scroller{font-family:var(--font-mono)!important;font-size:var(--text-sm)!important;line-height:1.6!important}.sidebar-section{border-bottom:1px solid var(--border-subtle)}.sidebar-section-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-5);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.sidebar-section-title{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.sidebar-section-chevron{width:12px;height:12px;color:var(--text-muted)}.sidebar-section-content{overflow:hidden}.sidebar-section-content-inner{padding:var(--space-1) var(--space-5) var(--space-4) var(--space-7)}.control-group{display:flex;flex-direction:column;gap:6px}.control{display:flex;flex-direction:column;gap:0;background:var(--bg-field);border:1px solid var(--border-field);border-radius:var(--radius-field);padding:8px 12px;transition:border-color .15s}.control-label{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-xs);color:var(--text-muted);margin-bottom:4px}.control-label-text{font-weight:500;font-size:var(--text-xs);letter-spacing:.01em}.control-value{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;font-variant-numeric:tabular-nums;color:var(--text-secondary);min-width:36px;text-align:right}.control-row{display:flex;align-items:center;gap:var(--space-2)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:3px;background:var(--bg-active);border-radius:2px;outline:none;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text-primary);border:none;cursor:pointer;transition:transform .1s,box-shadow .15s;box-shadow:0 1px 4px #0000004d}input[type=range]:active::-webkit-slider-thumb{transform:scale(.95);box-shadow:0 0 0 4px var(--accent-muted)}input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--text-primary);border:none;cursor:pointer}.color-control{display:flex;align-items:center;gap:var(--space-2)}.color-swatch{width:24px;height:24px;border-radius:6px;border:1px solid rgba(255,255,255,.08);cursor:pointer;flex-shrink:0;box-shadow:0 1px 3px #0003}.color-picker-popover{z-index:100;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px;box-shadow:0 8px 24px #00000080}.color-picker-popover .react-colorful{width:200px;height:auto}.color-picker-popover .react-colorful__saturation{height:160px;border-radius:var(--radius-sm);border-bottom:none}.color-picker-popover .react-colorful__hue{height:10px;border-radius:5px;margin-top:8px}.color-picker-popover .react-colorful__pointer{width:16px;height:16px;border:2px solid #fff;box-shadow:0 1px 4px #0006}.color-hex-input{flex:1;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;background:transparent;border:none;padding:0;color:var(--text-secondary);outline:none;transition:color .15s}.color-hex-input:focus{color:var(--text-primary)}.gradient-bar-container{position:relative;padding:0 6px 14px;margin-bottom:var(--space-2);touch-action:none}.gradient-bar{height:20px;border-radius:99px;border:1px solid var(--border)}.gradient-handles{position:relative;height:14px}.gradient-handle{position:absolute;top:2px;width:12px;height:12px;border-radius:50%;border:none;transform:translate(-50%);cursor:grab;box-shadow:0 0 0 2px var(--bg-primary),0 1px 3px #0006;transition:transform .1s ease}.gradient-handle:hover{transform:translate(-50%) scale(1.2)}.gradient-handle:active,.gradient-handle.active{cursor:grabbing;transform:translate(-50%) scale(1.3)}.color-row{display:flex;flex-direction:row;align-items:center;gap:var(--space-2)}.color-row .control-label{margin-bottom:0}.color-row .color-control{flex:1}.color-drag-handle{display:flex;align-items:center;justify-content:center;width:14px;height:18px;cursor:grab;color:var(--text-muted);flex-shrink:0;opacity:.7;transition:opacity .15s,color .1s;-webkit-user-select:none;user-select:none;touch-action:none}.color-drag-handle:active{cursor:grabbing}.color-remove-btn{flex-shrink:0;opacity:.35;transition:opacity .15s;position:absolute;right:8px;top:0;bottom:0;margin:auto 0;height:fit-content}.color-row{position:relative}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:5px 14px;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:500;border:1px solid var(--border-field);border-radius:var(--radius-field);background:var(--bg-field);color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap;height:32px;-webkit-user-select:none;user-select:none}.btn:active{background:var(--bg-active);transform:scale(.98)}.btn-primary{background:var(--accent);border-color:transparent;color:#fff}.btn-icon{width:32px;padding:0}.btn-ghost{background:transparent;border-color:transparent}.control-reset{width:16px;height:16px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--text-muted);cursor:pointer;border-radius:50%;opacity:0;transition:opacity .1s,color .1s,transform .1s;flex-shrink:0}.control-reset:active{transform:scale(.85)}.preset-list{display:flex;flex-direction:column}.random-shader-btn,.add-color-btn{width:100%;padding:8px 0;margin-top:var(--space-2);border-style:dashed;border-color:var(--border-field);background:transparent;color:var(--text-dim);font-size:var(--text-xs);letter-spacing:.04em}.preset-row{display:flex;align-items:center;gap:var(--space-3);padding:7px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.preset-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.preset-row.active{background:var(--accent-subtle)}.preset-row.active .preset-row-name{color:var(--accent-hover)}.preset-row-thumb{width:36px;height:24px;border-radius:4px;background:#0a0a0c;overflow:hidden;flex-shrink:0;border:1px solid var(--border-subtle)}.preset-row-thumb img{width:100%;height:100%;display:block;object-fit:cover}.preset-row-info{display:flex;flex-direction:column;min-width:0}.preset-row-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);line-height:1.3}.preset-row-desc{font-size:var(--text-xs);color:var(--text-dim);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-picker{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:12px}.palette-picker-header{display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-user-select:none;user-select:none}.palette-picker-label{font-size:var(--text-xs);font-weight:500;color:var(--text-secondary);letter-spacing:.01em}.palette-picker-chevron{color:var(--text-dim);flex-shrink:0}.preset-palettes{display:flex;gap:8px;padding:10px 0 4px}.preset-palette-swatch{width:24px;height:24px;border-radius:99px;border:none;padding:0;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff14;transition:transform .15s,box-shadow .15s}.preset-palette-swatch:hover{transform:scale(1.2);box-shadow:inset 0 0 0 1px #ffffff1f,0 0 0 2px var(--border-focus)}.saved-list{display:flex;flex-direction:column}.saved-item{display:flex;align-items:center;gap:var(--space-3);padding:9px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.saved-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.saved-item-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.saved-item-date{font-size:var(--text-xs);color:var(--text-dim);font-family:var(--font-mono);font-weight:300}.saved-item-actions{display:flex;gap:var(--space-1);opacity:.35;transition:opacity .1s}.saved-item-swatch{width:36px;height:24px;border-radius:4px;flex-shrink:0;border:1px solid var(--border-subtle);background:var(--bg-field)}.saved-item-info{min-width:0;flex:1}.saved-item-rename-input{font-family:var(--font-ui);font-size:var(--text-sm);background:var(--bg-field);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:2px 6px;color:var(--text-primary);outline:none;width:100%}.btn-ghost.copied{color:var(--success)}.control-select{width:100%;font-family:var(--font-ui);font-size:var(--text-sm);background:transparent;border:none;padding:0;color:var(--text-secondary);outline:none;cursor:pointer}.control-select option{background:var(--bg-elevated);color:var(--text-primary)}.select{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;background:var(--bg-field);border:1px solid var(--border-field);border-radius:var(--radius-field);padding:4px 8px;color:var(--text-secondary);outline:none;cursor:pointer;transition:border-color .15s;height:28px}.select:focus{border-color:var(--accent)}.time-controls{display:flex;align-items:center;gap:4px}.time-display{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:300;font-variant-numeric:tabular-nums;color:var(--text-muted);min-width:48px;text-align:right;letter-spacing:.02em}.export-panel{display:flex;flex-direction:column;gap:var(--space-3)}.export-fn-input{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:400;background:transparent;border:none;padding:0;color:var(--text-primary);outline:none;width:100%}.export-fn-input::placeholder{color:var(--text-dim)}.export-buttons{display:flex;gap:6px}.export-buttons .btn{flex:1}.effects-list{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-3)}.effect-item{background:var(--bg-field);border:1px solid var(--border-field);border-radius:var(--radius-md);overflow:hidden;transition:border-color .15s,opacity .2s}.effect-item.disabled{opacity:.4}.effect-item-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px}.effect-item-left{display:flex;align-items:center;gap:6px;min-width:0}.effect-drag-handle{display:flex;align-items:center;justify-content:center;width:14px;height:18px;cursor:grab;color:var(--text-muted);flex-shrink:0;opacity:.7;transition:opacity .15s,color .1s;-webkit-user-select:none;user-select:none;touch-action:none}.effect-drag-handle:active{cursor:grabbing}.effect-item-right{display:flex;align-items:center;gap:2px}.effect-item-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.effect-chevron{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--text-muted);transition:color .15s}.effect-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:28px;height:16px;background:var(--bg-active);border-radius:8px;position:relative;cursor:pointer;transition:background .2s;flex-shrink:0;border:none;outline:none;-webkit-user-select:none;user-select:none}.effect-toggle:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--text-muted);transition:transform .2s,background .2s}.effect-toggle:checked{background:var(--accent)}.effect-toggle:checked:after{transform:translate(12px);background:#fff}.effect-category-header{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:6px 2px 4px}.effect-category-header:not(:first-child){margin-top:8px}.category-add-btn{display:inline-flex;align-items:center;gap:3px;height:22px;padding:0 8px 0 6px;font-family:var(--font-ui);font-size:var(--text-xs);font-weight:500;color:var(--text-muted);background:transparent;border:none;border-radius:99px;cursor:pointer;transition:color .15s}.category-add-btn:hover{color:var(--text-secondary)}.category-add-btn:active{transform:scale(.96)}.category-add-btn.open{color:var(--text-secondary)}.category-add-btn svg{width:9px;height:9px}.category-dropdown{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:8px}.category-dropdown-inner{padding:4px 0}.effect-remove-btn{opacity:.35;transition:opacity .1s;width:24px;height:24px}.effect-item-controls{padding:2px 10px 10px;border-top:1px solid var(--border-subtle)}.effect-item-controls .dialkit-param-controls{display:flex;flex-direction:column;gap:4px}.effect-item-controls .control{background:transparent;border:none;border-radius:0;padding:4px 0}.effect-catalog-item{padding:6px 12px;cursor:pointer;transition:background .1s;border-radius:0}.effect-catalog-item-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary)}.effect-catalog-item-desc{font-size:var(--text-xs);color:var(--text-dim);line-height:1.3}.inline-confirm{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--error);white-space:nowrap}.inline-confirm-label{font-weight:500}.inline-confirm-yes{color:var(--error);font-weight:600}.inline-confirm-no{color:var(--text-secondary)}.mono{font-family:var(--font-mono)}.text-muted{color:var(--text-muted)}.empty-state{padding:var(--space-4);text-align:center;color:var(--text-dim);font-size:var(--text-xs);font-family:var(--font-mono);letter-spacing:.02em}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(8px);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 16px;font-family:var(--font-ui);font-size:var(--text-sm);color:var(--text-primary);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease;z-index:1000;box-shadow:0 4px 12px #0000004d}.toast-visible{opacity:1;transform:translate(-50%) translateY(0)}.separator{height:1px;background:var(--border-subtle);margin:var(--space-2) 0}@media(hover:hover){.sidebar-shader-name:hover{border-color:var(--border-focus);color:var(--text-primary)}.sidebar::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.editor-drag-handle:hover{background:var(--accent-muted)}.sidebar-section-header:hover{background:var(--bg-hover)}.control:hover{border-color:var(--border-focus)}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}.color-row:hover .color-drag-handle{opacity:1}.color-drag-handle:hover{color:var(--text-secondary)}.color-row:hover .color-remove-btn{opacity:.7}.color-remove-btn:hover{opacity:1!important}.btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-focus)}.btn-primary:hover{background:var(--accent-hover);border-color:transparent;color:#fff}.btn-ghost:hover{background:var(--bg-hover);border-color:transparent}.control:hover .control-reset{opacity:1}.control-reset:hover{color:var(--text-primary);transform:scale(1.2)}.preset-row:hover,.saved-item:hover{background:var(--bg-hover)}.saved-item:hover .saved-item-actions{opacity:1}.select:hover{border-color:var(--border-focus)}.effect-item:hover .effect-drag-handle{opacity:1}.effect-drag-handle:hover,.effect-item-header:hover .effect-chevron{color:var(--text-secondary)}.effect-item:hover .effect-remove-btn{opacity:.7}.effect-remove-btn:hover{opacity:1!important}.effect-item-controls .control:hover{border-color:transparent}.effect-catalog-item:hover{background:var(--bg-hover)}}.sidebar-toolbar,.sidebar-backdrop{display:none}@media(max-width:768px){#app{grid-template-columns:1fr;transition:none}#app.sidebar-closed{grid-template-columns:1fr}.main-area{grid-column:1}.sidebar{position:fixed;top:var(--header-height);left:0;bottom:0;width:min(var(--sidebar-width),85vw);z-index:30;transform:translate(0);transition:transform .25s ease,opacity .25s ease;opacity:1;box-shadow:4px 0 24px #0006;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}#app.sidebar-closed .sidebar{transform:translate(-100%);opacity:1;pointer-events:none;box-shadow:none}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;background:#00000080}.sidebar-toolbar{display:flex;align-items:center;gap:2px;padding:var(--space-2) var(--space-3);background:var(--bg-surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1;flex-shrink:0}.sidebar-toolbar-separator{width:1px;height:24px;background:var(--border);margin:0 var(--space-1);flex-shrink:0}.sidebar-toolbar .time-controls{gap:2px}.btn{min-height:44px;min-width:44px;padding:8px 16px}.btn-icon{width:44px;min-width:44px}.effect-drag-handle,.color-drag-handle{width:28px;height:44px;margin:-8px 0}.effect-toggle{width:36px;height:20px;min-width:36px;min-height:20px}.effect-toggle:after{width:16px;height:16px}.effect-toggle:checked:after{transform:translate(16px)}.effect-item-header{min-height:44px}.effect-remove-btn,.color-remove-btn{width:44px;min-width:44px;min-height:44px}.color-row{min-height:44px;align-items:center}.category-add-btn{min-height:44px;padding:8px 12px}.gradient-handle{width:18px;height:18px;top:-1px}.header{padding:0 var(--space-3)}.header-right,.header-center{gap:2px}}.dialkit-root{--dial-surface: rgba(255, 255, 255, .05);--dial-surface-hover: rgba(255, 255, 255, .1);--dial-surface-active: rgba(255, 255, 255, .11);--dial-text-root: #FFFFFF;--dial-text-section: rgba(255, 255, 255, .7);--dial-text-label: rgba(255, 255, 255, .7);--dial-text-primary: rgba(255, 255, 255, .95);--dial-text-secondary: rgba(255, 255, 255, .6);--dial-text-tertiary: rgba(255, 255, 255, .4);--dial-border: rgba(255, 255, 255, .1);--dial-border-hover: rgba(255, 255, 255, .15);--dial-glass-bg: #212121;--dial-backdrop-blur: 20px;--dial-radius: 8px;--dial-row-height: 36px;--dial-shadow: 0 8px 32px rgba(0, 0, 0, .5);font-family:system-ui,-apple-system,SF Pro Display,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dialkit-panel{position:fixed;z-index:9999;max-height:calc(100vh - 32px);overflow:visible}.dialkit-panel-inner{background:var(--dial-glass-bg);border:1px solid var(--dial-border);border-radius:14px;backdrop-filter:blur(var(--dial-backdrop-blur));-webkit-backdrop-filter:blur(var(--dial-backdrop-blur));padding:10px 12px 12px;transform:translateZ(0);max-height:calc(100vh - 80px);overflow-y:auto}.dialkit-panel-inner[data-collapsed=true]{border-radius:50%;padding:12px}.dialkit-panel-inner[data-collapsed=true] .dialkit-panel-header{padding-bottom:0;margin-bottom:0;border-bottom:none}.dialkit-panel-inner[data-collapsed=true] .dialkit-folder-title-row{display:none}.dialkit-panel-inner[data-collapsed=true] .dialkit-folder-header-top{justify-content:center;padding:0}.dialkit-panel-inner::-webkit-scrollbar{display:none}.dialkit-panel-inner{-ms-overflow-style:none;scrollbar-width:none}.dialkit-panel[data-position=top-right]{top:16px;right:16px}.dialkit-panel[data-position=top-left]{top:16px;left:16px}.dialkit-panel[data-position=bottom-right]{bottom:16px;right:16px}.dialkit-panel[data-position=bottom-left]{bottom:16px;left:16px}.dialkit-folder{padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid rgba(255,255,255,.06)}.dialkit-folder:last-child:not(.dialkit-folder-root){padding-bottom:0;margin-bottom:0}.dialkit-folder-root{padding-bottom:0;margin-bottom:0;border-bottom:none}.dialkit-panel-header{padding-bottom:6px;margin-bottom:12px;border-bottom:1px solid rgba(255,255,255,.06)}.dialkit-folder-header{cursor:pointer;-webkit-user-select:none;user-select:none}.dialkit-folder-header-top{display:flex;align-items:center;justify-content:space-between;padding:0 0 8px}.dialkit-folder-title{font-size:13px;font-weight:600;color:var(--dial-text-section);letter-spacing:-.01em;transform:translateY(-.5px);transition:color .15s}.dialkit-folder-title-root{font-size:15px;font-weight:600;color:var(--dial-text-root);transform:translateZ(0)}.dialkit-folder-title-row{display:flex;align-items:center;gap:6px;flex:1;white-space:nowrap;overflow:hidden}.dialkit-folder-copy{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;cursor:pointer}.dialkit-folder-copy svg{width:14px;height:14px;color:var(--dial-text-section)}.dialkit-folder-icon{width:20px;height:20px;padding:2px;box-sizing:border-box;flex-shrink:0;color:var(--dial-text-label);opacity:.6}.dialkit-panel-icon{position:absolute;top:12px;right:12px;width:16px;height:16px;color:#fff;z-index:1}.dialkit-folder-content{overflow-x:visible;overflow-y:clip;will-change:transform}.dialkit-folder-inner{display:flex;flex-direction:column;gap:6px;padding-bottom:10px}.dialkit-folder:not(.dialkit-folder-root){border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);margin-top:4px;margin-bottom:4px;padding-bottom:0}.dialkit-folder:not(.dialkit-folder-root)+.dialkit-folder:not(.dialkit-folder-root){margin-top:-10px;border-top:none}.dialkit-folder:not(.dialkit-folder-root)>.dialkit-folder-header{height:var(--dial-row-height);padding:0}.dialkit-folder:not(.dialkit-folder-root)>.dialkit-folder-header>.dialkit-folder-header-top{padding:0;height:100%}.dialkit-folder-root>.dialkit-folder-content>.dialkit-folder-inner{padding-bottom:0}.dialkit-slider-wrapper{position:relative;height:var(--dial-row-height)}.dialkit-slider{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden;background:var(--dial-surface);border-radius:var(--dial-radius);touch-action:none}.dialkit-slider-hashmarks{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.dialkit-slider-hashmark{position:absolute;top:50%;width:1px;height:8px;border-radius:999px;transform:translate(-50%) translateY(-50%);background:#fff0;transition:background .2s}.dialkit-slider-active .dialkit-slider-hashmark{background:#ffffff26}.dialkit-slider-active .dialkit-slider-value{color:#fff}.dialkit-slider-fill{position:absolute;top:0;bottom:0;left:0;transition:background .15s;pointer-events:none}.dialkit-slider-handle{position:absolute;top:50%;width:3px;height:20px;border-radius:999px;pointer-events:none}.dialkit-slider-label{position:absolute;left:10px;top:50%;transform:translateY(calc(-50% - .5px));font-size:13px;font-weight:500;color:var(--dial-text-label);pointer-events:none;transition:color .15s}.dialkit-slider-value{position:absolute;right:10px;top:50%;transform:translateY(calc(-50% + .5px));font-size:13px;font-weight:500;font-family:ui-monospace,SF Mono,Courier New,monospace;color:var(--dial-text-label);pointer-events:auto;transition:color .15s,border-color .15s;border-bottom:1px solid transparent;padding-bottom:1px}.dialkit-slider-value-editable{border-bottom-color:var(--dial-text-label)}.dialkit-slider-input{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:4ch;min-width:3ch;max-width:6ch;font-size:13px;font-weight:500;font-family:ui-monospace,SF Mono,Courier New,monospace;color:var(--dial-text-label);background:transparent;border:none;border-bottom:1px solid var(--dial-text-label);padding:0 0 1px;outline:none;text-align:right}.dialkit-slider-input:focus{color:#fff}.dialkit-segmented{position:relative;display:flex;padding:2px;background:transparent;border-radius:var(--dial-radius)}.dialkit-segmented-pill{position:absolute;top:2px;bottom:2px;background:var(--dial-surface-active);border-radius:6px;z-index:0;pointer-events:none}.dialkit-segmented-button{position:relative;z-index:1;flex:1;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:500;background:transparent;border:none;cursor:pointer;transition:color .15s}.dialkit-segmented-button[data-active=true]{color:#fffc}.dialkit-segmented-button[data-active=false]{color:var(--dial-text-label)}.dialkit-toggle{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--dial-surface);border-radius:var(--dial-radius);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.dialkit-toggle:hover{background:var(--dial-surface-hover)}.dialkit-toggle-label{font-size:13px;font-weight:500;color:var(--dial-text-label);transition:color .15s}.dialkit-toggle[data-checked=true] .dialkit-toggle-label{color:var(--dial-text-primary)}.dialkit-toggle-track{width:36px;height:20px;border-radius:10px;background:var(--dial-surface-active);transition:background .2s;position:relative}.dialkit-toggle[data-checked=true] .dialkit-toggle-track{background:#ffffff4d}.dialkit-toggle-thumb{position:absolute;top:2px;width:16px;height:16px;border-radius:8px;background:#fffc}.dialkit-button-group{display:flex;flex-direction:column;gap:6px}.dialkit-button{flex:1;padding:10px 16px;font-family:inherit;font-size:13px;font-weight:500;color:var(--dial-text-secondary);background:var(--dial-surface);border:none;border-radius:var(--dial-radius);cursor:pointer;transition:background .15s,color .15s}.dialkit-button:hover{background:var(--dial-surface-hover);color:var(--dial-text-primary)}.dialkit-button:active{background:var(--dial-surface-active)}.dialkit-labeled-control{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 2px 12px;background:var(--dial-surface);border-radius:var(--dial-radius)}.dialkit-labeled-control-label{font-size:13px;font-weight:500;color:var(--dial-text-label);flex-shrink:0;line-height:17px}.dialkit-labeled-control .dialkit-segmented{flex-shrink:0}.dialkit-action-button{width:160px;flex-shrink:0;padding:10px 16px;font-family:inherit;font-size:13px;font-weight:500;color:var(--dial-text-secondary);background:var(--dial-surface);border:none;border-radius:var(--dial-radius);cursor:pointer;transition:background .15s,color .15s}.dialkit-action-button:hover{background:var(--dial-surface-hover);color:var(--dial-text-primary)}.dialkit-action-button:active{background:var(--dial-surface-active)}.dialkit-actions-group{align-items:flex-start}.dialkit-actions-stack{display:flex;flex-direction:column;gap:6px;width:160px}.dialkit-spring-viz{width:100%;border-radius:var(--dial-radius);background:var(--dial-surface);overflow:visible}.dialkit-panel-wrapper{display:inline-flex;flex-direction:column}.dialkit-panel-toolbar{display:flex;align-items:center;gap:6px;height:var(--dial-row-height);margin-bottom:6px}.dialkit-toolbar-add{display:flex;align-items:center;justify-content:center;width:var(--dial-row-height);height:var(--dial-row-height);padding:0;flex-shrink:0;background:var(--dial-surface);border:none;border-radius:var(--dial-radius);cursor:pointer;transition:background .15s}.dialkit-toolbar-add:hover{background:var(--dial-surface-hover)}.dialkit-toolbar-add svg{width:16px;height:16px;color:var(--dial-text-label)}.dialkit-toolbar-copy{position:relative;display:flex;align-items:center;gap:6px;height:var(--dial-row-height);padding:0 12px;flex-shrink:0;font-family:inherit;font-size:13px;font-weight:500;color:var(--dial-text-label);background:var(--dial-surface);border:none;border-radius:var(--dial-radius);cursor:pointer;transition:background .15s}.dialkit-toolbar-copy:hover{background:var(--dial-surface-hover)}.dialkit-toolbar-copy-icon-wrap{position:relative;width:16px;height:16px;flex-shrink:0}.dialkit-toolbar-copy-icon{position:absolute;top:0;right:0;bottom:0;left:0;width:16px;height:16px}.dialkit-text-control{display:flex;align-items:center;justify-content:space-between;gap:12px;height:var(--dial-row-height);padding:0 12px;background:var(--dial-surface);border-radius:var(--dial-radius)}.dialkit-text-label{font-size:13px;font-weight:500;color:var(--dial-text-label);flex-shrink:0}.dialkit-text-input{flex:1;min-width:0;font-family:inherit;font-size:13px;font-weight:500;color:var(--dial-text-label);background:transparent;border:none;padding:0;outline:none;text-align:right;cursor:text}.dialkit-text-input:focus{color:#fff}.dialkit-text-input::placeholder{color:var(--dial-text-tertiary)}.dialkit-select-row{position:relative}.dialkit-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;height:var(--dial-row-height);padding:0 12px;font-family:inherit;font-size:13px;font-weight:500;color:var(--dial-text-label);background:var(--dial-surface);border:none;border-radius:var(--dial-radius);cursor:pointer;transition:background .15s}.dialkit-select-trigger:hover{background:var(--dial-surface-hover)}.dialkit-select-trigger[data-open=true]{background:var(--dial-surface-active)}.dialkit-select-label{font-size:13px;font-weight:500;color:var(--dial-text-label);flex-shrink:0;transform:translateY(-.5px)}.dialkit-select-right{display:flex;align-items:center;gap:8px}.dialkit-select-value{font-size:13px;font-weight:500;color:var(--dial-text-label);transform:translateY(-.5px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dialkit-select-chevron{width:20px;height:20px;padding:2px;box-sizing:border-box;flex-shrink:0;opacity:.6}.dialkit-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--dial-glass-bg);border:1px solid var(--dial-border);border-radius:var(--dial-radius);padding:4px;z-index:100;box-shadow:0 8px 24px #0006}.dialkit-select-option{display:block;width:100%;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:500;color:var(--dial-text-label);background:transparent;border:none;border-radius:6px;cursor:pointer;text-align:left;transition:background .15s,color .15s}.dialkit-select-option:hover{background:var(--dial-surface-hover)}.dialkit-select-option[data-selected=true]{color:var(--dial-text-primary);background:var(--dial-surface-active)}.dialkit-color-control{display:flex;align-items:center;justify-content:space-between;gap:12px;height:var(--dial-row-height);padding:0 12px;background:var(--dial-surface);border-radius:var(--dial-radius)}.dialkit-color-label{font-size:13px;font-weight:500;color:var(--dial-text-label);flex-shrink:0;transform:translateY(-.5px)}.dialkit-color-inputs{display:flex;align-items:center;gap:8px}.dialkit-color-hex{font-size:13px;font-weight:500;font-family:ui-monospace,SF Mono,Courier New,monospace;color:var(--dial-text-label);cursor:text;transform:translateY(-.5px)}.dialkit-color-hex-input{width:7ch;font-size:13px;font-weight:500;font-family:ui-monospace,SF Mono,Courier New,monospace;color:var(--dial-text-label);background:transparent;border:none;padding:0;outline:none;text-transform:uppercase;transform:translateY(-.5px)}.dialkit-color-hex-input:focus{color:#fff}.dialkit-color-swatch{width:20px;height:20px;border-radius:4px;border:1px solid rgba(255,255,255,.2);cursor:pointer;transition:transform .15s}.dialkit-color-swatch:hover{transform:scale(1.1)}.dialkit-color-picker-native{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.dialkit-preset-manager{position:relative;flex:1}.dialkit-preset-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;height:var(--dial-row-height);padding:0 12px;font-family:inherit;font-size:13px;font-weight:500;color:var(--dial-text-label);background:var(--dial-surface);border:none;border-radius:var(--dial-radius);cursor:pointer;transition:background .15s}.dialkit-preset-trigger:hover{background:var(--dial-surface-hover)}.dialkit-preset-trigger[data-disabled=true]{cursor:default}.dialkit-preset-trigger[data-disabled=true]:hover{background:var(--dial-surface)}.dialkit-preset-trigger[data-open=true]{background:var(--dial-surface-active)}.dialkit-preset-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dialkit-preset-dropdown{width:max-content;background:#2a2a2a;border:1px solid var(--dial-border);border-radius:12px;padding:4px;z-index:10000;box-shadow:0 8px 24px #00000080}.dialkit-preset-list{display:flex;flex-direction:column;gap:2px;margin-bottom:4px;padding-bottom:4px;border-bottom:1px solid var(--dial-border)}.dialkit-preset-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;gap:8px;border-radius:8px;cursor:pointer;transition:background .15s}.dialkit-preset-item:hover{background:var(--dial-surface-hover)}.dialkit-preset-item[data-active=true]{background:var(--dial-surface-active)}.dialkit-preset-name{font-size:13px;font-weight:500;color:var(--dial-text-label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dialkit-preset-item[data-active=true] .dialkit-preset-name{color:var(--dial-text-primary)}.dialkit-preset-delete{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;cursor:pointer;opacity:0;transition:opacity .15s;flex-shrink:0}.dialkit-preset-item:hover .dialkit-preset-delete{opacity:.6}.dialkit-preset-delete:hover{opacity:1!important}.dialkit-preset-delete svg{width:14px;height:14px;color:#fff;pointer-events:none}.dialkit-preset-save-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:500;color:var(--dial-text-label);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.dialkit-preset-save-btn:hover{background:var(--dial-surface-hover);color:var(--dial-text-primary)}.dialkit-preset-save-btn svg{width:12px;height:12px}.dialkit-preset-save-row{display:flex;align-items:center;gap:6px;padding:4px}.dialkit-preset-input{flex:1;min-width:0;padding:6px 8px;font-family:inherit;font-size:13px;color:var(--dial-text-primary);background:var(--dial-surface);border:1px solid var(--dial-border);border-radius:6px;outline:none}.dialkit-preset-input:focus{border-color:var(--dial-text-label)}.dialkit-preset-input::placeholder{color:var(--dial-text-tertiary)}.dialkit-preset-confirm{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:var(--dial-surface);border:none;border-radius:6px;cursor:pointer;transition:background .15s}.dialkit-preset-confirm:hover:not(:disabled){background:var(--dial-surface-hover)}.dialkit-preset-confirm:disabled{opacity:.4;cursor:not-allowed}.dialkit-preset-confirm svg{width:14px;height:14px;color:var(--dial-text-label)}
