*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}*{scrollbar-width:thin;scrollbar-color:color-mix(in oklch,var(--border-2) 85%,var(--accent)) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:color-mix(in oklch,var(--bg) 88%,transparent)}*::-webkit-scrollbar-thumb{background:color-mix(in oklch,var(--border-2) 82%,var(--accent));border:2px solid var(--bg);border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:color-mix(in oklch,var(--border-2) 58%,var(--accent))}@keyframes lw-march{to{stroke-dashoffset:-24}}:root{--bg: oklch(16% .008 260);--surface: oklch(20% .01 260);--surface-2: oklch(24% .012 260);--surface-3: oklch(28% .014 260);--border: oklch(30% .012 260);--border-2: oklch(36% .014 260);--text: oklch(96% .004 260);--text-2: oklch(78% .006 260);--text-3: oklch(66% .008 260);--text-4: oklch(54% .008 260);--accent: oklch(74% .13 210);--accent-2: oklch(80% .13 70);--danger: oklch(64% .2 25);--mint: oklch(78% .15 155);--ui-font: "Geist", system-ui, sans-serif;--mono-font: "Geist Mono", ui-monospace, monospace;--display-font: "Geist", system-ui, sans-serif;--scrim: oklch(0% 0 0 / .8);--scrim-soft: oklch(0% 0 0 / .5);--scrim-strong: oklch(0% 0 0 / .65);--shadow-color: oklch(0% 0 0 / .4);--shadow-strong: oklch(0% 0 0 / .6);--on-accent: oklch(98% .004 260);--preview-bg: oklch(8% .006 260);--hairline: oklch(100% 0 0 / .08);--hairline-strong: oklch(100% 0 0 / .15);--fs-2xs: 9px;--fs-xs: 10px;--fs-sm: 11px;--fs-md: 13px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 28px;--density: 1;--r-sm: 3px;--r-md: 5px;--r-lg: 8px;--dur-fast: .12s;--dur: .2s;--ease: cubic-bezier(.2,.6,.2,1)}:root{--s-1: calc(2px * var(--density));--s-2: calc(4px * var(--density));--s-3: calc(6px * var(--density));--s-4: calc(8px * var(--density));--s-5: calc(12px * var(--density));--s-6: calc(16px * var(--density));--s-7: calc(20px * var(--density));--s-8: calc(24px * var(--density))}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--ui-font);font-size:var(--fs-md);line-height:1.45;overflow:hidden;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}input,select,textarea{font:inherit;color:inherit}.lw-app{display:grid;grid-template-rows:40px 1fr 24px;height:100%}input,select,textarea,[contenteditable=true],.cm-editor,.cm-content,.lw-exp-log,.lw-exp-log *{-webkit-user-select:text;user-select:text}.lw-topbar{display:grid;grid-template-columns:180px 1fr auto;align-items:center;background:var(--surface);border-bottom:1px solid var(--border);padding:0 var(--s-5);gap:var(--s-6);min-height:40px;white-space:nowrap}.lw-topbar>*{min-width:0}.lw-projbreadcrumbs{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lw-projbreadcrumbs .status-chip{white-space:nowrap;flex-shrink:0}.lw-brand{display:flex;align-items:center;gap:var(--s-3);font-family:var(--display-font);font-size:var(--fs-xl);letter-spacing:-.01em}.lw-brand-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px #00c0d799;box-shadow:0 0 8px oklch(74% .13 210 / .6);animation:pulse 2.8s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.4;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}}.lw-projbreadcrumbs{display:flex;align-items:center;gap:var(--s-3);font-family:var(--mono-font);font-size:var(--fs-sm);color:var(--text-3)}.lw-projbreadcrumbs strong{color:var(--text);font-weight:500}.lw-projbreadcrumbs .sep{opacity:.4}.lw-projbreadcrumbs .status-chip{display:inline-flex;align-items:center;gap:var(--s-2);padding:2px 7px;background:#59d38c1a;border:1px solid oklch(78% .15 155 / .25);color:var(--mint);border-radius:2px;font-size:var(--fs-xs)}.status-chip .dot{width:5px;height:5px;border-radius:50%;background:currentColor}.lw-topbar-actions{display:flex;gap:var(--s-2);align-items:center}.lw-topbar-actions .btn-ghost{padding:5px 10px}.lw-version-link{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-sm);font-weight:600;padding:5px 10px;border:1px solid var(--accent);border-radius:var(--radius);color:var(--accent);text-decoration:none;opacity:.75;transition:opacity .15s}.lw-version-link:hover{opacity:1}.lw-main{display:grid;grid-template-columns:52px minmax(0,1fr);min-height:0;overflow:hidden}.lw-loading-pane{display:grid;place-items:center;min-height:0;background:var(--bg);color:var(--text-3);font-family:var(--mono-font);font-size:var(--fs-xs)}.lw-rail{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:var(--s-3) 0;position:relative;z-index:120}.lw-rail-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 0;color:var(--text-3);font-size:var(--fs-xs);font-weight:500;letter-spacing:.02em;position:relative;transition:color var(--dur-fast)}.lw-rail-btn svg{width:18px;height:18px;stroke-width:1.5}.lw-rail-btn:hover{color:var(--text)}.lw-rail-btn.active{color:var(--accent)}.lw-rail-btn.active:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:var(--accent);border-radius:0 2px 2px 0}.lw-rail-spacer{flex:1}.lw-pattern-screen{display:grid;min-height:0}.lw-layout-screen{display:grid;grid-template-columns:minmax(0,1fr) 6px var(--lw-layout-panel-width, 360px);min-height:0;height:100%}.lw-pattern-grid{grid-template-columns:repeat(2,1fr)}@media(min-width:1280px){.lw-pattern-grid{grid-template-columns:repeat(3,1fr)}}.lw-resize-handle{position:relative;min-width:6px;min-height:6px;cursor:col-resize;background:transparent;transition:background .15s,opacity .15s;flex-shrink:0;z-index:10;touch-action:none}.lw-resize-handle:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;border-radius:999px;background:color-mix(in oklch,var(--border-2) 70%,transparent);opacity:0;transition:opacity .15s,background .15s}.lw-resize-handle--vertical{width:6px;cursor:col-resize;border-left:1px solid var(--border);border-right:1px solid color-mix(in oklch,var(--bg) 70%,transparent)}.lw-resize-handle--vertical:before{width:2px;height:32px}.lw-resize-handle--horizontal{height:6px;cursor:row-resize;border-top:1px solid var(--border);border-bottom:1px solid color-mix(in oklch,var(--bg) 70%,transparent)}.lw-resize-handle--horizontal:before{width:36px;height:2px}.lw-resize-handle:hover,.lw-resize-handle.dragging{background:color-mix(in oklch,var(--accent) 13%,transparent)}.lw-resize-handle:hover:before,.lw-resize-handle.dragging:before{opacity:1;background:var(--accent)}.lw-resizing{cursor:col-resize}.lw-resizing,.lw-resizing *{-webkit-user-select:none!important;user-select:none!important}.lw-panel-collapsed-strip{display:flex;flex-direction:column;align-items:center;padding-top:10px;border-left:1px solid var(--border);background:var(--surface);min-width:0;overflow:hidden}.lw-panel-collapse-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;min-width:26px;min-height:26px;border-radius:var(--r-sm);color:var(--text-3);font-size:var(--fs-md);cursor:pointer;transition:color var(--dur-fast),background var(--dur-fast);flex-shrink:0}.lw-panel-collapse-btn:hover{color:var(--text);background:var(--surface-2)}.lw-canvas-col{display:flex;flex-direction:column;min-width:0}.lw-canvas-toolbar{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-5);background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;min-height:38px}.tbar-group{display:flex;align-items:center;gap:2px}.tbar-divider{width:1px;height:18px;background:var(--border);margin:0 var(--s-3)}.tbar-label{color:var(--text-3);font-size:var(--fs-xs);font-weight:500;letter-spacing:.04em;text-transform:uppercase;margin-right:var(--s-2)}.tbar-slider{display:flex;align-items:center;gap:var(--s-2);color:var(--text-3);font-size:var(--fs-sm)}.tbar-slider input[type=range]{width:72px}.tbar-slider .v{color:var(--text);font-family:var(--mono-font);font-size:var(--fs-xs);min-width:32px;text-align:right}.lw-viewport{flex:1;position:relative;min-height:0;background:radial-gradient(circle at 1px 1px,oklch(30% .012 260) 1px,transparent 1px) 0 0 / 24px 24px,#06070a;overflow:hidden;transition:box-shadow var(--dur-fast)}.lw-viewport--drop{box-shadow:inset 0 0 0 2px var(--accent)}.lw-layer-row{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid var(--border);cursor:pointer;border-left:3px solid transparent;transition:background var(--dur-fast);-webkit-user-select:none;user-select:none}.lw-layer-row:hover{background:var(--surface-2)}.lw-layer-row--sel{background:#00c0d71f;background:oklch(74% .13 210 / .12);border-left-color:var(--accent)}.lw-layer-row--strip-group{background:#a4bbff0d;background:oklch(80% .14 270 / .05)}.lw-layer-row--hidden{opacity:.45}.lw-layer-eye{color:var(--text-4);padding:0 2px;display:flex;align-items:center;flex-shrink:0;transition:color var(--dur-fast)}.lw-layer-eye:hover{color:var(--text-2)}.lw-layer-expand{color:var(--text-4);padding:0 2px;display:flex;align-items:center;flex-shrink:0}.lw-layer-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.lw-layer-name{flex:1;font-size:var(--fs-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lw-layer-len{font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-3);flex-shrink:0}.lw-subpath-row{display:flex;align-items:center;gap:6px;padding:5px 10px 5px 24px;border-bottom:1px solid var(--border);background:var(--bg);cursor:pointer;transition:background var(--dur-fast)}.lw-subpath-row--hover{background:var(--surface-2)}.lw-subpath-row--sel{background:#00c0d71a;background:oklch(74% .13 210 / .1);box-shadow:inset 3px 0 0 var(--accent)}.lw-layer-row[draggable]{cursor:default}.lw-layer-row[draggable]:active{opacity:.6}.lw-group-row{display:flex;align-items:center;gap:6px;padding:6px 10px;border-bottom:1px solid var(--border);border-left:3px solid oklch(80% .14 270 / .6);background:#a4bbff0a;background:oklch(80% .14 270 / .04);-webkit-user-select:none;user-select:none}.lw-group-row:hover{background:#a4bbff14;background:oklch(80% .14 270 / .08)}.lw-layer-name input,.lw-subpath-row input[type=text]{background:var(--bg);border:1px solid var(--accent);border-radius:3px;padding:0 5px;color:var(--text);font-size:inherit;font-family:inherit;outline:none;width:100%}.lw-strip-row{display:flex;flex-direction:column;padding:7px 12px;border-bottom:1px solid var(--border);cursor:pointer;transition:background var(--dur-fast)}.lw-strip-row:hover,.lw-strip-row--sel{background:var(--surface-2)}.lw-strip-row--batch-sel{background:#00c0d71a;background:oklch(74% .13 210 / .1);box-shadow:inset 3px 0 0 var(--accent)}.lw-strip-batch{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);background:#0b1023;flex-shrink:0}.lw-strip-batch-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--fs-sm);font-weight:650;color:var(--text-2)}.lw-strip-batch-head button{color:var(--text-4);padding:0 4px}.lw-strip-batch-list{display:flex;flex-wrap:wrap;gap:5px;max-height:58px;overflow:auto}.lw-strip-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;min-width:0;padding:3px 6px;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text-3);font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lw-strip-batch-actions{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:center}.lw-strip-batch-actions input{min-width:0;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:var(--fs-sm);padding:5px 8px}.lw-btn-danger:hover{color:var(--danger)!important;border-color:#ed4a4966!important}.lw-btn-danger-hover:hover{color:var(--danger)!important}.lw-viewport-inner{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.lw-preview-svg{max-width:90%;max-height:90%;filter:drop-shadow(0 0 40px oklch(74% .13 210 / .08))}.lw-viewport-overlay{position:absolute;pointer-events:none;font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-3)}.lw-viewport-overlay.tl{top:10px;left:12px}.lw-viewport-overlay.br{bottom:10px;right:12px;text-align:right}.lw-viewport-overlay .k{color:var(--text-4)}.lw-viewport-overlay .v{color:var(--text-2)}.lw-pattern-empty{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;pointer-events:none;color:var(--text-3);font-family:var(--ui-font);background:radial-gradient(circle at 50% 46%,oklch(18% .018 260 / .68),transparent 42%)}.lw-pattern-empty .title{color:var(--text-2);font-size:var(--fs-md);font-weight:650}.lw-pattern-empty .meta{color:var(--text-4);font-size:var(--fs-xs)}.lw-pattern-pan-stage{position:absolute;top:0;right:0;bottom:0;left:0;cursor:default;touch-action:none;-webkit-user-select:none;user-select:none}.lw-pattern-pan-stage.is-space-panning{cursor:grab}.lw-pattern-pan-stage.is-panning{cursor:grabbing}.lw-pattern-pan-content{position:relative;width:100%;height:100%;transform-origin:center center;will-change:transform}.lw-zoom-controls{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;background:#13161bd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;z-index:5}.lw-zoom-controls button{min-width:34px;min-height:28px;padding:6px 9px;color:var(--text-2);border-bottom:1px solid var(--border);font-size:var(--fs-md);line-height:1}.lw-zoom-controls button:last-child{border-bottom:0}.lw-zoom-controls button:hover{background:var(--surface-2);color:var(--text)}.lw-zoom-level{padding:4px 0;text-align:center;color:var(--text-3);font-family:var(--mono-font);font-size:var(--fs-xs);border-bottom:1px solid var(--border)}.lw-transport{display:flex;align-items:center;gap:var(--s-5);padding:var(--s-3) var(--s-5);background:var(--surface);border-top:1px solid var(--border)}.lw-play-btn{display:inline-flex;align-items:center;gap:var(--s-2);padding:6px 14px;background:var(--accent-2);color:#221200;color:oklch(20% .05 70);border-radius:var(--r-md);font-weight:600;font-size:var(--fs-sm);letter-spacing:.02em;transition:transform var(--dur-fast),box-shadow var(--dur-fast)}.lw-play-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f3ae584d}.lw-play-btn.stop{background:var(--surface-3);color:var(--text)}.lw-transport-meta{display:flex;gap:var(--s-6);font-family:var(--mono-font);font-size:var(--fs-sm);color:var(--text-3)}.lw-transport-meta strong{color:var(--text);font-weight:500}.lw-transport-meta button{min-height:24px}.lw-timeline{flex:1;height:18px;position:relative;background:var(--bg);border-radius:2px;overflow:hidden}.lw-timeline-waveform{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(90deg,transparent 0 2px,oklch(30% .012 260) 2px 3px);opacity:.6}.lw-timeline-playhead{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);box-shadow:0 0 8px var(--accent)}.lw-timeline-beats{position:absolute;top:0;right:0;bottom:0;left:0;display:flex}.lw-timeline-beat{flex:1;border-right:1px solid oklch(30% .012 260)}.lw-timeline-beat.active{background:#f3ae584d}.lw-panel{background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.lw-panel-mode-switch{display:flex;padding:var(--s-3);gap:2px;background:var(--bg);border-bottom:1px solid var(--border)}.lw-panel-mode-btn{flex:1;padding:7px 10px;font-size:var(--fs-sm);font-weight:500;letter-spacing:.02em;color:var(--text-3);border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);transition:all var(--dur-fast)}.lw-panel-mode-btn svg{width:13px;height:13px;stroke-width:1.75}.lw-panel-mode-btn:hover{color:var(--text);background:var(--surface-2)}.lw-panel-mode-btn.active{color:var(--text);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--border-2)}.lw-panel-mode-btn.active svg{color:var(--accent)}.lw-panel-body{flex:1;overflow-y:auto;padding:var(--s-5);min-height:0}.lw-panel-body--effects{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;overflow:hidden}.lw-panel-body::-webkit-scrollbar{width:8px}.lw-panel-body::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:4px}.lw-panel-body::-webkit-scrollbar-thumb:hover{background:var(--text-4)}.lw-sec-header{display:flex;align-items:center;justify-content:space-between;margin:var(--s-5) 0 var(--s-3);font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.lw-sec-header:first-child{margin-top:0}.lw-sec-header .meta{font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-4);font-family:var(--mono-font);font-size:var(--fs-xs)}.lw-master{display:grid;grid-template-columns:60px 1fr 40px;align-items:center;column-gap:var(--s-4);row-gap:var(--s-3)}.lw-master .lbl{color:var(--text-3);font-size:var(--fs-sm)}.lw-master .v{color:var(--text);font-family:var(--mono-font);font-size:var(--fs-xs);text-align:right}.lw-master input[type=range]{width:100%}.lw-panel-master-block{margin-top:24px;min-height:0}.lw-panel-master-block>.lw-sec-header{margin-top:0}.lw-panel-master-block--effects{margin-top:0;padding-top:8px;border-top:1px solid var(--border)}.lw-panel-master-block--effects .lw-sec-header{margin-bottom:6px}.lw-panel-master-block--effects .lw-master{grid-template-columns:50px minmax(0,1fr) 36px;column-gap:8px;row-gap:4px}.lw-panel-master-block--effects .lw-master .lbl{font-size:var(--fs-xs)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:18px;background:transparent}input[type=range]::-webkit-slider-runnable-track{height:2px;background:var(--border-2);border-radius:1px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text);margin-top:-5px;box-shadow:0 0 0 2px var(--surface);cursor:grab;transition:transform var(--dur-fast)}input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.1);background:var(--accent)}input[type=range]::-moz-range-track{height:2px;background:var(--border-2);border-radius:1px}input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--text);border:0}.lw-pattern-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3)}.lw-effect-targets{display:flex;flex-direction:column;gap:4px;max-height:96px;overflow:auto;padding:0 0 6px}.lw-effect-target{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;align-items:center;gap:7px;min-height:28px;padding:4px 7px;border:1px solid var(--border);border-radius:5px;background:var(--surface);color:var(--text-2);cursor:pointer;text-align:left}.lw-effect-target:hover{background:var(--surface-2)}.lw-effect-target.active{border-color:var(--accent);background:#00c0d71a;background:oklch(74% .13 210 / .1);box-shadow:inset 3px 0 0 var(--accent)}.lw-effect-target-dot{width:8px;height:8px;border-radius:50%}.lw-effect-target .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm)}.lw-effect-target .meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:96px;color:var(--text-4);font-size:var(--fs-xs)}.lw-effect-target .clear{color:var(--text-4);padding:0 2px;font-size:var(--fs-md);line-height:1}.lw-effect-target .clear:hover{color:var(--danger)}.lw-effect-target-note{margin:-2px 0 6px;color:var(--text-4);font-size:var(--fs-xs);line-height:1.45}.lw-effect-target-note strong{color:var(--text-2);font-weight:600}.lw-cards-mode{min-height:0;display:flex;flex-direction:column;overflow:hidden}.lw-effect-workspace{flex:1;min-height:0;display:grid;grid-template-rows:minmax(190px,48%) minmax(0,1fr);gap:8px}.lw-effect-browser,.lw-effect-inspector{min-width:0;min-height:0}.lw-effect-browser{overflow:auto;padding:0 2px 2px 0}.lw-effect-searchbar{display:flex;gap:5px;padding:0 0 5px;position:sticky;top:0;z-index:2;background:var(--surface)}.lw-effect-searchbar .btn{min-width:28px}.lw-effect-browser .lw-pattern-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s-2)}.lw-effect-inspector{overflow:auto;padding:9px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg)}.lw-effect-inspector .btn{min-height:24px}.lw-effect-inspector-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.lw-effect-inspector-head .eyebrow{font-family:var(--mono-font);font-size:var(--fs-2xs);color:var(--text-4);text-transform:uppercase;letter-spacing:.08em}.lw-effect-inspector-head .title{margin-top:2px;color:var(--text);font-size:var(--fs-md);font-weight:650}.palette-state{flex-shrink:0;padding:2px 6px;border:1px solid var(--border);border-radius:999px;color:var(--text-4);font-size:var(--fs-2xs);white-space:nowrap}.palette-state.used{color:var(--accent);border-color:color-mix(in oklch,var(--accent) 45%,var(--border));background:color-mix(in oklch,var(--accent) 10%,transparent)}.lw-studio-panel{display:flex;flex-direction:column;gap:8px;margin:0 0 12px;padding:9px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface)}.lw-studio-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.lw-studio-panel .eyebrow,.lw-install-wizard .eyebrow{font-family:var(--mono-font);font-size:var(--fs-2xs);color:var(--text-4);text-transform:uppercase;letter-spacing:.08em}.lw-studio-score{display:flex;align-items:baseline;gap:5px;color:var(--text)}.lw-studio-score span{font-family:var(--mono-font);font-size:var(--fs-lg);font-weight:700}.lw-studio-score small{color:var(--text-4);font-family:var(--mono-font);font-size:var(--fs-xs)}.lw-studio-metrics,.lw-studio-routes,.lw-install-grid{display:flex;flex-wrap:wrap;gap:5px}.lw-studio-metrics span,.lw-studio-routes span,.lw-install-grid span{padding:2px 6px;border:1px solid var(--border);border-radius:4px;color:var(--text-3);font-size:var(--fs-2xs);font-family:var(--mono-font)}.lw-studio-routes span.ready{color:var(--accent);border-color:color-mix(in oklch,var(--accent) 42%,var(--border));background:color-mix(in oklch,var(--accent) 8%,transparent)}.lw-studio-actions{display:flex;flex-direction:column;gap:6px}.lw-studio-action,.lw-install-step{display:flex;gap:7px;min-width:0}.lw-studio-action span,.lw-install-step span{display:block;color:var(--text-2);font-size:var(--fs-xs);line-height:1.2}.lw-studio-action small,.lw-install-step small{display:block;color:var(--text-4);font-size:var(--fs-2xs);line-height:1.35}.lw-param-groups{display:flex;flex-direction:column;gap:12px}.lw-param-group-title{margin-bottom:5px;color:var(--text-3);font-family:var(--mono-font);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em}.lw-knob-name{display:flex;flex-direction:column;gap:1px;min-width:0}.lw-knob-name small{color:var(--text-4);font-size:var(--fs-2xs);line-height:1.2;white-space:normal}.lw-palette-note,.lw-effect-empty{color:var(--text-4);font-size:var(--fs-xs);line-height:1.45;margin:-2px 0 8px}.lw-effect-inspector .lw-knob{grid-template-columns:minmax(90px,.8fr) minmax(80px,1fr) 48px}.lw-effect-browser .lw-search-input{padding:5px 8px;border-radius:var(--r-sm);font-size:var(--fs-xs)}.lw-effect-browser .lw-pattern-card{aspect-ratio:1.45 / 1;border-radius:var(--r-sm)}.lw-effect-browser .lw-pattern-card .label{left:5px;right:5px;bottom:5px;font-size:var(--fs-2xs)}.lw-pattern-card{position:relative;aspect-ratio:1.15 / 1;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);cursor:pointer;transition:border-color var(--dur-fast),transform var(--dur-fast)}.lw-pattern-card:hover{border-color:var(--border-2);transform:translateY(-1px)}.lw-pattern-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 20px #00c0d740;box-shadow:0 0 0 1px var(--accent),0 0 20px oklch(74% .13 210 / .25)}.lw-pattern-card .bg{position:absolute;top:0;right:0;bottom:0;left:0}.lw-pattern-card .scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,oklch(10% .008 260 / .95) 0%,transparent 55%)}.lw-pattern-card .label{position:absolute;left:8px;right:8px;bottom:6px;font-size:var(--fs-sm);font-weight:500;color:var(--on-accent);display:flex;align-items:center;justify-content:space-between;text-shadow:0 1px 2px var(--scrim);white-space:nowrap}.lw-pattern-card .label .play-hint{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--hairline-strong);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity var(--dur-fast)}.lw-pattern-card:hover .label .play-hint{opacity:1}.lw-pattern-card.selected:after{content:"";position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 6px var(--accent-2);animation:pulse 1.6s infinite ease-in-out}.lw-knobs{display:flex;flex-direction:column;gap:var(--s-3)}.lw-knob{display:grid;grid-template-columns:84px 1fr 48px;align-items:center;gap:var(--s-3);padding:var(--s-2) 0}.lw-knob-name{font-size:var(--fs-sm);color:var(--text-2);font-family:var(--mono-font)}.lw-knob-val{font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text);text-align:right;padding:2px 6px;background:var(--bg);border-radius:2px;border:1px solid var(--border)}.lw-palette{display:flex;gap:4px;padding:var(--s-2);background:var(--bg);border-radius:var(--r-sm);border:1px solid var(--border)}.lw-palette-swatch{flex:1;height:26px;border-radius:3px;cursor:pointer;position:relative;transition:transform var(--dur-fast);border:1px solid var(--hairline)}.lw-palette-swatch:hover{transform:scaleY(1.15)}.lw-code-wrap{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;font-family:var(--mono-font);font-size:var(--fs-sm);line-height:1.55;display:flex;flex-direction:column;min-height:240px}.lw-code-wrap .cm-editor{flex:1;height:100%;font-size:var(--fs-sm)}.lw-code-wrap .cm-scroller{min-height:180px;max-height:360px;overflow:auto}.lw-code-tabs{display:flex;background:var(--surface-2);border-bottom:1px solid var(--border)}.lw-code-tab{padding:5px 12px;font-size:var(--fs-xs);color:var(--text-3);font-family:var(--mono-font);border-right:1px solid var(--border);position:relative}.lw-code-tab.active{color:var(--text);background:var(--bg)}.lw-code-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--bg)}.lw-code-body{padding:var(--s-4);display:grid;grid-template-columns:28px 1fr;column-gap:var(--s-3);max-height:320px;overflow-y:auto}.lw-code-gutter{color:var(--text-4);text-align:right;font-size:var(--fs-xs);-webkit-user-select:none;user-select:none}.lw-code-gutter div{height:1.55em}.lw-code-content{white-space:pre}.lw-code-content .comment{color:#707b8d;font-style:italic}.lw-code-content .kw{color:#9ba1fb}.lw-code-content .fn{color:#f3ae58}.lw-code-content .num{color:#59d38c}.lw-code-content .str{color:#f08d6a}.lw-code-content .var{color:#51bcce}.lw-code-content .op{color:var(--text-2)}.lw-code-content .param{color:#eb8ccd;text-decoration:underline dotted;text-underline-offset:2px;cursor:pointer}.lw-code-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--s-2) var(--s-4);background:var(--surface-2);border-top:1px solid var(--border);font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-3)}.lw-code-footer .dot{width:6px;height:6px;border-radius:50%;background:var(--mint);margin-right:4px;display:inline-block}.lw-code-footer.err .dot{background:var(--danger)}.lw-graph-wrap{background:radial-gradient(circle at 1px 1px,oklch(28% .012 260) 1px,transparent 1px) 0 0 / 16px 16px,var(--bg);border:1px solid var(--border);border-radius:var(--r-md);position:relative;height:460px;overflow:hidden}.lw-graph-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.lw-graph-node{position:absolute;width:140px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-sm);box-shadow:0 4px 12px var(--shadow-color);overflow:hidden;font-size:var(--fs-sm);transition:border-color var(--dur-fast)}.lw-graph-node:hover{border-color:var(--accent)}.lw-graph-node.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 4px 12px var(--shadow-color)}.lw-graph-node-header{display:flex;align-items:center;gap:var(--s-2);padding:4px 8px;background:var(--surface-3);font-weight:500;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);border-bottom:1px solid var(--border)}.lw-graph-node-header .kind-dot{width:6px;height:6px;border-radius:50%}.lw-graph-node.kind-source .kind-dot{background:var(--accent)}.lw-graph-node.kind-mod .kind-dot{background:#eb8ccd}.lw-graph-node.kind-color .kind-dot{background:var(--accent-2)}.lw-graph-node.kind-output .kind-dot{background:var(--mint)}.lw-graph-node-body{padding:6px 8px;font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-2)}.lw-graph-node-body .row{display:flex;justify-content:space-between;padding:2px 0}.lw-graph-node-body .row .k{color:var(--text-3)}.lw-graph-port{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--surface-3);border:1.5px solid var(--border-2);top:16px;transition:all var(--dur-fast)}.lw-graph-port:hover{border-color:var(--accent);background:var(--accent)}.lw-graph-port.left{left:-5px}.lw-graph-port.right{right:-5px}.lw-graph-port.active{background:var(--accent);border-color:var(--accent)}.lw-graph-toolbar{position:absolute;top:8px;left:8px;display:flex;gap:2px;background:#13161be6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--r-sm);padding:2px}.lw-graph-toolbar button{padding:5px 8px;font-size:var(--fs-xs);color:var(--text-2);border-radius:2px;display:inline-flex;align-items:center;gap:4px}.lw-graph-toolbar button:hover{background:var(--surface-2);color:var(--text)}.lw-graph-toolbar button svg{width:11px;height:11px}.lw-graph-toolbar span{padding:5px 8px;font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-3)}.lw-graph-legend{position:absolute;bottom:8px;left:8px;display:flex;gap:var(--s-4);font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-3)}.lw-graph-legend .item{display:inline-flex;align-items:center;gap:4px}.lw-graph-legend .item .d{width:6px;height:6px;border-radius:50%}.btn{display:inline-flex;align-items:center;gap:var(--s-2);padding:5px 10px;font-size:var(--fs-sm);font-weight:500;border-radius:var(--r-sm);color:var(--text);background:var(--surface-2);border:1px solid var(--border);transition:all var(--dur-fast)}.btn:hover{background:var(--surface-3);border-color:var(--border-2)}.btn svg{width:12px;height:12px;stroke-width:1.75}.btn-ghost{background:transparent;border:1px solid transparent;color:var(--text-2)}.btn-ghost:hover{color:var(--text);background:var(--surface-2)}.btn-ghost.active{background:#00c0d71f;background:oklch(74% .13 210 / .12);color:var(--accent);border-color:#00c0d74d;border-color:oklch(74% .13 210 / .3)}.btn-primary{background:var(--accent);color:#001519;color:oklch(18% .04 210);border-color:var(--accent)}.btn-primary:hover{background:#01d5ef;background:oklch(80% .14 210)}.btn:disabled,.btn[aria-disabled=true],.btn.disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn:active:not(:disabled){transform:translateY(.5px)}:where(.btn,.lw-panel-mode-btn,.lw-tl-tbtn,.lw-exp-seg button,.lw-rail-btn,.lw-topbar-btn,button,[role=button],input,select,textarea):focus{outline:none}:where(.btn,.lw-panel-mode-btn,.lw-tl-tbtn,.lw-exp-seg button,.lw-rail-btn,.lw-topbar-btn,button,[role=button]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}:where(input,select,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.kbd{display:inline-block;padding:1px 5px;font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-3);background:var(--bg);border:1px solid var(--border);border-bottom-width:2px;border-radius:2px}.lw-statusbar{display:flex;align-items:center;gap:var(--s-6);padding:0 var(--s-5);background:var(--surface);border-top:1px solid var(--border);font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-3)}.lw-statusbar .k{color:var(--text-4)}.lw-statusbar .v{color:var(--text-2)}.lw-statusbar .sep{opacity:.4}.lw-tweaks{position:fixed;bottom:36px;right:16px;width:260px;background:#0f1216f5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border-2);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:0 12px 40px var(--shadow-strong);z-index:100;font-size:var(--fs-sm)}.lw-tweaks-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s-4)}.lw-tweaks-header h3{font-size:var(--fs-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2)}.lw-tweaks-row{margin-bottom:var(--s-4)}.lw-tweaks-row label{display:block;color:var(--text-3);font-size:var(--fs-xs);margin-bottom:4px;letter-spacing:.04em;text-transform:uppercase}.lw-tweaks-seg{display:flex;gap:2px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);padding:2px}.lw-tweaks-seg button{flex:1;padding:5px 4px;font-size:var(--fs-sm);color:var(--text-3);border-radius:2px}.lw-tweaks-seg button:hover{color:var(--text)}.lw-tweaks-seg button.active{background:var(--surface-2);color:var(--text)}body.theme-lab{--bg: oklch(97% .004 85);--surface: oklch(99% .002 85);--surface-2: oklch(95% .006 85);--surface-3: oklch(92% .008 85);--border: oklch(88% .008 85);--border-2: oklch(82% .01 85);--text: oklch(18% .008 85);--text-2: oklch(35% .008 85);--text-3: oklch(44% .008 85);--text-4: oklch(55% .008 85);--accent: oklch(52% .19 28);--accent-2: oklch(52% .19 28);--mint: oklch(48% .14 155)}body.theme-lab .lw-viewport{background:radial-gradient(circle at 1px 1px,oklch(88% .008 85) 1px,transparent 1px) 0 0 / 24px 24px,#f0eeea}body.theme-lab .lw-brand-dot{box-shadow:0 0 8px #be241f80}body.theme-lab .lw-play-btn{color:#fff;background:var(--accent)}body.theme-lab .lw-play-btn.stop{color:var(--text);background:var(--surface-3)}body.theme-lab .btn-primary{color:#fff}body.theme-neon{--bg: oklch(13% .015 300);--surface: oklch(17% .018 300);--surface-2: oklch(21% .02 300);--surface-3: oklch(25% .022 300);--border: oklch(28% .02 300);--border-2: oklch(34% .022 300);--text: oklch(96% .01 300);--text-2: oklch(78% .015 300);--text-3: oklch(66% .02 300);--text-4: oklch(54% .02 300);--accent: oklch(68% .22 340);--accent-2: oklch(85% .18 155);--ui-font: "Geist Mono", ui-monospace, monospace}body.theme-neon .lw-brand{font-family:Geist Mono,monospace;font-size:var(--fs-lg);text-transform:uppercase;letter-spacing:.12em;font-weight:600}body.theme-neon .lw-viewport{background:radial-gradient(ellipse at center,oklch(20% .03 340 / .3) 0%,transparent 70%),linear-gradient(to bottom,transparent 50%,oklch(13% .015 300) 50%) 0 0 / 100% 3px,#040306}body.font-mono{--ui-font: "Geist Mono", ui-monospace, monospace}body.font-mono .lw-brand{font-family:Geist Mono,monospace;font-size:var(--fs-lg);letter-spacing:.05em;text-transform:uppercase}.lw-screen-placeholder{display:grid;place-items:center;height:100%;color:var(--text-3)}.lw-screen-placeholder .card{max-width:520px;padding:var(--s-8);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);text-align:center}.lw-screen-placeholder h2{font-family:var(--display-font);font-size:var(--fs-2xl);margin-bottom:var(--s-3);color:var(--text)}.lw-screen-placeholder p{color:var(--text-3);margin-bottom:var(--s-5)}.lw-geo-panel{display:flex;flex-direction:column;gap:var(--s-3)}.lw-geo-presets{display:flex;flex-direction:column;gap:6px}.lw-geo-preset{width:100%;display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:center;padding:9px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-2);text-align:left;cursor:pointer;transition:border-color .14s ease-out,background .14s ease-out}.lw-geo-preset:hover{background:var(--surface-2);border-color:var(--border-2)}.lw-geo-preset.active{background:color-mix(in oklch,var(--accent) 11%,var(--surface));border-color:color-mix(in oklch,var(--accent) 58%,var(--border));color:var(--text)}.lw-geo-preset svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round;color:var(--text-3)}.lw-geo-preset.active svg{color:var(--accent)}.lw-geo-preset span{display:flex;flex-direction:column;min-width:0;gap:2px}.lw-geo-preset strong{font-size:var(--fs-sm);font-weight:650;color:var(--text)}.lw-geo-preset small{font-size:var(--fs-xs);color:var(--text-3);line-height:1.35}.lw-geo-advanced{border-top:1px solid var(--border);padding-top:8px}.lw-geo-advanced-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;padding:6px 0;color:var(--text-3);font-size:var(--fs-sm);cursor:pointer}.lw-geo-advanced-toggle:hover{color:var(--text)}.lw-geo-advanced-toggle strong{color:var(--accent);font-size:var(--fs-xs);font-weight:600}.lw-geo-advanced-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding-top:4px}.lw-geo-advanced-btn{display:flex;flex-direction:column;gap:3px;min-height:66px;padding:8px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);text-align:left;cursor:pointer}.lw-geo-advanced-btn:hover{background:var(--surface-2);border-color:var(--border-2)}.lw-geo-advanced-btn span{color:var(--text);font-size:var(--fs-xs);font-weight:650}.lw-geo-advanced-btn small{color:var(--text-3);font-size:var(--fs-2xs);line-height:1.35}.lw-geo-controls{display:flex;flex-direction:column;gap:10px}.lw-geo-help{color:var(--text-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:8px 9px;font-size:var(--fs-xs);line-height:1.35}.lw-geo-guide-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.lw-geo-guide-map>div{display:inline-flex;align-items:center;gap:6px;min-width:0;padding:6px 7px;border:1px solid var(--border);border-radius:var(--r-sm);background:color-mix(in oklch,var(--surface-2) 80%,transparent);color:var(--text-3);font-family:var(--mono-font);font-size:var(--fs-2xs);white-space:nowrap}.lw-geo-guide-map .dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.lw-geo-guide-map .dot.line{background:var(--accent);box-shadow:0 0 8px var(--accent)}.lw-geo-guide-map .dot.distance{background:#1dbcb58c}.lw-geo-guide-map .dot.arrows{background:var(--mint)}.lw-geo-choice-row,.lw-geo-row{display:grid;grid-template-columns:64px 1fr 44px;gap:8px;align-items:center;font-size:var(--fs-xs);color:var(--text-3)}.lw-geo-choice-row{grid-template-columns:64px repeat(3,minmax(86px,1fr))}.lw-geo-choice-row .btn{min-width:0;padding:5px 8px;font-family:var(--mono-font);font-size:var(--fs-xs);white-space:nowrap}.lw-geo-row strong{font-family:var(--mono-font);font-size:var(--fs-xs);font-weight:500;text-align:right;color:var(--text-2)}.lw-geometry-guide-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.lw-geometry-guide-overlay.is-editing{pointer-events:auto;cursor:crosshair}.lw-geometry-guide-svg{width:100%;height:100%;display:block;overflow:visible;pointer-events:none}.lw-geometry-guide-band{fill:none;stroke:var(--accent);stroke-linecap:round;pointer-events:none}.lw-geometry-guide-band.band-1{stroke-width:1.1;opacity:.24}.lw-geometry-guide-band.band-2{stroke-width:.9;opacity:.14}.lw-geometry-guide-band.band-3{stroke-width:.7;opacity:.08}.lw-geometry-guide-line{stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;filter:drop-shadow(0 0 6px color-mix(in oklch,var(--accent) 70%,transparent));pointer-events:stroke;cursor:move;touch-action:none}.lw-geometry-guide-ghost{stroke:color-mix(in oklch,var(--accent) 26%,transparent);stroke-width:16;stroke-linecap:round;pointer-events:stroke;cursor:move;touch-action:none}.lw-geometry-guide-arrow{fill:var(--mint);opacity:.86;filter:drop-shadow(0 0 5px color-mix(in oklch,var(--mint) 65%,transparent));pointer-events:none}.lw-geometry-guide-handle{fill:var(--surface);stroke:var(--accent);stroke-width:2.2;filter:drop-shadow(0 0 4px color-mix(in oklch,var(--accent) 60%,transparent));pointer-events:auto;cursor:grab;touch-action:none}.lw-geometry-guide-handle:active{cursor:grabbing}.lw-geometry-guide-label{position:absolute;left:12px;bottom:12px;display:flex;align-items:center;gap:7px;padding:6px 8px;border:1px solid var(--border);border-radius:var(--r-md);background:color-mix(in oklch,var(--surface) 92%,transparent);color:var(--text-2);font-family:var(--mono-font);font-size:var(--fs-2xs);pointer-events:auto}.lw-geometry-guide-label button{color:var(--accent);font-family:var(--mono-font);font-size:var(--fs-2xs);text-decoration:underline;text-underline-offset:2px}.lw-timeline-screen{display:grid;grid-template-rows:var(--lw-show-preview-height, 280px) 6px minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);min-height:0;min-width:0;background:var(--bg);overflow:hidden}.lw-tl-top{display:grid;grid-template-columns:minmax(0,1fr) 6px var(--lw-show-inspector-width, 380px);gap:0;padding:var(--s-4);min-width:0;width:100%;max-width:100%;min-height:0;height:auto}.lw-tl-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column}.lw-tl-preview-header{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border);font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-2);background:var(--surface-2)}.lw-tl-preview-header .label{font-weight:600;letter-spacing:.15em;color:var(--text-3)}.lw-tl-preview-header .sep{color:var(--text-4)}.lw-tl-preview-header .trans-badge{padding:2px 8px;background:color-mix(in oklch,var(--accent) 18%,transparent);color:var(--accent);border-radius:3px;font-weight:500}.lw-tl-preview-stage{flex:1;position:relative;overflow:hidden;background:var(--preview-bg)}.lw-tl-preview-stage .swatch{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity .1s}.lw-tl-preview-leds{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;grid-template-columns:repeat(12,8px);gap:6px;pointer-events:none}.lw-tl-preview-leds span{width:8px;height:8px;border-radius:50%;background:var(--on-accent);filter:blur(.5px);box-shadow:0 0 8px #fff9}.lw-tl-preview-vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 40%,var(--scrim-soft) 100%);pointer-events:none}.lw-tl-inspector{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);display:flex;flex-direction:column;overflow:hidden}.lw-tl-inspector-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--surface-2)}.lw-tl-inspector-tabs .tab{flex:1;padding:8px 10px;background:transparent;border:0;color:var(--text-3);font-family:var(--mono-font);font-size:var(--fs-xs);letter-spacing:.12em;cursor:pointer;border-bottom:2px solid transparent}.lw-tl-inspector-tabs .tab.active{color:var(--text);border-bottom-color:var(--accent);background:var(--surface)}.lw-tl-inspector-body{flex:1;overflow-y:auto;padding:var(--s-4)}.lw-insp-header{display:flex;align-items:center;gap:8px;margin-bottom:var(--s-4)}.lw-insp-header .dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 10px currentColor}.lw-insp-header h3{flex:1;font-size:var(--fs-lg);font-weight:500;color:var(--text);text-transform:capitalize;margin:0}.lw-insp-header .kbd{font-family:var(--mono-font);font-size:var(--fs-2xs);padding:2px 5px;background:var(--surface-2);border:1px solid var(--border);border-radius:3px;color:var(--text-2)}.lw-insp-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:var(--fs-sm);gap:8px}.lw-insp-row .k{color:var(--text-4);font-family:var(--mono-font);font-size:var(--fs-xs);letter-spacing:.08em}.lw-insp-row .v{color:var(--text-2)}.lw-insp-row .v.mono{font-family:var(--mono-font);font-size:var(--fs-xs)}.lw-insp-select{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:3px 6px;color:var(--text);font-family:var(--mono-font);font-size:var(--fs-xs);min-width:110px}.lw-insp-divider{height:1px;background:var(--border);margin:var(--s-4) 0}.lw-insp-section{font-family:var(--mono-font);font-size:var(--fs-xs);letter-spacing:.12em;color:var(--text-4);text-transform:uppercase;margin-bottom:var(--s-3)}.lw-insp-knob{display:grid;grid-template-columns:70px 1fr 36px;align-items:center;gap:8px;padding:3px 0;font-size:var(--fs-sm)}.lw-insp-knob span:first-child{color:var(--text-3)}.lw-insp-knob .v{color:var(--text-2);font-family:var(--mono-font);font-size:var(--fs-xs);text-align:right}.lw-insp-knob input[type=range]{width:100%}.lw-insp-env{position:relative;background:var(--surface-2);border-radius:4px;padding:8px;border:1px solid var(--border)}.lw-insp-env svg{width:100%;height:50px}.lw-insp-env-labels{display:flex;justify-content:space-between;margin-top:4px;font-family:var(--mono-font);font-size:var(--fs-2xs);color:var(--text-2)}.lw-insp-curves{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-bottom:var(--s-3)}.lw-insp-curves .curve-btn{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;color:var(--text-3);cursor:pointer;font-family:var(--mono-font);font-size:var(--fs-2xs)}.lw-insp-curves .curve-btn svg{width:30px;height:16px;opacity:.8}.lw-insp-curves .curve-btn.active{border-color:var(--accent);color:var(--text);background:color-mix(in oklch,var(--accent) 10%,var(--surface-2))}.lw-insp-offset{display:flex;align-items:center;gap:6px}.lw-insp-offset input[type=range]{width:90px}.lw-insp-offset .v{color:var(--text-2);font-family:var(--mono-font);font-size:var(--fs-xs);min-width:38px;text-align:right}.lw-tl-editor{display:grid;grid-template-columns:180px 1fr;min-height:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);overflow:hidden}.lw-tl-headers{display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--surface);overflow:hidden}.lw-tl-header{height:44px;padding:0 10px;display:flex;align-items:center;justify-content:space-between;gap:6px;border-bottom:1px solid var(--border);flex-shrink:0}.lw-tl-header.ruler{height:28px;background:var(--surface-2)}.lw-tl-header.auto{height:44px}.lw-tl-header.audio{height:48px;background:oklch(from var(--surface) calc(l - .01) c h)}.lw-tl-track-label{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-2);min-width:0}.lw-tl-track-label .pin{width:6px;height:6px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px currentColor}.lw-tl-track-label .meta{font-family:var(--mono-font);font-size:var(--fs-2xs);color:var(--text-2);letter-spacing:.08em;margin-left:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lw-tl-track-ctrls{display:flex;gap:3px}.lw-tl-track-ctrls button{width:18px;height:18px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-3);font-family:var(--mono-font);font-size:var(--fs-2xs);border-radius:3px;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}.lw-tl-track-ctrls button:hover{color:var(--text);border-color:var(--border-2)}.lw-tl-scroll{overflow-x:auto;overflow-y:hidden;position:relative;background:linear-gradient(to right,oklch(18% .008 260) 1px,transparent 1px) 0 0 / 60px 100%,#0b0d11}.lw-tl-scroll::-webkit-scrollbar{height:10px}.lw-tl-scroll::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:5px}.lw-tl-lanes{position:relative;display:flex;flex-direction:column}.lw-tl-lane{border-bottom:1px solid var(--border);position:relative;overflow:hidden}.lw-tl-lane.track{height:44px}.lw-tl-lane.auto{height:44px;background:#090b0f}.lw-tl-lane.audio{height:48px;background:#07090c}.lw-tl-ruler{position:relative;height:28px;background:var(--surface-2);border-bottom:1px solid var(--border);flex-shrink:0}.lw-tl-ruler .tick{position:absolute;top:0;bottom:0;width:1px;pointer-events:none}.lw-tl-ruler .tick.minor{background:var(--border);top:18px}.lw-tl-ruler .tick.major{background:var(--border-2)}.lw-tl-ruler .tick.major span{position:absolute;top:4px;left:4px;font-family:var(--mono-font);font-size:var(--fs-2xs);color:var(--text-2);white-space:nowrap}.cue-marker{position:absolute;top:0;z-index:2;pointer-events:none}.cue-marker .flag{position:absolute;top:0;left:0;background:var(--accent);color:var(--on-accent);font-family:var(--mono-font);font-size:var(--fs-2xs);padding:2px 5px;border-radius:0 3px 3px 0;letter-spacing:.06em}.cue-marker .stem{position:absolute;top:16px;width:1px;height:12px;background:var(--accent);opacity:.6}.lw-tl-clip{position:absolute;top:4px;height:36px;border-radius:4px;overflow:hidden;cursor:grab;z-index:1;--clip-color: #5fb8d9;border:1px solid color-mix(in oklch,var(--clip-color) 50%,transparent)}.lw-tl-clip .clip-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to right,color-mix(in oklch,var(--clip-color) 45%,transparent),color-mix(in oklch,var(--clip-color) 20%,transparent))}.lw-tl-clip .clip-label{position:relative;display:flex;align-items:center;gap:5px;padding:4px 8px 0;font-size:var(--fs-sm);color:var(--on-accent);font-weight:500;text-shadow:0 1px 2px var(--scrim-soft)}.lw-tl-clip .clip-label .dot{width:6px;height:6px;border-radius:50%;box-shadow:0 0 6px currentColor}.lw-tl-clip .clip-label .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lw-tl-clip .clip-meta{position:relative;padding:0 8px;font-family:var(--mono-font);font-size:var(--fs-2xs);color:#ffffffb3;display:flex;gap:4px;margin-top:1px;white-space:nowrap;overflow:hidden}.lw-tl-clip .clip-meta .sep{opacity:.5}.lw-tl-clip .clip-handle{position:absolute;top:0;bottom:0;width:7px;background:var(--clip-color);opacity:0;cursor:ew-resize;z-index:2;transition:opacity .1s}.lw-tl-clip .clip-handle.left{left:0;border-radius:3px 0 0 3px}.lw-tl-clip .clip-handle.right{right:0;border-radius:0 3px 3px 0}.lw-tl-clip:hover .clip-handle{opacity:.85}.lw-tl-clip.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 16px color-mix(in oklch,var(--accent) 30%,transparent);z-index:3}.lw-tl-clip.multi-sel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);opacity:.85;z-index:3}.lw-tl-trans{position:absolute;top:4px;height:36px;cursor:pointer;z-index:5;display:flex;align-items:center;justify-content:center;gap:5px;min-width:12px;overflow:hidden;background:linear-gradient(90deg,var(--fade-a),var(--fade-b)),repeating-linear-gradient(45deg,var(--hairline-strong) 0,var(--hairline-strong) 3px,transparent 3px,transparent 6px);border-left:1px solid color-mix(in oklch,var(--fade-a) 70%,white);border-right:1px solid color-mix(in oklch,var(--fade-b) 70%,white);box-shadow:inset 0 0 0 1px #ffffff1f,0 0 12px #00000047}.lw-tl-trans .trans-glyph{font-size:var(--fs-lg);color:var(--on-accent);text-shadow:0 0 6px var(--scrim)}.lw-tl-trans .trans-label{display:flex;align-items:center;gap:4px;min-width:0;padding:2px 5px;border-radius:3px;background:#00000057;color:var(--on-accent);font-family:var(--mono-font);font-size:var(--fs-2xs);letter-spacing:.04em;white-space:nowrap}.lw-tl-trans.recorded .trans-label{background:color-mix(in oklch,var(--danger) 35%,oklch(0% 0 0 / .38))}.lw-tl-trans.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.lw-tl-playhead{position:absolute;top:0;bottom:0;width:1px;background:var(--accent);pointer-events:none;z-index:10;box-shadow:0 0 8px var(--accent)}.lw-tl-playhead .head{position:absolute;top:0;left:-5px;width:11px;height:10px;background:var(--accent);clip-path:polygon(0 0,100% 0,50% 100%)}.lw-tl-loop{position:absolute;top:0;bottom:0;background:color-mix(in oklch,var(--accent) 10%,transparent);border-left:1px solid var(--accent);border-right:1px solid var(--accent);pointer-events:none;z-index:2}.lw-tl-transport{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s-5);padding:var(--s-3) var(--s-4);background:var(--surface);border-top:1px solid var(--border);min-height:64px}.lw-tl-transport-left{display:flex;gap:6px;align-items:center}.lw-tl-tbtn{display:flex;align-items:center;gap:5px;padding:7px 11px;background:var(--surface-2);border:1px solid var(--border);border-radius:5px;color:var(--text-2);font-size:var(--fs-sm);cursor:pointer;font-family:inherit}.lw-tl-tbtn:hover{color:var(--text);border-color:var(--border-2)}.lw-tl-tbtn.play{background:var(--accent);color:var(--on-accent);border-color:var(--accent);padding:7px 14px}.lw-tl-tbtn.play.stop{background:var(--red, #c84a3a);border-color:var(--red, #c84a3a)}.lw-tl-tbtn.rec .dot{width:8px;height:8px;border-radius:50%;background:#c84a3a;box-shadow:0 0 6px #c84a3a}.lw-tl-tbtn.active{border-color:var(--accent);color:var(--accent)}.lw-tl-timecode{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0 var(--s-4)}.lw-tl-timecode .big{font-family:var(--mono-font);font-size:var(--fs-2xl);font-weight:500;color:var(--text);letter-spacing:.05em;line-height:1}.lw-tl-timecode .meta{display:flex;gap:6px;font-family:var(--mono-font);font-size:var(--fs-2xs);color:var(--text-2)}.lw-tl-timecode .meta em{font-style:normal;color:var(--text-4);letter-spacing:.1em}.lw-tl-timecode .meta .sep{opacity:.4}.lw-tl-transport-right{display:flex;gap:var(--s-4);align-items:center}.lw-tl-cues{display:flex;gap:4px}.lw-tl-cue-btn{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 8px;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;color:var(--text-3);cursor:pointer;min-width:56px}.lw-tl-cue-btn .kbd{font-family:var(--mono-font);font-size:var(--fs-2xs);color:var(--text-2);letter-spacing:.08em}.lw-tl-cue-btn .name{font-size:var(--fs-xs);color:var(--text-2);white-space:nowrap}.lw-tl-cue-btn.active{border-color:var(--accent);background:color-mix(in oklch,var(--accent) 15%,var(--surface-2))}.lw-tl-cue-btn.active .name{color:var(--text)}.lw-tl-cue-btn.active .kbd{color:var(--accent)}.lw-tl-cue-btn:hover{border-color:var(--border-2)}.lw-tl-zoom{display:flex;align-items:center;gap:6px;font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-3)}.lw-tl-zoom input[type=range]{width:90px}.lw-tl-zoom .v{color:var(--text-2);min-width:30px}.lw-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim-strong);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100;animation:modal-in .15s ease-out}@keyframes modal-in{0%{opacity:0}to{opacity:1}}.lw-modal{width:680px;max-height:86vh;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-lg);box-shadow:0 24px 80px var(--shadow-strong),0 0 0 1px var(--hairline);display:flex;flex-direction:column;overflow:hidden;animation:modal-pop .18s cubic-bezier(.2,1.2,.4,1)}@keyframes modal-pop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.lw-modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--s-5) var(--s-5) var(--s-4);border-bottom:1px solid var(--border)}.lw-modal-head .title{font-size:var(--fs-lg);font-weight:500;color:var(--text)}.lw-modal-head .sub{font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-4);margin-top:2px}.lw-modal-close{background:transparent;border:0;color:var(--text-3);font-size:var(--fs-2xl);line-height:1;cursor:pointer;padding:0 4px}.lw-modal-body{padding:var(--s-5);overflow-y:auto}.lw-modal-foot{display:flex;justify-content:flex-end;gap:var(--s-3);padding-top:var(--s-5);margin-top:var(--s-5);border-top:1px solid var(--border)}.lw-exp-sec{font-family:var(--mono-font);font-size:var(--fs-xs);letter-spacing:.14em;color:var(--text-4);text-transform:uppercase;margin:var(--s-4) 0 var(--s-3)}.lw-exp-sec:first-child{margin-top:0}.lw-exp-targets{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.lw-exp-target{position:relative;text-align:left;padding:9px 11px;background:var(--surface-2);border:1px solid var(--border);border-radius:5px;cursor:pointer;color:var(--text-2);font-family:inherit}.lw-exp-target .name{font-size:var(--fs-md);color:var(--text);font-weight:500}.lw-exp-target .sub{font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-4);margin-top:2px}.lw-exp-target .tag{position:absolute;top:8px;right:10px;font-family:var(--mono-font);font-size:var(--fs-2xs);color:var(--text-2);padding:1px 5px;background:var(--surface);border-radius:3px;border:1px solid var(--border)}.lw-exp-target.active{border-color:var(--accent);background:color-mix(in oklch,var(--accent) 8%,var(--surface-2))}.lw-exp-target.active .tag{color:var(--accent);border-color:var(--accent)}.lw-exp-formats{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.lw-exp-fmt{display:flex;gap:8px;padding:8px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:5px;cursor:pointer}.lw-exp-fmt input[type=radio]{margin-top:2px}.lw-exp-fmt .name{font-size:var(--fs-sm);color:var(--text)}.lw-exp-fmt .sub{font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-4);margin-top:2px}.lw-exp-fmt.active{border-color:var(--accent);background:color-mix(in oklch,var(--accent) 8%,var(--surface-2))}.lw-exp-settings{display:flex;flex-direction:column;gap:6px}.lw-exp-row{display:grid;grid-template-columns:100px 1fr;align-items:center;gap:var(--s-3);padding:4px 0}.lw-exp-row .k{font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-4);letter-spacing:.08em}.lw-exp-seg{display:flex;background:var(--surface-2);border:1px solid var(--border);border-radius:5px;overflow:hidden}.lw-exp-seg button{flex:1;padding:5px 10px;background:transparent;border:0;color:var(--text-3);font-family:var(--mono-font);font-size:var(--fs-xs);cursor:pointer;border-right:1px solid var(--border)}.lw-exp-seg button:last-child{border-right:0}.lw-exp-seg button.active{background:var(--accent);color:var(--on-accent)}.lw-exp-check{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-2);cursor:pointer}.lw-exp-summary{display:flex;flex-direction:column;gap:3px;padding:var(--s-3) var(--s-4);background:var(--surface-2);border:1px solid var(--border);border-radius:5px;font-size:var(--fs-sm)}.lw-exp-summary>div{display:flex;justify-content:space-between;gap:8px}.lw-exp-summary .k{color:var(--text-4);font-family:var(--mono-font);font-size:var(--fs-xs);letter-spacing:.06em}.lw-exp-summary .v{color:var(--text-2)}.lw-exp-summary .v.mono{font-family:var(--mono-font);font-size:var(--fs-xs)}.lw-exp-progress{display:flex;flex-direction:column;align-items:center;padding:var(--s-6) var(--s-5);min-height:380px}.lw-exp-stage-icon{margin-bottom:var(--s-4)}.lw-exp-stage-title{font-size:var(--fs-lg);color:var(--text);margin-bottom:4px}.lw-exp-stage-sub{font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-3);margin-bottom:var(--s-5);text-align:center;max-width:400px}.lw-exp-bar{width:100%;height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden;margin-bottom:var(--s-3)}.lw-exp-bar .fill{height:100%;background:linear-gradient(to right,var(--accent),color-mix(in oklch,var(--accent) 70%,white));transition:width .1s linear;box-shadow:0 0 10px var(--accent)}.lw-exp-bar-meta{display:flex;justify-content:space-between;width:100%;font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-3);margin-bottom:var(--s-5)}.lw-exp-log{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:10px 12px;font-family:var(--mono-font);font-size:var(--fs-xs);max-height:140px;overflow-y:auto}.lw-exp-log .entry{padding:2px 0;color:var(--text-3)}.lw-exp-log .entry.ok{color:var(--mint)}.lw-exp-done{display:flex;flex-direction:column;align-items:center;padding:var(--s-6) var(--s-5)}.lw-exp-stage-icon.done{animation:done-pop .4s cubic-bezier(.2,1.5,.3,1)}@keyframes done-pop{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.lw-exp-done-card{width:100%;padding:var(--s-4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);margin-top:var(--s-4);display:flex;flex-direction:column;gap:4px}.lw-exp-done-card .row{display:flex;justify-content:space-between;font-size:var(--fs-sm)}.lw-exp-done-card .row .k{color:var(--text-4);font-family:var(--mono-font);font-size:var(--fs-xs);letter-spacing:.06em}.lw-exp-done-card .row .v{color:var(--text-2)}.lw-exp-done-card .row .v.mono{font-family:var(--mono-font);font-size:var(--fs-xs)}.lw-search-input{width:100%;padding:7px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-sm);outline:none;transition:border-color var(--dur-fast)}.lw-search-input:focus{border-color:var(--accent)}.lw-search-input::placeholder{color:var(--text-4)}@media(max-width:720px){.lw-app{grid-template-rows:40px 1fr 36px;width:100vw;overflow:hidden}.lw-topbar{grid-template-columns:minmax(0,1fr) auto;gap:var(--s-3);padding:0 var(--s-3)}.lw-brand{font-size:var(--fs-lg)}.lw-projbreadcrumbs,.lw-version-link,.lw-topbar-actions .btn:not(:first-child):not(:last-child){display:none}.lw-main{grid-template-columns:52px minmax(0,1fr);overflow:hidden}.lw-layout-screen{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(260px,1fr) minmax(230px,38vh)}.lw-layout-resize-handle,.lw-show-inspector-resize,.lw-live-resize-handle{display:none}.lw-tl-top{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(112px,1fr) minmax(150px,1fr)}.lw-live-screen{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(260px,42%) minmax(0,1fr)}.lw-pattern-screen{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:minmax(220px,1fr) minmax(420px,54vh)}.lw-pattern-screen .lw-resize-handle,.lw-pattern-screen .lw-panel-collapsed-strip{display:none}.lw-pattern-screen .lw-panel{border-left:0;border-top:1px solid var(--border);min-width:0}.lw-layout-panel{border-left:0!important;border-top:1px solid var(--border)}.lw-panel-mode-switch{overflow-x:auto;scrollbar-width:none}.lw-panel-mode-switch::-webkit-scrollbar{display:none}.lw-panel-mode-btn{min-width:76px;padding:7px 8px;flex:0 0 auto}.lw-panel-body{padding:var(--s-4)}.lw-pattern-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lw-effect-workspace{grid-template-rows:minmax(92px,42%) minmax(90px,1fr);min-height:0}.lw-effect-targets{max-height:64px;padding-bottom:4px}.lw-effect-target{min-height:26px;padding-block:3px}.lw-effect-browser,.lw-effect-inspector{max-height:none;overflow:auto}.lw-effect-inspector{position:static}.lw-effect-browser .lw-pattern-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.lw-effect-browser .btn{min-height:24px}.lw-pattern-card .label{left:6px;right:6px;font-size:var(--fs-xs)}.lw-knob{grid-template-columns:70px minmax(0,1fr) 44px;gap:var(--s-2)}.lw-master{grid-template-columns:52px minmax(0,1fr) 38px;column-gap:var(--s-2)}.lw-panel-master-block--effects{padding-top:6px}.lw-panel-master-block--effects .lw-sec-header{margin-bottom:4px}.lw-panel-master-block--effects .lw-master{row-gap:2px}.lw-panel-master-block--effects .lw-master input[type=range]{height:14px}.lw-canvas-toolbar{gap:var(--s-2);padding:var(--s-3);max-height:104px;overflow-y:auto}.lw-strip-batch-actions{grid-template-columns:minmax(0,1fr) 1fr 1fr}.lw-strip-batch-actions .btn{justify-content:center;padding-inline:8px}.tbar-divider{margin:0 var(--s-1)}.tbar-slider input[type=range]{width:58px}.lw-transport{min-width:0;overflow:hidden}.lw-transport .lw-timeline,.lw-transport-meta:last-child{display:none}.lw-transport-meta span:last-child{display:none}.lw-statusbar{gap:var(--s-3);overflow-x:auto;white-space:nowrap}.lw-modal{width:min(680px,calc(100vw - 24px))!important;max-height:calc(100vh - 24px)}.lw-exp-targets,.lw-exp-formats{grid-template-columns:1fr}.lw-exp-row{grid-template-columns:1fr;align-items:stretch}.lw-exp-summary>div,.lw-exp-done-card .row{flex-direction:column;gap:2px}.lw-settings-screen{padding:18px 14px}}.lw-tl-tbtn.armed{color:var(--danger)}.lw-tl-tbtn.armed .dot{animation:rec-blink 1s ease-in-out infinite}@keyframes rec-blink{0%,to{opacity:1}50%{opacity:.3}}.lw-tl-quantize-sel{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-xs);padding:2px 6px;cursor:pointer;height:26px}.lw-tl-clip.recorded{border-top:1.5px solid var(--danger)}.lw-rail-btn.recording{color:var(--danger)}.lw-rail-badge{position:absolute;top:5px;right:4px;font-size:var(--fs-2xs)}.lw-rail-btn{position:relative}.lw-live-screen{display:grid;grid-template-columns:var(--lw-live-left-width, 340px) 6px minmax(0,1fr);height:100%;overflow:hidden}.lw-live-screen.fullscreen{grid-template-columns:1fr}.lw-live-screen.fullscreen .lw-live-left,.lw-live-screen.fullscreen .lw-live-resize-handle{display:none}.lw-live-left{display:flex;flex-direction:column;border-right:1px solid var(--border);overflow:hidden}.lw-live-preview-wrap{flex:1;min-height:0;position:relative;background:var(--preview-bg)}.lw-live-preview-wrap .lw-preview-svg{width:100%;height:100%}.lw-live-preview-overlay{position:absolute;bottom:0;left:0;right:0;padding:8px 12px;background:linear-gradient(transparent,var(--scrim));display:flex;flex-direction:column;gap:3px}.lw-live-now-playing{display:flex;align-items:center;gap:6px;font-size:var(--fs-md);font-weight:600}.lw-live-now-playing .dot{width:8px;height:8px;border-radius:50%;box-shadow:0 0 8px currentColor;flex-shrink:0}.lw-live-next-up{font-size:var(--fs-xs);color:var(--accent);font-family:var(--mono-font)}.lw-live-controls{padding:10px 12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.lw-live-record-dock{border:1px solid var(--border);background:#0d1013;border-radius:var(--r-md);padding:9px;display:flex;flex-direction:column;gap:8px}.lw-live-record-dock.recording{border-color:color-mix(in oklch,var(--danger) 45%,var(--border-2));box-shadow:inset 0 0 0 1px #ffffff0a}.lw-live-record-head{display:flex;align-items:center;gap:10px}.lw-live-record-title{color:var(--text);font-size:var(--fs-md);font-weight:650;line-height:1.15}.lw-live-record-meta{margin-top:2px;color:var(--text-4);font-family:var(--mono-font);font-size:var(--fs-2xs);letter-spacing:.04em}.lw-live-record-main{margin-left:auto;white-space:nowrap;min-height:32px}.lw-live-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.lw-live-flow-step{min-width:0;border:1px solid var(--border);border-radius:var(--r-sm);padding:4px 5px;color:var(--text-4);background:var(--surface-2);font-family:var(--mono-font);font-size:var(--fs-2xs);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lw-live-flow-step.active{color:var(--accent);border-color:color-mix(in oklch,var(--accent) 45%,var(--border));background:color-mix(in oklch,var(--accent) 9%,var(--surface-2))}.lw-live-flow-step.done{color:var(--mint);border-color:color-mix(in oklch,var(--mint) 35%,var(--border))}.lw-live-take-strip{min-height:31px;display:flex;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:thin}.lw-live-take-item{display:inline-flex;align-items:center;gap:5px;max-width:128px;flex:0 0 auto;padding:5px 7px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-2);font-size:var(--fs-xs)}.lw-live-take-item span:not(.dot):not(.fade){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lw-live-take-item .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px currentColor}.lw-live-take-item .fade{color:var(--text-4);font-family:var(--mono-font)}.lw-live-take-empty{width:100%;padding:5px 7px;border:1px dashed var(--border);border-radius:var(--r-sm);color:var(--text-4);font-family:var(--mono-font);font-size:var(--fs-2xs);text-align:center}.lw-live-record-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.lw-live-record-actions .btn{min-width:0;padding-inline:5px;font-size:var(--fs-xs)}.lw-live-timing{border:1px solid var(--border);border-radius:var(--r-md);background:#0a0c10}.lw-live-timing summary{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;color:var(--text-2);cursor:pointer;list-style:none;font-size:var(--fs-sm)}.lw-live-timing summary::-webkit-details-marker{display:none}.lw-live-timing summary span:last-child{color:var(--text-4);font-family:var(--mono-font);font-size:var(--fs-2xs)}.lw-live-timing[open]{padding-bottom:8px}.lw-live-timing[open] summary{border-bottom:1px solid var(--border);margin-bottom:8px}.lw-live-timing .lw-live-beat,.lw-live-timing .lw-live-ctrl-row{margin:0 9px 7px}.lw-live-timing .lw-live-ctrl-row:last-child{margin-bottom:0}.lw-live-ctrl-row{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm)}.lw-live-ctrl-row .k{color:var(--text-4);font-family:var(--mono-font);font-size:var(--fs-xs);width:54px;flex-shrink:0;letter-spacing:.05em}.lw-live-ctrl-row .v{font-family:var(--mono-font);font-size:var(--fs-xs);color:var(--text-3);width:28px;text-align:right}.lw-live-bpm-input{width:56px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-lg);font-family:var(--mono-font);text-align:center;padding:4px 6px;outline:none}.lw-live-bpm-input:focus{border-color:var(--accent)}.lw-live-timeline-status{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--mint);font-family:var(--mono-font);padding:4px 0}.lw-live-timeline-status .dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.lw-live-rec-status{font-size:var(--fs-xs);color:var(--danger);font-family:var(--mono-font);padding:3px 0;animation:rec-blink 1s ease-in-out infinite}.lw-live-beat{display:flex;align-items:center;gap:8px;padding:4px 0}.lw-live-beat-meter{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.lw-live-beat-fill{height:100%;border-radius:2px;background:var(--accent);width:calc(var(--beat) * 100%);transition:width .02s linear}.lw-live-beat-count{font-family:var(--mono-font);font-size:var(--fs-lg);font-weight:700;color:var(--accent);min-width:28px;text-align:center}.lw-live-beat-count span{font-size:var(--fs-2xs);color:var(--text-2)}.lw-live-beat-bar{font-family:var(--mono-font);font-size:var(--fs-md);color:var(--text-3);min-width:28px}.lw-live-beat-bar span{font-size:var(--fs-2xs);color:var(--text-2)}.lw-live-right{display:flex;flex-direction:column;overflow:hidden}.lw-live-grid-header{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);flex-shrink:0}.lw-live-grid-title{font-size:var(--fs-md);font-weight:600}.lw-live-grid-count{font-size:var(--fs-xs);color:var(--text-4);margin-right:auto}.lw-live-search{width:160px;padding:5px 9px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-sm);outline:none}.lw-live-search:focus{border-color:var(--accent)}.lw-live-grid{flex:1;overflow-y:auto;padding:12px 14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;align-content:start}.lw-live-card{position:relative;width:100%;min-height:82px;aspect-ratio:1.72;border-radius:var(--r-md);overflow:hidden;border:1px solid color-mix(in oklch,var(--border-2) 78%,white);cursor:pointer;padding:0;background:var(--surface-2);box-shadow:inset 0 1px #ffffff14,0 6px 18px #00000038;transition:transform .1s,border-color .15s,box-shadow .15s,filter .15s;text-align:left}.lw-live-card:hover{transform:translateY(-1px);border-color:color-mix(in oklch,var(--accent) 45%,var(--border-2));box-shadow:inset 0 1px #ffffff1f,0 10px 24px #0000004d}.lw-live-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lw-live-card:active{transform:scale(.96)}.lw-live-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 18px #00c0d761,inset 0 1px #ffffff24;box-shadow:0 0 0 1px var(--accent),0 0 18px oklch(74% .13 210 / .38),inset 0 1px #ffffff24}.lw-live-card.next-up{border-color:var(--accent-2);box-shadow:0 0 0 1px var(--accent-2);animation:next-up-pulse .5s ease-in-out infinite alternate}@keyframes next-up-pulse{to{box-shadow:0 0 0 2px var(--accent-2),0 0 12px var(--accent-2)}}.lw-live-card-bg{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity .2s}.lw-live-card-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000001a,#000000b8),linear-gradient(90deg,oklch(0% 0 0 / .28),transparent 58%)}.lw-live-card-affordance{position:absolute;top:8px;left:8px;z-index:2;padding:3px 7px;border-radius:3px;background:#0000006b;color:var(--on-accent);border:1px solid oklch(100% 0 0 / .14);font-family:var(--mono-font);font-size:var(--fs-2xs);letter-spacing:.08em}.lw-live-card.active .lw-live-card-affordance{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.lw-live-card.next-up .lw-live-card-affordance{background:var(--accent-2);color:#0e1217;border-color:var(--accent-2)}.lw-live-card-hotkey{position:absolute;top:8px;right:8px;z-index:3;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:4px;background:#0000007a;color:var(--text);border:1px solid oklch(100% 0 0 / .16);font-family:var(--mono-font);font-size:var(--fs-xs);pointer-events:none}.lw-live-card-body{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:8px 9px 7px}.lw-live-card-name{font-size:var(--fs-lg);font-weight:720;color:var(--on-accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px oklch(0% 0 0 / .65)}.lw-live-card-meta{margin-top:3px;display:flex;align-items:center;justify-content:space-between;gap:6px}.lw-live-card-action{min-width:0;font-size:var(--fs-xs);color:#f0f2f4d1;font-family:var(--mono-font);text-transform:uppercase;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lw-runtime-chip{flex:0 0 auto;padding:1px 4px;border-radius:3px;font-family:var(--mono-font);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.04em;color:#040609;border:1px solid oklch(100% 0 0 / .18)}.lw-runtime-chip.is-wled{background:#8fde92e6}.lw-runtime-chip.is-advanced{background:#f79e75eb}.lw-runtime-chip.is-ready{background:#8fde92e6}.lw-runtime-chip.is-port{background:#70d5edeb}.lw-runtime-chip.is-runtime{background:#f3ad66eb}.lw-install-wizard{display:flex;flex-direction:column;gap:9px;padding:9px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface)}.lw-install-wizard-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.lw-install-wizard .title{margin-top:2px;color:var(--text);font-size:var(--fs-sm);font-weight:650}.lw-install-status{flex-shrink:0;padding:2px 6px;border:1px solid var(--border);border-radius:4px;color:var(--text-3);font-family:var(--mono-font);font-size:var(--fs-2xs)}.lw-install-status.is-ready-to-apply{color:#9ee6a0;border-color:#72b8758c}.lw-install-status.is-blocked,.lw-install-status.is-empty-package{color:#ffac9b;color:oklch(82% .15 32);border-color:#e555518c}.lw-install-status.is-needs-backup{color:#f4c26a;border-color:#d6a95b8c}.lw-install-steps{display:grid;gap:7px}.lw-live-card-pulse{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-md);box-shadow:inset 0 0 0 2px var(--accent);animation:card-pulse 2s ease-in-out infinite}@keyframes card-pulse{0%,to{opacity:.3}50%{opacity:.8}}.btn-danger{background:var(--danger);color:var(--on-accent);border-color:var(--danger)}@media(max-width:720px){.lw-live-screen{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(260px,42%) minmax(0,1fr)}.lw-live-resize-handle{display:none}.lw-live-record-head,.lw-live-record-actions{grid-template-columns:1fr}.lw-live-record-head{display:grid}.lw-live-record-main{width:100%;margin-left:0}.lw-live-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px}}.lw-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000b3;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.lw-modal{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-lg);padding:20px;max-height:80vh;overflow-y:auto;animation:modal-up .18s cubic-bezier(.2,.8,.3,1);box-shadow:0 24px 60px -12px #000000b3}@keyframes modal-up{0%{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}.lw-kbd-help{width:min(520px,92vw)}.lw-modal-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.lw-modal-title{font-size:var(--fs-lg);font-weight:600}.lw-modal-sub{font-size:var(--fs-sm);color:var(--text-4);margin-top:3px}.lw-modal-close{font-size:var(--fs-lg);color:var(--text-4);padding:2px 6px;transition:color var(--dur-fast)}.lw-modal-close:hover{color:var(--text)}.lw-kbd-groups{display:flex;flex-direction:column;gap:16px}.lw-kbd-group-title{font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-4);font-family:var(--mono-font);margin-bottom:6px}.lw-kbd-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;border-bottom:1px solid var(--border)}.lw-kbd-row:last-child{border-bottom:none}.lw-kbd-desc{font-size:var(--fs-md);color:var(--text-2)}.lw-kbd-key{font-family:var(--mono-font);font-size:var(--fs-xs);background:var(--surface-2);border:1px solid var(--border-2);border-radius:3px;padding:2px 6px;color:var(--text-3);white-space:nowrap}.lw-statusbar .ok{color:var(--mint)}.lw-statusbar .err{color:var(--text-4)}.lw-tl-preview-stage .lw-preview-svg{width:100%;height:100%}.lw-settings-screen{flex:1;overflow-y:auto;padding:32px;background:var(--bg)}.lw-settings-inner{max-width:640px;margin:0 auto}.lw-settings-screen .lw-sec-header{margin-bottom:4px}.lw-modal .lw-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border);font-size:var(--fs-lg);font-weight:500}.lw-modal-close{background:none;border:none;color:var(--text-3);cursor:pointer;font-size:var(--fs-lg);line-height:1;padding:2px 6px;border-radius:3px}.lw-modal-close:hover{background:var(--surface-2)}.lw-topbar-actions .btn-ghost.active{background:#00c0d71f;background:oklch(74% .13 210 / .12);color:var(--accent);border-color:#00c0d74d;border-color:oklch(74% .13 210 / .3)}.lw-pattern-card{position:relative}.lw-pattern-fav{position:absolute;top:1px;right:1px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:#faab3f;font-size:var(--fs-xs);cursor:pointer;line-height:1;padding:2px;transition:opacity .15s;z-index:2}.lw-pattern-card:hover .lw-pattern-fav,.lw-pattern-card:hover .lw-pattern-delete-btn{opacity:1!important}
