:root{--bg-pure: #070707;--bg-obsidian: #070707;--bg-elevated: #0d0d10;--bg-viewer: rgba(10, 10, 12, .78);--card-bg: rgba(20, 20, 22, .58);--card-bg-hover: rgba(30, 30, 35, .74);--subcard-bg: rgba(255, 255, 255, .03);--subcard-bg-hover: rgba(255, 255, 255, .06);--border-subtle: rgba(255, 255, 255, .12);--border-bright: rgba(255, 255, 255, .26);--border-hover: rgba(255, 255, 255, .48);--border-divider: rgba(255, 255, 255, .08);--text-primary: #ffffff;--text-secondary: #b4b4bc;--text-muted: #94949e;--accent-white: #ffffff;--accent-mint: #6ee7b7;--accent-mint-bg: rgba(16, 185, 129, .12);--accent-mint-border: rgba(16, 185, 129, .38);--accent-coral: #fca5a5;--accent-coral-bg: rgba(244, 63, 94, .12);--accent-coral-border: rgba(244, 63, 94, .38);--accent-amber: #fcd34d;--accent-amber-bg: rgba(245, 158, 11, .12);--accent-amber-border: rgba(245, 158, 11, .35);--font-display: "Space Grotesk", -apple-system, BlinkMacSystemFont, sans-serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--radius-xs: 8px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 22px;--radius-pill: 9999px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--blur-glass: 14px;--shadow-card: 0 14px 34px -10px rgba(0, 0, 0, .78), 0 0 20px rgba(255, 255, 255, .03);--shadow-card-hover: 0 20px 42px -12px rgba(0, 0, 0, .9), 0 0 26px rgba(255, 255, 255, .07);--shadow-glow-white: 0 0 22px rgba(255, 255, 255, .22);--touch-target-min: 44px;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--transition-base: .28s cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{background-color:var(--bg-pure);color:var(--text-primary);font-family:var(--font-sans);scroll-behavior:smooth;overflow-x:hidden}body{background-color:transparent;min-height:100vh;position:relative;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--accent-white);color:var(--bg-pure)}#bg-canvas{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100lvh;z-index:-1;pointer-events:none;display:block}.blender-grid-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100lvh;z-index:-1;pointer-events:none;background-image:linear-gradient(to right,rgba(255,255,255,.024) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.024) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(circle at 50% 38%,black 22%,transparent 82%);-webkit-mask-image:radial-gradient(circle at 50% 38%,black 22%,transparent 82%)}.ambient-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100lvh;z-index:-1;pointer-events:none;background:radial-gradient(circle at 50% 28%,#07070724,#07070799 75%,#070707e6)}.app-shell{position:relative;z-index:10;min-height:100vh;display:flex;flex-direction:column}.site-header{position:sticky;top:0;z-index:30;background:#070707d1;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border-subtle)}.header-inner{max-width:1360px;margin:0 auto;padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.brand-cluster{display:flex;align-items:center;gap:var(--space-4)}.avatar-ring{position:relative;width:52px;height:52px;border-radius:var(--radius-pill);padding:2.5px;background:linear-gradient(135deg,#ffffffad,#ffffff24,#ffffff75);box-shadow:0 0 26px #ffffff29;flex-shrink:0;transition:transform var(--transition-base),box-shadow var(--transition-base)}.avatar-ring:hover{transform:scale(1.04);box-shadow:0 0 34px #ffffff47}.avatar-inner{width:100%;height:100%;border-radius:var(--radius-pill);background:var(--bg-obsidian);display:flex;align-items:center;justify-content:center;overflow:hidden}.avatar-inner img{width:100%;height:100%;object-fit:cover}.brand-meta{display:flex;flex-direction:column;gap:3px}.domain-pill{display:inline-flex;align-items:center;gap:7px;width:fit-content;padding:3px 10px;border-radius:var(--radius-pill);background:#ffffff0b;border:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary)}.pulse-dot{width:6px;height:6px;border-radius:var(--radius-pill);background:var(--accent-white);box-shadow:0 0 8px var(--accent-white);animation:pulseGlow 2.2s infinite ease-in-out}@keyframes pulseGlow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.brand-title-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2) var(--space-3)}.brand-title{font-family:var(--font-display);font-size:clamp(1.2rem,2.5vw,1.55rem);font-weight:700;letter-spacing:-.02em;text-transform:uppercase;color:var(--text-primary)}.brand-subtitle{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary)}.header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.ecosystem-badge{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch-target-min);padding:0 var(--space-3);border-radius:var(--radius-sm);background:var(--subcard-bg);border:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:border-color var(--transition-base),color var(--transition-base),background-color var(--transition-base)}.ecosystem-badge:hover{border-color:var(--border-bright);color:var(--text-primary);background:var(--subcard-bg-hover)}.studio-main{flex:1;width:100%;max-width:1360px;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-10);display:flex;flex-direction:column;gap:var(--space-5)}.studio-subheader{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding:0 2px;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-secondary)}.bento-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5);align-items:start}.glass-card{background:var(--card-bg);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5);position:relative;overflow:hidden;transition:transform var(--transition-base),background-color var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base)}.glass-card:before{content:"";position:absolute;inset:0;background:radial-gradient(520px circle at var(--mouse-x, 50%) var(--mouse-y, 0%),rgba(255,255,255,.065),transparent 45%);opacity:0;transition:opacity .35s ease;pointer-events:none}.glass-card:hover{background:var(--card-bg-hover);border-color:var(--border-bright);box-shadow:var(--shadow-card-hover)}.glass-card:hover:before{opacity:1}.card-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding-bottom:var(--space-4);margin-bottom:var(--space-4);border-bottom:1px solid var(--border-divider)}.card-title-group{display:flex;align-items:center;gap:var(--space-3)}.icon-box{width:42px;height:42px;border-radius:var(--radius-sm);background:#ffffff0f;border:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:.9rem;color:var(--text-primary);flex-shrink:0;transition:background-color var(--transition-base),color var(--transition-base),border-color var(--transition-base)}.glass-card:hover .icon-box{background:var(--accent-white);color:var(--bg-pure);border-color:var(--accent-white)}.section-tag{display:inline-block;font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:2px}.card-heading{font-family:var(--font-display);font-size:1.125rem;font-weight:700;letter-spacing:-.01em;color:var(--text-primary)}.card-description{font-size:.8rem;color:var(--text-secondary);margin-top:2px}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);background:#ffffff0f;border:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:.66rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap}.status-pill.is-ready{background:var(--accent-mint-bg);border-color:var(--accent-mint-border);color:var(--accent-mint)}.status-pill.is-warning{background:var(--accent-coral-bg);border-color:var(--accent-coral-border);color:var(--accent-coral)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:0 var(--space-4);border-radius:var(--radius-sm);font-family:var(--font-display);font-size:.82rem;font-weight:700;letter-spacing:.02em;cursor:pointer;user-select:none;text-decoration:none;transition:transform .22s var(--ease-out-expo),background-color .22s ease,border-color .22s ease,box-shadow .22s ease,opacity .22s ease}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.btn-primary-white{background:var(--accent-white);color:var(--bg-pure);border:1px solid var(--accent-white);box-shadow:var(--shadow-glow-white)}.btn-primary-white:hover:not(:disabled){background:#f4f4f5;transform:translateY(-1px);box-shadow:0 0 28px #ffffff57}.btn-secondary-glass{background:#ffffff0b;color:var(--text-primary);border:1px solid var(--border-subtle)}.btn-secondary-glass:hover:not(:disabled){background:#ffffff1c;border-color:var(--border-bright);transform:translateY(-1px)}.btn-secondary-glass.is-active,.btn-secondary-glass.is-active:hover:not(:disabled){background:var(--accent-white);color:var(--bg-pure);border-color:var(--accent-white);box-shadow:var(--shadow-glow-white)}.model-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}.sample-buttons-group{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.sample-label{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin-right:4px}.viewer-stage{position:relative;width:100%;height:360px;border-radius:var(--radius-md);background:var(--bg-viewer);border:1px solid var(--border-subtle);overflow:hidden;touch-action:none}.viewer-canvas-container{width:100%;height:100%;position:relative}.viewer-canvas-container canvas{width:100%!important;height:100%!important;display:block;outline:none}.viewer-hud-top{position:absolute;top:var(--space-3);left:var(--space-3);right:var(--space-3);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);pointer-events:none;z-index:5}.viewer-file-badge{pointer-events:auto;display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--radius-xs);background:#070707d1;backdrop-filter:blur(10px);border:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:.72rem;color:var(--text-primary)}.viewer-controls-Floating{pointer-events:auto;display:flex;align-items:center;gap:6px}.icon-btn{min-width:var(--touch-target-min);min-height:var(--touch-target-min);padding:0 12px;border-radius:var(--radius-xs);background:#0c0c0ed9;backdrop-filter:blur(10px);border:1px solid var(--border-subtle);color:var(--text-primary);font-family:var(--font-mono);font-size:.7rem;font-weight:600;text-transform:uppercase;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background-color .2s ease,border-color .2s ease,color .2s ease}.icon-btn:hover{background:#202026f2;border-color:var(--border-bright)}.icon-btn.is-active{background:var(--accent-white);color:var(--bg-pure);border-color:var(--accent-white)}.dropzone-bar{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px dashed rgba(255,255,255,.22);background:#ffffff06;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);transition:border-color .25s ease,background-color .25s ease}.dropzone-bar.is-dragover,.viewer-stage.is-dragover{border-color:var(--accent-white);background:#ffffff14}.dropzone-info{display:flex;flex-direction:column;gap:2px}.dropzone-title{font-family:var(--font-display);font-size:.86rem;font-weight:700;color:var(--text-primary)}.dropzone-hint{font-family:var(--font-mono);font-size:.7rem;color:var(--text-secondary)}.metrics-grid{margin-top:var(--space-4);display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.metric-card{background:var(--subcard-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:4px}.metric-label{font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-secondary)}.metric-value{font-family:var(--font-mono);font-size:.95rem;font-weight:700;color:var(--text-primary)}.metric-sub{font-family:var(--font-mono);font-size:.68rem;color:var(--text-muted)}.palette-panel{display:flex;flex-direction:column;gap:var(--space-3)}.palette-toolbar-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2)}.palette-Toolbar-right{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.palette-limit-control{display:inline-flex;align-items:center;gap:6px;min-height:var(--touch-target-min);padding:0 var(--space-3);border-radius:var(--radius-sm);background:var(--subcard-bg);border:1px solid var(--border-subtle)}.palette-limit-label{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;color:var(--text-secondary)}.palette-limit-select{background:transparent;border:none;color:var(--text-primary);font-family:var(--font-mono);font-size:.78rem;font-weight:700;cursor:pointer;outline:none}.palette-limit-select option{background:#0d0d10;color:#fff}.inventory-drawer{padding:var(--space-4);border-radius:var(--radius-md);background:#0c0c0ff5;backdrop-filter:blur(20px);border:1px solid var(--border-bright);box-shadow:0 16px 40px #0009;display:flex;flex-direction:column;gap:var(--space-3);animation:fadeIn var(--transition-fast) ease-out}.inventory-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);padding-bottom:6px;border-bottom:1px solid var(--border-subtle)}.inv-header-title-group{display:flex;flex-direction:column;gap:2px}.inventory-drawer-title{font-family:var(--font-mono);font-size:.76rem;font-weight:700;letter-spacing:.08em;color:var(--text-primary)}.inv-header-sub{font-family:var(--font-mono);font-size:.64rem;color:var(--text-muted)}.icon-btn-close{background:#ffffff0d;border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:var(--radius-xs);width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:.85rem;transition:all var(--transition-fast)}.icon-btn-close:hover{background:#ef444433;border-color:#ef444466;color:#ef4444}.inventory-filter-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.inventory-search-box{flex:1;min-width:200px}.inv-material-chips{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.inventory-actions-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:#0000004d;border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.inv-actions-left{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.btn-import-all{background:var(--accent-white)!important;color:var(--bg-pure)!important;font-weight:700!important}.inventory-spool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;max-height:380px;overflow-y:auto;padding-right:4px}.inventory-spool-card{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:var(--radius-sm);background:#ffffff08;border:1px solid var(--border-subtle);transition:border-color var(--transition-fast),background var(--transition-fast)}.inventory-spool-card:hover{background:#ffffff0f;border-color:#fff3}.spool-card-top{display:flex;align-items:center;gap:10px}.spool-swatch{width:24px;height:24px;border-radius:6px;border:1px solid rgba(255,255,255,.35);box-shadow:0 0 6px #00000080;flex-shrink:0}.spool-info{display:flex;flex-direction:column;overflow:hidden}.spool-name{font-size:.78rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spool-brand{font-family:var(--font-mono);font-size:.65rem;color:var(--text-muted)}.spool-tags-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.spool-density-tag,.spool-cost-tag{font-family:var(--font-mono);font-size:.66rem;padding:1px 5px;border-radius:var(--radius-xs);background:#ffffff0d;border:1px solid var(--border-subtle);color:var(--text-secondary)}.spool-cost-tag{color:#4ade80;border-color:#4ade8033}.spool-card-actions{display:flex;align-items:center;gap:6px;margin-top:2px}.spool-action-btn{flex:1;min-height:32px;font-size:.72rem;padding:0 6px;justify-content:center}.inv-empty-state{grid-column:1 / -1;padding:24px;text-align:center;font-size:.8rem;color:var(--text-muted);font-family:var(--font-mono)}.palette-mini-btn{padding:6px 10px;border-radius:var(--radius-xs);background:var(--accent-white);color:var(--bg-pure);border:1px solid var(--accent-white);font-family:var(--font-mono);font-size:.68rem;font-weight:700;cursor:pointer}.palette-mini-btn:disabled{opacity:.4;cursor:not-allowed}.palette-slots-list{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto;padding-right:2px}.palette-slot-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--subcard-bg);border:1px solid var(--border-subtle);transition:border-color .2s ease,background-color .2s ease}.palette-slot-row.is-active{border-color:var(--border-bright);background:#fff1}.extruder-badge-btn{min-width:var(--touch-target-min);min-height:var(--touch-target-min);padding:0 8px;border-radius:var(--radius-xs);background:#ffffff0f;border:1px solid var(--border-subtle);color:var(--text-secondary);font-family:var(--font-mono);font-size:.72rem;font-weight:700;cursor:pointer;transition:all .2s ease}.extruder-badge-btn.is-active,.extruder-badge-btn:hover{background:var(--accent-white);color:var(--bg-pure);border-color:var(--accent-white)}.color-picker-wrapper{position:relative;width:var(--touch-target-min);height:var(--touch-target-min);border-radius:var(--radius-xs);border:1px solid rgba(255,255,255,.25);overflow:hidden;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}.native-color-picker{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.color-picker-swatch{width:100%;height:100%;display:block}.slot-hex-input{width:82px;min-height:var(--touch-target-min);padding:0 8px;border-radius:var(--radius-xs);background:#070707ad;border:1px solid var(--border-subtle);color:var(--text-primary);font-family:var(--font-mono);font-size:.75rem;font-weight:600;text-transform:uppercase;outline:none}.slot-hex-input:focus,.slot-name-input:focus{border-color:var(--accent-white)}.slot-name-input{flex:1;min-width:110px;min-height:var(--touch-target-min);padding:0 10px;border-radius:var(--radius-xs);background:#07070780;border:1px solid var(--border-subtle);color:var(--text-primary);font-family:var(--font-sans);font-size:.78rem;font-weight:500;outline:none}.slot-actions{display:flex;align-items:center;gap:4px;margin-left:auto}.slot-icon-btn{min-width:38px;min-height:var(--touch-target-min);border-radius:var(--radius-xs);background:#ffffff0a;border:1px solid var(--border-subtle);color:var(--text-primary);font-family:var(--font-mono);font-size:.85rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color .2s ease,border-color .2s ease}.slot-icon-btn:hover:not(:disabled){background:#ffffff24;border-color:var(--border-bright)}.slot-icon-btn.is-danger:hover:not(:disabled){background:var(--accent-coral-bg);border-color:var(--accent-coral-border);color:var(--accent-coral)}.slot-icon-btn:disabled{opacity:.3;cursor:not-allowed}.palette-footer-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-divider)}.palette-json-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.palette-feedback{font-family:var(--font-mono);font-size:.7rem;color:var(--accent-mint);background:var(--accent-mint-bg);border:1px solid var(--accent-mint-border);border-radius:var(--radius-xs);padding:6px 10px}.feature-options-list{display:flex;flex-direction:column;gap:var(--space-2)}.option-row{min-height:var(--touch-target-min);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--subcard-bg);border:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.option-label{font-size:.82rem;font-weight:500;color:var(--text-primary)}.option-tag{font-family:var(--font-mono);font-size:.68rem;color:var(--text-secondary);text-transform:uppercase}.site-footer{max-width:1360px;width:100%;margin:0 auto;padding:var(--space-6) var(--space-4);border-top:1px solid var(--border-divider);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted)}.pattern-panel-root{display:flex;flex-direction:column;gap:var(--space-4);width:100%}.pattern-topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.pattern-topbar-left{display:flex;align-items:center;gap:var(--space-2)}.pattern-stats-badge{display:inline-flex;align-items:center;min-height:var(--touch-target-min);padding:0 var(--space-3);font-family:var(--font-mono);font-size:.74rem;letter-spacing:.04em;color:#34d399;background:#34d39914;border:1px solid rgba(52,211,153,.25);border-radius:var(--radius-sm)}.pattern-topbar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.btn-preview-toggle.is-active{border-color:#60a5fa;color:#fff;background:#60a5fa1f}.btn-toggle-all-locks.is-locked{border-color:#fbbf24;color:#fbbf24;background:#fbbf241f}.pattern-section-group{display:flex;flex-direction:column;gap:var(--space-2)}.group-header-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.group-title-label{display:flex;flex-direction:column;gap:2px}.group-title-label .mono-label,.param-title .mono-label,.contextual-header .mono-label{font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary)}.group-title-label .sub-label,.contextual-header .sub-label{font-size:.7rem;color:var(--text-muted)}.header-right-actions{display:flex;align-items:center;gap:var(--space-2)}.lock-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--touch-target-min);height:var(--touch-target-min);min-width:var(--touch-target-min);min-height:var(--touch-target-min);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;cursor:pointer;font-size:1.05rem;transition:all var(--transition-fast)}.lock-btn:hover{background:#ffffff0f;border-color:var(--border-subtle)}.lock-btn.is-locked{background:#fbbf241f;border-color:#fbbf2466}.tessellation-chips-row{display:flex;flex-wrap:wrap;gap:6px;min-height:var(--touch-target-min);align-items:center}.tess-chip{flex:1;min-width:105px;min-height:var(--touch-target-min);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em;text-align:center;justify-content:center}.tess-chip.is-active{background:#ffffff29;border-color:#ffffff80;color:#fff;box-shadow:0 0 10px #ffffff14}.pattern-chips-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px}.pattern-chip{display:inline-flex;align-items:center;gap:7px;min-height:var(--touch-target-min);padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--subcard-bg);color:var(--text-secondary);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em;cursor:pointer;transition:all var(--transition-fast);text-align:left}.pattern-chip:hover{background:#ffffff0f;color:var(--text-primary);border-color:var(--border-bright)}.pattern-chip.is-active{background:#ffffff1f;border-color:#ffffff80;color:#fff;box-shadow:0 0 12px #ffffff14}.chip-dot{width:7px;height:7px;border-radius:50%;background:#ffffff40;transition:background var(--transition-fast)}.pattern-chip.is-active .chip-dot{background:#fff;box-shadow:0 0 6px #fff}.pattern-params-grid{display:grid;grid-template-columns:1fr;gap:var(--space-2)}@media (min-width: 580px){.pattern-params-grid{grid-template-columns:1fr 1fr}}.param-control-card{padding:var(--space-3);border-radius:var(--radius-md);background:var(--subcard-bg);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--space-2)}.card-rotation{grid-column:1 / -1}.param-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.param-title{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.param-val-badge{font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:#60a5fa;background:#60a5fa1a;padding:2px 6px;border-radius:var(--radius-sm);border:1px solid rgba(96,165,250,.25)}.slider-row{display:flex;align-items:center;min-height:var(--touch-target-min)}.range-slider{width:100%;min-height:var(--touch-target-min);accent-color:#ffffff;cursor:pointer;background:transparent}.seed-input-row{display:flex;align-items:center;gap:var(--space-2);min-height:var(--touch-target-min)}.seed-number-input{flex:1;min-height:var(--touch-target-min);padding:0 var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#0006;color:var(--text-primary);font-family:var(--font-mono);font-size:.8rem;font-weight:700;outline:none}.seed-number-input:focus{border-color:var(--border-bright)}.btn-reroll-seed{min-width:var(--touch-target-min)}.axis-chips-row{display:flex;gap:6px;min-height:var(--touch-target-min);align-items:center}.axis-chip{flex:1;display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-target-min);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#ffffff08;color:var(--text-secondary);font-family:var(--font-mono);font-size:.72rem;font-weight:700;cursor:pointer;transition:all var(--transition-fast)}.axis-chip:hover{background:#ffffff14;color:var(--text-primary)}.axis-chip.is-active{background:#ffffff29;border-color:#ffffff80;color:#fff}.rotation-sliders-grid{display:grid;grid-template-columns:1fr;gap:var(--space-2)}@media (min-width: 580px){.rotation-sliders-grid{grid-template-columns:1fr 1fr 1fr}}.rot-item{display:flex;flex-direction:column;gap:2px}.rot-label-row{display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:.68rem;color:var(--text-secondary)}.contextual-card{padding:var(--space-3);border-radius:var(--radius-md);background:var(--subcard-bg);border:1px solid var(--border-bright);display:flex;flex-direction:column;gap:var(--space-2)}.contextual-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.contextual-chips-row{display:flex;flex-wrap:wrap;gap:6px}.proportions-section{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-subtle)}.equalize-toggle-label{display:inline-flex;align-items:center;gap:8px;min-height:var(--touch-target-min);padding:0 var(--space-2);font-family:var(--font-mono);font-size:.72rem;color:var(--text-secondary);cursor:pointer;user-select:none}.custom-checkbox{width:18px;height:18px;accent-color:#ffffff;cursor:pointer}.proportions-list{display:flex;flex-direction:column;gap:6px}.proportion-row-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--subcard-bg);border:1px solid var(--border-subtle);min-height:var(--touch-target-min)}.prop-color-pill{display:flex;align-items:center;gap:8px;min-width:140px}.color-swatch-sm{width:20px;height:20px;border-radius:4px;border:1px solid rgba(255,255,255,.25);box-shadow:inset 0 0 4px #0006}.prop-color-meta{display:flex;flex-direction:column;gap:1px}.prop-extruder-tag{font-family:var(--font-mono);font-size:.64rem;font-weight:700;letter-spacing:.08em;color:var(--text-secondary)}.prop-name{font-size:.74rem;font-weight:500;color:var(--text-primary);max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prop-slider-col{flex:1;min-width:120px;display:flex;align-items:center;min-height:var(--touch-target-min)}.prop-stats-col{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.72rem}.prop-weight-badge{color:var(--text-muted)}.prop-area-badge{color:#34d399;font-weight:700;background:#34d3991a;padding:2px 6px;border-radius:var(--radius-sm);border:1px solid rgba(52,211,153,.25)}.image-panel-root{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-4)}.image-presets-cluster{display:flex;flex-direction:column;gap:8px;background:var(--subcard-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:10px 12px}.presets-row{display:flex;flex-wrap:wrap;gap:8px}.image-upload-zone{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:#ffffff08;border:1px dashed var(--border-subtle);border-radius:var(--radius-sm);transition:border-color .2s ease,background-color .2s ease}.image-upload-zone.is-dragover{border-color:var(--accent-white);background:#ffffff14}.image-preview-cluster{display:flex;align-items:center;gap:var(--space-3)}.image-thumb-box{width:52px;height:52px;border-radius:var(--radius-xs);border:1px solid var(--border-subtle);background:#09090b;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0}.image-thumb-img{width:100%;height:100%;object-fit:contain}.image-thumb-placeholder{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);font-weight:700}.image-file-meta{display:flex;flex-direction:column;gap:2px}.image-file-title{font-family:var(--font-mono);font-size:.78rem;font-weight:700;color:var(--text-primary);max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.image-file-sub{font-family:var(--font-mono);font-size:.68rem;color:var(--text-secondary)}.image-upload-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.projection-chips-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px}.projection-toggles-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;background:var(--subcard-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.toggle-control-label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;min-height:var(--touch-target-min);user-select:none}.toggle-control-label input[type=checkbox]{display:none}.toggle-custom-box{width:18px;height:18px;border-radius:4px;border:1px solid var(--border-bright);background:#0006;position:relative;transition:all .2s ease;flex-shrink:0}.toggle-control-label input[type=checkbox]:checked+.toggle-custom-box{background:var(--accent-white);border-color:var(--accent-white)}.toggle-control-label input[type=checkbox]:checked+.toggle-custom-box:after{content:"";position:absolute;top:2px;left:5px;width:5px;height:9px;border:solid #000;border-width:0 2px 2px 0;transform:rotate(45deg)}.toggle-text{font-family:var(--font-sans);font-size:.76rem;font-weight:600;color:var(--text-primary)}.flip-buttons-group{display:flex;gap:6px}.dither-chips-row{display:flex;flex-wrap:wrap;gap:6px}.relief-panel-root{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-4)}.operation-mode-chips{display:flex;flex-direction:column;gap:6px}.source-chips-row{display:flex;flex-wrap:wrap;gap:6px}.tactile-presets-block{display:flex;flex-direction:column;gap:8px;background:var(--subcard-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:10px 12px}.tactile-chips-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px}.direction-chips-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.displacement-action-box{margin-top:4px}.relief-progress-container{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:#ffffff0a;border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.relief-progress-header{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--text-primary)}.progress-bar-bg{width:100%;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--accent-white);transition:width .2s ease}.export-panel-root{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-4)}.chip{display:inline-flex;align-items:center;justify-content:flex-start;padding:8px 14px;min-height:var(--touch-target-min);border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#ffffff08;color:var(--text-secondary);font-family:var(--font-sans);font-size:.8rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast);text-align:left}.chip:hover{background:#ffffff14;color:var(--text-primary);border-color:#fff3}.chip.is-active{background:#ffffff1f;color:#fff;border-color:var(--border-bright);font-weight:600;box-shadow:0 0 12px #ffffff14}.export-modes-grid{display:flex;flex-direction:column;gap:6px}.export-options-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;background:var(--subcard-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:10px 12px}.filename-input-group{display:flex;flex-direction:column;gap:4px;flex:1;min-width:180px}.filename-input-wrapper{display:flex;align-items:center;position:relative}.filename-input-wrapper .slot-name-input{padding-right:52px}.file-ext-badge{position:absolute;right:8px;font-family:var(--font-mono);font-size:.72rem;font-weight:700;color:var(--text-secondary);pointer-events:none}.totals-pill{display:inline-flex;align-items:center;gap:6px;background:#ffffff0f;border:1px solid var(--border-subtle);padding:2px 8px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.74rem;font-weight:700}.highlight-grams{color:#38bdf8;font-weight:700}.filament-metrics-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#00000073;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}.filament-metrics-table{min-width:520px;width:100%;border-collapse:collapse;font-size:.74rem;text-align:left}.filament-metrics-table th{padding:8px 10px;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);background:#ffffff05;white-space:nowrap}.filament-metrics-table td{padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}.filament-metrics-table tr:last-child td{border-bottom:none}.table-extruder-badge{display:inline-block;padding:2px 6px;border-radius:var(--radius-xs);background:#ffffff14;font-family:var(--font-mono);font-size:.7rem;font-weight:700;color:var(--text-primary)}.table-filament-cluster{display:flex;align-items:center;gap:8px}.table-color-swatch{width:16px;height:16px;border-radius:3px;border:1px solid rgba(255,255,255,.25);flex-shrink:0}.table-filament-meta{display:flex;flex-direction:column}.table-filament-name{font-weight:600;color:var(--text-primary);white-space:nowrap}.table-material-tag{font-family:var(--font-mono);font-size:.64rem;color:var(--text-muted)}.num-cell{text-align:right;white-space:nowrap}.export-action-box{display:flex;flex-direction:column;gap:8px;margin-top:4px}.export-success-banner{padding:8px 12px;border-radius:var(--radius-sm);background:#34d3991a;border:1px solid rgba(52,211,153,.3);color:#34d399;font-size:.76rem;font-family:var(--font-mono)}.highlight-cost{color:#4ade80;font-weight:700}.ecosystem-bridge-card{display:flex;flex-direction:column;gap:10px;padding:12px 14px;background:#38bdf808;border:1px solid rgba(56,189,248,.2);border-radius:var(--radius-sm);margin-top:6px}.ecosystem-actions-grid{display:flex;flex-wrap:wrap;gap:8px}.btn-ecosystem{flex:1;min-width:220px;min-height:42px;font-size:.78rem;font-weight:600;justify-content:center;border-color:#38bdf84d}.btn-ecosystem:hover{border-color:#38bdf8;background:#38bdf81a}.ecosystem-toast{background:#38bdf81f;border-color:#38bdf859;color:#38bdf8}.pwa-install-btn{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;background:#ffffff14;border:1px solid var(--border-bright);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-mono);font-size:.72rem;font-weight:700;cursor:pointer;transition:all var(--transition-fast)}.pwa-install-btn:hover{background:var(--accent-white);color:var(--bg-pure)}.pwa-install-btn.is-installed{background:#34d39926;border-color:#34d39966;color:#34d399}@media (min-width: 768px){.header-inner{flex-direction:row;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6)}.studio-main{padding:var(--space-6) var(--space-6) var(--space-10)}.viewer-stage{height:430px}.metrics-grid{grid-template-columns:repeat(4,1fr)}.bento-grid{grid-template-columns:repeat(2,1fr)}.card-model-section,.card-export-section{grid-column:span 2}}@media (min-width: 1180px){.bento-grid{grid-template-columns:repeat(12,1fr)}.card-model-section{grid-column:span 7;grid-row:span 3}.card-colors-section,.card-pattern-section,.card-image-section,.card-relief-section,.card-export-section{grid-column:span 5}.viewer-stage{height:480px}}.model-viewer-host{position:relative}.viewer-touch-toggle{position:absolute;top:12px;left:12px;z-index:10;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;min-height:40px;background:#0d0d10e0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);color:var(--text-primary);font-family:var(--font-mono);font-size:.72rem;font-weight:500;cursor:pointer;box-shadow:0 4px 12px #00000080;transition:var(--transition-base)}.viewer-touch-toggle:hover{background:#19191ef2;border-color:var(--border-bright)}.viewer-touch-toggle[aria-pressed=true]{border-color:var(--accent-mint);box-shadow:0 0 10px #6ee7b740}.viewer-context-overlay{position:absolute;inset:0;z-index:20;display:none;align-items:center;justify-content:center;background:#09090bd9;backdrop-filter:blur(10px);padding:20px}.context-overlay-card{max-width:380px;background:#141418f2;border:1px solid var(--accent-coral-border);border-radius:var(--radius-md);padding:24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:var(--shadow-card)}.context-icon{font-size:2rem}.context-msg{font-size:.86rem;color:var(--text-primary);line-height:1.45;margin:0}.app-toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:10px;pointer-events:none}.app-toast{pointer-events:auto;min-width:280px;max-width:440px;padding:12px 18px;background:#121216f2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-bright);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:.82rem;line-height:1.4;box-shadow:0 12px 30px #000c;animation:slideInToast .3s cubic-bezier(.16,1,.3,1) forwards;transition:opacity .3s ease,transform .3s ease}.app-toast.app-toast-error{border-color:var(--accent-coral);background:#1e0f12f5;box-shadow:0 12px 30px #f43f5e40;display:flex;align-items:center;gap:10px}.app-toast.fade-out{opacity:0;transform:translateY(-8px)}@keyframes slideInToast{0%{opacity:0;transform:translateY(-16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}:focus-visible{outline:2px solid #ffffff!important;outline-offset:2px!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
