@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{color-scheme:dark;--bg-color: #1a1a1e;--glass-bg: rgba(40, 40, 44, .75);--glass-border: rgba(255, 255, 255, .08);--text-color: #f0f0f2;--accent-color: #4da3ff;--muted: #8e8e93;--btn-bg: rgba(255, 255, 255, .08);--btn-border: rgba(255, 255, 255, .06);--subtle-bg: rgba(255, 255, 255, .04);--subtle-border: rgba(255, 255, 255, .06);--dashed-border: rgba(255, 255, 255, .12);--divider: rgba(255, 255, 255, .08)}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;overflow:hidden;background:radial-gradient(circle at center,#232326 0%,var(--bg-color) 100%);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text-color);-webkit-font-smoothing:antialiased}.tab-bar{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;gap:4px;padding:12px 24px;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border)}.tab-bar a{text-decoration:none;font-size:13px;font-weight:500;padding:8px 18px;border-radius:10px;color:var(--muted);transition:all .3s cubic-bezier(.16,1,.3,1)}.tab-bar a:hover{color:var(--text-color);background:#ffffff0d}.tab-bar a.active{background:#0071e31a;color:var(--accent-color);font-weight:600}.btn{background:var(--btn-bg);border:1px solid var(--btn-border);border-radius:12px;padding:10px 16px;font-size:13px;font-weight:500;color:var(--text-color);cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center;gap:8px;outline:none}.btn:hover:not(:disabled){background:var(--glass-bg);transform:translateY(-1px);box-shadow:0 4px 12px #0000001a;color:var(--accent-color)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:16px;height:16px;opacity:.7;transition:opacity .3s ease}.btn:hover:not(:disabled) svg{opacity:1}.toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%) translateY(100px);background:#28282ce6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--text-color);padding:12px 24px;border-radius:100px;font-size:14px;font-weight:500;box-shadow:0 10px 30px #0003;border:1px solid var(--glass-border);transition:transform .4s cubic-bezier(.16,1,.3,1);z-index:100;pointer-events:none}.toast.show{transform:translate(-50%) translateY(0)}.home-container{position:fixed;top:0;left:0;right:0;bottom:0;overflow-y:auto;padding-top:80px;background:linear-gradient(135deg,#232326cc,#1a1a1e,#0f0f14e6)}.home-content{max-width:1200px;margin:0 auto;padding:60px 24px;display:flex;flex-direction:column;gap:80px}.hero{text-align:center;animation:fadeInDown .6s cubic-bezier(.16,1,.3,1)}.hero-text h1{font-size:clamp(32px,8vw,64px);font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,#f0f0f2,#a0a0a5);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 16px;line-height:1.1}.hero-text p{font-size:18px;font-weight:400;color:#a0a0a5;max-width:600px;margin:0 auto;line-height:1.6}.tiles-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:24px;animation:fadeInUp .7s cubic-bezier(.16,1,.3,1) .1s backwards}.tile-card{display:flex;flex-direction:column;gap:20px;padding:32px 28px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:20px;cursor:pointer;transition:all .4s cubic-bezier(.16,1,.3,1);outline:none;text-align:left;color:inherit;font-family:inherit;position:relative;overflow:hidden}.tile-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 50% 0%,rgba(77,163,255,.1),transparent 70%);opacity:0;transition:opacity .4s ease;pointer-events:none}.tile-card:hover{background:#323238d9;border-color:#4da3ff4d;transform:translateY(-8px);box-shadow:0 20px 40px #0006,0 0 40px #4da3ff1a}.tile-card:hover:before{opacity:1}.tile-card:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}.tile-card:active{transform:translateY(-4px)}.tile-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:#4da3ff1a;border-radius:14px;color:var(--accent-color);transition:all .4s cubic-bezier(.16,1,.3,1)}.tile-card:hover .tile-icon{background:#4da3ff33;transform:scale(1.1)}.tile-content{display:flex;flex-direction:column;gap:8px;flex:1}.tile-title{font-size:20px;font-weight:600;color:var(--text-color);margin:0;letter-spacing:-.01em}.tile-description{font-size:14px;color:var(--muted);margin:0;line-height:1.6;transition:color .3s ease}.tile-card:hover .tile-description{color:#a0a0a5}.tile-arrow{display:flex;align-items:center;justify-content:flex-end;color:var(--accent-color);opacity:.6;transition:all .4s cubic-bezier(.16,1,.3,1)}.tile-card:hover .tile-arrow{opacity:1;transform:translate(4px)}.home-footer{text-align:center;padding:0 24px;animation:fadeInUp .7s cubic-bezier(.16,1,.3,1) .2s backwards}.home-footer p{font-size:13px;color:var(--muted);margin:0;letter-spacing:.01em;text-transform:uppercase}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.home-content{padding:40px 16px;gap:60px}.hero-text h1{font-size:40px}.hero-text p{font-size:16px}.tiles-grid{grid-template-columns:1fr;gap:16px}.tile-card{padding:24px 20px;gap:16px}}@media(max-width:480px){.home-container{padding-top:70px}.home-content{padding:32px 12px;gap:48px}.hero-text h1{font-size:28px}.hero-text p{font-size:14px}.tile-card{padding:20px 16px;gap:12px}.tile-title{font-size:18px}.tile-description{font-size:13px}}.pose-editor-studio{position:fixed;top:60px;left:0;right:0;bottom:0;height:calc(100vh - 60px);overflow:hidden;background:#000;color:#f5f5f7;font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column}.studio-topbar{flex-shrink:0;height:60px;display:flex;align-items:center;padding:0 24px;background:#1c1c1ebf;backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);border-bottom:1px solid rgba(255,255,255,.1);z-index:100;position:relative}.studio-logo{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:600;letter-spacing:-.01em;color:#fff}.studio-logo-icon{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,#0a84ff,#5e5ce6);display:grid;place-items:center;font-size:14px;box-shadow:0 4px 12px #0a84ff4d}.step-breadcrumbs{margin-left:48px;display:flex;align-items:center;gap:12px}.breadcrumb-item{font-size:13px;font-weight:500;color:#fff6;letter-spacing:-.01em;transition:color .3s ease}.breadcrumb-item.active{color:#fff;font-weight:600}.breadcrumb-separator{width:14px;height:14px;color:#fff3}.studio-spacer{flex:1}.topbar-actions{display:flex;align-items:center;gap:24px}.panel-toggles,.export-actions,.history-controls{display:flex;align-items:center;gap:8px;background:#ffffff0d;padding:4px;border-radius:12px;border:1px solid rgba(255,255,255,.05)}.topbar-btn.icon-btn{width:32px;padding:0;justify-content:center;font-size:16px}.topbar-btn{display:flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:8px;border:none;background:transparent;color:#ffffffb3;font:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.25,.1,.25,1)}.topbar-btn svg{width:16px;height:16px;opacity:.8}.topbar-btn:hover:not(:disabled){color:#fff;background:#ffffff14}.topbar-btn.active{background:#ffffff26;color:#fff;box-shadow:0 2px 8px #0003}.topbar-btn.primary{background:#0a84ff;color:#fff}.topbar-btn.primary:hover:not(:disabled){background:#0071e3;box-shadow:0 4px 12px #0a84ff66}.topbar-btn:disabled{opacity:.3;cursor:not-allowed}.studio-main{flex:1;position:relative;display:flex;overflow:hidden;background:#000}.viewport-shell{flex:1;position:relative;z-index:1;min-width:0}.three-viewport{width:100%;height:100%}.three-viewport canvas{display:block;outline:none;width:100%;height:100%}.image-panel,.bone-panel{position:relative;width:340px;background:#1c1c1ea6;backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);border:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;z-index:10;box-shadow:0 24px 48px #0006;transition:width .4s cubic-bezier(.16,1,.3,1),margin .4s ease,opacity .4s ease;overflow:hidden}.image-panel{border-radius:0 24px 24px 0;border-left:none}.image-panel.hidden{width:0;opacity:0;margin-left:-1px}.bone-panel{border-radius:24px 0 0 24px;border-right:none}.bone-panel.hidden{width:0;opacity:0;margin-right:-1px}.panel-header{padding:18px 20px 14px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between}.panel-title{font-size:13px;font-weight:600;color:#ffffffe6;letter-spacing:-.01em}.panel-badge{font-size:11px;padding:4px 10px;border-radius:20px;font-weight:600;letter-spacing:.02em}.panel-badge.info{background:#0a84ff26;color:#4da3ff}.panel-badge.success{background:#30d15826;color:#30d158}.image-drop{flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px;position:relative;cursor:pointer;overflow-y:auto}.image-drop input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;z-index:2}.image-drop.has-image{padding:16px;justify-content:flex-start}.drop-placeholder{text-align:center;pointer-events:none}.drop-icon{width:56px;height:56px;margin:0 auto 16px;border-radius:16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);display:grid;place-items:center;font-size:24px;color:#0a84ff}.drop-title{font-size:15px;font-weight:600;color:#fff;margin-bottom:6px}.drop-hint{font-size:13px;color:#ffffff80}.drop-formats{margin-top:16px;display:flex;gap:8px;justify-content:center}.format-tag{padding:4px 8px;font-size:10px;font-weight:600;color:#fff6;border-radius:6px;background:#ffffff0d;border:1px solid rgba(255,255,255,.05)}.image-preview{display:none;width:100%;position:relative;border-radius:12px;overflow:hidden;background:#0000004d;box-shadow:inset 0 0 0 1px #ffffff0d}.image-preview.visible{display:flex;flex-direction:column}.image-preview img{width:100%;max-height:280px;object-fit:contain;display:block}.image-preview canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.landmark-stats{margin-top:16px;padding:16px;background:#0003;border-radius:12px;font-size:11px;color:#fff9;font-family:SF Mono,ui-monospace,monospace;white-space:pre-wrap;line-height:1.6;border:1px solid rgba(255,255,255,.05)}.image-actions{padding:16px 20px;display:flex;gap:12px;border-top:1px solid rgba(255,255,255,.08);background:#ffffff05}.action-btn{flex:1;padding:12px 0;border:none;border-radius:12px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.25,.1,.25,1);display:flex;align-items:center;justify-content:center;gap:8px}.action-btn:disabled{opacity:.4;cursor:not-allowed}.action-btn.extract{background:#fff;color:#000}.action-btn.extract:hover:not(:disabled){transform:scale(.98);background:#f0f0f0}.action-btn.reset-btn{flex:.4;background:#ffffff1a;color:#fff}.action-btn.reset-btn:hover:not(:disabled){background:#ffffff26}.segment-control{display:flex;margin:16px 20px 8px;padding:4px;border-radius:10px;background:#0000004d;border:1px solid rgba(255,255,255,.05)}.segment-btn{flex:1;padding:6px 0;border:none;border-radius:6px;background:transparent;color:#ffffff80;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.segment-btn.active{background:#ffffff26;color:#fff;box-shadow:0 2px 8px #0003}.panel-view{display:flex;flex:1;flex-direction:column;overflow:hidden}.search-box{margin:16px 20px 8px;position:relative;display:flex;align-items:center}#boneSearch{width:100%;padding:10px 36px 10px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#0000004d;color:#fff;font-size:13px;outline:none;transition:all .2s ease}#boneSearch:focus{background:#00000080;border-color:#0a84ff;box-shadow:0 0 0 4px #0a84ff26}.clear-search{position:absolute;right:10px;width:20px;height:20px;border-radius:50%;border:none;background:#ffffff1a;color:#ffffff80;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center}.clear-search:hover{background:#fff3;color:#fff}#boneList{flex:1;overflow-y:auto;padding:0 12px;margin-bottom:8px}.bone-group{margin-bottom:16px}.bone-group-header{padding:8px 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#ffffff4d;position:sticky;top:0;background:#1c1c1ecc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5}.bone-item{width:100%;border:none;background:transparent;padding:10px 12px;text-align:left;border-radius:8px;cursor:pointer;font-size:12px;font-weight:500;color:#fff9;transition:all .15s ease;margin-bottom:2px}.panel-actions{display:flex;flex-direction:column;gap:8px;padding:16px 20px;border-top:1px solid rgba(255,255,255,.08);background:#ffffff05}.mirror-control{display:flex;align-items:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:3px;gap:2px}.mirror-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;height:32px;border:none;border-radius:7px;background:transparent;color:#fff9;font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,transform .1s ease}.mirror-btn:hover:not(:disabled){background:#ffffff1a;color:#fff;transform:scale(1.02)}.mirror-btn:active:not(:disabled){transform:scale(.97)}.mirror-btn:disabled{opacity:.35;cursor:not-allowed}.mirror-divider{width:1px;height:18px;background:#ffffff1a;flex-shrink:0}.panel-action-btn{width:100%;padding:10px;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .2s ease}.panel-action-btn:disabled{opacity:.35;cursor:not-allowed}.panel-action-btn.danger{background:#ff453a1a;border-color:#ff453a33;color:#ff453a}.panel-action-btn.danger:hover{background:#ff453a33}.preset-list{display:flex;flex:1;flex-direction:column;gap:10px;padding:16px 20px;overflow-y:auto;min-height:0}.preset-card-wrapper{position:relative}.preset-delete-btn{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;border:none;background:#ff453a26;color:#ff453a;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease,background .2s ease}.preset-card-wrapper:hover .preset-delete-btn{opacity:1}.preset-delete-btn:hover{background:#ff453a4d}.preset-save-section{padding:12px 20px 20px;border-top:1px solid rgba(255,255,255,.06)}.preset-name-input-row{display:flex;gap:6px;align-items:center}.preset-name-input{flex:1;height:34px;padding:0 10px;border-radius:8px;border:1px solid rgba(10,132,255,.5);background:#0006;color:#fff;font:inherit;font-size:13px;outline:none;box-shadow:0 0 0 3px #0a84ff26}.preset-name-input::placeholder{color:#ffffff4d}.preset-save-confirm{height:34px;padding:0 12px;border-radius:8px;border:none;background:#0a84ff;color:#fff;font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s ease;white-space:nowrap}.preset-save-confirm:hover:not(:disabled){background:#0071e3}.preset-save-confirm:disabled{opacity:.4;cursor:not-allowed}.preset-save-cancel{width:34px;height:34px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:#fff9;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.preset-save-cancel:hover{background:#ffffff1a;color:#fff}.preset-card{width:100%;padding:14px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#ffffff0d;color:#fff;text-align:left;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease}.preset-card:hover:not(:disabled){transform:translateY(-1px);border-color:#0a84ff8c;background:#0a84ff1f}.preset-card:disabled{opacity:.45;cursor:not-allowed}.preset-name,.preset-description{display:block}.preset-name{font-size:13px;font-weight:700;margin-bottom:6px}.preset-description{font-size:11px;line-height:1.4;color:#ffffff7a}.bone-item:hover{background:#ffffff0d;color:#fff}.bone-item.selected{background:#0a84ff;color:#fff;font-weight:600}#boneEditor{border-top:1px solid rgba(255,255,255,.08);padding:20px;background:#ffffff05}#boneEditorTitle{margin-bottom:16px;font-size:12px;font-weight:600;color:#fff}.axis-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.axis-label{width:16px;text-align:center;font-size:12px;font-weight:700;font-family:SF Mono,ui-monospace,monospace}.axis-label.x{color:#ff453a}.axis-label.y{color:#30d158}.axis-label.z{color:#0a84ff}.axis-row input[type=range]{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:24px;border-radius:12px;background:#ffffff14;outline:none;overflow:hidden}.axis-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:24px;height:24px;border-radius:12px;background:#fff;box-shadow:-400px 0 0 388px #fff3;cursor:ew-resize}.axis-val{width:40px;text-align:right;font-size:11px;font-family:SF Mono,ui-monospace,monospace;color:#ffffff80}#resetBoneBtn,#resetModelBtn{width:100%;margin-top:12px;padding:10px;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;background:#ff453a1a;border:1px solid rgba(255,69,58,.2);color:#ff453a;transition:all .2s ease}#resetBoneBtn:hover,#resetModelBtn:hover{background:#ff453a33}.hint{position:absolute;left:50%;bottom:24px;transform:translate(-50%);font-size:11px;font-weight:600;color:#fff6;letter-spacing:.05em;text-transform:uppercase;pointer-events:none;z-index:5;background:#0006;padding:6px 16px;border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.axes-legend{position:absolute;left:50%;top:24px;transform:translate(-50%);display:flex;gap:16px;padding:8px 16px;border-radius:20px;background:#1c1c1e99;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);z-index:5;pointer-events:none}.legend-item{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:.02em;color:#fff9}.legend-color{width:6px;height:6px;border-radius:50%}.legend-color.x{background:#ff453a;box-shadow:0 0 6px #ff453a80}.legend-color.y{background:#30d158;box-shadow:0 0 6px #30d15880}.legend-color.z{background:#0a84ff;box-shadow:0 0 6px #0a84ff80}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;flex-direction:column;gap:16px;background:#00000080;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20}.loading-overlay.visible{display:flex}.spinner{width:36px;height:36px;border-radius:50%;border:3px solid rgba(255,255,255,.1);border-top-color:#fff;animation:spin .8s cubic-bezier(.4,0,.2,1) infinite}.loading-text{font-size:13px;font-weight:500;color:#fff}.modal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:9998}.modal-overlay.visible{display:block}.modal-box{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.95);width:500px;max-width:90vw;padding:24px;border-radius:24px;background:#1e1e20d9;backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);border:1px solid rgba(255,255,255,.1);box-shadow:0 32px 64px #0006;z-index:9999;opacity:0;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .3s ease}.modal-box.visible{display:block;transform:translate(-50%,-50%) scale(1);opacity:1}.modal-box h3{font-size:16px;font-weight:600;margin-bottom:4px;color:#fff}.modal-subtitle{font-size:13px;color:#ffffff80;margin-bottom:16px}.modal-box textarea{width:100%;height:200px;padding:16px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#0000004d;color:#5ac8fa;font-family:SF Mono,ui-monospace,monospace;font-size:12px;line-height:1.5;resize:none;outline:none}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}#modalCloseBtn,#modalCopyBtn{padding:10px 20px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all .2s ease}#modalCloseBtn{background:#ffffff1a;color:#fff}#modalCloseBtn:hover{background:#ffffff26}#modalCopyBtn{background:#0a84ff;color:#fff}#modalCopyBtn:hover{background:#0071e3;transform:scale(.98)}.toast{position:fixed;left:50%;bottom:32px;transform:translate(-50%) translateY(40px);display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:100px;background:#1e1e20d9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);box-shadow:0 16px 32px #0000004d;color:#fff;font-size:13px;font-weight:500;opacity:0;pointer-events:none;transition:all .4s cubic-bezier(.16,1,.3,1);z-index:10000}.toast.visible{transform:translate(-50%) translateY(0);opacity:1}.json-paste-area{flex:1;display:flex;flex-direction:column;padding:16px 20px 8px;gap:10px;overflow:hidden;min-height:0}.json-textarea{flex:1;padding:14px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#0000004d;color:#5ac8fa;font-family:SF Mono,ui-monospace,monospace;font-size:11px;line-height:1.6;resize:none;outline:none;transition:border-color .2s ease,box-shadow .2s ease;min-height:0}.json-textarea:focus{border-color:#0a84ff;box-shadow:0 0 0 4px #0a84ff26}.json-textarea::placeholder{color:#fff3;font-family:SF Mono,ui-monospace,monospace}.json-error{padding:10px 14px;border-radius:10px;background:#ff453a1a;border:1px solid rgba(255,69,58,.2);color:#ff453a;font-size:11px;font-family:SF Mono,ui-monospace,monospace;line-height:1.4;flex-shrink:0}.json-file-btn{display:flex;align-items:center;justify-content:center;height:36px;border-radius:10px;background:#ffffff0d;border:1px dashed rgba(255,255,255,.15);color:#ffffff73;font-size:12px;font-weight:500;cursor:pointer;position:relative;transition:all .2s ease;flex-shrink:0}.json-file-btn:hover{background:#ffffff17;border-color:#ffffff4d;color:#fff}.json-file-btn input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%}@media(max-width:900px){.step-breadcrumbs{display:none}.image-panel,.bone-panel{width:280px}}.viewer360-wrapper{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;overflow:hidden}.viewer360-hud{position:absolute;top:18px;left:18px;right:18px;z-index:30;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.viewer360-hud-left{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:999px;background:#00000059;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:auto}.viewer360-hud-badge{width:26px;height:26px;border-radius:999px;background:#ffffff1f;border:1px solid rgba(255,255,255,.14)}.viewer360-hud-text{display:flex;flex-direction:column;gap:2px}.viewer360-hud-title{font-size:14px;font-weight:600;color:#ffffffeb;line-height:1.15}.viewer360-hud-subtitle{font-size:12px;font-weight:500;color:#ffffffad;line-height:1.15}.viewer360-hud-right{display:flex;align-items:center;gap:12px;pointer-events:auto}.viewer360-hud-actions{display:flex;gap:8px;padding:8px;border-radius:999px;background:#0000004d;border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.viewer360-iconbtn,.viewer360-close{width:40px;height:40px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);color:#ffffffeb;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease}.viewer360-iconbtn:hover,.viewer360-close:hover{transform:translateY(-1px);background:#ffffff1a;border-color:#ffffff24}.viewer360-iconbtn:active,.viewer360-close:active{transform:translateY(0)}.viewer360-iconbtn svg,.viewer360-close svg{opacity:.9}.viewer360-container{position:relative;flex:1;width:100%;height:100%;background:#000}.viewer360-container canvas{display:block;width:100%!important;height:100%!important}.viewer360-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000000ad;z-index:10;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.placeholder-content{text-align:center;display:flex;flex-direction:column;gap:20px;align-items:center}.placeholder-content svg{color:#ffffffd9;opacity:.9}.placeholder-content h2{font-size:28px;font-weight:600;color:#ffffffeb;margin:0;letter-spacing:-.01em}.placeholder-content p{font-size:14px;color:#ffffffa6;margin:0}.viewer360-upload-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.14);color:#ffffffeb;padding:12px 28px;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease}.viewer360-upload-btn:hover{background:#ffffff24;border-color:#ffffff2e;transform:translateY(-1px)}.viewer360-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#000c;z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.loading-spinner{width:40px;height:40px;border:2px solid rgba(255,255,255,.18);border-top-color:#ffffffbf;border-radius:50%;animation:spin .8s linear infinite}.viewer360-loading p{color:#ffffffd9;font-size:14px;margin:0}@keyframes spin{to{transform:rotate(360deg)}}.viewer360-error{position:absolute;top:80px;left:50%;transform:translate(-50%);background:#ff3b3033;border:1px solid rgba(255,59,48,.4);color:#ff6b6b;padding:12px 20px;border-radius:12px;font-size:13px;max-width:500px;z-index:30;animation:slideDown .3s cubic-bezier(.16,1,.3,1)}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.viewer360-esc-hint{position:absolute;left:50%;bottom:18px;transform:translate(-50%);z-index:30;padding:10px 14px;border-radius:999px;background:#00000059;border:1px solid rgba(255,255,255,.1);color:#ffffffbf;font-size:12px;font-weight:500;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);-webkit-user-select:none;user-select:none;pointer-events:none}.viewer360-esc-hint kbd{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;margin:0 6px;border-radius:8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.12);color:#ffffffe6;font-size:11px;font-weight:600;line-height:1.2}.viewer360-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.3) 100%);z-index:5}@media(max-width:768px){.placeholder-content h2{font-size:24px}.placeholder-content p{font-size:13px}}@media(max-width:480px){.placeholder-content{gap:16px}.placeholder-content svg{width:40px;height:40px}.placeholder-content h2{font-size:20px}}
