@layer tokens{:root{--color-bg:#111;--color-surface-1:#151515;--color-surface-2:#121212;--color-surface-3:#1a1a1a;--color-surface-4:#202020;--color-border:#2a2a2a;--color-text:#ddd;--color-text-muted:#bdbdbd;--color-white:#fff;--color-brand:#2b6cff;--color-brand-soft:#dbe5ff;--color-accent:#6aa2ff;--color-accent-strong:#4b84ff;--color-focus:#8fb2ff;--color-select-bg:#263247;--color-select-border:#3a4b68;--color-danger:#e5484d;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-pill:9999px;--blur-sm:6px;--blur-md:8px;--shadow-1:0 4px 12px rgba(0,0,0,.35);--shadow-2:0 8px 24px rgba(0,0,0,.35);--z-profile-menu:40;--z-topbar:30;--z-import-overlay:20;--z-transform-toolbar:12;--z-empty-hint:11;--z-camera-toolbar:9;--z-fov-slider:5;--z-camera-drag:2}}@layer base{body,html{height:100%;margin:0;background:var(--color-bg);color:var(--color-text);font:14px/1.4 system-ui,Segoe UI,Roboto;overflow-x:hidden}html{scroll-behavior:smooth}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}@layer layout{#shell{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}#editor{display:flex;flex:1 1 auto;min-height:0;width:100%}#viewport{flex:0 0 var(--viewport-stage-width,auto);width:var(--viewport-stage-width,auto);position:relative}}@layer components{#topbar{height:50px;background:var(--color-brand);color:var(--color-white);flex:0 0 auto;position:relative;z-index:var(--z-topbar)}#topbar .topbar-inner{height:100%;display:flex;align-items:center;gap:12px;padding:0 14px 0 9px}#topbar .brand{font-weight:700;font-size:18px;letter-spacing:.2px;color:var(--color-white);text-decoration:none}#topbar .brand span{color:var(--color-brand-soft)}#topbar .topbar-fill{flex:1 1 auto;display:flex;justify-content:center;align-items:center;min-height:32px}#topbar .cloud-status{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;border:1px solid hsla(0,0%,100%,.18);background:hsla(0,0%,100%,.08);color:var(--color-white);font-size:13px;line-height:1.2}#topbar .cloud-status.cloud-loading,#topbar .cloud-status.cloud-saving{color:var(--color-brand-soft);border-color:rgba(90,140,255,.35);background:rgba(90,140,255,.12)}#topbar .cloud-status.cloud-error{color:var(--color-danger);border-color:rgba(229,72,77,.55);background:rgba(229,72,77,.18)}#topbar .breadcrumb{display:flex;align-items:center;gap:8px}#topbar .breadcrumb .logo{display:inline-flex;align-items:center;height:24px}#topbar .breadcrumb .logo img{display:block;height:24px;width:24px}#topbar .breadcrumb .crumb-wrap{display:inline-flex;align-items:center;gap:6px}#topbar .breadcrumb .crumb{display:inline-flex;align-items:center;color:var(--color-white);text-decoration:none;font-size:17px;line-height:1}#topbar .breadcrumb .crumb:hover{text-decoration:underline}#topbar .breadcrumb .crumb.current{opacity:.9;pointer-events:none;cursor:default}#topbar .breadcrumb .crumb-edit-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-left:0;border-radius:0;border:0 solid hsla(0,0%,100%,.28);background:transparent;color:hsla(0,0%,100%,.9);cursor:pointer}#topbar .breadcrumb .crumb-edit-btn:hover{background:hsla(0,0%,100%,.12)}#topbar .breadcrumb .crumb-edit-btn:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}#topbar .breadcrumb input.crumb{color:var(--color-white);background:transparent;border:1px solid hsla(0,0%,100%,.35);border-radius:6px;padding:3px 6px;font:inherit;line-height:1;width:auto;min-width:8ch}#topbar .breadcrumb input.crumb:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}#topbar .breadcrumb .sep{display:inline-flex;align-items:center;opacity:.8}#topbar .profile-btn{width:36px;height:36px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;background:hsla(0,0%,100%,.16);color:var(--color-white);border:1px solid hsla(0,0%,100%,.25);cursor:pointer}#topbar .profile-btn:hover{background:hsla(0,0%,100%,.24)}#topbar .profile-btn:focus-visible{outline:3px solid var(--color-brand-soft);outline-offset:2px}#topbar .profile-wrap{position:relative}#topbar .profile-menu{position:absolute;right:0;top:calc(100% + 8px);width:240px;background:var(--color-surface-1);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-2);padding:8px;z-index:var(--z-profile-menu);opacity:0;transform:translateY(-6px) scale(.98);transform-origin:top right;transition:opacity .16s ease,transform .16s ease;pointer-events:none}#topbar .profile-menu.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}#topbar .profile-menu .profile-card{padding:8px;border-radius:var(--radius-md);background:#1b1b1b;border:1px solid var(--color-border);margin-bottom:8px}#topbar .profile-menu .profile-name{font-weight:700;color:var(--color-white)}#topbar .profile-menu .profile-email{font-size:12px;color:var(--color-text-muted)}#topbar .profile-menu hr{border:none;border-top:1px solid var(--color-border);margin:6px 0}#topbar .profile-menu .menu-item{width:100%;text-align:left;padding:8px 10px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text);cursor:pointer;display:flex;align-items:center;gap:8px}#topbar .profile-menu .menu-item:hover{background:#202020}#topbar .profile-menu .menu-item:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}}@layer components{#outliner{flex:0 0 auto;width:max(260px,calc(var(--editor-width, 100vw) - var(--viewport-stage-width, 0px)));background:var(--color-surface-1);border-right:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden;--icon-col-width:18px;--prompt-col-width:110px;--child-indent:16px}#outliner h3{margin:10px 12px;font-size:13px;color:#999;text-transform:uppercase;letter-spacing:.08em}.outliner-header{display:grid;grid-template-columns:var(--icon-col-width) 1fr var(--prompt-col-width);grid-gap:6px;gap:6px;padding:6px 10px;border-bottom:1px solid var(--color-border);color:#bdbdbd;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.outliner-header .col-prompt{text-align:right}.outliner-search{padding:6px 10px 8px;border-bottom:1px solid var(--color-border)}.outliner-search input{width:100%;box-sizing:border-box;height:28px;border-radius:var(--radius-sm,6px);border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text);padding:0 8px;outline:none}.outliner-search input:focus{border-color:#3a3a3a}#list{list-style:none;margin:0;padding:0;flex:1 1 auto;min-height:0;overflow:auto;scrollbar-width:auto;scrollbar-color:#3a3a3a transparent}#list::-webkit-scrollbar{width:12px}#list::-webkit-scrollbar-track{background:transparent}#list::-webkit-scrollbar-thumb{background-color:#2f2f2f;border-radius:8px;border:2px solid var(--color-surface-1)}#list::-webkit-scrollbar-thumb:hover{background-color:#3b3b3b}#list li{padding:8px 12px;border-bottom:1px solid var(--color-border);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:grid;grid-template-columns:var(--icon-col-width) 1fr var(--prompt-col-width);grid-column-gap:6px;column-gap:6px;align-items:center}#list li:hover{background:#1e1e1e}#list li.active{background:var(--color-select-bg,rgba(56,119,255,.14))}#list li:focus-visible{outline:2px solid var(--color-accent,#6aa2ff);outline-offset:-2px}#list li.outliner-group{cursor:pointer}.outliner-toggle{width:18px;height:18px;line-height:16px;text-align:center;border:1px solid var(--color-border);background:var(--color-surface-3,#161616);color:#cfcfcf;border-radius:var(--radius-xs,4px);cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center}.outliner-toggle:hover{background:#232323}.outliner-group-label{color:var(--color-text)}.outliner-item .outliner-item-label{padding-left:var(--child-indent)}.outliner-group-label,.outliner-item .outliner-item-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.outliner-icon{width:10px;height:10px;display:inline-block}.outliner-icon.icon-leaf{background:#d0d0d0;border-radius:50%}.outliner-item .outliner-icon{margin-left:var(--child-indent)}.prompt-col{display:inline-flex;align-items:center;justify-content:flex-end}#list li.outliner-group,#list li.outliner-group *,.outliner-item,.outliner-item *{-moz-user-select:none;user-select:none;-webkit-user-select:none;-ms-user-select:none}mark{background:rgba(255,230,0,.35);color:inherit;padding:0 1px;border-radius:2px}.prompt-icon-set{gap:.25rem}.prompt-icon-button,.prompt-icon-set{display:inline-flex;align-items:center}.prompt-icon-button{border:none;background:transparent;padding:2px;border-radius:4px;justify-content:center;color:inherit;transition:background-color .15s ease,transform .15s ease}.prompt-icon-button.clickable{cursor:pointer}.prompt-icon-button.clickable:focus-visible,.prompt-icon-button.clickable:hover{background-color:rgba(106,162,255,.18)}.prompt-icon-button.root.clickable:focus-visible,.prompt-icon-button.root.clickable:hover{background-color:hsla(0,0%,100%,.16)}.prompt-icon-button:focus-visible{outline:2px solid var(--color-accent,#6aa2ff);outline-offset:2px}.prompt-icon-static{display:inline-flex;align-items:center;justify-content:center}.outliner-notes{flex:0 0 auto;padding:12px 10px 14px;border-top:1px solid var(--color-border);background:var(--color-surface-1);display:flex;flex-direction:column;gap:12px}.outliner-notes-title{margin:0;font-size:12px;color:#bdbdbd;text-transform:uppercase;letter-spacing:.05em}.outliner-note{display:flex;flex-direction:column;gap:6px}.outliner-note-textarea{width:100%;box-sizing:border-box;height:100px;min-height:100px;max-height:100px;resize:none;border-radius:var(--radius-sm,6px);border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text);padding:8px;font-family:inherit;font-size:13px;line-height:1.4;outline:none;scrollbar-width:thin;scrollbar-color:hsla(0,0%,47%,.5) transparent}.outliner-note-textarea:focus{border-color:#3a3a3a}.outliner-note-textarea:disabled{cursor:not-allowed;color:#8f8f8f;background:var(--color-surface-3,#161616);border-color:var(--color-border)}.outliner-note-textarea.is-disabled{color:#8f8f8f}.outliner-note-textarea.is-placeholder{color:#9a9a9a}.outliner-note-textarea::-webkit-scrollbar{width:10px}.outliner-note-textarea::-webkit-scrollbar-track{background:transparent}.outliner-note-textarea::-webkit-scrollbar-thumb{background:linear-gradient(180deg,hsla(0,0%,51%,.4),hsla(0,0%,59%,.6));border-radius:8px;border:2px solid hsla(0,0%,8%,.65)}.outliner-note-textarea::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,hsla(0,0%,61%,.5),hsla(0,0%,75%,.7))}}@layer components{#viewport .viewport-stage{position:absolute;top:0;right:0;left:auto;bottom:auto;transform:none;z-index:1;opacity:0;transition:opacity .12s ease}#viewport .viewport-stage canvas{display:block;position:absolute;inset:0;z-index:0}#viewport .viewport-stage[data-ready="1"]{opacity:1}.empty-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--color-white);opacity:.5;font-size:60px;line-height:1.1;z-index:var(--z-empty-hint);pointer-events:none}.empty-hint .icon{width:80px;height:80px;margin-bottom:50px}.empty-hint .line1{font-weight:600;white-space:nowrap}.empty-hint .line2{margin-top:12px;font-weight:400;font-size:20px;white-space:nowrap}#tools button,#transform-tools button{width:40px!important;height:40px!important;padding:0!important;font-size:18px!important;line-height:1!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}#tools button img,#tools button svg,#transform-tools button img,#transform-tools button svg{width:22px!important;height:22px!important}.toolbar{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:6px;z-index:10}.toolbar button,.transform-toolbar button{width:28px;height:28px;font-size:12px;line-height:1;background:#1c1c1c;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;padding:0}.toolbar button:hover,.transform-toolbar button:hover{background:#252525}.transform-toolbar{position:absolute;top:10px;left:50%;transform:translateX(-50%);display:flex;flex-direction:row;gap:6px;z-index:var(--z-transform-toolbar);pointer-events:auto}.transform-toolbar button.is-active{background:var(--color-select-bg);border-color:var(--color-select-border);color:var(--color-white)}.import-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(0,0,0,.35);z-index:var(--z-import-overlay);color:var(--color-text);gap:10px;pointer-events:none}.import-overlay .spinner{width:28px;height:28px;border:3px solid hsla(0,0%,100%,.3);border-top:3px solid var(--color-white);border-radius:var(--radius-pill);animation:spin 1s linear infinite}.import-overlay .label{font-size:13px;opacity:.9}.import-overlay .error{color:#f88;background:rgba(0,0,0,.4);padding:6px 10px;border-radius:var(--radius-sm)}}@layer components{@keyframes spin{to{transform:rotate(1turn)}}}@layer components{.fov-slider-wrap{position:absolute;right:15px;top:50px;bottom:var(--fov-bottom,50px);width:18px;display:flex;align-items:center;justify-content:center;pointer-events:auto;background:hsla(0,0%,7%,.6);border:1px solid hsla(0,0%,100%,.08);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));border-radius:60px;padding:0;box-sizing:border-box;box-shadow:var(--shadow-2),inset 0 1px 0 hsla(0,0%,100%,.05);z-index:var(--z-fov-slider)}.fov-slider-horizontal{width:240px!important;height:40px!important;padding:0 12px!important}.fov-slider{height:100%;width:100%;display:flex;align-items:center;justify-content:center;position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fov-slider .slider-track{position:relative;border-radius:9999px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.06),inset 0 2px 6px rgba(0,0,0,.35)}.fov-slider[data-orientation=vertical] .slider-track{height:100%;width:3px;background:linear-gradient(180deg,#202020,#151515)}.fov-slider[data-orientation=horizontal] .slider-track{width:100%;height:3px;background:linear-gradient(90deg,#202020,#151515)}.fov-slider .slider-range{position:absolute;background:linear-gradient(180deg,var(--color-accent) 0,var(--color-accent-strong) 100%);border-radius:inherit}.fov-slider[data-orientation=horizontal] .slider-range{height:100%}.fov-slider[data-orientation=vertical] .slider-range{width:100%}.fov-slider .slider-thumb{width:18px;height:18px;border-radius:9999px;background:hsla(0,0%,100%,.9);border:1px solid hsla(0,0%,100%,.6);-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));box-shadow:0 6px 16px rgba(0,0,0,.35);position:relative}.fov-slider[data-orientation=vertical] .slider-thumb{width:22px;height:22px;background:transparent;border:none;box-shadow:none}.fov-slider[data-orientation=vertical] .slider-thumb:before{content:"";position:absolute;left:50%;top:50%;width:2px;height:14px;transform:translate(-50%,-50%) rotate(90deg);background:hsla(0,0%,100%,.9);border:0;border-radius:9999px;box-shadow:0 6px 16px rgba(0,0,0,.35)}.fov-slider .slider-thumb:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.fov-slider .slider-thumb .slider-value{position:absolute;opacity:0;transition:opacity .12s ease;background:var(--color-surface-2);color:var(--color-white);padding:2px 6px;border-radius:var(--radius-sm);font-size:11px;line-height:1.2;border:1px solid var(--color-border);box-shadow:0 4px 10px rgba(0,0,0,.35);pointer-events:none;white-space:nowrap}.fov-slider .slider-thumb .slider-value:after{content:"";position:absolute;border:6px solid transparent}.fov-slider:hover .slider-value,.fov-slider[data-dragging=true] .slider-value{opacity:1}.fov-slider[data-orientation=vertical] .slider-thumb .slider-value{right:calc(100% + 24px);top:50%;transform:translateY(-50%)}.fov-slider[data-orientation=vertical] .slider-thumb .slider-value:after{left:100%;top:50%;transform:translateY(-50%);border-left-color:var(--color-surface-2)}.fov-slider[data-orientation=horizontal] .slider-thumb .slider-value{left:50%;bottom:calc(100% + 10px);transform:translateX(-50%)}.fov-slider[data-orientation=horizontal] .slider-thumb .slider-value:after{left:50%;top:100%;transform:translateX(-50%);border-top-color:var(--color-surface-2)}.prompt-wrap{position:absolute;left:0;right:0;bottom:var(--prompt-bottom,58px);display:flex;flex-direction:column;align-items:center;pointer-events:auto;z-index:2}.prompt-inner{width:calc(100% - 260px);max-width:100%}.prompt-body{display:flex;align-items:center;justify-content:flex-start;width:100%}.prompt-input-wrap{flex:1 1 auto;min-width:0}.prompt-apply-wrap,.prompt-input-wrap{border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));background:rgba(0,0,0,.001)}.prompt-apply-wrap{flex:0 0 auto;margin-left:8px}.prompt-hint{width:100%;text-align:left;margin-bottom:6px;font-size:12px;color:var(--color-text,#ddd)}.prompt-hint-box{display:inline-block;background:rgba(0,0,0,.093);border:1px solid hsla(0,0%,100%,.2);border-radius:var(--radius-pill);padding:6px 10px}.prompt-hint .warn{color:#ff4d4f;font-weight:600}.prompt-input{height:44px;flex:1 1 auto;min-width:0;margin:0;padding:0 16px;border:1px solid hsla(0,0%,100%,.2);background:rgba(0,0,0,.35);color:var(--color-white);border-radius:var(--radius-pill);outline:none;box-shadow:0 2px 6px rgba(0,0,0,.25);-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));background-clip:padding-box;width:100%;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.prompt-input.is-inherited{color:#ffd966}.prompt-input:disabled{opacity:.5;background:rgba(0,0,0,.2);cursor:default}.prompt-apply{height:44px;margin-left:0;padding:0 14px;border-radius:var(--radius-pill);border:1px solid hsla(0,0%,100%,.25);background:rgba(0,0,0,.45);color:var(--color-white);box-shadow:0 2px 6px rgba(0,0,0,.25);-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));background-clip:padding-box;cursor:pointer}.prompt-apply:hover{background:rgba(0,0,0,.55)}.prompt-apply:disabled{opacity:.6;cursor:default}.prompt-confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;z-index:calc(var(--z-topbar) + 5)}.prompt-confirm-dialog{background:var(--color-surface-3);border:1px solid var(--color-border);box-shadow:var(--shadow-2);border-radius:var(--radius-md);padding:16px;min-width:360px;max-width:90vw;color:var(--color-text)}.prompt-confirm-body{font-size:14px;line-height:1.4;margin-bottom:12px}.prompt-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.btn{height:36px;padding:0 14px;border-radius:var(--radius-pill);font-weight:600;border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:transform .12s ease,background-color .12s ease,border-color .12s ease,box-shadow .12s ease,color .12s ease,opacity .12s ease}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0) scale(.98)}}@layer components{.btn:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.btn:disabled{opacity:.6;cursor:default;pointer-events:none}.btn-primary{background:var(--color-brand);color:var(--color-white)}.btn-primary:hover{background:var(--color-accent-strong)}.btn-primary:active{background:var(--color-brand)}.btn-ghost{background:transparent;border-color:var(--color-brand);color:var(--color-white)}.btn-ghost:hover{background:hsla(0,0%,100%,.06);border-color:var(--color-brand-soft)}.btn-ghost:active{background:hsla(0,0%,100%,.1);border-color:var(--color-accent-strong)}.camera-toolbar{--thumb-width:200px;position:absolute;left:10px;right:10px;bottom:10px;z-index:var(--z-camera-toolbar);pointer-events:auto;background:rgba(0,0,0,.4);border:1px solid hsla(0,0%,100%,.08);-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));border-radius:var(--radius-lg);box-shadow:var(--shadow-2),inset 0 1px 0 hsla(0,0%,100%,.05);padding:8px 10px;box-sizing:border-box}.camera-toolbar .camera-list{display:flex;flex-direction:row;gap:10px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}}@layer components{.camera-toolbar .camera-list::-webkit-scrollbar{display:none;height:0;width:0}.camera-thumb{position:relative;flex:0 0 auto;width:var(--thumb-width);aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-bg);border:1px solid #292929;box-shadow:0 4px 12px rgba(0,0,0,.35);opacity:.8;transition:opacity 0ms ease,box-shadow 0ms ease,transform 0ms ease,border-color 0ms ease,outline-color 0ms ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.camera-thumb img{width:100%;height:100%;object-fit:cover;display:block}.camera-thumb:hover{opacity:.9}.camera-thumb.is-selected{opacity:1;outline:2px solid #09f;outline-offset:-1px;box-shadow:0 6px 16px rgba(0,0,0,.45),inset 0 0 0 2px rgba(106,162,255,.35)}.camera-thumb:focus-visible{outline:2px solid hsla(0,0%,100%,.7);outline-offset:2px}.camera-thumb.dragging{z-index:var(--z-camera-drag);transform:scale(1.02);opacity:0}.camera-thumb.is-overlay{width:var(--thumb-width);aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 6px 18px rgba(0,0,0,.5),inset 0 0 0 2px rgba(106,162,255,.35);will-change:transform;pointer-events:none}.camera-thumb--drop-hidden{opacity:0!important;visibility:hidden;transition:none!important}.camera-thumb .gen-badge{position:absolute;left:8px;bottom:8px;font-size:12px;line-height:1;padding:4px 8px;border-radius:9999px;background:rgba(0,0,0,.65);color:#fff;border:1px solid hsla(0,0%,100%,.18);box-shadow:0 2px 6px rgba(0,0,0,.35);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.camera-thumb .delete{position:absolute;top:6px;right:6px;width:32px;height:32px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;background:rgba(0,0,0,.65);color:#eee;border:1px solid hsla(0,0%,100%,.12);cursor:pointer;opacity:0;transition:opacity .12s ease,background .12s ease}.camera-thumb:hover .delete{opacity:1}.camera-thumb .delete:hover{background:rgba(0,0,0,.8)}.camera-thumb .delete:disabled{opacity:.6;cursor:default}.camera-thumb.ghost{border:1px dashed hsla(0,0%,100%,.35);color:hsla(0,0%,100%,.8);background:rgba(0,0,0,.4);cursor:pointer}.camera-thumb.ghost,.camera-thumb.ghost .ghost-inner{display:flex;align-items:center;justify-content:center}.camera-thumb.ghost .ghost-inner{width:100%;height:100%}.camera-thumb.ghost:hover{opacity:.85;border-color:hsla(0,0%,100%,.6)}.camera-slider{position:relative;margin-top:8px;height:14px;display:flex;align-items:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.camera-slider.is-inactive{opacity:.15;filter:grayscale(10%)}.camera-slider[aria-disabled=true]{pointer-events:none}.camera-slider-track{position:relative;width:100%;height:6px;background:linear-gradient(90deg,#101010,#0a0a0a);border-radius:9999px;border:1px solid hsla(0,0%,100%,.06);box-shadow:inset 0 1px 2px rgba(0,0,0,.6);cursor:pointer}.camera-slider-thumb{position:absolute;top:50%;transform:translateY(-50%);height:7px;background:linear-gradient(180deg,#181818,#2b2b2b);border:1px solid hsla(0,0%,100%,.18);border-radius:9999px;box-shadow:0 2px 8px rgba(0,0,0,.42),inset 0 0 0 1px hsla(0,0%,100%,.14);cursor:default}.camera-slider-thumb:active{cursor:default}.camera-slider.is-inactive .camera-slider-track{background:linear-gradient(90deg,#0e0e0e,#080808);border-color:hsla(0,0%,100%,.05)}.camera-slider.is-inactive .camera-slider-thumb{background:linear-gradient(180deg,#5a5a5a,#404040);border-color:hsla(0,0%,100%,.16);box-shadow:0 2px 6px rgba(0,0,0,.46),inset 0 0 0 1px hsla(0,0%,100%,.1)}@media (prefers-reduced-motion:reduce){.camera-thumb{transition:none}.camera-toolbar *{scroll-behavior:auto!important}}}@layer components{.generate-wrap{position:absolute;top:30px;right:70px;z-index:13}.generate-button{height:48px;padding:0 28px;min-width:48px;border-radius:24px;background:var(--color-brand);color:var(--color-white);border:1px solid hsla(0,0%,100%,.18);box-shadow:0 6px 16px rgba(0,0,0,.35),inset 0 0 0 1px hsla(0,0%,100%,.08);display:inline-flex;align-items:center;justify-content:center;font-weight:600;letter-spacing:.2px;cursor:pointer;pointer-events:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none}.generate-button:hover{filter:brightness(1.06)}.generate-button:active{transform:translateY(.5px);filter:brightness(.98)}.generate-button:focus-visible{outline:3px solid var(--color-brand-soft);outline-offset:2px}.generate-menu{position:absolute;right:0;top:100%;width:100%;background:var(--color-surface-1);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-2);padding:8px;box-sizing:border-box;overflow:visible;opacity:0;transform:translateY(-6px) scale(.98);transform-origin:top right;transition:opacity .16s ease,transform .16s ease;pointer-events:none}.generate-wrap.is-open .generate-menu{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.generate-menu .menu-item{width:100%;text-align:left;padding:8px 10px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text);cursor:pointer;display:block;position:relative}.generate-menu .menu-item:hover{background:#202020}.generate-menu .menu-item:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}.generate-menu .menu-item.is-selected{background:var(--color-select-bg);border-color:var(--color-select-border);color:var(--color-white)}.generate-menu .menu-item .label{display:block;font-weight:600}.generate-menu .menu-item .hint{position:absolute;right:calc(100% + 10px);top:50%;transform:translateY(-50%) scale(.98);transform-origin:right center;background:var(--color-surface-2);color:var(--color-white);padding:6px 8px;border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-1);white-space:nowrap;pointer-events:none;z-index:2;opacity:0;transition:opacity .16s ease,transform .16s ease}.generate-menu .menu-item .hint:after{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border-left:6px solid var(--color-surface-2);border-top:6px solid transparent;border-bottom:6px solid transparent}.generate-menu .menu-item:focus .hint,.generate-menu .menu-item:hover .hint{opacity:1;transform:translateY(-50%) scale(1)}.generate-menu .start-button{display:block;width:100%;height:44px;margin-top:8px;border-radius:24px;background:#e5484d;color:var(--color-white);border:1px solid hsla(0,0%,100%,.18);box-shadow:0 4px 12px rgba(0,0,0,.35);font-weight:700;letter-spacing:.2px;cursor:pointer}.generate-menu .start-button:hover{filter:brightness(1.06)}.generate-menu .start-button:active{transform:translateY(.5px);filter:brightness(.98)}.generate-menu .start-button:focus-visible{outline:3px solid rgba(255,90,90,.5);outline-offset:2px}}@layer components{.project-card{transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,opacity .14s ease;will-change:transform}.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-1);border-color:var(--color-select-border)}.project-card:active{transform:translateY(0) scale(.99)}.icon-btn{transition:transform .12s ease,background-color .12s ease,border-color .12s ease,opacity .12s ease;will-change:transform}.icon-btn:hover{transform:translateY(-1px);background-color:rgba(0,0,0,.55);border-color:hsla(0,0%,100%,.35)}.icon-btn:active{transform:translateY(0) scale(.96);background-color:rgba(0,0,0,.6);border-color:hsla(0,0%,100%,.5)}.row-scroll{scrollbar-color:var(--color-select-border) var(--color-surface-2);scrollbar-width:thin}.row-scroll::-webkit-scrollbar{height:10px}.row-scroll::-webkit-scrollbar-track{background:var(--color-surface-2);border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px var(--color-border)}.row-scroll::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--color-select-border),var(--color-select-border));border-radius:var(--radius-md);border:1px solid var(--color-border)}.row-scroll::-webkit-scrollbar-thumb:hover{background:var(--color-accent-strong);border-color:var(--color-accent-strong)}.gallery-grid{margin-top:8px}.gallery-card__actions{position:absolute;top:8px;right:8px;display:flex;gap:6px}.gallery-card__tag{display:flex;align-items:flex-end;min-width:0;pointer-events:none}.gallery-card__tag .thumb-pill{pointer-events:auto}.thumb-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:9999px;background:rgba(0,0,0,.65);color:#fff;border:1px solid hsla(0,0%,100%,.18);box-shadow:0 2px 6px rgba(0,0,0,.35);font-size:12px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.management-panel-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.6);z-index:calc(var(--z-topbar) + 6)}.management-panel-dialog{background:var(--color-surface-3);border:1px solid var(--color-border);box-shadow:var(--shadow-2);border-radius:var(--radius-md);padding:18px;width:min(320px,calc(100vw - 32px));display:grid;grid-gap:12px;gap:12px}.management-panel-input{padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-1);color:var(--color-white);font-size:15px;outline:none;transition:border-color .12s ease}.management-panel-input:focus{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent-transparent)}.management-panel-input:disabled{opacity:.7}.management-panel-feedback{display:grid;grid-gap:4px;gap:4px;margin:4px 0 0}.management-panel-feedback-line{margin:0;color:var(--color-status-warning);font-size:12px}.runpod-overlay{position:absolute;top:50%;left:50%;width:150px;height:75px;transform:translate(-50%,-50%);background:rgba(18,20,24,.95);border:1px solid rgba(98,108,124,.65);border-radius:14px;box-shadow:0 14px 32px rgba(0,0,0,.5);pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--color-text,#eef2ff);z-index:6;padding:12px;text-align:center;-webkit-backdrop-filter:none;backdrop-filter:none}.runpod-overlay[data-variant=success]{border-color:rgba(74,222,128,.7);color:rgba(190,242,193,.95)}.runpod-overlay[data-variant=error]{border-color:hsla(0,91%,71%,.75);color:hsla(0,96%,89%,.95)}.runpod-overlay[data-dismissible=true]{pointer-events:auto}.runpod-overlay__spinner{position:relative;width:28px;height:28px}.runpod-overlay__spinner:before{content:"";position:absolute;inset:0;border-radius:50%;border-color:currentcolor currentcolor transparent transparent;border-style:solid;border-width:3px;animation:runpod-overlay-spin .85s linear infinite}.runpod-overlay[data-variant=success] .runpod-overlay__spinner:before{border-top-color:rgba(74,222,128,.9);border-right-color:rgba(74,222,128,.9)}.runpod-overlay[data-variant=error] .runpod-overlay__spinner:before{border-top-color:hsla(0,91%,71%,.9);border-right-color:hsla(0,91%,71%,.9);animation:none}.runpod-overlay__message{margin:0;font-size:12px;line-height:1.3;letter-spacing:.02em}.runpod-overlay__close{position:absolute;top:6px;right:6px;width:20px;height:20px;border:0;padding:0;border-radius:50%;background:rgba(15,17,22,.85);color:inherit;font-size:14px;line-height:20px;cursor:pointer;transition:background .16s ease,color .16s ease}}@layer components{.runpod-overlay__close:focus-visible,.runpod-overlay__close:hover{background:hsla(0,91%,71%,.2);color:hsla(0,83%,84%,.95);outline:none}.runpod-overlay__cancel{position:absolute;top:6px;right:6px;width:20px;height:20px;border:0;padding:0;background:transparent;color:rgba(148,163,184,.75);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .16s ease}.runpod-overlay__cancel:focus-visible,.runpod-overlay__cancel:hover{color:hsla(0,91%,71%,.9);outline:none}.runpod-overlay__cancel-icon{font-size:14px;line-height:1}@keyframes runpod-overlay-spin{to{transform:rotate(1turn)}}}@layer components{.capture-progress-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(8,11,24,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:calc(var(--z-topbar) + 7)}.capture-progress-dialog{background:transparent;border:none;padding:0;min-width:0;max-width:calc(100vw - 32px)}.capture-progress-card{width:min(420px,calc(100vw - 48px));margin:0;padding:28px 32px;border-radius:18px;background:linear-gradient(150deg,rgba(15,23,42,.92),rgba(30,41,59,.85));border:1px solid rgba(148,163,184,.25);box-shadow:0 32px 60px rgba(15,23,42,.55);color:#e2e8f0;display:flex;flex-direction:column;gap:20px}.capture-progress-title{margin:0;font-size:22px;font-weight:700;color:#f8fafc;letter-spacing:.01em}.capture-progress-status{margin:0;font-size:16px;font-weight:500;color:rgba(203,213,225,.9)}.capture-progress-status.is-error{color:#fecaca}.capture-progress-track{position:relative;width:100%;height:12px;border-radius:999px;background:rgba(30,41,59,.65);border:1px solid rgba(148,163,184,.4);overflow:hidden}.capture-progress-fill{position:absolute;inset:0 auto 0 0;width:0;border-radius:inherit;background:linear-gradient(135deg,rgba(59,130,246,.95),rgba(14,165,233,.88));box-shadow:0 10px 18px rgba(14,165,233,.32);transition:width .16s ease}.capture-progress-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;color:rgba(148,163,184,.78)}.capture-progress-step{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.capture-progress-percent{color:#f8fafc;font-size:14px;font-weight:600}.capture-progress-actions{display:flex;justify-content:flex-end}.capture-progress-close{padding:10px 20px;border-radius:999px;background:rgba(30,41,59,.92);color:#e2e8f0;border:1px solid rgba(148,163,184,.45);font-size:14px;font-weight:600;cursor:pointer;transition:background .14s ease,transform .12s ease}.capture-progress-close:hover{background:rgba(51,65,85,.92);transform:translateY(-1px)}.capture-progress-close:active{transform:translateY(0)}.capture-progress-close:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}body.capture-progress-active{overflow:hidden}body.capture-progress-active #shell{filter:blur(6px);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}}@layer utilities{@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}}@layer tokens, base, layout, components, utilities;