@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #0f0f10;--panel: #161617;--row: #232325;--row-hover: #2a2a2d;--fill: #38383c;--text: #e6e6e8;--text-dim: #8b8b90;--text-faint: #616166;--accent: #ffffff;--radius: 10px;font-family:Geist Variable,-apple-system,Helvetica Neue,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-size:13px;overflow:hidden;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100%}.topbar{height:52px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid #232324;background:#121213}.brand{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.12em;min-width:0;white-space:nowrap}.brand-dot{width:14px;height:14px;border-radius:50%;background:conic-gradient(from 210deg,#7c5cff,#46c8ff,#7c5cff)}.brand-name{font-weight:580}.brand-sep{color:var(--text-faint)}.brand-app{color:var(--text-dim);letter-spacing:.04em}.studio-label{color:var(--text-dim);font-size:11px;font-weight:580;letter-spacing:.02em}.topbar-actions{display:flex;gap:8px}.btn{height:32px;padding:0 14px;border:none;border-radius:999px;font-size:12px;font-weight:520;letter-spacing:.05em;cursor:pointer;transition:transform .12s ease,background .15s ease,opacity .15s ease}.btn:active{transform:scale(.96)}.btn.ghost{background:var(--row);color:var(--text)}.btn.ghost:hover{background:var(--row-hover)}.btn.icon{width:32px;padding:0;display:flex;align-items:center;justify-content:center}.btn:disabled{opacity:.3;cursor:default}.btn:disabled:hover{background:var(--row)}.btn:disabled:active{transform:none}.btn.primary{background:#fff;color:#111}.btn.primary:hover{opacity:.88}.main{flex:1;display:flex;min-height:0}.canvas-wrap{position:relative;flex:1;min-width:0;transition:background .4s ease}.canvas-wrap.light{background:radial-gradient(120% 90% at 50% 30%,#fbfbfa,#ececea 55%,#dcdcd8)}.canvas-wrap.dark{background:radial-gradient(120% 90% at 50% 30%,#2c2c30,#1a1a1d 55%,#101012)}.canvas-wrap canvas{position:absolute;top:0;right:0;bottom:0;left:0}.banner{position:absolute;top:62px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:8px 10px 8px 16px;border-radius:999px;background:#111113e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#e8e8ea;font-size:12px;letter-spacing:.02em;white-space:nowrap;z-index:6}.banner button{border:none;border-radius:999px;background:#fff;color:#111;font-size:11.5px;font-weight:580;letter-spacing:.04em;padding:5px 13px;cursor:pointer}.banner button:hover{opacity:.88}.views{position:absolute;top:14px;left:50%;transform:translate(-50%);display:flex;gap:2px;padding:3px;border-radius:999px;background:#111113d1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5}.views button{border:none;background:none;color:#b9b9be;font-size:11.5px;font-weight:520;letter-spacing:.04em;padding:5px 12px;border-radius:999px;cursor:pointer;transition:background .15s ease,color .15s ease}.views button:hover{background:#ffffff1f;color:#fff}.hint{position:absolute;left:16px;bottom:14px;font-size:11px;letter-spacing:.04em;color:#00000059;pointer-events:none;-webkit-user-select:none;user-select:none}.canvas-wrap.dark .hint{color:#ffffff4d}.garment-handle-legend{position:absolute;right:16px;bottom:12px;display:flex;gap:12px;padding:6px 10px;border:1px solid rgba(20,20,22,.1);border-radius:999px;background:#f8f8f6b8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#1313159e;font-size:10.5px;font-weight:560;letter-spacing:.035em;pointer-events:auto}.canvas-wrap.dark .garment-handle-legend{border-color:#ffffff17;background:#111113ad;color:#ffffffa8}.garment-handle-legend button{display:flex;align-items:center;gap:5px;min-width:0;padding:2px 3px;border:0;border-radius:999px;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer;opacity:.58;transition:opacity .15s ease,background .15s ease}.garment-handle-legend button:hover,.garment-handle-legend button[aria-pressed=true]{opacity:1;background:#14141612}.canvas-wrap.dark .garment-handle-legend button:hover,.canvas-wrap.dark .garment-handle-legend button[aria-pressed=true]{background:#ffffff17}.garment-handle-legend i{width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 1px #12121461}.garment-handle-legend i.fit{background:#46c8ff}.garment-handle-legend i.detail{background:#a78bfa}.garment-handle-legend i.volume{background:#fb8f67}.garment-handle-legend .shape-mode-button{padding-right:8px;margin-right:1px;border-right:1px solid rgba(20,20,22,.12);border-radius:999px 2px 2px 999px}.canvas-wrap.dark .garment-handle-legend .shape-mode-button{border-right-color:#ffffff21}.shape-dots{display:inline-flex;align-items:center;gap:2px;width:24px;height:12px;flex:none}.shape-dots i{width:6px;height:6px;border-radius:50%;box-shadow:0 0 0 1px #1212146b}.shape-dots i:nth-child(1){background:#46c8ff}.shape-dots i:nth-child(2){background:#a78bfa}.shape-dots i:nth-child(3){background:#fb8f67}.shape-leaf{margin:5px 6px 7px;border-radius:7px;box-shadow:inset 0 0 0 1px #ffffff0e}.shape-leaf .shape-dots{margin-right:5px}.shape-leaf .leaf-meta{margin-left:auto;color:var(--text-faint);font-size:9.5px;letter-spacing:.035em}.fit-map-legend{position:absolute;right:16px;bottom:12px;display:grid;grid-template-columns:auto 34px auto 34px auto;align-items:center;gap:6px;padding:6px 10px;border:1px solid rgba(20,20,22,.12);border-radius:999px;background:#f8f8f6c7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#131315a8;font-size:9.5px;font-weight:560;letter-spacing:.025em;pointer-events:none}.fit-map-legend i{height:5px;border-radius:999px;background:linear-gradient(90deg,#315cf4,#22b9d6,#31c97b,#f0d64b,#ff8438,#df3047)}.canvas-wrap.dark .fit-map-legend{border-color:#ffffff1a;background:#111113b8;color:#ffffffb8}.garment-measure-label{padding:4px 7px;border:1px solid rgba(118,108,255,.45);border-radius:999px;background:#16151fe0;box-shadow:0 4px 14px #1b173c33;color:#f1efff;font-size:9.5px;font-weight:620;letter-spacing:.025em;white-space:nowrap}.part-tag{position:absolute;right:16px;bottom:14px;padding:5px 12px;border-radius:999px;background:#111113d9;color:#fff;font-size:11px;font-weight:520;letter-spacing:.06em;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.panel{width:320px;flex:none;background:var(--panel);border-left:1px solid #232324;overflow-y:auto;padding:10px 12px 24px;scrollbar-width:thin;scrollbar-color:#333 transparent}.tabbar{position:sticky;top:-10px;z-index:5;display:flex;gap:2px;padding:4px;margin:-4px -2px 4px;background:var(--row);border-radius:var(--radius)}.tab{flex:1;background:none;border:none;border-radius:7px;padding:7px 0;color:var(--text-dim);font-size:12px;font-weight:520;letter-spacing:.02em;cursor:pointer;transition:background .15s ease,color .15s ease}.tab:hover{color:var(--text)}.tab.active{background:var(--panel);color:var(--text)}.inspector-head{position:sticky;top:-10px;z-index:5;display:flex;align-items:center;gap:8px;padding:8px 6px 10px;margin:-4px 0 2px;background:var(--panel);border-bottom:1px solid #232324}.inspector-title{flex:1;font-size:13.5px;font-weight:650;color:var(--text)}.back{width:24px;height:24px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--row);border:none;border-radius:7px;color:var(--text-dim);font-size:17px;line-height:1;padding-bottom:2px;cursor:pointer}.back:hover{background:var(--row-hover);color:var(--text)}.part-row{cursor:pointer;gap:9px}.part-dot{width:13px;height:13px;flex:none;border-radius:50%;border:1px solid rgba(255,255,255,.18)}.part-go{color:var(--text-faint);font-size:15px;line-height:1;padding-right:2px}.part-row:hover .part-go{color:var(--text)}.section{margin-bottom:6px}.section-head{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:none;color:var(--text-dim);font-size:12.5px;font-weight:460;letter-spacing:.01em;padding:12px 6px 8px;cursor:pointer}.section-head:hover{color:var(--text)}.section-right{display:flex;align-items:center;gap:6px}.chev{transition:transform .18s ease;transform:rotate(-90deg)}.chev.open{transform:rotate(0)}.section-body{display:flex;flex-direction:column;gap:6px}.row{position:relative;display:flex;align-items:center;height:36px;padding:0 12px;border-radius:var(--radius);background:var(--row);overflow:hidden;user-select:none;-webkit-user-select:none}.row:hover{background:var(--row-hover)}.row-label{position:relative;z-index:1;flex:1;color:var(--text);font-size:12.5px}.row-value{position:relative;z-index:1;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;color:var(--text)}.mono{color:var(--text-dim);margin-right:10px}.drag-row{cursor:ew-resize;touch-action:none}.drag-row .fill{position:absolute;inset:0 auto 0 0;background:var(--fill);border-radius:var(--radius) 0 0 var(--radius);transition:background .15s ease}.drag-row.dragging .fill,.drag-row:active .fill{background:#45454b}.row-input{position:relative;z-index:1;width:70px;background:#0c0c0d;border:1px solid #3a3a3f;border-radius:6px;color:#fff;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;padding:3px 6px;text-align:right;outline:none}.color-row{cursor:pointer}.swatch{position:relative;z-index:1;width:22px;height:22px;border-radius:6px;border:1px solid rgba(255,255,255,.14);flex:none;overflow:hidden}.swatch input{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;width:40px;height:40px;opacity:0;cursor:pointer}button.swatch{padding:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}button.swatch:hover{border-color:#fff6}button.swatch.open{border-color:#fff;box-shadow:0 0 0 2px #ffffff2e}.cp{position:fixed;z-index:60;width:224px;padding:10px;display:flex;flex-direction:column;gap:9px;background:#161618;border:1px solid rgba(255,255,255,.13);border-radius:12px;box-shadow:0 16px 44px #0009;cursor:default}.cp-sv{position:relative;height:132px;border-radius:8px;overflow:hidden;touch-action:none;cursor:crosshair}.cp-sv-white,.cp-sv-black{position:absolute;top:0;right:0;bottom:0;left:0}.cp-sv-white{background:linear-gradient(to right,#fff,#fff0)}.cp-sv-black{background:linear-gradient(to top,#000,#0000)}.cp-hue{position:relative;height:13px;border-radius:999px;touch-action:none;cursor:ew-resize;background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.cp-knob{position:absolute;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);border:2px solid #fff;box-shadow:0 1px 4px #0000008c;pointer-events:none}.cp-knob.on-light{border-color:#1c1c1e}.cp-hue-knob{top:50%;height:17px;width:17px}.cp-foot{display:flex;align-items:center;gap:7px}.cp-preview{width:26px;height:26px;border-radius:7px;border:1px solid rgba(255,255,255,.14);flex:none}.cp-hex{flex:1;min-width:0;height:26px;padding:0 8px;background:#0e0e0f;border:1px solid var(--line);border-radius:7px;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase}.cp-hex:focus{outline:none;border-color:#ffffff57}.cp-drop{width:26px;height:26px;flex:none;display:flex;align-items:center;justify-content:center;background:#0e0e0f;border:1px solid var(--line);border-radius:7px;color:var(--text-faint);cursor:pointer}.cp-drop:hover{color:#fff;border-color:#ffffff57}.cp-recent{display:flex;gap:5px;flex-wrap:wrap}.cp-recent-chip{width:20px;height:20px;border-radius:5px;border:1px solid rgba(255,255,255,.14);cursor:pointer;padding:0}.cp-recent-chip:hover{transform:scale(1.12)}.cp-recent-chip.active{border-color:#fff}.select-row{cursor:pointer;position:relative}.select-row .select-value{position:relative;color:var(--text);font-size:12px;text-align:right;padding-right:6px}.select-row select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;opacity:0;cursor:pointer;outline:none}.select-row select option{background:var(--panel)}.select-row .chev{transform:none;color:var(--text-faint)}.seg{position:relative;z-index:1;display:flex;background:#0e0e0f;border-radius:8px;padding:2px;gap:2px}.seg button{border:none;background:none;color:var(--text-dim);font-size:11.5px;font-weight:520;padding:4px 12px;border-radius:6px;cursor:pointer;transition:background .15s ease,color .15s ease}.seg button.active{background:var(--fill);color:#fff}.action-row{border:none;justify-content:center;color:var(--text);font-size:12.5px;font-weight:520;cursor:pointer;font-family:inherit}.design-chips{display:flex;gap:6px;padding:2px 4px 6px;flex-wrap:wrap}.design-chip{border:none;background:var(--row);color:var(--text);font-size:11.5px;font-weight:520;letter-spacing:.04em;padding:7px 13px;border-radius:999px;cursor:pointer;transition:background .15s ease,transform .12s ease}.design-chip:hover{background:var(--row-hover)}.design-chip:active{transform:scale(.95)}.chips{display:flex;gap:8px;padding:2px 4px 6px;flex-wrap:wrap}.chip{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .14s ease,border-color .15s ease}.chip:hover{transform:scale(1.12)}.chip.active{border-color:#fff}.chip.shuffle,.chip.save{background:var(--row);color:var(--text-dim);display:flex;align-items:center;justify-content:center}.chip.shuffle:hover,.chip.save:hover{color:#fff;background:var(--row-hover)}.chip.save{font-size:16px;font-weight:520}.chip-wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px}.chip-name{width:72px;padding:0;border:0;outline:none;background:transparent;color:var(--text-faint);font:inherit;font-size:9.5px;letter-spacing:.03em;text-align:center}.chip-name:hover,.chip-name:focus{color:var(--text)}.chip-x{position:absolute;top:-5px;right:-5px;width:15px;height:15px;border:none;border-radius:50%;background:#38383c;color:#ddd;font-size:11px;line-height:1;cursor:pointer;display:flex;opacity:0;pointer-events:none;align-items:center;justify-content:center;z-index:2}.chip-wrap:hover .chip-x,.chip-wrap:focus-within .chip-x{opacity:1;pointer-events:auto}.chip-x:hover{background:#b3123a;color:#fff}.part-block{display:flex;flex-direction:column;gap:4px;padding:4px;margin:-4px 0;border-radius:12px;border:1px solid transparent;transition:border-color .18s ease,background .18s ease}.part-block+.part-block{margin-top:2px}.part-block.selected{border-color:#3f6ea5;background:#3f6ea514}.part-block .select-row{height:30px;background:#1d1d1f}.part-block.hidden-part .row-label,.part-block.hidden-part .row-value,.part-block.hidden-part .swatch{opacity:.38}.eye{position:relative;z-index:1;width:24px;height:24px;margin-left:8px;border:none;border-radius:6px;background:none;color:var(--text-dim);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;transition:color .15s ease,background .15s ease}.eye:hover{color:#fff;background:#ffffff14}.eye.off{color:var(--text-faint)}.handle{position:relative;width:18px;height:18px;border-radius:50%;background:#fffffff5;border:2.5px solid #1c1c1e;box-shadow:0 2px 10px #00000059;cursor:ns-resize;transition:transform .13s ease;touch-action:none}.handle{opacity:.72}.handle:hover,.handle.dragging{transform:scale(1.3);opacity:1}.handle.dragging{border-color:#3f6ea5}.handle.sculpt{width:15px;height:15px;cursor:move}.handle.sculpt.height{background:#46c8ff;border-color:#10344a}.handle.sculpt.width{background:#5fd6a4;border-color:#10402f}.handle.sculpt.extent{background:#ffd166;border-color:#4a3a10}.handle.garment-handle{width:16px;height:16px;cursor:move;isolation:isolate}.handle.garment-handle.fit{background:#46c8ff;border-color:#10344a}.handle.garment-handle.detail{background:#a78bfa;border-color:#35215f}.handle.garment-handle.volume{background:#fb8f67;border-color:#5b2515}.handle.garment-handle.dragging{box-shadow:0 0 0 4px #ffffffe6,0 5px 18px #0000006b}.handle.garment-handle.dragging:before{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:86px;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.9) 20%,rgba(255,255,255,.9) 80%,transparent 100%);transform:translate(-50%,-50%) rotate(var(--handle-axis, 0rad));transform-origin:center;filter:drop-shadow(0 1px 2px rgba(0,0,0,.65));pointer-events:none}.handle.garment-handle:not(.dragging):hover:after,.handle.garment-handle:focus-visible:after{content:attr(data-label);position:absolute;bottom:26px;left:50%;transform:translate(-50%);padding:5px 9px;border-radius:999px;background:#111113eb;color:#fff;font-size:10.5px;font-weight:560;line-height:1;white-space:nowrap;pointer-events:none}.decal-gizmo{position:relative;width:17px;height:17px;border:2px solid #111316;border-radius:50%;box-shadow:0 2px 10px #00000073;touch-action:none;cursor:move;opacity:.92}.decal-gizmo:hover,.decal-gizmo.dragging{transform:scale(1.22);opacity:1}.decal-gizmo:focus-visible,.handle.garment-handle:focus-visible{outline:3px solid rgba(255,255,255,.95);outline-offset:3px;opacity:1}.decal-gizmo.move{background:#46c8ff}.decal-gizmo.size{background:#5fd6a4;cursor:nwse-resize}.decal-gizmo.rotate{width:15px;height:15px;background:#ffd166;cursor:crosshair}.note{padding:2px 12px 6px;font-size:11.5px;line-height:1.45;color:var(--text-faint)}.handle-tip{position:absolute;bottom:28px;left:50%;transform:translate(-50%);background:#111113eb;color:#fff;padding:5px 12px;border-radius:999px;font-size:11px;font-weight:520;letter-spacing:.04em;white-space:nowrap;pointer-events:none}.handle-menu{position:absolute;top:calc(50% + 14px);left:50%;transform:translate(-50%);background:#111113f2;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:4px;display:flex;flex-direction:column;gap:1px;box-shadow:0 8px 24px #00000073;pointer-events:auto;cursor:default}.handle-menu button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;color:#fff;font:inherit;font-size:11.5px;font-weight:520;letter-spacing:.03em;text-align:left;white-space:nowrap;padding:6px 12px;border-radius:7px;cursor:pointer}.handle-menu button:hover{background:#ffffff1a}.part-block .select-row .row-label{color:var(--text-faint);font-size:11.5px}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#333;border-radius:4px}::-webkit-scrollbar-track{background:transparent}.spots{display:flex;flex-wrap:wrap;gap:6px;padding:4px 4px 8px}.spot{flex:1 1 auto;min-width:62px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#1d1d1f;color:var(--text);font:inherit;font-size:11.5px;letter-spacing:.02em;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease}.spot:hover{background:var(--row-hover);border-color:#4a4a4e;color:#fff}.text-row{gap:8px}.text-input{flex:1 1 120px;min-width:0;border:1px solid var(--line);border-radius:7px;background:#161618;color:var(--text);font:inherit;font-size:12px;letter-spacing:.04em;padding:5px 8px;text-align:right}.text-input:focus{outline:none;border-color:#5b5b60;background:#1b1b1e}.art-row{gap:8px}.art-thumb{height:26px;max-width:92px;object-fit:contain;border-radius:5px;background:linear-gradient(45deg,#2a2a2c 25%,transparent 25%,transparent 75%,#2a2a2c 75%) 0 0 / 10px 10px,linear-gradient(45deg,#2a2a2c 25%,transparent 25%,transparent 75%,#2a2a2c 75%) 5px 5px / 10px 10px,#202022}.note.warn{color:#e8829a}.note.review{color:#d8ad68}.group-label{padding:8px 6px 3px;font-size:9.5px;font-weight:520;letter-spacing:.02em;color:var(--text-faint)}.layer-kind{width:16px;text-align:center;font-size:10.5px;color:var(--text-faint);flex:none}.order-btns{display:flex;flex-direction:column;gap:0;flex:none}.eye.order{height:13px;width:20px;padding:0;font-size:7.5px;line-height:13px;border-radius:4px}.eye.order:disabled{opacity:.22;cursor:default;background:none}.spot.armed{border-color:#7fb2e6;color:#aecff0;background:#3f8fd01f}.design-chip.preset{border-color:#8a5a68;background:linear-gradient(135deg,#43202c,#2a161d);color:#e8c9d2}.design-chip.preset:hover{border-color:#b87f92;color:#fff}.ltree{width:210px;flex:none;background:var(--panel);border-right:1px solid #232324;overflow-y:auto;padding:10px 8px 24px;scrollbar-width:thin;scrollbar-color:#333 transparent;-webkit-user-select:none;user-select:none}.ltree-title{padding:2px 8px 8px;font-size:11px;font-weight:520;letter-spacing:.02em;color:var(--text-faint)}.ltree-add{display:flex;gap:4px;padding:0 4px 8px}.add-chip{flex:1;height:24px;border:1px solid var(--line);border-radius:6px;background:#1d1d1f;color:var(--text);font:inherit;font-size:10.5px;cursor:pointer;transition:background .14s ease,border-color .14s ease}.add-chip:hover{background:var(--row-hover);border-color:#4a4a4e}.add-chip.armed{border-color:#7fb2e6;color:#aecff0;background:#3f8fd01f}.ltree-hint{padding:2px 8px 8px;font-size:10.5px;line-height:1.45;color:var(--text-faint)}.ltree-width{display:flex;align-items:center;gap:8px;padding:0 8px 8px;font-size:10.5px;color:var(--text-faint)}.ltree-width input{flex:1;accent-color:#7fb2e6}.tree-group{padding-bottom:6px}.tree-head{display:flex;align-items:center;gap:4px;width:100%;padding:4px 6px 3px;border:0;background:none;color:var(--text-faint);font:inherit;font-size:9.5px;font-weight:520;letter-spacing:.02em;cursor:pointer}.tree-head:hover{color:var(--text)}.tree-caret{font-size:9px;transition:transform .12s ease}.tree-caret.open{transform:rotate(90deg)}.leaf{display:flex;align-items:center;gap:7px;height:26px;padding:0 6px 0 14px;border-radius:6px;cursor:pointer;color:var(--text);font-size:12px}.leaf:hover{background:var(--row-hover)}.leaf.active{background:#2c3a4a}.leaf.ghost .leaf-name,.leaf.ghost .leaf-dot{opacity:.38}.leaf-dot{width:9px;height:9px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px #ffffff24}.leaf-kind{width:12px;text-align:center;font-size:10px;color:var(--text-faint);flex:none}.leaf-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaf-eye{border:0;background:none;color:var(--text-faint);font-size:9.5px;width:18px;height:18px;border-radius:4px;cursor:pointer;padding:0;line-height:18px;opacity:0}.leaf:hover .leaf-eye,.leaf.ghost .leaf-eye{opacity:1}.leaf-eye:hover{color:#fff;background:#ffffff17}.leaf-eye:disabled{opacity:.2!important;cursor:default;background:none}.leaf-order{display:flex;flex-direction:column}.leaf-order .leaf-eye{height:12px;line-height:12px;font-size:7px}.leaf[draggable]{cursor:grab}.leaf.dragging{opacity:.35}.leaf.drop-above{box-shadow:0 -2px #7fb2e6;border-radius:6px}.leaf.drop-below{box-shadow:0 2px #7fb2e6}.name-input{flex:1;min-width:0;border:1px solid transparent;border-radius:6px;background:none;color:var(--text);font:inherit;font-size:12.5px;padding:3px 6px}.name-input:hover{border-color:var(--line)}.name-input:focus{outline:none;border-color:#5b8fc4;background:#161618}.kind-tag{flex:none;padding:2px 6px;border-radius:5px;background:#ffffff12;color:var(--text-faint);font-size:9px;letter-spacing:.02em}.add-wrap{position:relative;padding:0 4px 8px}.add-main{width:100%;height:28px;border:1px dashed #4a4a4e;border-radius:7px;background:#1d1d1f;color:var(--text);font:inherit;font-size:12px;cursor:pointer;transition:background .14s ease,border-color .14s ease}.add-main:hover,.add-main.open{background:var(--row-hover);border-color:#7fb2e6}.add-menu{position:absolute;top:30px;left:4px;right:4px;z-index:20;padding:4px;border:1px solid var(--line);border-radius:9px;background:#202022;box-shadow:0 10px 28px #00000080}.add-item{display:flex;align-items:center;gap:8px;width:100%;height:26px;padding:0 8px;border:0;border-radius:6px;background:none;color:var(--text);font:inherit;font-size:12px;cursor:pointer;text-align:left}.add-item:hover{background:var(--row-hover)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:8px;background:none;color:var(--text);cursor:pointer;transition:background .14s ease,color .14s ease}.icon-btn:hover{background:#ffffff14;color:#fff}.icon-btn:disabled{opacity:.3;cursor:default;background:none}.bar-sep{width:1px;height:16px;background:#333336;margin:0 4px}.btn.primary,.head-label{display:inline-flex;align-items:center;gap:6px}.info-dot{display:inline-flex;color:var(--text-faint);cursor:help}.info-dot:hover{color:var(--text)}.btn.showpiece{height:30px;padding:0 12px;border:1px solid #8a5a68;border-radius:8px;background:linear-gradient(135deg,#43202c,#2a161d);color:#e8c9d2;font-size:12px;cursor:pointer}.btn.showpiece:hover{border-color:#b87f92;color:#fff}.photo-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#0a0a0be0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.photo-overlay canvas{max-width:min(92vw,1100px);max-height:78vh;width:auto;height:auto;border-radius:10px;box-shadow:0 24px 80px #0009}.photo-bar{display:flex;align-items:center;gap:12px;color:var(--text);font-size:13px}.photo-bar button{height:30px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:#1d1d1f;color:var(--text);font:inherit;cursor:pointer}.photo-bar button:disabled{opacity:.4;cursor:default}.photo-bar button:hover:not(:disabled){background:var(--row-hover)}.size-run{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin:2px 0 8px}.size-run button{height:28px;border:1px solid #38383c;border-radius:6px;background:#202022;color:var(--text-dim);font:inherit;font-size:10.5px;cursor:pointer}.size-run button:hover{border-color:#6b6b70;color:var(--text);background:var(--row-hover)}.size-run button.active{border-color:#7772e8;color:#f3f2ff;background:linear-gradient(180deg,#37345f,#282642);box-shadow:inset 0 0 0 1px #8e88ff2e}.measurement-card{margin-top:8px;padding:10px;border:1px solid #303033;border-radius:8px;background:#131314}.measurement-card>span{display:block;margin-bottom:7px;color:var(--text-faint);font-size:10px;letter-spacing:.06em;text-transform:uppercase}.measurement-card dl{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px}.measurement-card dl div{display:flex;justify-content:space-between;gap:8px}.measurement-card dt{color:var(--text-dim);font-weight:400}.measurement-card dd{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.garment-colorways{display:flex;gap:7px;padding:9px 2px 1px}.garment-colorways button{width:27px;height:27px;border:2px solid #222225;border-radius:50%;box-shadow:0 0 0 1px #45454a;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease}.garment-colorways button:hover{transform:scale(1.1)}.garment-colorways button.active{box-shadow:0 0 0 2px #f3f3f5}@media (max-width: 1040px){.ltree{width:176px}.panel{width:286px}.topbar{padding-inline:10px}.topbar-actions{gap:3px}.bar-sep{margin-inline:1px}.btn.showpiece{display:none}}.app.is-mobile{min-width:0}.is-mobile .topbar{height:calc(48px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);padding-inline:12px;gap:8px}.is-mobile .brand{flex:none;font-size:11px}.is-mobile .topbar-actions{flex:none;margin-left:auto;gap:4px}.is-mobile .topbar-actions .icon-btn{width:34px;height:34px}.is-mobile .topbar-actions .btn.primary{width:34px;height:34px;padding:0;justify-content:center}.is-mobile .main,.is-mobile .canvas-wrap{min-height:0}.is-mobile .hint,.is-mobile .part-tag{display:none}.sculpt-fab{position:absolute;right:12px;bottom:12px;display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 14px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:#141416c7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#cfcfd4;font-size:12.5px;font-weight:560;font-family:inherit;cursor:pointer;transition:background .15s ease,color .15s ease}.sculpt-fab[aria-pressed=true]{background:#fff;color:#111;border-color:#fff}.sculpt-fab .shape-dots{display:inline-flex;gap:3px}.is-mobile .handle{width:26px;height:26px}.is-mobile .handle.sculpt{width:22px;height:22px}.mdock{position:relative;flex:none;display:flex;flex-direction:column;min-height:0;background:var(--panel);border-top:1px solid #232324;padding-bottom:max(env(safe-area-inset-bottom),10px)}.mdock.settle{transition:height .26s cubic-bezier(.32,.72,.24,1)}.mdock-scroll{flex:1;min-height:0;overflow-y:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;touch-action:pan-y}.mdock-scroll.open{overflow-y:auto}.mdock-scroll::-webkit-scrollbar{display:none}.mdock-editor{padding-bottom:2px}.mdock-row{display:flex;align-items:center;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x}.mdock-row::-webkit-scrollbar{display:none}.sel-pill-lift{transform:translateY(-34px)}.sel-pill{pointer-events:auto;display:inline-flex;align-items:center;gap:2px;padding:4px 4px 4px 12px;border-radius:999px;background:#141416;box-shadow:0 4px 16px #0006;white-space:nowrap;user-select:none;-webkit-user-select:none;animation:sel-pill-in .16s ease-out}@keyframes sel-pill-in{0%{opacity:0;transform:translateY(4px) scale(.94)}to{opacity:1;transform:none}}.sel-pill-name{font-size:12.5px;font-weight:580;color:#fff;margin-right:4px}.sel-pill-btn{flex:none;width:28px;height:28px;border:0;border-radius:50%;background:#ffffff1f;color:#fff;font-family:inherit;font-size:13px;line-height:1;cursor:pointer}.sel-pill-btn:active{background:#ffffff47}.mdock-head{flex:none}.mdock-grip{display:flex;justify-content:center;padding:8px 0 4px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.mdock-grip .grip-bar{width:40px;height:4px;border-radius:2px;background:#ffffff40}.mdock-grip:active .grip-bar{background:#ffffff73}.msheet-pane{padding:0 16px 8px;border-top:1px solid #232324}.msheet-tabs{display:flex;gap:2px;padding:0 12px 8px;background:var(--panel)}.msheet-tabs button{flex:1;height:34px;border:0;border-radius:9px;background:none;color:var(--text-faint);font-size:12.5px;font-weight:580;font-family:inherit;cursor:pointer}.msheet-tabs button.active{background:var(--row);color:var(--text)}.mlayer-add{gap:8px;margin-inline:-16px;padding-inline:16px}.mlayer-add button{flex:none;height:34px;padding:0 13px;border:1px solid rgba(255,255,255,.12);border-radius:17px;background:var(--row);color:var(--text);font-size:12.5px;font-weight:540;font-family:inherit;cursor:pointer;white-space:nowrap}.mgroup{padding:16px 0}.mgroup+.mgroup{border-top:1px solid rgba(255,255,255,.06)}.msheet-pane>.msheet-label{margin-top:16px}.msheet-pane>.mgroup:first-child{padding-top:12px}.mgroup-note{margin:-4px 0 12px;font-size:12px;line-height:1.45;color:var(--text-faint)}.mtoast{position:absolute;left:12px;right:12px;bottom:calc(100% + 10px);display:flex;align-items:center;gap:12px;height:44px;padding:0 6px 0 16px;border-radius:12px;background:#141416;box-shadow:0 6px 20px #00000073;color:var(--text);font-size:13px;z-index:8;animation:mtoast-in .2s ease-out}@keyframes mtoast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.mtoast span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mtoast button{flex:none;height:32px;padding:0 14px;border:0;border-radius:8px;background:#ffffff1f;color:#fff;font-family:inherit;font-size:13px;font-weight:580;cursor:pointer}.mtoast button:active{background:#ffffff42}.mlayer-add button.on{background:#fff;color:#111;border-color:#fff}.mlayer-empty{color:var(--text-faint);font-size:12px;line-height:1.45}.mtext-input{width:100%;height:40px;margin:2px 0 8px;padding:0 12px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:var(--row);color:var(--text);font-family:inherit;font-size:14px}.mtext-input:focus{outline:none;border-color:#fff6}.mlayer{display:flex;align-items:center;gap:8px;height:44px;padding:0 4px;border-radius:9px;cursor:pointer}.mlayer.active{background:var(--row)}.mlayer.ghost .mlayer-name,.mlayer.ghost .mlayer-icon{opacity:.4}.mlayer-icon{display:flex;align-items:center;justify-content:center;width:20px;font-size:13px}.mlayer-icon .mchip-dot{display:block}.mlayer-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--text)}.mlayer button{flex:none;width:32px;height:32px;border:0;border-radius:8px;background:none;color:var(--text-dim);font-size:12px;cursor:pointer}.mlayer button:active{background:var(--row-hover)}.is-mobile .cp{width:min(320px,calc(100vw - 20px))}.is-mobile .cp-sv{height:190px}.is-mobile .cp-hue{height:20px}.msheet-label{display:flex;align-items:baseline;gap:8px;margin-bottom:10px;font-size:10.5px;font-weight:620;letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint)}.msheet-label span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--text-dim)}.msheet-label.inset{padding:2px 16px 6px}.mdock-head{border-bottom:1px solid #232324}.mdock-head .mdock-parts{padding-bottom:12px}.msheet-colorways{gap:14px;margin-inline:-16px;padding-inline:16px}.mcolorway{flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;color:var(--text-dim);font-size:11px;font-weight:540;font-family:inherit;cursor:pointer}.mcolorway span{width:46px;height:46px;border-radius:50%;box-shadow:inset 0 0 0 1px #ffffff1f;transition:box-shadow .15s ease}.mcolorway.active{color:var(--text)}.mcolorway.active span{box-shadow:inset 0 0 0 1px #ffffff1f,0 0 0 3px var(--panel),0 0 0 5px var(--text)}.mdial{padding:0 0 8px}.mdial-value{display:flex;align-items:baseline;justify-content:center;gap:8px;width:100%;padding:4px 0 8px;border:0;background:none;color:var(--text);font-family:inherit;font-size:26px;font-weight:620;font-variant-numeric:tabular-nums;letter-spacing:-.01em;cursor:pointer}.mdial-value i{font-size:10px;font-style:normal;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.mdial input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:44px;margin:0;background:none;touch-action:pan-x}.mdial input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--fill)}.mdial input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;margin-top:-13px;border-radius:50%;border:none;background:var(--text);box-shadow:0 2px 8px #00000080}.mdial input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--fill)}.mdial input[type=range]::-moz-range-thumb{width:30px;height:30px;border-radius:50%;border:none;background:var(--text);box-shadow:0 2px 8px #00000080}.mdial-rail{gap:4px;margin-inline:-16px;padding-inline:16px}.mdial-rail+.mslider{margin-top:12px}.mdial-tab{position:relative;flex:none;height:34px;padding:0 12px;border:0;border-radius:9px;background:none;color:var(--text-faint);font-size:12.5px;font-weight:540;font-family:inherit;white-space:nowrap;cursor:pointer}.mdial-tab.active{background:var(--row);color:var(--text)}.mdial-tab i{position:absolute;top:6px;right:5px;width:5px;height:5px;border-radius:50%;background:#46c8ff;transition:opacity .15s ease}.mslider{display:block;margin-bottom:4px}.mslider-head{display:flex;justify-content:space-between;font-size:12.5px;color:var(--text-dim);margin-bottom:2px}.mslider-head b{font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.mslider input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:26px;margin:0;background:none;touch-action:pan-x}.mslider input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:var(--fill)}.mslider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:-9.5px;border-radius:50%;border:none;background:var(--text);box-shadow:0 1px 6px #00000073}.mslider input[type=range]::-moz-range-track{height:3px;border-radius:2px;background:var(--fill)}.mslider input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;border:none;background:var(--text);box-shadow:0 1px 6px #00000073}.mdock-parts{gap:8px;padding:10px 14px}.mchip{flex:none;display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border:1px solid transparent;border-radius:17px;background:var(--row);color:var(--text-dim);font-size:12.5px;font-weight:540;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease,border-color .15s ease}.mchip.active{background:var(--fill);color:var(--text);border-color:#ffffff38}.mchip-dot{width:12px;height:12px;border-radius:50%;border:1px solid rgba(255,255,255,.25);flex:none}.mdock-tabs{gap:4px;padding:10px 14px 0}.mtab{flex:none;height:32px;padding:0 11px;border:0;border-radius:8px;background:none;color:var(--text-faint);font-size:12.5px;font-weight:540;font-family:inherit;cursor:pointer;white-space:nowrap;transition:color .15s ease,background .15s ease}.mtab.active{color:var(--text);background:var(--row)}.mtab-sep{flex:none;width:1px;height:16px;margin-inline:6px;background:#ffffff1f}.mdock-swatchbar{display:flex;align-items:center;gap:12px;padding:14px 0 14px 14px;min-width:0}.mdock-swatchbar .swatch.mswatch-custom{position:relative;margin-right:2px;background-image:conic-gradient(#f66,#fc6 60deg,#6f8,#6cf,#b7f 300deg,#f66 360deg)!important;border:2px solid var(--panel);box-shadow:0 0 0 1px #ffffff47}.mdock-swatchbar .swatch.mswatch-custom:after{content:"";position:absolute;top:6px;bottom:6px;right:-8px;width:1px;background:#ffffff1f}.mdock-swatches{flex:1;gap:12px;padding:0 14px 0 0}.mswatch{flex:none;width:42px;height:42px;border-radius:50%;border:0;cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff1f;transition:transform .15s ease,box-shadow .15s ease}.mswatch:active{transform:scale(.92)}.mswatch.active{box-shadow:inset 0 0 0 1px #ffffff1f,0 0 0 3px var(--panel),0 0 0 5px var(--text)}.swatch.mswatch-custom{flex:none;width:42px;height:42px;border-radius:50%;border:1.5px dashed rgba(255,255,255,.35);background:conic-gradient(#f66,#fc6 60deg,#6f8,#6cf,#b7f 300deg,#f66 360deg);background-clip:padding-box}.shell{--shell-bg: #f4f4f3;--shell-surface: #ffffff;--shell-line: #e3e3e0;--shell-line-strong: #d2d2ce;--shell-ink: #111111;--shell-ink-dim: #6d6d69;--shell-ink-faint: #9a9a95;--shell-danger: #b3261e;position:fixed;top:0;right:0;bottom:0;left:0;display:flex;background:var(--shell-bg);color:var(--shell-ink);font-size:13px;overflow:hidden}.shell button{font-family:inherit}.mono{font-family:Geist Mono Variable,ui-monospace,SF Mono,Menlo,monospace;text-transform:uppercase;letter-spacing:.09em}.shell-sidebar{width:190px;flex:none;display:flex;flex-direction:column;gap:4px;padding:16px 12px;border-right:1px solid var(--shell-line);background:var(--shell-bg)}.shell-brand{display:flex;align-items:center;gap:8px;padding:4px 8px 18px;font-size:11px;font-weight:560}.shell-brand-dot{width:13px;height:13px;border-radius:50%;background:conic-gradient(from 210deg,#7c5cff,#46c8ff,#7c5cff);flex:none}.shell-nav{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border:none;border-radius:7px;background:transparent;color:var(--shell-ink-dim);font-size:10.5px;font-weight:540;text-align:left;cursor:pointer;transition:background .14s ease,color .14s ease}.shell-nav:hover{background:#eaeae7;color:var(--shell-ink)}.shell-nav.active{background:#e8e8e5;color:var(--shell-ink)}.shell-nav svg{flex:none;opacity:.75}.shell-sidebar-foot{margin-top:auto;display:grid;gap:12px}.back-to-editor{justify-content:center;width:100%}.shell-user{padding:10px;border-top:1px solid var(--shell-line);display:grid;gap:3px}.shell-user-email{font-size:11px;color:var(--shell-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-user-signout{justify-self:start;padding:0;border:none;background:none;color:var(--shell-ink-faint);font-size:10px;cursor:pointer}.shell-user-signout:hover{color:var(--shell-ink)}.shell-main{flex:1;min-width:0;overflow-y:auto;padding:34px 40px 80px}.shell-head{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1180px;margin:0 auto 34px}.shell-title{font-size:25px;font-weight:500;letter-spacing:-.01em}.shell-head-actions{display:flex;align-items:center;gap:9px}.shell-btn{display:inline-flex;align-items:center;gap:7px;height:33px;padding:0 15px;border:1px solid var(--shell-line-strong);border-radius:8px;background:var(--shell-surface);color:var(--shell-ink);font-size:10.5px;font-weight:540;cursor:pointer;transition:background .14s ease,border-color .14s ease,transform .1s ease,opacity .14s ease}.shell-btn:hover{border-color:#b9b9b4}.shell-btn:active{transform:scale(.975)}.shell-btn:disabled{opacity:.45;cursor:default;transform:none}.shell-btn.primary{background:var(--shell-ink);border-color:var(--shell-ink);color:#fff}.shell-btn.primary:hover{background:#292929;border-color:#292929}.shell-btn.danger{color:var(--shell-danger)}.shell-btn.plain{border-color:transparent;background:transparent}.shell-btn.plain:hover{background:#eaeae7;border-color:transparent}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px;max-width:1180px;margin:0 auto}.project-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--shell-line);border-radius:12px;background:var(--shell-surface);overflow:hidden;transition:border-color .14s ease,box-shadow .16s ease,transform .16s ease}.project-card:hover{border-color:var(--shell-line-strong);box-shadow:0 8px 22px #11111112;transform:translateY(-1px)}.project-thumb{display:block;width:100%;aspect-ratio:8 / 5;padding:0;border:none;border-bottom:1px solid var(--shell-line);background:#ededea;cursor:pointer;overflow:hidden}.project-thumb img{width:100%;height:100%;object-fit:cover;display:block}.project-thumb-empty{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--shell-ink-faint);font-size:9.5px}.project-meta{display:flex;align-items:center;gap:8px;padding:11px 8px 11px 13px}.project-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:540;background:none;border:none;padding:0;color:inherit;text-align:left;cursor:pointer}.project-time{font-size:9.5px;color:var(--shell-ink-faint);flex:none}.project-menu-btn{flex:none;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:none;color:var(--shell-ink-faint);cursor:pointer}.project-menu-btn:hover{background:#eeeeeb;color:var(--shell-ink)}.project-menu{position:absolute;right:8px;bottom:44px;z-index:5;min-width:152px;padding:5px;display:grid;gap:1px;border:1px solid var(--shell-line-strong);border-radius:9px;background:var(--shell-surface);box-shadow:0 10px 28px #11111124}.project-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 9px;border:none;border-radius:6px;background:none;color:var(--shell-ink);font-size:10.5px;font-weight:520;text-align:left;cursor:pointer}.project-menu button:hover{background:#f0f0ed}.project-menu button.danger{color:var(--shell-danger)}.shell-empty{max-width:1180px;margin:0 auto;padding:64px 0;display:grid;justify-items:center;gap:14px;text-align:center;color:var(--shell-ink-dim)}.shell-empty h2{font-size:15px;font-weight:540;color:var(--shell-ink)}.shell-empty p{font-size:12px;max-width:340px;line-height:1.55}.shell-note{max-width:1180px;margin:0 auto 20px;padding:11px 14px;border:1px solid #e6ccc9;border-radius:9px;background:#fdf3f2;color:var(--shell-danger);font-size:11px}.shell-loading{display:grid;place-items:center;height:100%;color:var(--shell-ink-faint);font-size:10.5px}.login{display:grid;place-items:center;width:100%;padding:24px}.login-card{width:100%;max-width:348px;display:grid;gap:18px}.login-brand{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:560}.login-heading{display:grid;gap:7px}.login-heading h1{font-size:21px;font-weight:500;letter-spacing:-.01em}.login-heading p{font-size:12px;line-height:1.55;color:var(--shell-ink-dim)}.login-form{display:grid;gap:9px}.login-input{height:40px;padding:0 13px;border:1px solid var(--shell-line-strong);border-radius:9px;background:var(--shell-surface);color:var(--shell-ink);font-family:inherit;font-size:13px;outline:none;transition:border-color .14s ease}.login-input:focus{border-color:var(--shell-ink)}.login-input::placeholder{color:var(--shell-ink-faint)}.login-code{font-family:Geist Mono Variable,ui-monospace,SF Mono,Menlo,monospace;font-size:19px;letter-spacing:.36em;text-align:center}.login-btn{height:40px;justify-content:center;width:100%}.login-divider{display:flex;align-items:center;gap:11px;color:var(--shell-ink-faint);font-size:9.5px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--shell-line)}.login-msg{font-size:11px;line-height:1.5;color:var(--shell-ink-dim)}.login-msg.error{color:var(--shell-danger)}.login-back{justify-self:start;display:flex;align-items:center;gap:3px;padding:0;border:none;background:none;color:var(--shell-ink-faint);font-size:10px;cursor:pointer}.login-back:hover{color:var(--shell-ink)}.login-foot{font-size:10.5px;line-height:1.55;color:var(--shell-ink-faint)}.project-chip{display:flex;align-items:center;gap:8px;min-width:0;flex:0 1 auto;overflow:hidden}.project-chip .back-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:7px;background:var(--row);color:var(--text-dim);cursor:pointer}.project-chip .back-btn:hover{background:var(--row-hover);color:var(--text)}.project-chip input{min-width:60px;max-width:220px;height:28px;padding:0 8px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text);font-family:inherit;font-size:12px;font-weight:540;outline:none}.project-chip input:hover{border-color:#303033}.project-chip input:focus{border-color:#45454a;background:var(--row)}.save-status{flex:none;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.save-status.saving{color:var(--text-dim)}.save-status.error{color:#ff7a6e}@media (max-width: 820px){.shell-sidebar{display:none}.shell-main{padding:22px 16px 64px}.shell-head{margin-bottom:22px}.project-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.project-chip input{max-width:120px}}
