.ts-app{background:var(--lab-bg-base,#131311);height:100%;min-height:0;color:var(--lab-text-primary,#d7e8c8);font-family:var(--lab-font-sans,"Geist", ui-sans-serif, system-ui, sans-serif);grid-template-rows:52px auto 1fr;font-size:13px;line-height:1.5;display:grid;overflow:hidden}.ts-tabs{background:var(--lab-bg-section,#1a1a17);border-bottom:1px solid var(--lab-border-subtle,#d7e8c814);grid-row:1;align-items:center;gap:2px;padding:0 16px 0 8px;display:flex;overflow-x:auto}.ts-tabs-categories{flex:1;align-items:center;gap:0;min-width:0;display:flex;overflow-x:auto}.ts-tab{font-family:var(--lab-font-mono,"Geist Mono", ui-monospace, monospace);letter-spacing:.04em;color:var(--lab-text-muted,#d7e8c873);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:14px 16px;font-size:11px;transition:color .16s cubic-bezier(.4,0,.2,1);display:flex}.ts-tab:hover{color:var(--lab-text-secondary,#d7e8c8a6)}.ts-tab.is-active{color:var(--lab-text-primary,#d7e8c8);border-bottom-color:var(--lab-accent,#ff5524)}.ts-tab-count{color:var(--lab-text-faint,#d7e8c847);background:var(--lab-bg-raised,#22221e);border-radius:4px;padding:1px 6px;font-size:9px}.ts-tab.is-active .ts-tab-count{color:var(--lab-accent,#ff5524);background:#ff552414}.ts-tabs-divider{background:var(--lab-border-subtle,#d7e8c814);flex-shrink:0;width:1px;height:24px;margin:0 8px}.ts-tabs-themes{flex-shrink:0;align-items:center;gap:4px;padding:6px 0;display:flex}.ts-theme-chip{background:var(--lab-bg-elevated,#2c2c26);border:1px solid var(--lab-border-subtle,#d7e8c814);font-family:var(--lab-font-mono,"Geist Mono");cursor:pointer;white-space:nowrap;color:var(--lab-text-primary,#d7e8c8);border-radius:9999px;align-items:center;gap:8px;padding:6px 10px 6px 12px;font-size:11px;transition:transform .18s cubic-bezier(.4,0,.2,1),border-color .18s cubic-bezier(.4,0,.2,1);display:inline-flex}.ts-theme-chip:hover{transform:translateY(1px)}.ts-theme-chip.is-active{border-color:#ff55244d}.ts-theme-chip-dot{background:var(--lab-accent,#ff5524);border-radius:50%;flex-shrink:0;width:8px;height:8px}.ts-theme-chip.is-active .ts-theme-chip-dot{box-shadow:0 0 6px #ff552480}.ts-theme-chip-name{font-weight:500}.ts-theme-chip-tag{color:var(--lab-text-faint,#d7e8c847);font-size:9px}.ts-theme-add-btn{background:var(--lab-bg-elevated,#2c2c26);border:1px dashed var(--lab-border-strong,#d7e8c82e);cursor:pointer;width:30px;height:30px;color:var(--lab-text-muted,#d7e8c873);border-radius:50%;justify-content:center;align-items:center;font-size:14px;transition:color .18s cubic-bezier(.4,0,.2,1),border-color .18s cubic-bezier(.4,0,.2,1),transform .18s cubic-bezier(.4,0,.2,1);display:flex}.ts-theme-add-btn:hover{color:var(--lab-accent,#ff5524);border-color:var(--lab-accent,#ff5524);transform:translateY(1px)}.ts-main{grid-row:3;grid-template-columns:380px 4px 1fr;min-height:0;display:grid;overflow:hidden}@media (max-width:1100px){.ts-main{grid-template-columns:320px 4px 1fr!important}}.ts-resize-handle{cursor:col-resize;-webkit-user-select:none;user-select:none;background:0 0;justify-content:center;align-items:center;width:4px;transition:background .16s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.ts-resize-handle:hover,.ts-resize-handle:focus-visible,.ts-resize-handle:focus-within{background:#ff55242e;outline:none}.ts-resize-handle:active{background:#ff55244d}.ts-resize-handle-grip{background:var(--lab-border-subtle,#d7e8c814);pointer-events:none;border-radius:1px;width:2px;height:32px;transition:background .16s cubic-bezier(.4,0,.2,1)}.ts-resize-handle:hover .ts-resize-handle-grip,.ts-resize-handle:focus-visible .ts-resize-handle-grip{background:var(--lab-accent,#ff5524)}.ts-editor{background:var(--lab-bg-section,#1a1a17);border-right:1px solid var(--lab-border-subtle,#d7e8c814);flex-direction:column;min-height:0;display:flex;overflow:hidden}.ts-editor-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.ts-editor-header{border-bottom:1px solid var(--lab-border-subtle,#d7e8c814);padding:20px 20px 14px}.ts-editor-cat-eyebrow{font-family:var(--lab-font-mono,"Geist Mono");letter-spacing:.1em;text-transform:uppercase;color:var(--lab-text-faint,#d7e8c847);margin-bottom:4px;font-size:10px}.ts-editor-cat-title{font-family:var(--lab-font-sans,"Geist");letter-spacing:-.01em;color:var(--lab-text-primary,#d7e8c8);font-size:18px;font-weight:600}.ts-editor-cat-sub{color:var(--lab-text-secondary,#d7e8c8a6);margin-top:4px;font-size:11px}.ts-token-list{border-bottom:1px solid var(--lab-border-subtle,#d7e8c814);padding:12px 0}.ts-token-list-item{cursor:pointer;text-align:left;background:0 0;border:none;border-left:2px solid #0000;align-items:center;gap:10px;width:100%;padding:8px 16px;transition:background .12s cubic-bezier(.4,0,.2,1);display:flex}.ts-token-list-item:hover{background:var(--lab-bg-raised,#22221e)}.ts-token-list-item.is-selected{background:var(--lab-bg-raised,#22221e);border-left-color:var(--lab-accent,#ff5524)}.ts-token-list-swatch{border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:4px;flex-shrink:0;width:18px;height:18px}.ts-token-list-name{font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-primary,#d7e8c8);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12px;overflow:hidden}.ts-token-list-value{font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-faint,#d7e8c847);text-align:right;letter-spacing:.02em;cursor:text;background:0 0;border:1px solid #0000;border-radius:4px;outline:none;width:92px;padding:3px 6px;font-size:10px;transition:color .14s cubic-bezier(.4,0,.2,1),border-color .14s cubic-bezier(.4,0,.2,1),background .14s cubic-bezier(.4,0,.2,1)}.ts-token-list-item:hover .ts-token-list-value{border-color:var(--lab-border-subtle,#d7e8c814);color:var(--lab-text-secondary,#d7e8c8a6)}.ts-token-list-value:focus{background:var(--lab-bg-sunken,#0e0e0c);border-color:var(--lab-accent,#ff5524);color:var(--lab-text-primary,#d7e8c8);box-shadow:var(--ts-input-recess,inset 0 1px 2px #0000004d), 0 0 0 2px #ff552433}.ts-token-list-item.is-selected .ts-token-list-value{border-color:var(--lab-border-subtle,#d7e8c814);color:var(--lab-text-primary,#d7e8c8);background:var(--lab-bg-sunken,#0e0e0c);box-shadow:var(--ts-input-recess,inset 0 1px 2px #0000004d)}.ts-token-list-value[data-modified=true]{color:var(--lab-accent,#ff5524)}.ts-token-list-value[data-readonly=true]{cursor:not-allowed}.ts-editor-footer{border-top:1px solid var(--lab-border-subtle,#d7e8c814);background:var(--lab-bg-base,#131311);flex-shrink:0;align-items:center;gap:6px;padding:12px 14px;display:flex}.ts-btn{font-family:var(--lab-font-sans,"Geist");cursor:pointer;border:none;border-radius:6px;flex:1;padding:9px 12px;font-size:12px;font-weight:500;transition:transform .18s cubic-bezier(.4,0,.2,1),background .18s cubic-bezier(.4,0,.2,1)}.ts-btn-with-icon{justify-content:center;align-items:center;gap:6px;display:inline-flex}.ts-btn-secondary{background:var(--lab-bg-elevated,#2c2c26);color:var(--lab-text-primary,#d7e8c8);border:1px solid var(--lab-border-subtle,#d7e8c814)}.ts-btn-secondary:hover{transform:translateY(1px)}.ts-btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}.ts-icon-btn{background:var(--lab-bg-elevated,#2c2c26);border:1px solid var(--lab-border-subtle,#d7e8c814);width:32px;height:32px;color:var(--lab-text-secondary,#d7e8c8a6);cursor:pointer;border-radius:6px;flex:none;justify-content:center;align-items:center;transition:color .16s cubic-bezier(.4,0,.2,1),border-color .16s cubic-bezier(.4,0,.2,1),transform .16s cubic-bezier(.4,0,.2,1);display:inline-flex}.ts-icon-btn:hover:not(:disabled){color:var(--lab-text-primary,#d7e8c8);border-color:var(--lab-border-strong,#d7e8c82e);transform:translateY(1px)}.ts-icon-btn:disabled{opacity:.35;cursor:not-allowed}.ts-btn-primary{background:var(--lab-tactile-bg,#ff5524);color:var(--lab-tactile-fg,#fff);box-shadow:var(--lab-shadow-button-tactile,0 4px 12px #ff552433)}.ts-btn-primary:hover{background:var(--lab-tactile-bg-hover,#ff6b3d);transform:translateY(1px)}.ts-btn-primary:active{background:var(--lab-tactile-bg-pressed,#e64818);transform:translateY(2px)}.ts-btn-primary:disabled{opacity:.4;cursor:not-allowed;transform:none}.ts-canvas{background:var(--lab-bg-base,#131311);flex-direction:column;min-width:0;min-height:0;display:flex;overflow-y:auto}.ts-canvas-views{background:var(--lab-bg-section,#1a1a17);border-bottom:1px solid var(--lab-border-subtle,#d7e8c814);z-index:5;align-items:center;gap:4px;padding:12px 24px;display:flex;position:sticky;top:0}.ts-canvas-view-tab{font-family:var(--lab-font-mono,"Geist Mono");letter-spacing:.04em;color:var(--lab-text-muted,#d7e8c873);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:6px 14px;font-size:11px;transition:color .16s cubic-bezier(.4,0,.2,1),background .16s cubic-bezier(.4,0,.2,1)}.ts-canvas-view-tab:hover{color:var(--lab-text-secondary,#d7e8c8a6)}.ts-canvas-view-tab.is-active{color:var(--lab-text-primary,#d7e8c8);background:var(--lab-bg-elevated,#2c2c26);border-color:var(--lab-border-subtle,#d7e8c814)}.ts-canvas-view-spacer{flex:1}.ts-canvas-view-meta{font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-faint,#d7e8c847);letter-spacing:.04em;font-size:10px}.ts-canvas-view-meta b{color:var(--lab-text-secondary,#d7e8c8a6)}.ts-canvas-content{flex:1;padding:20px 32px 32px;overflow-y:auto}.ts-canvas-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}@media (max-width:1500px){.ts-canvas-grid{grid-template-columns:1fr}}.ts-section-card{background:var(--lab-bg-section,#1a1a17);box-shadow:var(--lab-shadow-card-skeu,0 1px 2px #0000001f, 0 5px 14px -3px #00000057);border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:12px;padding:18px 20px}.ts-section-card-eyebrow{font-family:var(--lab-font-mono,"Geist Mono");letter-spacing:.1em;text-transform:uppercase;color:var(--lab-text-faint,#d7e8c847);margin-bottom:10px;font-size:10px}.ts-section-card-span2{grid-column:span 2}@media (max-width:1500px){.ts-section-card-span2{grid-column:span 1}}.ts-brand-row{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.ts-brand-tile{flex-direction:column;gap:4px;display:flex}.ts-brand-tile-color{aspect-ratio:1;border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:6px}.ts-brand-tile-name{font-family:var(--lab-font-mono,"Geist Mono");letter-spacing:.06em;text-transform:uppercase;color:var(--lab-text-faint,#d7e8c847);font-size:9px}.ts-brand-tile-hex{font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-secondary,#d7e8c8a6);font-size:10px}.ts-surf-strip{border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:8px;grid-template-columns:repeat(5,1fr);gap:0;display:grid;overflow:hidden}.ts-surf-cell{aspect-ratio:1.4;font-family:var(--lab-font-mono,"Geist Mono");flex-direction:column;justify-content:flex-end;padding:10px;font-size:9px;display:flex}.ts-surf-cell-name{opacity:.85;font-weight:500}.ts-surf-cell-hex{opacity:.55;margin-top:2px;font-size:8px}.ts-text-stack{flex-direction:column;gap:6px;display:flex}.ts-text-row{background:var(--lab-bg-raised,#22221e);font-family:var(--lab-font-mono,"Geist Mono");border-radius:6px;align-items:center;gap:10px;padding:6px 10px;font-size:11px;display:flex}.ts-text-row-label{letter-spacing:.1em;text-transform:uppercase;color:var(--lab-text-faint,#d7e8c847);flex-shrink:0;width:80px;font-size:9px}.ts-spacing-stack{flex-direction:column;gap:4px;display:flex}.ts-spacing-row{font-family:var(--lab-font-mono,"Geist Mono");grid-template-columns:50px 50px 1fr;align-items:center;gap:8px;font-size:10px;display:grid}.ts-spacing-name{color:var(--lab-text-primary,#d7e8c8)}.ts-spacing-value{color:var(--lab-text-faint,#d7e8c847)}.ts-spacing-bar{background:var(--lab-accent,#ff5524);opacity:.75;border-radius:2px;height:10px}.ts-radius-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.ts-radius-cell{flex-direction:column;align-items:center;gap:4px;display:flex}.ts-radius-shape{background:var(--lab-accent,#ff5524);opacity:.85;width:40px;height:40px}.ts-radius-label{font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-faint,#d7e8c847);font-size:9px}.ts-shadow-row{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.ts-shadow-cell{aspect-ratio:1.4;background:var(--lab-bg-raised,#22221e);font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-secondary,#d7e8c8a6);border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:8px;justify-content:center;align-items:center;font-size:10px;display:flex}.ts-shadow-cell-skeu{box-shadow:var(--lab-shadow-card-skeu)}.ts-shadow-cell-pressed{box-shadow:var(--lab-shadow-card-skeu-hover)}.ts-shadow-cell-tactile{background:var(--lab-tactile-bg,#ff5524);color:var(--lab-tactile-fg,#fff);box-shadow:var(--lab-shadow-button-tactile)}.ts-app ::-webkit-scrollbar{width:6px;height:6px}.ts-app ::-webkit-scrollbar-track{background:0 0}.ts-app ::-webkit-scrollbar-thumb{background:var(--lab-border-subtle,#d7e8c814);border-radius:3px}.ts-app ::-webkit-scrollbar-thumb:hover{background:var(--lab-border-strong,#d7e8c82e)}.ts-picker{border-bottom:1px solid var(--lab-border-subtle,#d7e8c814);flex-direction:column;gap:12px;padding:16px;display:flex}.ts-picker-format-switcher{background:var(--lab-bg-sunken,#0e0e0c);font-family:var(--lab-font-mono,"Geist Mono");border-radius:6px;gap:1px;padding:2px;font-size:10px;display:flex}.ts-picker-format-btn{color:var(--lab-text-muted,#d7e8c873);cursor:pointer;text-transform:uppercase;letter-spacing:.06em;background:0 0;border:none;border-radius:4px;flex:1;padding:5px 8px;transition:background .14s cubic-bezier(.4,0,.2,1),color .14s cubic-bezier(.4,0,.2,1)}.ts-picker-format-btn.is-active{background:var(--lab-bg-raised,#22221e);color:var(--lab-text-primary,#d7e8c8)}.ts-picker-input-row{grid-template-columns:36px 1fr 56px;align-items:center;gap:8px;display:grid}.ts-picker-swatch-large{border:1px solid var(--lab-border-subtle,#d7e8c814);cursor:pointer;border-radius:6px;width:36px;height:36px}.ts-picker-input{background:var(--lab-bg-sunken,#0e0e0c);font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-primary,#d7e8c8);letter-spacing:.02em;box-shadow:var(--ts-input-recess-deep,inset 0 1px 3px #0006);border:none;border-radius:6px;outline:none;padding:9px 12px;font-size:12px;font-weight:500}.ts-picker-input:focus{box-shadow:var(--ts-input-recess-deep,inset 0 1px 3px #0006), 0 0 0 2px #ff55244d}.ts-picker-alpha-input{background:var(--lab-bg-sunken,#0e0e0c);font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-primary,#d7e8c8);text-align:center;box-shadow:var(--ts-input-recess-deep,inset 0 1px 3px #0006);border:none;border-radius:6px;outline:none;padding:9px 8px;font-size:11px}.ts-picker-formats{background:var(--lab-bg-base,#131311);font-family:var(--lab-font-mono,"Geist Mono");border-radius:6px;grid-template-columns:60px 1fr;gap:4px 12px;margin-top:4px;padding:12px;font-size:10px;display:grid}.ts-picker-formats-label{color:var(--lab-text-faint,#d7e8c847);letter-spacing:.06em;text-transform:uppercase;align-self:center}.ts-picker-formats-value{color:var(--lab-text-primary,#d7e8c8);cursor:pointer;text-align:left;font:inherit;background:0 0;border:none;align-self:center;padding:0}.ts-picker-formats-value:hover{color:var(--lab-accent,#ff5524)}.ts-picker-tools{gap:8px;display:flex}.ts-picker-tool{background:var(--lab-bg-elevated,#2c2c26);border:1px solid var(--lab-border-subtle,#d7e8c814);width:32px;height:32px;color:var(--lab-text-secondary,#d7e8c8a6);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:13px;transition:color .16s cubic-bezier(.4,0,.2,1),transform .16s cubic-bezier(.4,0,.2,1);display:flex}.ts-picker-tool:hover{color:var(--lab-text-primary,#d7e8c8);transform:translateY(1px)}.ts-picker-tool:disabled{opacity:.4;cursor:not-allowed;transform:none}.ts-picker .react-colorful{width:100%;height:200px;box-shadow:var(--ts-input-recess,inset 0 1px 2px #0000004d);border-radius:8px;overflow:hidden}.ts-picker .react-colorful__saturation{border-radius:8px 8px 0 0}.ts-picker .react-colorful__last-control{border-radius:0 0 8px 8px}.ts-readonly-banner{background:var(--lab-bg-elevated,#2c2c26);border-bottom:1px solid var(--lab-border-subtle,#d7e8c814);min-height:32px;font-family:var(--lab-font-mono,"Geist Mono");letter-spacing:.06em;color:var(--lab-text-muted,#d7e8c873);flex-shrink:0;grid-row:2;align-items:center;gap:8px;padding:8px 16px;font-size:10px;display:flex}.ts-readonly-banner-dot{background:var(--lab-text-faint,#d7e8c847);border-radius:50%;width:6px;height:6px}.ts-readonly-banner b{color:var(--lab-text-primary,#d7e8c8)}.ts-readonly-banner a{color:var(--lab-accent,#ff5524);text-decoration:none}.ts-readonly-banner a:hover{text-decoration:underline}.ts-export-menu{position:relative}.ts-export-popover{background:var(--lab-bg-elevated,#2c2c26);border:1px solid var(--lab-border-subtle,#d7e8c814);min-width:220px;box-shadow:var(--lab-shadow-lg);z-index:20;border-radius:8px;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.ts-export-item{font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-secondary,#d7e8c8a6);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;flex-direction:column;gap:2px;padding:8px 10px;font-size:11px;display:flex}.ts-export-item:hover{background:var(--lab-bg-raised,#22221e);color:var(--lab-text-primary,#d7e8c8)}.ts-export-item-name{font-weight:500}.ts-export-item-desc{color:var(--lab-text-faint,#d7e8c847);letter-spacing:.04em;font-size:9px}.ts-typography-editor{border-bottom:1px solid var(--lab-border-subtle,#d7e8c814);flex-direction:column;gap:14px;padding:14px 16px 18px;display:flex}.ts-typography-tabs{background:var(--lab-bg-sunken,#0e0e0c);border-radius:6px;flex-wrap:wrap;gap:2px;padding:2px;display:flex}.ts-typography-tab{min-width:56px;color:var(--lab-text-muted,#d7e8c873);font-family:var(--lab-font-mono,"Geist Mono", monospace);letter-spacing:.06em;text-transform:lowercase;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:4px;flex:auto;justify-content:center;align-items:center;gap:4px;padding:6px 8px;font-size:10px;transition:color .14s cubic-bezier(.4,0,.2,1),background .14s cubic-bezier(.4,0,.2,1);display:inline-flex}.ts-typography-tab:hover{color:var(--lab-text-secondary,#d7e8c8a6)}.ts-typography-tab.is-active{color:var(--lab-text-primary,#d7e8c8);background:var(--lab-bg-raised,#22221e)}.ts-typography-tab.is-modified .ts-typography-tab-dot{background:var(--lab-accent,#ff5524);border-radius:50%;width:4px;height:4px;display:inline-block}.ts-typography-preview{background:var(--lab-bg-base,#131311);border:1px solid var(--lab-border-subtle,#d7e8c814);word-break:break-word;border-radius:8px;flex-direction:column;gap:8px;min-height:64px;padding:18px 16px;display:flex;overflow:hidden}.ts-typography-preview-eyebrow{font-family:var(--lab-font-mono,"Geist Mono", monospace);letter-spacing:.1em;text-transform:uppercase;color:var(--lab-text-faint,#d7e8c847);font-size:9px}.ts-typography-controls{flex-direction:column;gap:10px;display:flex}.ts-typography-row{grid-template-columns:90px 1fr;align-items:center;gap:10px;display:grid}.ts-typography-row-slider{grid-template-columns:90px 70px 1fr}.ts-typography-row-features{align-items:flex-start}.ts-typography-label{font-family:var(--lab-font-mono,"Geist Mono", monospace);letter-spacing:.06em;text-transform:uppercase;color:var(--lab-text-faint,#d7e8c847);font-size:10px}.ts-typography-num{text-align:right;width:70px;padding:7px 8px;font-size:11px}.ts-typography-slider{width:100%;accent-color:var(--lab-accent,#ff5524);flex:1}.ts-typography-features-grid{grid-template-columns:1fr 1fr;gap:6px 12px;display:grid}.ts-typography-feature{font-family:var(--lab-font-mono,"Geist Mono", monospace);color:var(--lab-text-secondary,#d7e8c8a6);cursor:pointer;align-items:center;gap:6px;font-size:11px;display:inline-flex}.ts-typography-feature input[type=checkbox]{accent-color:var(--lab-accent,#ff5524)}.ts-typography-actions{gap:8px;margin-top:4px;display:flex}[data-theme=light],.ts-app[data-theme=light]{--ts-input-recess:inset 0 1px 2px #281e161a;--ts-input-recess-deep:inset 0 1px 3px #281e1624, inset 0 0 0 1px #281e160f;--ts-drawer-shadow:-8px 0 32px #281e162e, -2px 0 8px #281e161a}[data-theme=light] .ts-app,.ts-app[data-theme=light]{--lab-text-faint:#1a1a176b;--lab-border-subtle:#1a1a1738}[data-theme=light] .ts-theme-chip.is-active,.ts-app[data-theme=light] .ts-theme-chip.is-active{background:#ff55240a;border-color:#ff552473}[data-theme=light] .ts-token-list-item.is-selected,.ts-app[data-theme=light] .ts-token-list-item.is-selected{background:#ff55240f}.ts-theme-chip-wrapper{display:inline-flex;position:relative}.ts-theme-chip-menu-btn{cursor:pointer;width:16px;height:16px;color:var(--lab-text-faint,#d7e8c847);opacity:0;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-left:4px;transition:opacity .14s cubic-bezier(.4,0,.2,1),color .14s cubic-bezier(.4,0,.2,1);display:inline-flex}.ts-theme-chip-wrapper:hover .ts-theme-chip-menu-btn,.ts-theme-chip:focus-within .ts-theme-chip-menu-btn,.ts-theme-chip-menu-btn:focus-visible{opacity:1}.ts-theme-chip-menu-btn:hover{color:var(--lab-text-primary,#d7e8c8)}.ts-theme-chip-menu{background:var(--lab-bg-elevated,#2c2c26);border:1px solid var(--lab-border-subtle,#d7e8c814);min-width:140px;box-shadow:var(--lab-shadow-lg,0 8px 24px #0006);z-index:30;border-radius:6px;flex-direction:column;gap:1px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.ts-theme-chip-menu-item{font-family:var(--lab-font-mono,"Geist Mono");letter-spacing:.04em;color:var(--lab-text-secondary,#d7e8c8a6);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:7px 10px;font-size:11px;transition:background .14s cubic-bezier(.4,0,.2,1),color .14s cubic-bezier(.4,0,.2,1)}.ts-theme-chip-menu-item:hover{background:var(--lab-bg-raised,#22221e);color:var(--lab-text-primary,#d7e8c8)}.ts-theme-chip-menu-item.is-danger:hover{color:#dc4747}.ts-modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:60;background:#00000080;justify-content:center;align-items:center;padding:24px;animation:.18s cubic-bezier(.4,0,.2,1) ts-modal-backdrop-in;display:flex;position:fixed;inset:0}@keyframes ts-modal-backdrop-in{0%{opacity:0}to{opacity:1}}.ts-modal-card{background:var(--lab-bg-section,#1a1a17);border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:14px;flex-direction:column;max-width:90vw;max-height:90vh;animation:.22s cubic-bezier(.4,0,.2,1) ts-modal-card-in;display:flex;overflow:hidden;box-shadow:0 20px 60px #00000080}@keyframes ts-modal-card-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.ts-modal-header{border-bottom:1px solid var(--lab-border-subtle,#d7e8c814);justify-content:space-between;align-items:center;padding:18px 22px 14px;display:flex}.ts-modal-title{font-family:var(--lab-font-sans,"Geist");letter-spacing:-.01em;color:var(--lab-text-primary,#d7e8c8);margin:0;font-size:16px;font-weight:600}.ts-modal-close{border:1px solid var(--lab-border-subtle,#d7e8c814);width:28px;height:28px;color:var(--lab-text-secondary,#d7e8c8a6);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:color .14s cubic-bezier(.4,0,.2,1);display:inline-flex}.ts-modal-close:hover{color:var(--lab-text-primary,#d7e8c8)}.ts-modal-body{flex:1;padding:18px 22px;overflow-y:auto}.ts-modal-footer{border-top:1px solid var(--lab-border-subtle,#d7e8c814);background:var(--lab-bg-base,#131311);flex-shrink:0;justify-content:flex-end;gap:8px;padding:14px 22px;display:flex}.ts-modal-footer .ts-btn{flex:none;min-width:100px}.ts-form-stack{flex-direction:column;gap:14px;display:flex}.ts-form-stack-nested{background:var(--lab-bg-raised,#22221e);border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:8px;flex-direction:column;gap:12px;margin-top:6px;padding:14px;display:flex}.ts-form-row{flex-direction:column;gap:6px;display:flex}.ts-form-label{font-family:var(--lab-font-mono,"Geist Mono");letter-spacing:.1em;text-transform:uppercase;color:var(--lab-text-faint,#d7e8c847);font-size:10px}.ts-form-checkbox{color:var(--lab-text-secondary,#d7e8c8a6);cursor:pointer;background:var(--lab-bg-raised,#22221e);border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:6px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:12px;display:inline-flex}.ts-form-checkbox input[type=checkbox]{accent-color:var(--lab-accent,#ff5524);margin-top:2px}.ts-form-radio-row{color:var(--lab-text-primary,#d7e8c8);cursor:pointer;background:var(--lab-bg-raised,#22221e);border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:6px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13px;display:inline-flex}.ts-form-radio-row input[type=radio]{accent-color:var(--lab-accent,#ff5524);margin-top:3px}.ts-form-hint{color:var(--lab-text-faint,#d7e8c847);font-family:var(--lab-font-mono,"Geist Mono");font-size:10px}.ts-size-editor{gap:12px}.ts-size-slider{width:100%;height:24px;accent-color:var(--lab-accent,#ff5524)}.ts-size-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.ts-size-num{text-align:right;width:110px}.ts-size-canon{font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-faint,#d7e8c847);letter-spacing:.04em;font-size:10px}.ts-size-bar-track{background:var(--lab-bg-sunken,#0e0e0c);border-radius:4px;height:8px;overflow:hidden}.ts-size-bar-fill{background:var(--lab-accent,#ff5524);opacity:.85;height:100%;transition:width .12s cubic-bezier(.4,0,.2,1)}.ts-size-shape-stage{justify-content:center;padding:14px 0;display:flex}.ts-size-shape{background:var(--lab-accent,#ff5524);opacity:.85;width:80px;height:80px;transition:border-radius .18s cubic-bezier(.4,0,.2,1)}.ts-shadow-editor{gap:12px}.ts-shadow-preview-stage{background:var(--lab-bg-base,#131311);border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:8px;justify-content:center;align-items:center;padding:28px 16px;display:flex}.ts-shadow-preview-card{background:var(--lab-bg-elevated,#2c2c26);border-radius:10px;width:130px;height:80px}.ts-shadow-layer-list{flex-direction:column;gap:10px;display:flex}.ts-shadow-empty{text-align:center;font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-faint,#d7e8c847);background:var(--lab-bg-raised,#22221e);border:1px dashed var(--lab-border-subtle,#d7e8c814);border-radius:6px;padding:16px;font-size:11px}.ts-shadow-layer{background:var(--lab-bg-raised,#22221e);border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.ts-shadow-layer-header{justify-content:space-between;align-items:center;display:flex}.ts-shadow-layer-label{font-family:var(--lab-font-mono,"Geist Mono");letter-spacing:.1em;text-transform:uppercase;color:var(--lab-text-faint,#d7e8c847);font-size:10px}.ts-shadow-layer-actions{gap:4px;display:inline-flex}.ts-icon-btn-tiny{border:1px solid var(--lab-border-subtle,#d7e8c814);width:22px;height:22px;color:var(--lab-text-muted,#d7e8c873);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;transition:color .14s cubic-bezier(.4,0,.2,1),border-color .14s cubic-bezier(.4,0,.2,1);display:inline-flex}.ts-icon-btn-tiny:hover{color:var(--lab-text-primary,#d7e8c8);border-color:var(--lab-border-strong,#d7e8c82e)}.ts-icon-btn-tiny.is-active{color:var(--lab-accent,#ff5524);border-color:#ff55245c}.ts-icon-btn-tiny.is-danger:hover{color:#dc4747;border-color:#dc4747}.ts-shadow-slider-row,.ts-shadow-color-row{grid-template-columns:50px 1fr 56px;align-items:center;gap:10px;display:grid}.ts-shadow-color-row{grid-template-columns:50px 22px 1fr}.ts-shadow-slider-label{font-family:var(--lab-font-mono,"Geist Mono");letter-spacing:.06em;text-transform:uppercase;color:var(--lab-text-faint,#d7e8c847);font-size:10px}.ts-shadow-slider-val{font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-secondary,#d7e8c8a6);text-align:right;font-size:11px}.ts-shadow-color-swatch{border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:4px;width:22px;height:22px}.ts-shadow-color-input{padding:7px 10px;font-size:11px}.ts-shadow-toolbar{align-items:center;gap:8px;display:flex}.ts-shadow-rawdetails{border-top:1px solid var(--lab-border-subtle,#d7e8c814);padding-top:8px}.ts-shadow-rawdetails summary{font-family:var(--lab-font-mono,"Geist Mono");letter-spacing:.1em;text-transform:uppercase;color:var(--lab-text-faint,#d7e8c847);cursor:pointer;padding:4px 0;font-size:10px}.ts-shadow-raw{background:var(--lab-bg-sunken,#0e0e0c);font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-secondary,#d7e8c8a6);word-break:break-all;border-radius:4px;margin-top:6px;padding:8px 10px;font-size:10px;display:block}.ts-motion-editor{gap:14px}.ts-motion-canvas-wrap{background:var(--lab-bg-base,#131311);border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:8px;padding:16px}.ts-motion-canvas{width:100%;max-width:240px;height:auto;margin:0 auto;display:block;overflow:visible}.ts-motion-axis{stroke:var(--lab-border-strong,#d7e8c82e);stroke-width:1px}.ts-motion-axis-soft{stroke:var(--lab-border-subtle,#d7e8c814);stroke-width:1px;stroke-dasharray:2 3}.ts-motion-curve{stroke:var(--lab-accent,#ff5524);stroke-width:2px}.ts-motion-handle-line{stroke:var(--lab-text-faint,#d7e8c847);stroke-width:1px;stroke-dasharray:3 3}.ts-motion-handle{fill:var(--lab-accent,#ff5524);stroke:#fff;stroke-width:2px;cursor:grab;transition:r .14s cubic-bezier(.4,0,.2,1)}.ts-motion-handle:hover{r:9}.ts-motion-handle:active{cursor:grabbing}.ts-motion-endpoint{fill:var(--lab-text-secondary,#d7e8c8a6)}.ts-motion-playground{background:var(--lab-bg-base,#131311);border:1px solid var(--lab-border-subtle,#d7e8c814);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.ts-motion-playground-track{background:var(--lab-bg-sunken,#0e0e0c);border-radius:4px;height:32px;position:relative;overflow:hidden}.ts-motion-playground-cube{background:var(--lab-accent,#ff5524);border-radius:4px;width:24px;height:24px;position:absolute;top:4px;left:4px}.ts-motion-output{font-family:var(--lab-font-mono,"Geist Mono");color:var(--lab-text-secondary,#d7e8c8a6);letter-spacing:.04em;font-size:10px}@media (prefers-reduced-motion:reduce){.ts-tab,.ts-theme-chip,.ts-theme-add-btn,.ts-token-list-item,.ts-token-list-value,.ts-btn,.ts-icon-btn,.ts-icon-btn-tiny,.ts-canvas-view-tab,.ts-picker-format-btn,.ts-picker-tool,.ts-resize-handle,.ts-resize-handle-grip,.ts-modal-backdrop,.ts-modal-card,.ts-theme-chip-menu-btn,.ts-size-bar-fill,.ts-size-shape,.ts-motion-handle{transition:none!important;animation:none!important}}
