.app{width:100%;height:100vh;display:flex;flex-direction:column;gap:12px;padding:12px;background:transparent;position:relative;overflow:hidden}.app:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.025),transparent 30%),radial-gradient(circle at top right,color-mix(in srgb,var(--accent-cyan) 8%,transparent),transparent 32%);pointer-events:none;opacity:.9}.app>*{position:relative;z-index:1}.app-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:10px 18px;border-radius:10px;font-size:14px;font-weight:500;color:var(--text-primary, #fff);z-index:1000;pointer-events:none;box-shadow:0 10px 30px #00000059;animation:app-toast-in .16s ease-out}@keyframes app-toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.app-toast{animation:none}}.app-header{display:flex;align-items:center;gap:1rem 1.2rem;flex-wrap:wrap;padding:.95rem 1.1rem;min-height:72px;flex-shrink:0;z-index:100}.app-header-left{display:flex;align-items:center;gap:1rem 1.15rem;flex:1 1 auto;min-width:0;flex-wrap:wrap}.app-brand{display:flex;align-items:center;gap:.85rem;min-width:0}.app-brand-mark{width:32px;height:24px;flex-shrink:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.app-brand-copy{display:flex;flex-direction:column;min-width:0}.app-header h1{margin:0;color:var(--text-primary);font-family:var(--font-heading);font-size:1.15rem;font-weight:600;letter-spacing:-.03em;line-height:1.1;white-space:nowrap}.view-selector{flex-shrink:0}.header-actions{display:flex;align-items:center;gap:.45rem;margin-left:auto;flex-wrap:wrap}.header-btn{font-size:.76rem;font-weight:600}.header-divider{height:1.8rem}.app-main{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px}.app-workspace-outer{flex:1;display:flex;flex-direction:column;min-height:0;gap:12px;overflow:hidden}.app-workspace{flex:1;display:flex;min-height:0;gap:12px;overflow:hidden;position:relative}.view-container{flex:1;min-width:0;position:relative;overflow:hidden;border-radius:1.75rem;background:var(--bg-canvas);border:1px solid color-mix(in srgb,var(--border-soft) 72%,transparent);box-shadow:inset 0 1px #ffffff0a}.view-backdrop,.view-surface{position:absolute;top:0;right:0;bottom:0;left:0}.view-surface{z-index:1}.about-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#030508ad;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:10000}.about-dialog{width:min(540px,calc(100vw - 32px));padding:1.75rem;color:var(--text-primary)}.about-dialog h2{font-family:var(--font-heading);font-size:1.4rem;font-weight:600;margin-bottom:.35rem}.about-dialog p{color:var(--text-muted);font-size:.9rem;margin-bottom:.95rem;line-height:1.6}.about-dialog h3{font-family:var(--font-heading);font-size:.9rem;margin-top:1.2rem;margin-bottom:.5rem;color:var(--text-primary);letter-spacing:.04em}.about-dialog ul{list-style:none;padding:0}.about-dialog li{position:relative;padding:.25rem 0 .25rem 1rem;font-size:.85rem;color:var(--text-muted)}.about-dialog li:before{content:"";position:absolute;left:0;top:.8rem;width:.35rem;height:.35rem;border-radius:999px;background:color-mix(in srgb,var(--accent-cyan) 76%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--accent-cyan) 28%,transparent)}.about-dialog kbd{background:color-mix(in srgb,var(--bg-panel-high) 92%,transparent);border:1px solid color-mix(in srgb,var(--border-soft) 76%,transparent);border-radius:999px;padding:.15rem .45rem;font-size:.74rem;font-family:SF Mono,Fira Code,monospace}.about-close-btn{margin-top:1.25rem;font-size:.82rem;font-weight:700}.panel-toggle{min-width:6.5rem;font-family:var(--font-heading);font-size:.76rem;font-weight:600;flex-shrink:0}.app-file-input{display:none}.view-error-state{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem;text-align:center}.view-error-state h2{margin:0;font-family:var(--font-heading);font-size:1.2rem}.view-error-message{margin:0;max-width:32rem;color:var(--text-muted)}.view-error-button{font-size:.82rem;font-weight:700}.panel-overlay{display:none}@media (max-width: 900px){.app-header{padding:.9rem 1rem}.app-main,.app-workspace{gap:10px}.side-panel{position:absolute;top:0;right:0;bottom:0;z-index:1000;width:min(320px,100%);transform:translate(100%);transition:transform .25s ease;pointer-events:none}.side-panel.panel-open{transform:translate(0);pointer-events:auto}.panel-overlay.panel-overlay-visible{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000070;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:999}}@media (max-width: 600px){.app{gap:8px;padding:8px}.app-header{padding:.8rem .9rem;gap:.75rem}.app-header h1{font-size:1rem}.header-actions{width:100%;margin-left:0}.stitch-segmented-tab,.header-btn,.examples-button,.panel-toggle{font-size:.7rem}.view-container{border-radius:1.25rem}.about-dialog{width:min(100vw - 16px,540px);padding:1.35rem}}body.mode-showcase,body.mode-embed{overflow:hidden}body.mode-showcase .app,body.mode-embed .app{padding:0;gap:0;height:100vh}body.mode-showcase .app:before,body.mode-embed .app:before{display:none}body.mode-showcase .app-header,body.mode-embed .app-header{display:none}body.mode-showcase .app-main,body.mode-embed .app-main{padding:0;margin:0;height:100vh;width:100vw}body.mode-showcase .side-panel,body.mode-showcase .tool-strip,body.mode-showcase .source-bar,body.mode-showcase .panel-toggle,body.mode-showcase .status-bar,body.mode-showcase .three-workspace-rail,body.mode-showcase .three-view-hints,body.mode-embed .side-panel,body.mode-embed .tool-strip,body.mode-embed .source-bar,body.mode-embed .panel-toggle,body.mode-embed .status-bar,body.mode-embed .three-workspace-rail{display:none!important}body.mode-showcase .three-workspace,body.mode-showcase .app-workspace,body.mode-embed .three-workspace,body.mode-embed .app-workspace{grid-template-columns:1fr!important;grid-template-areas:"view"!important}.tool-strip{width:96px;min-width:96px;display:flex;flex-direction:column;gap:0;flex-shrink:0;padding:.3rem 0;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.tool-strip::-webkit-scrollbar{display:none}.tool-divider{width:auto;height:1px;margin:0 .95rem;flex-shrink:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--border-soft) 90%,transparent) 20% 80%,transparent)}.tool-group{display:flex;flex-direction:column;gap:.55rem;padding:.7rem;flex-shrink:0;min-width:0}.tool-group-label{margin:0;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--text-tertiary);line-height:1;text-align:center;-webkit-user-select:none;user-select:none}.tool-group-items{display:grid;grid-template-columns:1fr;gap:.4rem}.tool-strip .tool-btn{width:100%;min-width:0;max-width:none;min-height:0;padding:.32rem .28rem;flex-direction:column;gap:.22rem}.tool-strip .tool-btn .toolbar-icon{display:block;width:28px;height:28px}.tool-icon-text{min-height:28px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;line-height:1}.tool-label{font-size:.64rem;font-weight:600;line-height:1.12;text-align:center;white-space:normal;overflow-wrap:break-word}@media (max-width: 1400px){.tool-strip{width:88px;min-width:88px}.tool-group{padding:.7rem .55rem;gap:.5rem}.tool-group-items{gap:.4rem}.tool-strip .tool-btn{padding:.3rem .22rem;gap:.22rem}.tool-label{font-size:.6rem}}@media (max-width: 1180px){.tool-strip{width:76px;min-width:76px}.tool-divider{margin:0 .7rem}.tool-group{padding:.6rem .45rem;gap:.45rem}.tool-group-label{display:none}.tool-strip .tool-btn{aspect-ratio:auto;padding:.35rem .18rem;border-radius:.95rem;gap:.22rem}.tool-group-items{gap:.35rem}.tool-label{font-size:.52rem;line-height:1.05}}@media (max-width: 900px){.tool-strip{width:48px;min-width:48px;padding:.2rem 0}.tool-divider{margin:.15rem .4rem}.tool-group{padding:.25rem .2rem;gap:.2rem}.tool-group-items{gap:.22rem}.tool-strip .tool-btn{aspect-ratio:auto;min-height:36px;padding:.25rem .1rem;gap:0}.tool-strip .tool-btn .toolbar-icon{width:20px;height:20px}.tool-icon-text{min-height:20px;font-size:.95rem}.tool-label{display:none}}.source-bar{display:flex;align-items:center;gap:.75rem;padding:.5rem .9rem;flex-shrink:0;overflow-x:auto;scrollbar-width:none}.source-bar::-webkit-scrollbar{display:none}.source-bar-label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--text-tertiary);line-height:1;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}.source-bar-items{display:flex;gap:.5rem;flex-wrap:nowrap}.source-btn{display:flex;align-items:center;gap:.45rem;padding:.5rem .7rem;min-width:0;white-space:nowrap;flex-shrink:0}.source-btn .toolbar-icon{display:block;width:28px;height:28px;flex-shrink:0}.source-label{font-size:.68rem;font-weight:600;line-height:1.12}@media (max-width: 1400px){.source-bar{padding:.45rem .7rem;gap:.55rem}.source-btn{padding:.45rem .55rem;gap:.35rem}.source-label{font-size:.62rem}}@media (max-width: 1180px){.source-bar-label{display:none}.source-btn{padding:.4rem .45rem;gap:.3rem}.source-btn .toolbar-icon{width:24px;height:24px}.source-label{font-size:.56rem}}@media (max-width: 900px){.source-bar{padding:.35rem .5rem;gap:.4rem}.source-bar-items{gap:.35rem;flex-wrap:wrap}.source-btn{padding:.35rem .4rem}.source-btn .toolbar-icon{width:22px;height:22px}.source-label{font-size:.5rem}}.side-panel{width:280px;min-width:280px;display:flex;flex-direction:column;gap:0;overflow-y:auto;flex-shrink:0}.side-panel.panel-open{display:flex}.panel-section-title{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--text-tertiary);margin-bottom:.7rem;-webkit-user-select:none;user-select:none}.viz-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.viz-btn{justify-content:flex-start;min-width:0;min-height:3.1rem;padding:.65rem .75rem;border-radius:1rem;font-size:.73rem;font-weight:600;white-space:nowrap;overflow:hidden}.viz-btn .toolbar-icon{flex-shrink:0}.viz-icon-text{font-size:1.15rem;line-height:1;flex-shrink:0;width:20px;text-align:center}.viz-icon-text-small{font-size:.85rem}.field-lines-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.field-lines-btn{justify-content:flex-start;min-width:0;min-height:2.6rem;padding:.55rem .7rem;font-size:.73rem;font-weight:600;white-space:nowrap;overflow:hidden;gap:.45rem}.field-lines-btn .toolbar-icon{flex-shrink:0}.toggle-list{display:flex;flex-direction:column;gap:.5rem}.toggle-item{display:flex;align-items:center;gap:.65rem;padding:.8rem .9rem;border-radius:1rem;border:1px solid color-mix(in srgb,var(--border-soft) 64%,transparent);background:color-mix(in srgb,var(--bg-panel-high) 72%,transparent);font-size:.78rem;color:var(--text-muted);cursor:pointer;transition:background .12s,border-color .12s,color .12s;-webkit-user-select:none;user-select:none}.toggle-item:hover{background:color-mix(in srgb,var(--accent-cyan-soft) 18%,var(--bg-panel-high) 82%);border-color:color-mix(in srgb,var(--accent-cyan) 18%,var(--border-soft) 82%);color:var(--text-primary)}.toggle-item.disabled{opacity:.4;cursor:default;pointer-events:none}.toggle-item input[type=checkbox]{cursor:pointer;width:16px;height:16px;flex-shrink:0}.toggle-item .toolbar-icon{flex-shrink:0}.toggle-icon-placeholder{font-size:1rem;width:18px;text-align:center;flex-shrink:0;color:var(--text-tertiary)}.toggle-item span:not(.toggle-icon-placeholder){flex:1;min-width:0}.toggle-item kbd{margin-left:auto}.inline-action{margin-left:2.25rem;font-size:.7rem;font-weight:600;color:var(--text-tertiary);padding:0;border:none;background:transparent;cursor:pointer}.inline-action:hover{color:var(--accent-cyan)}.panel-control{display:flex;flex-direction:column;gap:.45rem;margin-top:.75rem}.panel-control-indented{margin-left:2rem}.control-label{display:block;font-size:.74rem;font-weight:500;color:var(--text-muted)}.panel-slider{width:100%;cursor:pointer}.colormap-segmented{display:flex;gap:.4rem}.colormap-btn{flex:1 1 0;display:flex;align-items:center;gap:.45rem;padding:.4rem .55rem;border-radius:.7rem;background:#ffffff09;border:1px solid rgba(255,255,255,.08);color:var(--text-muted);font-size:.74rem;font-weight:600;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.colormap-btn:hover{background:#ffffff12;color:var(--text-default)}.colormap-btn.active{background:#6292e62e;border-color:#6292e68c;color:var(--text-default)}.colormap-swatch{display:inline-block;width:28px;height:12px;border-radius:3px;border:1px solid rgba(255,255,255,.12);flex-shrink:0}.panel-select{width:100%;font-size:.78rem;cursor:pointer}.clear-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.clear-btn{width:100%;min-height:2.45rem;padding:0 .75rem;font-size:.74rem;font-weight:600}.panel-info{margin-top:auto}.info-row{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:var(--text-muted);gap:.75rem}.info-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.16em;font-size:.64rem;font-weight:700}.info-value{color:var(--text-primary);font-weight:600}.info-detail{color:var(--text-tertiary);font-weight:400}.status-bar{display:grid;grid-template-columns:1fr auto 1fr;gap:.7rem;padding:.75rem .85rem;color:var(--text-primary);align-items:center;flex-shrink:0;min-width:0;overflow:hidden}.status-group{display:flex;gap:.7rem;align-items:center;min-width:0}.status-group-left{justify-self:start}.status-group-center{justify-self:center}.status-group-right{justify-self:end}.status-item{display:flex;gap:.45rem;align-items:center;min-width:0;white-space:nowrap;padding:.6rem .8rem;border-radius:1rem;border:1px solid color-mix(in srgb,var(--border-soft) 64%,transparent);background:color-mix(in srgb,var(--bg-panel-high) 72%,transparent)}.status-label{font-weight:600;color:var(--text-tertiary);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;flex-shrink:0}.status-value{font-family:SF Mono,Fira Code,Courier New,monospace;font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:.72rem;min-width:0;white-space:nowrap}.status-item-position .status-value{display:inline-block;min-width:22ch}.status-item-field .status-value{display:inline-block;min-width:10ch}.status-item-bvector .status-value{display:inline-block;min-width:30ch}.status-value-truncate{overflow:hidden;text-overflow:ellipsis}.status-mode-active{color:var(--accent-cyan);font-weight:600}.status-mode-hint{color:var(--text-tertiary);font-weight:400;font-style:italic}@media (max-width: 1280px){.status-mode-hint{display:none}}@media (max-width: 900px){.status-bar{grid-template-columns:1fr;padding:.7rem .8rem}.status-group{flex-wrap:wrap;justify-self:stretch}}@media (max-width: 600px),(max-height: 620px){.status-bar{display:none}}@media (max-width: 600px){.status-bar{gap:.45rem;padding:.65rem .75rem;font-size:.68rem;overflow:visible}.status-group-center .status-item-bvector,.status-group-center .status-item-field{display:none}.status-item-position .status-value,.status-item-field .status-value,.status-item-bvector .status-value{min-width:0}}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.dialog-content{background:var(--bg-surface-2);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:0 20px 60px #00000080;min-width:400px;max-width:600px;max-height:80vh;display:flex;flex-direction:column;color:var(--text-primary)}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border-subtle)}.dialog-header h2{margin:0;font-size:1.1rem;font-weight:600}.close-button{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-tertiary);line-height:1;padding:0;width:2rem;height:2rem;border-radius:var(--radius-sm)}.close-button:hover{color:var(--text-primary);background:var(--bg-hover)}.dialog-body{padding:1.5rem;overflow-y:auto;flex:1}.dialog-section+.dialog-section{margin-top:1.25rem}.dialog-section-title{margin:0 0 .75rem;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary)}.form-field{margin-bottom:1rem;display:flex;flex-direction:column;gap:.25rem}.form-field label{font-weight:600;font-size:.85rem;color:var(--text-secondary)}.form-field input[type=number],.form-field input[type=text],.form-field select{padding:.5rem;border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:.9rem;background:var(--bg-surface-3);color:var(--text-primary);font-family:inherit}.form-field input[type=number]:focus,.form-field input[type=text]:focus,.form-field select:focus{outline:none;border-color:var(--accent)}.form-field input[type=checkbox]{margin-right:.5rem;accent-color:var(--accent)}.dialog-validation{color:#ff9a9a;padding:.75rem;margin-bottom:1rem;background:#681717e0;border:1px solid rgba(255,120,120,.24);border-radius:var(--radius-sm)}.dialog-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid var(--border-subtle)}.dialog-footer button{padding:.5rem 1rem;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:.85rem;font-weight:600;transition:all .15s}.dialog-action-button{background:var(--bg-surface-3);color:var(--text-secondary);border:1px solid var(--border-default)!important}.dialog-action-button:hover{background:var(--bg-hover);color:var(--text-primary)}.save-button{background:var(--accent);color:#fff}.save-button:hover{background:var(--accent-hover)}.cancel-button{background:var(--bg-surface-3);color:var(--text-secondary);border:1px solid var(--border-default)!important}.cancel-button:hover{background:var(--bg-hover);color:var(--text-primary)}.delete-button{background:#f8717126;color:var(--danger);margin-right:auto;border:1px solid transparent!important}.delete-button:hover{background:#f8717140}.progress-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000}.progress-content{background:var(--bg-surface-2);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:2rem;min-width:300px;text-align:center;box-shadow:0 20px 60px #00000080;color:var(--text-primary)}.progress-message{font-size:.95rem;margin-bottom:1rem;color:var(--text-secondary)}.progress-bar-container{width:100%;height:6px;background:var(--bg-surface-3);border-radius:3px;overflow:hidden;margin-bottom:1rem}.progress-bar{height:100%;background:var(--accent);transition:width .3s ease;border-radius:3px}.progress-spinner{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}.progress-cancel{padding:.5rem 1.5rem;background:#f8717126;color:var(--danger);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;font-weight:600;font-size:.85rem}.progress-cancel:hover{background:#f8717140}body.app-busy .progress-cancel{cursor:pointer!important}.color-legend{position:absolute;top:16px;right:16px;display:flex;gap:8px;align-items:stretch;background:#0f1117d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:10px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);z-index:100}.color-legend canvas{border:1px solid var(--border-default);border-radius:2px}.legend-labels{display:flex;flex-direction:column;justify-content:space-between;color:var(--text-secondary);font-size:11px;font-family:SF Mono,Fira Code,Courier New,monospace}.legend-label{white-space:nowrap}.legend-label-max{align-self:flex-start}.legend-label-mid{align-self:center}.legend-label-min{align-self:flex-end}.examples-menu{position:relative}.examples-button{font-size:.76rem;font-weight:600;white-space:nowrap}.examples-button-arrow{font-size:.75rem;opacity:.72}.examples-dropdown{position:absolute;top:calc(100% + .55rem);left:0;z-index:1000;display:flex;flex-direction:column;gap:.25rem;min-width:240px;padding:.4rem;max-height:420px;overflow-y:auto}.examples-dropdown-item{justify-content:flex-start;width:100%;padding:.75rem .9rem;border:1px solid transparent;background:transparent;color:var(--text-muted);text-align:left;font-size:.8rem;border-radius:1rem;transition:background .12s,color .12s,border-color .12s}.examples-dropdown-item:hover{background:color-mix(in srgb,var(--accent-cyan-soft) 20%,var(--bg-panel-high) 80%);color:var(--text-primary);border-color:color-mix(in srgb,var(--accent-cyan) 18%,var(--border-soft) 82%)}.three-hud__top{position:absolute;left:12px;z-index:12;display:flex;align-items:center;gap:8px;pointer-events:none}.three-hud__cluster{display:inline-flex;gap:4px;padding:4px;pointer-events:auto}.three-hud__mode-button,.three-hud__cursor-toggle{font-size:.76rem;font-weight:700}.three-hud__shortcut{font-size:.66rem;opacity:.58}.three-hud__mode-button.is-active .three-hud__shortcut{opacity:.86}.three-hud__status{position:absolute;left:12px;z-index:12;display:flex;flex-wrap:wrap;gap:8px;pointer-events:none}.three-hud__status-chip{min-height:0;padding:.45rem .75rem;font-size:.72rem;font-weight:700}.three-hud__status-chip--stale{color:color-mix(in srgb,var(--danger) 74%,white 26%)}.three-hud__nudge{position:absolute;right:92px;bottom:48px;z-index:12;display:flex;align-items:flex-end;gap:10px}.three-hud__nudge-plane{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px);gap:6px}.three-hud__nudge-height{display:grid;grid-template-columns:44px;grid-template-rows:repeat(2,44px);gap:6px}.three-hud__nudge-button{width:44px;height:44px;padding:0;border-radius:12px;font-size:.95rem;font-weight:700;touch-action:none}.three-hud__nudge-button--z{font-size:.8rem}.three-hud__nudge-center{display:grid;width:44px;height:44px;place-items:center;border-radius:12px;border:1px solid color-mix(in srgb,var(--border-soft) 64%,transparent);background:color-mix(in srgb,var(--bg-panel-high) 76%,transparent);color:var(--text-tertiary);-webkit-user-select:none;user-select:none}@media (max-width: 900px){.three-hud__nudge{right:12px;bottom:12px}}@media (max-width: 600px){.three-hud__top{left:8px;gap:6px}.three-hud__status{left:8px}.three-hud__cluster{max-width:calc(100vw - 16px);overflow-x:auto}}.three-view-root{position:relative;width:100%;height:100%;background:var(--bg-canvas)}.three-view-toolbar{position:absolute;top:0;left:0;right:0;z-index:10;padding:8px 16px;color:var(--text-primary);font-size:.82rem}.three-view-toolbar__row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}.three-view-toolbar__toggle,.three-view-toolbar__field{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-muted);font-size:.78rem;cursor:pointer}.three-view-toolbar__field{cursor:default}.three-view-toolbar__range{width:80px}.three-view-toolbar__value{color:var(--text-primary);font-family:SF Mono,Fira Code,Courier New,monospace;font-size:.78rem}.three-view-toolbar__cluster{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding-left:.75rem;border-left:1px solid color-mix(in srgb,var(--border-soft) 64%,transparent)}.three-view-toolbar__meta{color:var(--text-tertiary);font-size:.78rem}.three-view-toolbar-button{font-size:.78rem;font-weight:600}.three-view-toolbar-button--primary{font-weight:700}.three-view-mount{width:100%;height:100%}.three-view-presets{position:absolute;right:12px;bottom:40px;z-index:10;display:flex;flex-direction:column;gap:4px}.three-view-preset-button{justify-content:space-between;min-width:88px;padding:.25rem .7rem;border-radius:.9rem;font-size:.72rem;line-height:1.4;text-align:left}.three-view-preset-key{font-size:.66rem;opacity:.48}.three-view-hints{position:absolute;left:12px;bottom:8px;z-index:10;display:flex;gap:12px;color:color-mix(in srgb,var(--text-muted) 42%,transparent);font-size:.7rem;pointer-events:none;-webkit-user-select:none;user-select:none}.three-view-hints--centered{left:50%;transform:translate(-50%);white-space:nowrap}@media (max-width: 900px){.three-view-toolbar{padding:8px 12px}.three-view-toolbar__cluster{width:100%;padding-left:0;border-left:none}.three-view-presets{right:12px;bottom:12px}.three-view-hints{flex-wrap:wrap;max-width:calc(100% - 24px)}.three-view-hints--centered{left:12px;transform:none;white-space:normal}}@media (max-width: 600px){.three-view-toolbar{padding:8px}}.three-workspace{align-items:stretch}.three-workspace-rail{width:144px;min-width:144px;display:flex;flex-direction:column;gap:0;flex-shrink:0;overflow:hidden}.three-workspace-rail__section{padding:1rem;border-bottom:1px solid color-mix(in srgb,var(--border-soft) 58%,transparent)}.three-workspace-rail__section:last-child{border-bottom:none}.three-workspace-rail__title{margin-bottom:.7rem;font-size:.64rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--text-tertiary)}.three-workspace-rail__stack{display:grid;gap:.55rem}.three-workspace-rail__button{width:100%;min-width:0;min-height:3rem;padding:.7rem .8rem;border-radius:1rem;justify-content:space-between;font-size:.76rem;font-weight:700;text-align:left}.three-workspace-rail__meta{font-size:.66rem;color:var(--text-tertiary)}.three-workspace-rail__compact-label{display:none;font-size:.68rem;color:var(--text-tertiary)}.three-workspace-panel{background:color-mix(in srgb,var(--bg-panel-elevated) 94%,transparent)}.three-workspace-panel__cursor-section--promoted{order:-1;border:1px solid color-mix(in srgb,var(--accent, #4aa3ff) 45%,transparent);border-radius:8px;background:color-mix(in srgb,var(--accent, #4aa3ff) 10%,transparent)}.three-workspace-panel__actions{display:flex;flex-wrap:wrap;gap:.55rem}.three-workspace-panel__action{font-size:.76rem;font-weight:700}.three-workspace-panel__help{margin:.8rem 0 0;color:var(--text-tertiary);font-size:.72rem;line-height:1.45}.three-workspace-panel__help--warn{color:color-mix(in srgb,var(--danger) 82%,white 18%)}.three-workspace-panel__summary{display:grid;gap:.55rem}.three-workspace-panel__summary-card{display:grid;gap:.18rem;padding:.8rem .9rem;border-radius:1rem;border:1px solid color-mix(in srgb,var(--border-soft) 64%,transparent);background:color-mix(in srgb,var(--bg-panel-high) 76%,transparent)}.three-workspace-panel__summary-label{color:var(--text-tertiary);font-size:.64rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.three-workspace-panel__summary-value{color:var(--text-primary);font-size:.78rem;font-weight:600;line-height:1.45}.three-workspace-panel__empty{margin:0;color:var(--text-tertiary);font-size:.76rem;line-height:1.5}.three-workspace-panel__info{display:grid;gap:.7rem}.three-workspace-panel__advanced{display:grid;gap:.85rem}.three-workspace-panel__advanced-summary{list-style:none;cursor:pointer;margin-bottom:0}.three-workspace-panel__advanced-summary::-webkit-details-marker{display:none}.three-workspace-panel__advanced-body{display:grid;gap:.75rem}.three-workspace-panel__control-label--disabled{opacity:.48}@media (max-width: 1100px){.three-workspace-rail{width:128px;min-width:128px}.three-workspace-rail__button{padding:.7rem}}@media (max-width: 900px){.three-workspace{gap:10px}.three-workspace-rail{width:112px;min-width:112px}.three-workspace-rail__button{min-height:2.7rem;padding:.65rem}}@media (max-width: 700px){.three-workspace-rail{width:92px;min-width:92px}.three-workspace-rail__button--mode{justify-content:center;padding:.65rem .4rem}.three-workspace-rail__button--mode span:first-child,.three-workspace-rail__button--mode .three-workspace-rail__meta{display:none}.three-workspace-rail__button--mode .three-workspace-rail__compact-label{display:inline}}.showcase-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1000}.showcase-live-pill{position:absolute;top:16px;left:16px;display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 10px;border-radius:999px;background:#0b1e3f99;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#f5f7fa;font-family:Inter,system-ui,sans-serif;font-size:12px;font-weight:600;letter-spacing:.02em;pointer-events:none}.showcase-live-dot{width:8px;height:8px;border-radius:999px;background:#4ade80;box-shadow:0 0 #4ade8099;animation:showcase-live-pulse 1.6s ease-in-out infinite}.showcase-live-hint{color:#a8b3c4;font-weight:500}@keyframes showcase-live-pulse{0%{box-shadow:0 0 #4ade8099}70%{box-shadow:0 0 0 8px #4ade8000}to{box-shadow:0 0 #4ade8000}}@media (prefers-reduced-motion: reduce){.showcase-live-dot{animation:none}}.showcase-view-toggle{position:absolute;top:16px;right:16px;pointer-events:auto;display:inline-flex;padding:3px;border-radius:999px;background:#0b1e3f99;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:pointer;font-family:Inter,system-ui,sans-serif;font-size:13px;font-weight:600;color:#a8b3c4;gap:2px}.showcase-view-toggle:hover{color:#f5f7fa}.showcase-view-segment{padding:6px 14px;border-radius:999px;transition:background .12s,color .12s}.showcase-view-segment.active{background:#4dd0e1;color:#0b1e3f}.showcase-badge{position:absolute;bottom:16px;right:16px;pointer-events:auto;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:#0b1e3f99;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#f5f7fa;font-family:Inter,system-ui,sans-serif;font-size:12px;font-weight:600;text-decoration:none;transition:background .12s}.showcase-badge:hover{background:#4dd0e133}.showcase-badge-arrow{color:#4dd0e1;font-size:14px;line-height:1}:root{--stitch-surface: #0d0e10;--stitch-surface-container: #181a1c;--stitch-surface-container-low: #121316;--stitch-surface-container-high: #1e2022;--stitch-surface-container-highest: #242629;--stitch-primary: #6dddff;--stitch-primary-dim: #00c3eb;--stitch-secondary: #00f4fe;--stitch-secondary-dim: #00e5ee;--stitch-outline-variant: #47484a;--stitch-on-surface: #fdfbfe;--stitch-on-surface-variant: #ababad;--stitch-error: #ff716c;--stitch-radius-sm: .125rem;--stitch-radius-md: .25rem;--stitch-radius-lg: .5rem;--stitch-radius-xl: .75rem;--stitch-blur-soft: 20px;--stitch-blur-strong: 28px}.glass-panel,.glass-panel-static{background:color-mix(in srgb,var(--bg-panel-elevated) 78%,transparent);border:1px solid color-mix(in srgb,var(--border-soft) 76%,transparent);box-shadow:0 20px 48px #00000047,inset 0 1px #ffffff0a}.glass-panel{backdrop-filter:blur(var(--stitch-blur-soft));-webkit-backdrop-filter:blur(var(--stitch-blur-soft))}.glass-panel-static{background:color-mix(in srgb,var(--bg-panel-elevated) 92%,transparent)}.stitch-segmented-tabs{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem;border-radius:999px;background:color-mix(in srgb,var(--bg-panel) 88%,transparent);border:1px solid color-mix(in srgb,var(--border-soft) 72%,transparent);box-shadow:inset 0 1px #ffffff08}.stitch-segmented-tab{min-height:2.25rem;padding:0 1rem;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--text-muted);font-family:var(--font-heading);font-size:.78rem;font-weight:600;letter-spacing:.01em}.stitch-segmented-tab:hover:not(:disabled){color:var(--text-primary);background:color-mix(in srgb,var(--bg-panel-high) 88%,transparent)}.stitch-segmented-tab.active{color:var(--accent-cyan);background:color-mix(in srgb,var(--accent-cyan-soft) 72%,var(--bg-panel-high) 28%);border-color:color-mix(in srgb,var(--accent-cyan) 36%,var(--border-soft) 64%);box-shadow:0 0 24px color-mix(in srgb,var(--accent-cyan) 14%,transparent)}.stitch-chip,.header-btn,.examples-button,.panel-toggle,.clear-btn,.about-close-btn,.view-error-button,.three-selection-action,.three-view-toolbar-button,.three-view-preset-button,.three-hud__mode-button,.three-hud__cursor-toggle,.three-hud__nudge-button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2rem;padding:0 .85rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--border-soft) 76%,transparent);background:color-mix(in srgb,var(--bg-panel-high) 88%,transparent);color:var(--text-muted);box-shadow:inset 0 1px #ffffff08}.stitch-chip:hover:not(:disabled),.header-btn:hover:not(:disabled),.examples-button:hover:not(:disabled),.panel-toggle:hover:not(:disabled),.clear-btn:hover:not(:disabled),.about-close-btn:hover:not(:disabled),.view-error-button:hover:not(:disabled),.three-selection-action:hover:not(:disabled),.three-view-toolbar-button:hover:not(:disabled),.three-view-preset-button:hover:not(:disabled),.three-hud__mode-button:hover:not(:disabled),.three-hud__cursor-toggle:hover:not(:disabled),.three-hud__nudge-button:hover:not(:disabled){color:var(--text-primary);background:color-mix(in srgb,var(--accent-cyan-soft) 24%,var(--bg-panel-high) 76%);border-color:color-mix(in srgb,var(--accent-cyan) 24%,var(--border-soft) 76%)}.stitch-chip:disabled,.header-btn:disabled,.examples-button:disabled,.panel-toggle:disabled,.clear-btn:disabled,.about-close-btn:disabled,.view-error-button:disabled,.three-selection-action:disabled,.three-view-toolbar-button:disabled,.three-view-preset-button:disabled,.three-hud__mode-button:disabled,.three-hud__cursor-toggle:disabled,.three-hud__nudge-button:disabled{opacity:.42}.stitch-chip.is-active,.stitch-chip.active,.header-btn.is-active,.panel-toggle.panel-toggle-active,.three-selection-action.is-active,.three-view-toolbar-button.is-active,.three-view-preset-button.is-active,.three-hud__mode-button.is-active,.three-hud__cursor-toggle.is-active,.three-hud__nudge-button.is-active{color:var(--accent-cyan);background:color-mix(in srgb,var(--accent-cyan-soft) 76%,var(--bg-panel-high) 24%);border-color:color-mix(in srgb,var(--accent-cyan) 44%,var(--border-soft) 56%);box-shadow:0 0 28px color-mix(in srgb,var(--accent-cyan) 12%,transparent),inset 0 1px #ffffff0d}.stitch-chip--primary,.about-close-btn,.view-error-button,.three-selection-action--primary,.three-view-toolbar-button--primary{color:var(--bg-app);background:linear-gradient(135deg,color-mix(in srgb,var(--accent-cyan) 92%,white 8%),color-mix(in srgb,var(--accent-cyan) 72%,var(--accent-hover) 28%));border-color:color-mix(in srgb,var(--accent-cyan) 64%,white 36%);box-shadow:0 12px 30px color-mix(in srgb,var(--accent-cyan) 22%,transparent),inset 0 1px #ffffff29}.stitch-chip--danger,.clear-btn-danger,.three-selection-action--danger,.three-view-toolbar-button--stale{color:var(--danger);background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 28%,var(--border-soft) 72%)}.stitch-chip--danger:hover:not(:disabled),.clear-btn-danger:hover:not(:disabled),.three-selection-action--danger:hover:not(:disabled),.three-view-toolbar-button--stale:hover:not(:disabled){color:color-mix(in srgb,var(--danger) 84%,white 16%);background:color-mix(in srgb,var(--danger-soft) 84%,transparent);border-color:color-mix(in srgb,var(--danger) 36%,var(--border-soft) 64%)}.stitch-rail{display:flex;align-items:stretch;gap:var(--space-md);padding:.85rem 1rem;border-radius:1.5rem;overflow-x:auto;overflow-y:hidden}.stitch-rail-button,.tool-btn,.viz-btn{display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:4.35rem;min-width:4.35rem;padding:.7rem .65rem;border-radius:1.15rem;border:1px solid color-mix(in srgb,var(--border-soft) 72%,transparent);background:color-mix(in srgb,var(--bg-panel-high) 92%,transparent);color:var(--text-muted);box-shadow:inset 0 1px #ffffff08}.stitch-rail-button:hover:not(:disabled),.tool-btn:hover:not(:disabled),.viz-btn:hover:not(:disabled){color:var(--text-primary);background:color-mix(in srgb,var(--accent-cyan-soft) 26%,var(--bg-panel-high) 74%);border-color:color-mix(in srgb,var(--accent-cyan) 22%,var(--border-soft) 78%)}.stitch-rail-button.active,.stitch-rail-button.is-active,.tool-btn.active,.viz-btn.active{color:var(--accent-cyan);background:color-mix(in srgb,var(--accent-cyan-soft) 76%,var(--bg-panel-high) 24%);border-color:color-mix(in srgb,var(--accent-cyan) 42%,var(--border-soft) 58%);box-shadow:0 0 28px color-mix(in srgb,var(--accent-cyan) 12%,transparent)}.stitch-panel,.side-panel,.examples-dropdown,.about-dialog,.three-selection-card,.three-view-toolbar,.three-hud__cluster{border-radius:1.5rem}.stitch-panel-section,.panel-section{padding:1.1rem 1.15rem;border-bottom:1px solid color-mix(in srgb,var(--border-soft) 58%,transparent)}.stitch-panel-section:last-child,.panel-section:last-child{border-bottom:none}.stitch-statusbar,.status-bar{border-radius:1.2rem}.stitch-object-label{color:var(--text-primary);font-family:var(--font-heading);font-weight:600;letter-spacing:.02em;text-shadow:0 0 10px color-mix(in srgb,var(--accent-cyan) 52%,transparent)}.stitch-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.stitch-vignette{background:radial-gradient(circle at top center,transparent 0 38%,rgba(0,0,0,.14) 75%,rgba(0,0,0,.42) 100%),linear-gradient(180deg,rgba(0,0,0,.16),transparent 24%,transparent 76%,rgba(0,0,0,.28))}.stitch-divider{width:1px;align-self:stretch;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--border-soft) 90%,transparent) 20% 80%,transparent)}.stitch-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.3rem;min-height:1.3rem;padding:0 .35rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--border-soft) 76%,transparent);background:color-mix(in srgb,var(--bg-panel-high) 92%,transparent);color:var(--text-tertiary);font-family:SF Mono,Fira Code,Courier New,monospace;font-size:.66rem;line-height:1}.stitch-select,.stitch-input{min-height:2rem;padding:0 .75rem;border-radius:.8rem;border:1px solid color-mix(in srgb,var(--border-soft) 76%,transparent);background:color-mix(in srgb,var(--bg-panel-high) 92%,transparent);color:var(--text-primary);font-family:inherit}.stitch-select:focus,.stitch-input:focus{outline:none;border-color:color-mix(in srgb,var(--accent-cyan) 42%,var(--border-soft) 58%);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-cyan-soft) 72%,transparent)}.stitch-select option{background:var(--bg-panel-elevated);color:var(--text-primary)}.stitch-range,.stitch-checkbox{accent-color:var(--accent-cyan)}.stitch-field{display:inline-flex;align-items:center;gap:.45rem;color:var(--text-muted)}.stitch-field.is-disabled{opacity:.45;color:var(--text-tertiary)}.stitch-help{color:color-mix(in srgb,var(--text-muted) 52%,transparent);font-size:.72rem}:root{--bg-app: var(--stitch-surface);--bg-panel: var(--stitch-surface-container-low);--bg-panel-elevated: var(--stitch-surface-container);--bg-panel-high: var(--stitch-surface-container-high);--bg-canvas: color-mix(in srgb, var(--stitch-surface) 92%, black 8%);--text-primary: var(--stitch-on-surface);--text-muted: var(--stitch-on-surface-variant);--accent-cyan: var(--stitch-primary);--accent-cyan-soft: color-mix(in srgb, var(--accent-cyan) 16%, transparent);--border-soft: color-mix(in srgb, var(--stitch-outline-variant) 82%, transparent);--danger: var(--stitch-error);--danger-soft: color-mix(in srgb, var(--danger) 18%, transparent);--bg-base: var(--bg-app);--bg-surface-1: color-mix(in srgb, var(--bg-panel) 72%, var(--bg-app) 28%);--bg-surface-2: var(--bg-panel-elevated);--bg-surface-3: var(--bg-panel-high);--bg-hover: color-mix(in srgb, var(--bg-panel-high) 82%, var(--accent-cyan-soft) 18%);--border-subtle: color-mix(in srgb, var(--border-soft) 70%, transparent);--border-default: var(--border-soft);--border-strong: color-mix(in srgb, var(--accent-cyan) 28%, var(--border-soft) 72%);--text-secondary: var(--text-muted);--text-tertiary: color-mix(in srgb, var(--text-muted) 70%, transparent);--text-inverse: var(--bg-app);--accent: var(--accent-cyan);--accent-hover: color-mix(in srgb, var(--accent-cyan) 82%, white 18%);--accent-muted: var(--accent-cyan-soft);--accent-strong: color-mix(in srgb, var(--accent-cyan) 28%, transparent);--font-heading: "Space Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;font-family:var(--font-body);line-height:1.5;font-weight:400;color-scheme:dark;color:var(--text-primary);background-color:var(--bg-app);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;display:flex;min-width:320px;min-height:100vh;background:radial-gradient(circle at top left,color-mix(in srgb,var(--accent-cyan) 14%,transparent) 0%,transparent 28%),radial-gradient(circle at top right,color-mix(in srgb,var(--stitch-secondary) 8%,transparent) 0%,transparent 24%),linear-gradient(180deg,color-mix(in srgb,var(--bg-panel) 26%,var(--bg-app) 74%),var(--bg-app))}body.app-busy,body.app-busy *{cursor:wait!important}#root{width:100%;height:100vh}button{border:1px solid transparent;padding:0;font-size:inherit;font-weight:500;font-family:inherit;background:transparent;color:var(--text-primary);cursor:pointer;transition:all .15s ease}button:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}button:disabled{opacity:.35;cursor:not-allowed}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}
