:root{color-scheme:dark;--bg-0: #0d0e11;--bg-1: #14161b;--bg-2: #1b1e25;--bg-3: #242833;--bg-hover: #2b303c;--border: #2a2e38;--border-strong: #3a404d;--text-1: #eceef3;--text-2: #a9afbd;--text-3: #737a89;--accent: #7c9cff;--accent-strong: #5b7cf5;--accent-soft: rgb(124 156 255 / .14);--success: #4ccf8c;--danger: #ff6b6b;--warning: #ffc857;--radius-sm: 6px;--radius: 9px;--radius-lg: 14px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--text-xs: 11px;--text-sm: 12px;--text-md: 13px;--text-lg: 15px;--sidebar-left: 300px;--sidebar-right: 320px;--topbar: 56px;--shadow: 0 10px 30px rgb(0 0 0 / .35);--ease: cubic-bezier(.2, .7, .2, 1)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-0);color:var(--text-1);font:400 var(--text-md) / 1.45 var(--font);-webkit-font-smoothing:antialiased;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,h4,p{margin:0}kbd{font:500 10px var(--font-mono);padding:1px 5px;border-radius:4px;background:var(--bg-0);border:1px solid var(--border);color:var(--text-3);margin-left:auto}.muted{color:var(--text-2)}.hint{color:var(--text-3);font-size:var(--text-sm)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:10px;border:3px solid var(--bg-1)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app{height:100%;display:grid;grid-template-columns:var(--sidebar-left) minmax(0,1fr) var(--sidebar-right);grid-template-rows:var(--topbar) minmax(0,1fr);grid-template-areas:"top top top" "left stage right"}.topbar{grid-area:top;display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-4);background:var(--bg-1);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:var(--space-2);width:calc(var(--sidebar-left) - var(--space-4) * 2);flex-shrink:0}.brand__mark{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--accent),#a77cff);color:#0d0e11}.brand__name{font-weight:650;font-size:var(--text-lg);letter-spacing:-.01em}.topbar__actions{display:flex;gap:var(--space-2);flex:1;justify-content:center}.account{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.account__name{color:var(--text-2)}.plan-pill{border:0;cursor:pointer;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--accent-soft);padding:3px 8px;border-radius:999px}.plan-pill:hover{background:#7c9cff3d}.account--loading{width:140px;height:30px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-2),var(--bg-3),var(--bg-2));background-size:200% 100%;animation:shimmer 1.2s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.badge{display:inline-grid;place-items:center;min-width:20px;height:18px;padding:0 5px;margin-left:6px;border-radius:999px;background:#00000040;font-size:var(--text-xs)}.sidebar{display:flex;flex-direction:column;min-height:0;background:var(--bg-1)}.sidebar--left{grid-area:left;border-right:1px solid var(--border)}.sidebar--right{grid-area:right;border-left:1px solid var(--border)}.sidebar__scroll{flex:1;overflow-y:auto;overscroll-behavior:contain}.stage{grid-area:stage;position:relative;min-width:0;min-height:0}.tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--border)}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 4px 9px;background:none;border:0;border-bottom:2px solid transparent;color:var(--text-3);font-size:var(--text-xs);font-weight:550}.tab:hover{color:var(--text-1)}.tab.is-active{color:var(--text-1);border-bottom-color:var(--accent)}.toasts{position:fixed;right:var(--space-4);bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);z-index:50;max-width:380px}.toast{display:flex;align-items:flex-start;gap:var(--space-2);padding:10px 12px;background:var(--bg-2);border:1px solid var(--border-strong);border-left:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow);animation:toast-in .25s var(--ease)}.toast span{flex:1;word-break:break-word}.toast button{background:none;border:0;color:var(--text-3);padding:2px}.toast--success{border-left-color:var(--success)}.toast--success>svg{color:var(--success)}.toast--error{border-left-color:var(--danger)}.toast--error>svg{color:var(--danger)}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}@media(max-width:1200px){:root{--sidebar-left: 260px;--sidebar-right: 290px}.topbar__actions .btn span:not(.badge){max-width:14ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(max-width:900px){body{overflow:auto}.app{height:auto;grid-template-columns:1fr;grid-template-rows:auto 60vh auto auto;grid-template-areas:"top" "stage" "right" "left"}.topbar{flex-wrap:wrap;padding:var(--space-2) var(--space-4)}.brand{width:auto}.topbar__actions{order:3;flex-basis:100%;flex-wrap:wrap}}.section{border-bottom:1px solid var(--border)}.section__header{display:flex;align-items:center;padding-right:var(--space-4)}.section__toggle{flex:1;display:flex;align-items:center;gap:var(--space-2);padding:12px var(--space-4);background:none;border:0;font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);text-align:left}.section__toggle:hover{color:var(--text-1)}.chevron{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s var(--ease)}.chevron--open{transform:rotate(45deg)}.section__body{display:flex;flex-direction:column;gap:var(--space-3);padding:0 var(--space-4) var(--space-4)}.field{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;border:0;min-width:0}.field label,.field legend{color:var(--text-2);font-size:var(--text-sm);padding:0}.field__row{display:flex;justify-content:space-between;align-items:baseline}.field__row output{font:500 var(--text-xs) var(--font-mono);color:var(--text-1)}.field__hint{display:block;color:var(--text-3);font-size:var(--text-xs);margin-top:2px}.field.is-disabled{opacity:.45}.slider input[type=range]{appearance:none;width:100%;height:18px;background:transparent;margin:0}.slider input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(to right,var(--accent) var(--fill),var(--bg-3) var(--fill))}.slider input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:linear-gradient(to right,var(--accent) var(--fill),var(--bg-3) var(--fill))}.slider input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:14px;margin-top:-5px;border-radius:50%;background:var(--text-1);border:2px solid var(--accent);box-shadow:0 1px 4px #0006}.slider input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--text-1);border:2px solid var(--accent)}.color-field{flex-direction:row;align-items:center;justify-content:space-between}.color-field__control{display:flex;align-items:center;gap:var(--space-2)}.color-field__hex{font:500 var(--text-xs) var(--font-mono);color:var(--text-2)}.color-field input[type=color]{width:30px;height:22px;padding:0;border:1px solid var(--border-strong);border-radius:5px;background:none;cursor:pointer}.color-field input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.color-field input[type=color]::-webkit-color-swatch{border:0;border-radius:3px}.toggle{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--space-3)}.toggle input{appearance:none;flex-shrink:0;width:32px;height:18px;border-radius:999px;background:var(--bg-3);position:relative;cursor:pointer;transition:background .15s}.toggle input:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--text-2);transition:transform .15s var(--ease),background .15s}.toggle input:checked{background:var(--accent-strong)}.toggle input:checked:after{transform:translate(14px);background:#fff}.segmented__track{display:flex;background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px}.segmented__track label{flex:1;text-align:center;padding:5px 4px;border-radius:4px;font-size:var(--text-sm);color:var(--text-2);cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}.segmented__track label:hover{color:var(--text-1)}.segmented__track label.is-active{background:var(--bg-3);color:var(--text-1);box-shadow:0 1px 2px #0000004d}.segmented__track label:has(input:focus-visible){outline:2px solid var(--accent)}.segmented__track input{position:absolute;opacity:0;pointer-events:none}.select-field select,.text-field input,.inline-form input{width:100%;padding:7px 9px;background:var(--bg-0);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-1)}.select-field select:hover,.text-field input:hover{border-color:var(--border-strong)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:550;font-size:var(--text-md);white-space:nowrap;transition:background .12s,border-color .12s,opacity .12s}.btn:disabled{opacity:.45}.btn--primary{background:var(--accent-strong);color:#fff}.btn--primary:not(:disabled):hover{background:var(--accent)}.btn--secondary{background:var(--bg-3);border-color:var(--border-strong)}.btn--secondary:not(:disabled):hover{background:var(--bg-hover)}.btn--ghost{background:transparent;color:var(--text-2)}.btn--ghost:not(:disabled):hover{background:var(--bg-3);color:var(--text-1)}.btn--danger{background:transparent;color:var(--danger);border-color:#ff6b6b66}.btn--block{width:100%}.btn--sm{height:30px;padding:0 10px}.btn kbd{margin-left:6px}.icon-btn{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-sm);background:transparent;border:0;color:var(--text-2)}.icon-btn:hover{background:var(--bg-3);color:var(--text-1)}.icon-btn.is-active{color:var(--accent);background:var(--accent-soft)}.link-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:0;padding:0;color:var(--accent);font-size:var(--text-sm)}.link-btn:hover{text-decoration:underline}.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-2);color:var(--text-2);font-size:var(--text-sm);white-space:nowrap}.chip:hover{color:var(--text-1);border-color:var(--border-strong);background:var(--bg-3)}.chip.is-active{color:var(--text-1);border-color:var(--accent);background:var(--accent-soft)}.chip--block{width:100%;justify-content:flex-start}.button-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.button-grid--4{grid-template-columns:repeat(2,1fr)}.inline-form{display:flex;gap:var(--space-2)}.model-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.model-row{border-radius:var(--radius);border:1px solid transparent;background:var(--bg-2)}.model-row.is-selected{border-color:var(--accent);background:var(--accent-soft)}.model-row.is-hidden .model-row__select{opacity:.45}.model-row__main{display:flex;align-items:center;padding-right:4px}.model-row__select{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:6px;background:none;border:0;text-align:left}.model-row__thumb{flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;border-radius:6px;background:var(--bg-0);object-fit:cover;color:var(--text-3)}.model-row__text{display:flex;flex-direction:column;min-width:0}.model-row__name{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-row__meta{font-size:var(--text-xs);color:var(--text-3)}.model-row__actions{display:flex;opacity:.6}.model-row:hover .model-row__actions,.model-row.is-selected .model-row__actions,.model-row__actions:focus-within{opacity:1}.model-row__details{padding:4px 10px 10px;font-size:var(--text-sm)}.model-row__details dl{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:0 0 8px}.model-row__details dt{color:var(--text-3)}.model-row__details dd{margin:0;font-family:var(--font-mono);font-size:var(--text-xs);align-self:center}.model-row__badge{display:inline-block;margin-left:6px;padding:0 5px;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-family:var(--font)}.model-row__rotate{display:flex;align-items:center;gap:6px;color:var(--text-3)}.model-row__rotate span{margin-right:auto}.preset-group h4{font-size:var(--text-xs);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.preset-card{position:relative}.preset-card__button{width:100%;display:flex;flex-direction:column;gap:5px;padding:0;background:none;border:0;text-align:left}.preset-card__swatch{position:relative;display:grid;place-items:center;aspect-ratio:16 / 10;width:100%;border-radius:var(--radius);border:2px solid transparent;outline:1px solid var(--border);transition:border-color .12s,transform .12s var(--ease)}.preset-card__button:hover .preset-card__swatch{transform:translateY(-1px);outline-color:var(--border-strong)}.preset-card.is-active .preset-card__swatch{border-color:var(--accent)}.preset-card__orb{width:34%;aspect-ratio:1;border-radius:50%}.preset-card__orb--wireframe{border-radius:6px}.preset-card__orb--normals{background:conic-gradient(#8080ff,#ff8080,#80ff80,#8080ff)!important}.preset-card__name{font-size:var(--text-sm);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preset-card.is-active .preset-card__name{color:var(--text-1)}.preset-card__name em{color:var(--warning);font-style:normal}.preset-card__delete{position:absolute;top:4px;right:4px;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;border:0;background:#0000008c;color:#fff;opacity:0}.preset-card:hover .preset-card__delete,.preset-card__delete:focus-visible{opacity:1}.export-actions{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);position:sticky;bottom:0;background:linear-gradient(transparent,var(--bg-1) 18%);padding-top:var(--space-5)}.viewport{position:absolute;inset:0;overflow:hidden;background:#2a2d33}.viewport--transparent{background:repeating-conic-gradient(#3a3d44 0% 25%,#2c2f35 0% 50%) 50% / 24px 24px}.viewport__canvas{position:absolute;inset:0}.studio-canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.safe-frame{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #08090c73;outline:1px dashed rgb(255 255 255 / .4);pointer-events:none}.safe-frame__label{position:absolute;top:8px;left:10px;font-size:var(--text-xs);color:#ffffffbf;background:#00000059;padding:2px 7px;border-radius:4px}.viewport-toolbar{position:absolute;left:50%;bottom:var(--space-4);transform:translate(-50%);display:flex;align-items:center;gap:4px;max-width:calc(100% - var(--space-5));padding:5px;background:#14161bd1;backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.viewport-toolbar__views{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.viewport-toolbar .chip{background:transparent;border-color:transparent}.viewport-toolbar .chip:hover{background:var(--bg-3)}.viewport-toolbar__divider{width:1px;align-self:stretch;background:var(--border);margin:0 4px}.empty-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);text-align:center;padding:var(--space-5);pointer-events:none}.empty-state>*{pointer-events:auto}.empty-state:before{content:"";position:absolute;width:min(520px,calc(100% - 32px));height:300px;border-radius:var(--radius-lg);background:#0d0e11c7;backdrop-filter:blur(10px);border:1px solid var(--border);z-index:-1}.empty-state{isolation:isolate}.empty-state__icon{display:grid;place-items:center;width:72px;height:72px;border-radius:20px;background:#7c9cff1f;color:var(--accent);margin-bottom:var(--space-2)}.empty-state h2{font-size:20px;font-weight:650}.empty-state p{color:var(--text-2);max-width:420px}.empty-state__actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.drop-overlay{position:absolute;inset:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);border:2px dashed var(--accent);border-radius:var(--radius-lg);background:#5b7cf524;color:var(--text-1);font-weight:600;pointer-events:none}.dialog{position:fixed;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-1);color:var(--text-1);padding:var(--space-5);box-shadow:var(--shadow);width:min(420px,calc(100vw - 32px))}.dialog::backdrop{background:#05060899;backdrop-filter:blur(3px)}.dialog[open]{animation:dialog-in .2s var(--ease)}@keyframes dialog-in{0%{opacity:0;transform:translateY(6px) scale(.98)}}.dialog h2{font-size:18px;font-weight:650;margin-bottom:6px}.dialog__close{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:28px;height:28px;border-radius:6px;border:0;background:none;color:var(--text-3)}.dialog__close:hover{background:var(--bg-3);color:var(--text-1)}.job{display:flex;flex-direction:column;gap:var(--space-3)}.progress{height:8px;border-radius:999px;background:var(--bg-3);overflow:hidden}.progress__bar{height:100%;background:linear-gradient(90deg,var(--accent-strong),#a77cff);transition:width .2s var(--ease)}.job__meta{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-2);font-variant-numeric:tabular-nums}.job__detail{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job .btn{align-self:flex-end}.dialog--plans{width:min(880px,calc(100vw - 32px));max-height:calc(100vh - 32px);overflow-y:auto}.plan-change{margin-top:var(--space-4);padding:var(--space-4);border:1px solid var(--accent-strong);border-radius:var(--radius-lg);background:var(--accent-soft)}.plan-change h3{margin:0 0 var(--space-2);font-size:var(--text-lg)}.plan-change p{margin:0 0 6px;line-height:1.5}.plan-change__actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-3)}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin:var(--space-4) 0}.plan-card{position:relative;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-2)}.plan-card.is-featured{border-color:var(--accent-strong);box-shadow:0 0 0 1px var(--accent-strong),0 12px 30px #5b7cf51f}.plan-card.is-current{background:var(--accent-soft)}.plan-card__ribbon{position:absolute;top:-10px;right:var(--space-4);padding:2px 9px;border-radius:999px;background:linear-gradient(135deg,var(--accent-strong),#a77cff);color:#fff;font-size:var(--text-xs);font-weight:600}.plan-card__ribbon--offer{background:linear-gradient(135deg,#f5a524,#ef6f6c)}.plan-card__offer{margin:0;padding:8px 10px;border-radius:var(--radius-sm);background:#f5a5241f;color:var(--text-1);font-size:var(--text-sm);line-height:1.4}.plan-card h3{margin:0;font-size:var(--text-lg)}.plan-card__price{display:flex;align-items:baseline;gap:4px}.plan-card__price strong{font-size:28px;letter-spacing:-.02em}.plan-card__price span,.plan-card__tagline{color:var(--text-2);font-size:var(--text-sm)}.plan-card ul{list-style:none;margin:var(--space-2) 0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:var(--text-sm);flex:1}.plan-card li{display:flex;gap:8px;align-items:flex-start}.plan-card li svg{flex-shrink:0;margin-top:3px;color:var(--success)}.plan-card__action{min-height:34px;display:flex;align-items:center}.plan-card__action .btn{width:100%}.plan-card__current{width:100%;text-align:center;font-size:var(--text-sm);font-weight:600;color:var(--accent)}.billing-status{display:flex;gap:8px;align-items:center;margin-top:var(--space-3);padding:10px 12px;border-radius:var(--radius-sm);background:#4ccf8c1a;font-size:var(--text-sm)}.billing-status svg{color:var(--success);flex-shrink:0}.billing-status--warn{background:#ffc8571f}.billing-status--warn svg{color:var(--warning)}.plans__footer{display:flex;align-items:center;gap:6px}@media(max-width:720px){.plan-grid{grid-template-columns:1fr}}
