@font-face{font-family:Inter UI;src:url(/fonts/web/inter.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Inter UI;src:url(/fonts/web/inter-bold.ttf)format("truetype");font-weight:600 700;font-display:swap}:root{--bg:#0b0c10;--panel-bg:#12131a;--panel-bg-raised:#191b23;--panel-border:#ffffff14;--panel-border-strong:#ffffff24;--input-bg:#0e0f14;--control-bg:#21232d;--control-bg-hover:#2a2d39;--text:#eceef4;--text-dim:#9aa0b4;--text-faint:#6b7186;--accent:#e0b45c;--accent-strong:#f0c778;--accent-ink:#241a06;--accent-gradient:linear-gradient(135deg, #f0c778 0%, #d9a441 100%);--danger:#e4685f;--shadow-pop:0 12px 40px #0000008c, 0 2px 8px #00000059;--radius-s:6px;--radius-m:10px;--radius-l:14px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:14px/1.45 Inter UI,system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}*{scrollbar-width:thin;scrollbar-color:#ffffff29 transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff3d}::-webkit-scrollbar-track{background:0 0}.app{background:var(--bg);flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.app-main{flex:1;min-height:0;display:flex}.topbar{border-bottom:1px solid var(--panel-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:30;background:#12131aeb;flex-shrink:0;justify-content:space-between;align-items:center;height:52px;padding:0 14px 0 16px;display:flex}.topbar-brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{width:26px;height:26px;color:var(--accent);flex-shrink:0}.brand-name{letter-spacing:-.2px;white-space:nowrap;font-size:15px;font-weight:700}.brand-tag{color:var(--text-faint);border-left:1px solid var(--panel-border-strong);white-space:nowrap;padding-left:10px;font-size:12px}.topbar-actions{align-items:center;gap:10px;display:flex}.topbar-group{background:var(--control-bg);border:1px solid var(--panel-border);border-radius:var(--radius-s);gap:2px;padding:2px;display:flex}.icon-btn{width:30px;height:28px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;place-items:center;transition:background .15s,color .15s;display:grid}.icon-btn svg{width:16px;height:16px}.icon-btn:hover:not(:disabled){background:var(--control-bg-hover);color:var(--text)}.icon-btn:disabled{opacity:.35;cursor:default}.cta-btn{border-radius:var(--radius-s);background:var(--accent-gradient);color:var(--accent-ink);cursor:pointer;border:none;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:700;transition:filter .15s,transform .1s;display:flex}.cta-btn:hover{filter:brightness(1.07)}.cta-btn:active{transform:translateY(1px)}.cta-btn .chev{width:14px;height:14px}.signin-btn{border:1px solid var(--panel-border-strong);border-radius:var(--radius-s);background:var(--control-bg);color:var(--text);cursor:pointer;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s}.signin-btn:hover{background:var(--control-bg-hover);border-color:var(--accent)}.avatar-btn{border:1px solid var(--panel-border-strong);background:var(--accent-gradient);width:32px;height:32px;color:var(--accent-ink);cursor:pointer;border-radius:50%;place-items:center;font-size:14px;font-weight:700;display:grid}.avatar-btn:hover{filter:brightness(1.08)}.topbar-dropdown{position:relative}.dropdown-panel{background:var(--panel-bg-raised);border:1px solid var(--panel-border-strong);border-radius:var(--radius-m);min-width:260px;box-shadow:var(--shadow-pop);z-index:40;padding:8px;animation:.14s ease-out dropdown-in;position:absolute;top:calc(100% + 8px);right:0}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.export-panel button{border-radius:var(--radius-s);width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:1px;padding:9px 10px;transition:background .12s;display:flex}.export-panel button:hover:not(:disabled){background:var(--control-bg)}.export-panel button:disabled{opacity:.4;cursor:default}.export-panel button strong{font-size:13px;font-weight:600}.export-panel button span{color:var(--text-dim);font-size:11.5px}.dropdown-status{color:var(--accent);margin:6px 10px 4px;font-size:12px}.account-panel{width:320px;padding:14px}.account-menu-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.account-avatar{background:var(--accent-gradient);width:38px;height:38px;color:var(--accent-ink);border-radius:50%;flex-shrink:0;place-items:center;font-size:17px;font-weight:700;display:grid}.account-menu-id{flex-direction:column;min-width:0;display:flex}.account-menu-id strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.account-menu-id span{color:var(--text-dim);font-size:11.5px}.menu-heading{margin:0 0 4px;font-size:15px;font-weight:700}.menu-subheading{text-transform:uppercase;letter-spacing:.7px;color:var(--text-dim);margin:14px 0 6px;font-size:11px;font-weight:600}.menu-primary-btn{border-radius:var(--radius-s);background:var(--accent-gradient);width:100%;color:var(--accent-ink);cursor:pointer;border:none;flex:1;padding:9px 12px;font-size:13px;font-weight:700}.menu-primary-btn:hover:not(:disabled){filter:brightness(1.07)}.menu-secondary-btn{border:1px solid var(--panel-border-strong);border-radius:var(--radius-s);background:var(--control-bg);color:var(--text);cursor:pointer;flex:1;padding:9px 12px;font-size:13px;font-weight:600}.menu-secondary-btn.wide{width:100%;margin-bottom:8px}.menu-secondary-btn:hover:not(:disabled){background:var(--control-bg-hover)}.menu-primary-btn:disabled,.menu-secondary-btn:disabled{opacity:.45;cursor:default}.menu-quiet-btn{border:1px dashed var(--panel-border-strong);border-radius:var(--radius-s);width:100%;color:var(--text-dim);cursor:pointer;background:0 0;margin-top:10px;padding:8px;font-size:12.5px}.menu-quiet-btn:hover:not(:disabled){color:var(--text);border-color:var(--text-faint)}.sync-details{border-top:1px solid var(--panel-border);margin-top:14px;padding-top:10px}.sync-details summary{color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px}.sync-details summary:hover{color:var(--text)}.sync-details>:not(summary){margin-top:8px}.control-panel{background:var(--panel-bg);border-right:1px solid var(--panel-border);flex-direction:column;flex-shrink:0;width:330px;min-height:0;display:flex}.panel-tabs{border-bottom:1px solid var(--panel-border);grid-template-columns:repeat(4,1fr);gap:4px;padding:10px 12px;display:grid}.panel-tabs button{border-radius:var(--radius-s);color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:3px;padding:8px 2px 7px;font-size:11px;font-weight:600;transition:background .15s,color .15s;display:flex}.panel-tabs button:hover{background:var(--control-bg);color:var(--text)}.panel-tabs button.active{background:var(--control-bg);border-color:var(--panel-border-strong);color:var(--accent)}.tab-icon{font-size:15px;line-height:1}.panel-content{flex:1;padding:16px;overflow:hidden auto}.control-panel section{border-bottom:1px solid var(--panel-border);margin-bottom:18px;padding-bottom:16px}.control-panel section:last-of-type{border-bottom:none;margin-bottom:0}.control-panel h2{text-transform:uppercase;letter-spacing:.8px;color:var(--text-dim);margin:0 0 10px;font-size:11px;font-weight:700}.shape-row{gap:6px;display:flex}.shape-row button{border:1px solid var(--panel-border);border-radius:var(--radius-s);background:var(--control-bg);color:var(--text-dim);cursor:pointer;flex:1;padding:8px;font-size:12.5px;font-weight:500;transition:border-color .15s,color .15s,background .15s}.shape-row button:hover{background:var(--control-bg-hover);color:var(--text)}.shape-row button.active{border-color:var(--accent);color:var(--accent);background:#e0b45c17}.field{flex-direction:column;gap:4px;margin-bottom:12px;font-size:12.5px;display:flex}.field span{color:var(--text-dim);justify-content:space-between;display:flex}.field em{color:var(--accent);font-variant-numeric:tabular-nums;font-style:normal;font-weight:600}.field input[type=range]{width:100%;accent-color:var(--accent)}.text-line-block{border-radius:var(--radius-s);margin-bottom:10px}.text-line{gap:6px;display:flex}.line-type-btn{border:1px solid var(--panel-border);border-radius:var(--radius-s);background:var(--control-bg);width:30px;color:var(--text-dim);cursor:pointer;flex-shrink:0;font-size:12px}.line-type-btn:hover{color:var(--text);background:var(--control-bg-hover)}.divider-preview{white-space:nowrap;background:var(--input-bg);border:1px solid var(--panel-border);border-radius:var(--radius-s);min-width:0;color:var(--accent);flex:1;justify-content:center;align-items:center;padding:6px 8px;font-size:13px;display:flex;overflow:hidden}.text-line-options{align-items:center;gap:6px;margin:6px 0 0 36px;display:flex}.text-line-options select{background:var(--control-bg);border:1px solid var(--panel-border);border-radius:var(--radius-s);color:var(--text);min-width:0;max-width:150px;padding:4px 6px;font-size:12px}.text-line-options input[type=range]{accent-color:var(--accent);flex:1}.text-line-options .ornament-text-input{background:var(--input-bg);border:1px solid var(--panel-border);border-radius:var(--radius-s);min-width:0;color:var(--text);flex:1;padding:4px 6px;font-size:12px}.text-line-options em{color:var(--accent);font-variant-numeric:tabular-nums;width:34px;font-size:11px;font-style:normal}.text-line-options+.text-line-options{margin-top:4px}.bold-toggle{border:1px solid var(--panel-border);border-radius:var(--radius-s);background:var(--control-bg);width:24px;height:24px;color:var(--text-dim);cursor:pointer;flex-shrink:0;font-size:12px;font-weight:700}.italic-toggle{font-style:italic;font-weight:400}.bold-toggle.active{border-color:var(--accent);color:var(--accent);background:#e0b45c17}.option-label{text-align:center;width:16px;color:var(--text-dim);flex-shrink:0;font-size:13px}.text-line input[type=text]{background:var(--input-bg);border:1px solid var(--panel-border);border-radius:var(--radius-s);min-width:0;color:var(--text);flex:1;padding:6px 8px;font-size:13px;transition:border-color .15s}.text-line input[type=text]:focus{border-color:var(--accent);outline:none}.text-line button{border:1px solid var(--panel-border);border-radius:var(--radius-s);background:var(--control-bg);width:28px;color:var(--text);cursor:pointer;flex-shrink:0;transition:background .12s}.text-line button:hover:not(:disabled){background:var(--control-bg-hover)}.text-line button:disabled{opacity:.35;cursor:not-allowed}.text-line button.style-copied{border-color:var(--accent);color:var(--accent)}.text-line button.drag-handle{width:18px;color:var(--text-faint);cursor:grab;letter-spacing:-2px;background:0 0;border:none;flex-shrink:0;padding:0}.text-line button.drag-handle:hover{color:var(--text-dim)}.text-line button.drag-handle:active{cursor:grabbing}.text-line-block.drag-over{outline:1px dashed var(--accent);outline-offset:2px}.add-line{border:1px dashed var(--panel-border-strong);border-radius:var(--radius-s);width:100%;color:var(--text-dim);cursor:pointer;background:0 0;margin-bottom:8px;padding:8px;font-size:12.5px;transition:color .15s,border-color .15s,background .15s}.add-line:hover:not(:disabled){color:var(--accent);border-color:var(--accent);background:#e0b45c0f}.add-line:disabled{opacity:.35;cursor:not-allowed}.color-row{justify-content:space-between;gap:8px;display:flex}.color-row label{color:var(--text-dim);flex-direction:column;align-items:center;gap:4px;font-size:11px;display:flex}.color-row input[type=color]{border:1px solid var(--panel-border-strong);border-radius:var(--radius-s);cursor:pointer;background:0 0;width:44px;height:28px;padding:0}.sync-row{align-items:center;gap:6px;margin:8px 0;display:flex}.sync-row input[type=text],.sync-row input[type=email],.sync-row input[type=password]{border:1px solid var(--panel-border);border-radius:var(--radius-s);background:var(--input-bg);min-width:0;color:var(--text);flex:1;padding:8px 10px;font-size:13px;transition:border-color .15s}.sync-row input:focus{border-color:var(--accent);outline:none}.sync-row button{border:1px solid var(--panel-border);border-radius:var(--radius-s);background:var(--control-bg);color:var(--text);cursor:pointer;padding:7px 12px;font-size:12px}.sync-row button:hover:not(:disabled){background:var(--control-bg-hover)}.sync-row button:disabled{opacity:.4;cursor:default}.sync-code{border:1px solid var(--panel-border);border-radius:var(--radius-s);background:var(--input-bg);min-width:0;color:var(--accent);word-break:break-all;-webkit-user-select:all;user-select:all;flex:1;padding:6px 8px;font-size:12px}.history-list{max-height:260px;margin-top:8px;overflow-y:auto}.history-item{align-items:center;gap:6px;margin-bottom:6px;display:flex}.history-item img{object-fit:cover;border:1px solid var(--panel-border);border-radius:4px;flex-shrink:0;width:44px;height:30px}.history-item .object-name{border:1px solid var(--panel-border);border-radius:var(--radius-s);background:var(--control-bg);min-width:0;color:var(--text);cursor:pointer;text-align:left;flex:1;justify-content:space-between;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex;overflow:hidden}.history-item .object-name:hover{background:var(--control-bg-hover)}.history-item .object-name em{color:var(--text-dim);flex-shrink:0;font-size:11px;font-style:normal}.history-item>button:last-child{border:1px solid var(--panel-border);border-radius:var(--radius-s);background:var(--control-bg);width:28px;height:28px;color:var(--text);cursor:pointer;flex-shrink:0}.object-name{text-overflow:ellipsis;white-space:nowrap;text-align:left;background:var(--control-bg);border:1px solid var(--panel-border);border-radius:var(--radius-s);color:var(--text);cursor:pointer;flex:1;padding:6px 8px;font-size:13px;transition:background .12s;overflow:hidden}.object-name:hover{background:var(--control-bg-hover)}.object-row.active .object-name{border-color:var(--accent);color:var(--accent)}.hint-text{color:var(--text-faint);margin:6px 0 0;font-size:11.5px;line-height:1.5}.hint-text code{color:var(--text-dim);background:var(--input-bg);border-radius:3px;padding:1px 4px;font-size:11px}.script-input{background:var(--input-bg);border:1px solid var(--panel-border);border-radius:var(--radius-s);width:100%;color:var(--text);resize:vertical;margin:8px 0;padding:10px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12px;line-height:1.55;transition:border-color .15s}.script-input:focus{border-color:var(--accent);outline:none}.script-errors{border-radius:var(--radius-s);background:#e4685f14;border:1px solid #e4685f66;margin:0 0 8px;padding:8px 10px}.script-errors p{color:var(--danger);margin:2px 0;font-size:12px}.viewport{background:radial-gradient(ellipse at 50% 35%, #16181f 0%, var(--bg) 75%);flex:1;min-width:0;position:relative}.face-hover-overlay{pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex}.face-bounds-label{border:1px solid var(--panel-border-strong);color:var(--accent);white-space:nowrap;background:#0e0f14e6;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.face-plus-btn{background:var(--accent-gradient);width:26px;height:26px;color:var(--accent-ink);cursor:pointer;pointer-events:auto;border:none;border-radius:50%;font-size:16px;font-weight:700;line-height:1;box-shadow:0 0 0 3px #00000059}.face-plus-btn:hover{filter:brightness(1.1)}.transform-toolbar,.face-mode-toolbar{border:1px solid var(--panel-border-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#12131ae0;border-radius:999px;gap:3px;padding:4px;display:flex;position:absolute;top:14px;box-shadow:0 4px 18px #00000059}.transform-toolbar{left:50%;transform:translate(-50%)}.face-mode-toolbar{right:16px}.transform-toolbar button,.face-mode-toolbar button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:7px 16px;font-size:12.5px;font-weight:500;transition:background .15s,color .15s}.transform-toolbar button:hover,.face-mode-toolbar button:hover{color:var(--text)}.transform-toolbar button.active,.face-mode-toolbar button.active{background:var(--accent-gradient);color:var(--accent-ink);font-weight:700}.asset-loading-pill{border:1px solid var(--panel-border-strong);color:var(--text-dim);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;font-variant-numeric:tabular-nums;background:#12131aeb;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-size:12.5px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 4px 18px #00000059}.pill-spinner{border:2px solid #e0b45c40;border-top-color:var(--accent);border-radius:50%;width:13px;height:13px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.status-toast{border-radius:var(--radius-s);border:1px solid var(--panel-border-strong);color:var(--text);background:#12131af0;padding:9px 14px;font-size:12.5px;position:absolute;bottom:18px;right:18px;box-shadow:0 4px 18px #00000059}.session-gallery{background:var(--panel-bg);border-left:1px solid var(--panel-border);flex-direction:column;flex-shrink:0;gap:10px;width:170px;padding:14px 12px;display:flex;overflow-y:auto}.session-gallery-title{text-transform:uppercase;letter-spacing:.8px;color:var(--text-dim);margin:0;font-size:11px;font-weight:700}.new-session-btn{border:1px dashed var(--panel-border-strong);border-radius:var(--radius-s);width:100%;color:var(--accent);cursor:pointer;background:0 0;padding:9px;font-size:12.5px;font-weight:600;transition:background .15s,border-color .15s}.new-session-btn:hover{border-color:var(--accent);background:#e0b45c12}.session-list{flex-direction:column;gap:10px;display:flex}.session-card{border:1px solid var(--panel-border);border-radius:var(--radius-m);cursor:pointer;background:var(--panel-bg-raised);padding:6px;transition:border-color .15s,transform .15s,box-shadow .15s;position:relative}.session-card:hover{border-color:var(--panel-border-strong);transform:translateY(-1px);box-shadow:0 6px 16px #0000004d}.session-card.active{border-color:var(--accent);box-shadow:0 0 0 1px #e0b45c59}.session-thumb{aspect-ratio:4/3;background:var(--input-bg);border-radius:6px;width:100%;overflow:hidden}.session-thumb img{object-fit:cover;width:100%;height:100%;display:block}.session-thumb-placeholder{background:linear-gradient(135deg,#171922 0%,#10121a 100%);width:100%;height:100%}.session-name{width:100%;color:var(--text);background:0 0;border:1px solid #0000;border-radius:4px;margin-top:6px;padding:3px 4px;font-size:12px}.session-name:hover,.session-name:focus{border-color:var(--panel-border);background:var(--input-bg);outline:none}.session-actions{opacity:0;gap:4px;transition:opacity .15s;display:flex;position:absolute;top:10px;right:10px}.session-card:hover .session-actions{opacity:1}.session-duplicate,.session-delete{width:20px;height:20px;color:var(--text);cursor:pointer;background:#000000a6;border:none;border-radius:50%;padding:0;font-size:11px;line-height:18px}.session-duplicate:hover{background:var(--accent);color:var(--accent-ink)}.session-delete:hover{background:var(--danger)}.splash{z-index:100;background:var(--bg);opacity:1;place-items:center;transition:opacity .45s;display:grid;position:fixed;inset:0}.splash.splash-out{opacity:0;pointer-events:none}.splash-inner{flex-direction:column;align-items:center;gap:14px;animation:.5s ease-out splash-rise;display:flex}@keyframes splash-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.splash-mark{width:52px;height:52px;color:var(--accent)}.splash-word{letter-spacing:-.3px;font-size:19px;font-weight:700}.splash-bar{background:#ffffff14;border-radius:2px;width:168px;height:3px;overflow:hidden}.splash-bar-fill{background:var(--accent-gradient);border-radius:2px;width:40%;height:100%;animation:1.1s ease-in-out infinite splash-slide}@keyframes splash-slide{0%{transform:translate(-100%)}to{transform:translate(420px)}}
