:root{color:var(--foreground);background:var(--background);font-family:DM Sans,IBM Plex Sans,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%;overscroll-behavior:none}.bootstrap-shell{width:100%;height:100%;display:grid;place-items:center;background:var(--background)}.bootstrap-loading{display:grid;grid-template-columns:30px 18px auto;align-items:center;gap:12px;color:var(--muted-foreground);font:500 13px DM Sans,sans-serif}.bootstrap-loading svg{width:30px;height:30px}.bootstrap-loading-spinner{width:16px;height:16px;border:1.5px solid color-mix(in srgb,var(--foreground) 16%,transparent);border-top-color:color-mix(in srgb,var(--foreground) 70%,transparent);border-radius:50%;animation:bootstrap-spin .8s linear infinite}@keyframes bootstrap-spin{to{transform:rotate(360deg)}}.app-shell{position:relative;width:100%;height:100%;overflow:clip}.studio-toast{width:min(360px,calc(100vw - 32px));padding:14px 40px 14px 16px!important;background:color-mix(in srgb,var(--card) 96%,transparent)!important;border:1px solid color-mix(in srgb,var(--foreground) 8%,transparent)!important;border-radius:10px!important;box-shadow:0 8px 28px #0000001a!important;font-family:DM Sans,sans-serif!important;backdrop-filter:blur(20px) saturate(120%);-webkit-backdrop-filter:blur(20px) saturate(120%)}.studio-toast-title{color:var(--foreground)!important;font-size:13px!important;font-weight:600!important}.studio-toast-description{color:var(--muted-foreground)!important;font-size:12px!important;font-variant-numeric:tabular-nums}.studio-toast-action{height:28px!important;padding:0 10px!important;background:var(--foreground)!important;color:var(--background)!important;border-radius:6px!important;font-family:DM Sans,sans-serif!important;font-size:12px!important;font-weight:600!important}.studio-toast-action:hover{background:color-mix(in srgb,var(--foreground) 82%,var(--background))!important}.studio-toast-close{top:8px!important;right:8px!important;left:auto!important;transform:none!important;color:var(--muted-foreground)!important;background:transparent!important;border-color:transparent!important}.studio-toast-close:hover{color:var(--foreground)!important}.viewport-panel{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--background)}.model-workspace-layer{position:absolute;top:0;right:0;bottom:0;left:0;visibility:visible}.model-workspace-layer--inactive{visibility:hidden;pointer-events:none}.property-inspector{position:relative;flex:0 0 auto;min-height:160px;display:flex;flex-direction:column;overflow:hidden;border-bottom:1px solid color-mix(in srgb,var(--foreground) 7%,transparent)}.property-inspector.collapsed{min-height:0;flex:0 0 auto}.project-browser-drawings{min-height:0;flex:1 1 0;overflow:hidden}.project-browser-drawings[hidden]{display:none}.app-shell.viewport-veiled .viewport-panel canvas{opacity:.45;transition:opacity .85s ease}.app-shell.viewport-veiled.chat-centered .viewport-panel canvas{opacity:0}.app-shell .viewport-panel canvas{transition:opacity .85s ease}.viewport-drag-over:after{content:"Drop file to import";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--primary) 8%,transparent);border:2px dashed color-mix(in srgb,var(--primary) 40%,transparent);border-radius:8px;font-family:DM Sans,sans-serif;font-size:1.1rem;font-weight:500;color:var(--primary);z-index:200;pointer-events:none}.chat-panel{position:absolute;top:0;bottom:0;right:0;width:480px;height:auto;display:flex;flex-direction:column;background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(24px) saturate(120%);-webkit-backdrop-filter:blur(24px) saturate(120%);border-left:1px solid color-mix(in srgb,var(--foreground) 8%,transparent);box-shadow:-4px 0 24px #0000000f;border-radius:0;transform:translate(0);transition:right .75s cubic-bezier(.22,1,.36,1),width .75s cubic-bezier(.22,1,.36,1),top .75s cubic-bezier(.22,1,.36,1),bottom .75s cubic-bezier(.22,1,.36,1),background .6s ease,backdrop-filter .6s ease,-webkit-backdrop-filter .6s ease,border-color .6s ease,border-radius .6s ease,box-shadow .6s ease,transform .3s cubic-bezier(.16,1,.3,1);z-index:100}.chat-panel.collapsed{transform:translate(100%)}.chat-panel.centered{top:0;bottom:0;right:calc((100% - 680px)/2);width:680px;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-left:1px solid color-mix(in srgb,var(--foreground) 5%,transparent);border-right:1px solid color-mix(in srgb,var(--foreground) 5%,transparent);box-shadow:none}.chat-panel.centered.project-panel-open{left:calc(50% + 137.5px);right:auto;width:min(680px,calc(100% - 275px));transform:translate(-50%)}@media(max-width:760px){.chat-panel.centered{right:0;left:0;width:auto}.chat-panel.centered.project-panel-open{left:0;right:0;width:auto;transform:none}}.agent-pill-change-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--studio-diff-added);color:var(--background);font:600 9px/18px DM Sans,sans-serif;font-variant-numeric:tabular-nums;text-align:center}.speckle-comparison{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#dfe5e1;color:#17201b;font-family:DM Sans,sans-serif}.speckle-comparison-canvas,.speckle-comparison-canvas canvas{width:100%;height:100%;display:block}.speckle-comparison-label,.speckle-comparison-actions,.speckle-comparison-loading{position:absolute;z-index:2;border:1px solid rgba(25,37,30,.1);background:#fafbf8e0;box-shadow:0 8px 30px #19251e17;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.speckle-comparison-label{top:18px;left:18px;max-width:min(420px,calc(100vw - 36px));padding:14px 16px;border-radius:14px;pointer-events:none}.speckle-comparison-label h1{margin:3px 0 4px;font:560 17px/1.25 DM Sans,sans-serif;letter-spacing:-.02em}.speckle-comparison-label p,.speckle-comparison-actions span{margin:0;color:#657068;font-size:11px;line-height:1.4}.speckle-comparison-eyebrow{color:#69756d;font:650 9px/1.2 Space Mono,monospace;letter-spacing:.09em;text-transform:uppercase}.speckle-comparison-actions{right:18px;bottom:18px;display:flex;align-items:center;gap:14px;padding:9px 11px 9px 14px;border-radius:12px}.speckle-comparison-actions a{color:#21352a;font-size:11px;font-weight:650;text-decoration:none}.speckle-comparison-actions a:hover{text-decoration:underline}.speckle-comparison-loading{top:50%;left:50%;display:flex;align-items:center;gap:10px;padding:12px 15px;border-radius:999px;color:#46524b;font-size:12px;transform:translate(-50%,-50%)}.speckle-comparison-spinner{width:13px;height:13px;border:1.5px solid rgba(35,57,45,.2);border-top-color:#2c4939;border-radius:50%;animation:speckle-comparison-spin .8s linear infinite}@keyframes speckle-comparison-spin{to{transform:rotate(360deg)}}@media(max-width:640px){.speckle-comparison-actions span{display:none}}@keyframes scroll-left{0%{transform:translate(0)}to{transform:translate(-50%)}}.soundlab{min-height:100vh;background:var(--background);padding:48px 24px 80px;color:var(--foreground)}.soundlab-inner{max-width:720px;margin:0 auto}.soundlab-header h1{margin:0 0 4px;font-family:DM Sans,sans-serif;font-size:28px;font-weight:600;letter-spacing:-.02em}.soundlab-header p{margin:0 0 32px;font-size:14px;color:var(--muted-foreground)}.soundlab-section{margin-top:28px}.soundlab-section:first-of-type{margin-top:12px}.soundlab-section-title{font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-foreground);margin:0 0 8px;padding:0 2px;display:flex;align-items:baseline;gap:10px}.soundlab-section-count{font-family:Space Mono,monospace;font-size:11px;color:color-mix(in srgb,var(--muted-foreground) 60%,transparent);font-weight:400;letter-spacing:.05em}.soundlab-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.soundlab-item{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:10px;background:color-mix(in srgb,var(--card) 60%,transparent);border:1px solid color-mix(in srgb,var(--foreground) 5%,transparent);transition:background .15s ease,border-color .15s ease}.soundlab-item:hover{background:color-mix(in srgb,var(--card) 95%,transparent);border-color:color-mix(in srgb,var(--foreground) 10%,transparent)}.soundlab-play{flex-shrink:0;width:34px;height:34px;border-radius:50%;border:1px solid color-mix(in srgb,var(--foreground) 10%,transparent);background:var(--card);color:var(--foreground);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s ease,background .12s ease}.soundlab-play:hover{background:var(--foreground);color:var(--background);transform:scale(1.04)}.soundlab-play:active{transform:scale(.96)}.soundlab-meta{min-width:0;flex:1}.soundlab-name{font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;display:flex;align-items:baseline;gap:10px}.soundlab-idx{font-family:Space Mono,monospace;font-size:11px;color:var(--muted-foreground);letter-spacing:.05em}.soundlab-desc{font-size:12.5px;color:var(--muted-foreground);margin-top:2px;line-height:1.4}.soundlab-footer{margin-top:40px;font-size:13px}.soundlab-footer a{color:var(--muted-foreground);text-decoration:none}.soundlab-footer a:hover{color:var(--foreground)}@media(max-width:768px){.chat-panel{width:100%}.chat-panel.centered{right:0;left:0;width:100%}.app-shell{padding-top:env(safe-area-inset-top,0px)}}.fabric-drawing-workspace{position:absolute;top:0;right:0;bottom:0;left:0;z-index:16;min-width:0;background:var(--muted);color:color-mix(in srgb,var(--foreground) 85%,var(--background));font-family:DM Sans,sans-serif}.dark .fabric-drawing-workspace{color:var(--foreground)}.fabric-drawing-workspace.fullscreen{z-index:130}.fabric-sheet-stage{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--muted)}.dark .fabric-sheet-stage{background:var(--muted)}.fabric-sheet-stage .pixi-drawing-canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;pointer-events:none}.fabric-sheet-stage .canvas-container{position:absolute!important;top:0;right:0;bottom:0;left:0;z-index:1;background:transparent!important}.fabric-sheet-stage canvas{background:transparent!important}
