:root{--bg: #0b0c0b;--bg-raised: #121311;--panel: #191a17;--panel-hover: #242520;--panel-soft: #151613;--ink: #fff9ea;--muted: #aaa79d;--faint: #747169;--rule: rgba(255, 249, 234, .105);--rule-strong: rgba(255, 249, 234, .2);--accent: #ffc128;--accent-deep: #eda508;--accent-soft: rgba(255, 193, 40, .14);--ok: #9dc85c;--danger: #ef6a62;--shadow: 0 18px 54px rgba(0, 0, 0, .34);--radius: 20px;--radius-sm: 12px;--font-display: "Arial Rounded MT Bold", "Trebuchet MS", system-ui, sans-serif;--font-ui: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100%;margin:0;overflow:hidden}body{background:radial-gradient(circle at 18% -10%,rgba(255,193,40,.08),transparent 30%),var(--bg);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{color:inherit}button,summary,select{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,p{margin:0}fieldset{min-width:0;margin:0;padding:0;border:0}.app-shell{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,249,234,.18);border-radius:22px;background:linear-gradient(145deg,#131412fa,#0a0b0afc)}.eyebrow{display:flex;align-items:center;gap:9px;color:var(--ink);font-size:.67rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.eyebrow b{color:var(--accent)}.panel-heading h2{margin-top:7px;font-family:var(--font-display);font-size:1.23rem;letter-spacing:-.025em}.panel-heading p{margin-top:6px;color:var(--muted);font-size:.76rem;line-height:1.45}.panel-heading.compact{padding-bottom:4px}.topbar{position:relative;z-index:10;min-height:84px;display:grid;grid-template-columns:minmax(230px,300px) minmax(480px,1fr) auto;align-items:center;gap:22px;padding:10px max(30px,env(safe-area-inset-right)) 10px max(30px,env(safe-area-inset-left));border-bottom:1px solid var(--rule);background:#0a0b0ae0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.brand-lockup{display:flex;align-items:center;gap:15px;min-width:0}.brand-lockup img{width:126px;height:58px;object-fit:contain;object-position:left center}.brand-copy{display:flex;align-items:baseline;gap:5px;padding-left:15px;border-left:1px solid var(--rule-strong);white-space:nowrap}.brand-copy span{color:var(--muted);font-size:.66rem;font-weight:700}.brand-copy small{color:var(--muted);font-size:.62rem}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:15px}.topbar-note{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.7rem;white-space:nowrap}.live-dot{width:7px;height:7px;border-radius:50%;background:#63c554;box-shadow:0 0 0 4px #63c55417}.help-menu{position:relative}.help-menu summary{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--rule);border-radius:50%;color:var(--muted);cursor:pointer;list-style:none}.help-menu summary::-webkit-details-marker{display:none}.help-menu summary svg{width:17px}.help-menu[open] summary,.help-menu summary:hover{color:var(--ink);border-color:var(--rule-strong)}.help-menu>div{position:absolute;top:44px;right:0;width:230px;display:flex;flex-direction:column;gap:6px;padding:13px;border:1px solid var(--rule-strong);border-radius:12px;background:#141512fa;box-shadow:var(--shadow)}.help-menu strong{font-size:.72rem}.help-menu span{color:var(--muted);font-size:.62rem;line-height:1.45}.stepper{min-width:0;display:flex;align-items:center;justify-content:center}.step{min-width:0;display:flex;align-items:center;gap:10px}.step strong{color:var(--muted);white-space:nowrap;font-size:.7rem;font-weight:700}.step:first-child strong{color:var(--ink)}.step-number{width:29px;height:29px;flex:0 0 auto;display:grid;place-items:center;border:1px solid var(--rule-strong);border-radius:50%;color:var(--muted);font-size:.67rem}.step-number.active{color:#17130a;border-color:var(--accent);background:var(--accent);font-weight:900;box-shadow:0 0 22px #ffc12829}.step-line{width:clamp(28px,4.7vw,78px);height:1px;margin:0 clamp(9px,1.3vw,20px);background:var(--rule-strong)}.step:first-child .step-line{background:linear-gradient(90deg,var(--accent),rgba(255,193,40,.4))}.studio-grid{min-height:0;flex:1;display:grid;grid-template-columns:clamp(230px,16vw,280px) minmax(460px,1fr) clamp(500px,33vw,640px);gap:16px;padding:14px max(20px,env(safe-area-inset-right)) 18px max(20px,env(safe-area-inset-left));overflow:hidden}.panel,.viewport-panel{min-height:0;border:1px solid var(--rule);border-radius:var(--radius);background:linear-gradient(145deg,#1d1e1bf5,#141512fa);box-shadow:var(--shadow)}.panel{padding:16px;overflow:hidden}.library-panel{display:flex;flex-direction:column}.customize-panel{display:flex;flex-direction:column;padding:0;background:#0e0f0df5}.viewport-panel{position:relative;overflow:hidden;background:#160f0b;isolation:isolate}.ghost-button,.text-button{border:0;background:transparent;cursor:pointer}.ghost-button{min-height:40px;display:flex;align-items:center;gap:8px;padding:8px 13px;border:1px solid var(--rule);border-radius:10px;color:var(--ink);font-size:.68rem;font-weight:700;white-space:nowrap}.ghost-button svg{width:16px}.ghost-button:hover{border-color:var(--rule-strong);background:#ffffff06}.text-button{margin-top:8px;color:var(--muted);font-size:.63rem;text-decoration:underline;text-underline-offset:3px}.choice-field legend,.color-field legend,.face-fit-controls legend{margin-bottom:10px;color:#d2d0c9;font-size:.62rem;font-weight:750}.choice-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px}.choice{min-width:0;min-height:44px;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 10px;border:1px solid var(--rule);border-radius:8px;background:#0a0b0a38;color:var(--muted);cursor:pointer}.choice>span{font-family:var(--font-display);font-size:.92rem;white-space:nowrap}.choice small{color:var(--faint);font-size:.54rem}.choice:hover{border-color:var(--rule-strong);background:var(--panel-hover)}.choice.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px #ffc12812}.choice.selected small{color:var(--accent)}.face-fit-controls{display:flex;flex-direction:column;gap:15px}.face-mode-row{display:grid;grid-template-columns:1fr 1fr;gap:0}.face-mode{min-width:0;min-height:44px;padding:8px 12px;border:1px solid var(--rule);background:var(--panel-soft);color:var(--muted);text-align:center;cursor:pointer}.face-mode:first-child{border-radius:8px 0 0 8px}.face-mode:last-child{border-left:0;border-radius:0 8px 8px 0}.face-mode strong{font-size:.58rem}.face-mode small{display:none}.face-mode.selected{border-color:var(--accent);background:var(--accent);color:#171207}.face-mode.selected+.face-mode{border-left-color:var(--accent)}.cavity-options{margin:-2px 0 0}.color-field{display:flex;flex-direction:column}.swatches{display:flex;flex-wrap:wrap;gap:14px}.swatch{width:34px;height:34px;border:3px solid #1d1e1b;border-radius:50%;box-shadow:0 0 0 1px var(--rule-strong);cursor:pointer}.swatch.selected{box-shadow:0 0 0 2px var(--accent);transform:scale(1.06)}.size-control{display:flex;flex-direction:column;gap:9px;color:var(--muted);font-size:.62rem}.size-control>span{display:flex;justify-content:space-between}.size-control strong{color:var(--ink)}.size-control input{width:100%;accent-color:var(--accent);cursor:pointer}.size-control small{display:flex;justify-content:space-between;color:var(--faint);font-size:.53rem}.library-panel .panel-heading{flex:0 0 auto;padding:2px 3px 0}.library-panel .panel-heading p{margin-top:16px}.body-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin-top:27px}.body-card{min-height:98px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px solid var(--rule);border-radius:13px;background:#10110f8c;color:var(--muted);cursor:pointer;transition:.16s ease}.body-card svg{width:41px;height:41px;color:#d7d3c8}.body-card span{font-size:.66rem;font-weight:720}.body-card:hover{transform:translateY(-1px);border-color:var(--rule-strong);background:var(--panel-hover)}.body-card.selected{border-color:var(--accent);color:var(--accent);background:linear-gradient(145deg,#ffc12821,#ffc12809);box-shadow:inset 0 0 0 1px #ffc1281a}.body-card.selected svg{color:var(--accent)}.library-divider{display:flex;align-items:center;gap:9px;margin:18px 0 12px;color:var(--faint);font-size:.54rem;letter-spacing:.12em}.library-divider:before,.library-divider:after{content:"";flex:1;height:1px;background:var(--rule)}.upload-zone{width:100%;min-height:108px;display:flex;align-items:center;gap:13px;padding:14px;border:1px dashed var(--rule-strong);border-radius:13px;background:#ffffff05;color:var(--ink);text-align:left;cursor:pointer}.upload-zone:hover,.upload-zone.dragging{border-color:var(--accent);background:var(--accent-soft)}.upload-zone.has-file{border-style:solid;border-color:#9dc85c7a}.upload-icon{width:39px;height:39px;flex:0 0 auto;display:grid;place-items:center;border:1px solid var(--rule);border-radius:50%;color:var(--accent)}.upload-icon svg{width:20px}.upload-copy{display:flex;min-width:0;flex-direction:column;gap:5px}.upload-copy strong{overflow:hidden;text-overflow:ellipsis;font-size:.69rem}.upload-copy small{color:var(--muted);font-size:.59rem;line-height:1.4}.library-tip{min-height:62px;display:flex;align-items:center;gap:10px;margin-top:auto;padding:11px 13px;border:1px solid var(--rule);border-radius:11px;background:#ffffff05;color:var(--muted);font-size:.59rem;line-height:1.45}.library-tip svg{width:18px;flex:0 0 auto;color:var(--accent)}.library-tip strong{color:var(--ink);font-weight:650}.viewport-backdrop{position:absolute;z-index:0;top:-8%;right:-8%;bottom:-8%;left:-8%;background-position:center;background-size:cover;filter:saturate(.88) brightness(.9);transform:perspective(1100px) translate3d(var(--backdrop-x, 0),var(--backdrop-y, 0),0) rotateY(var(--backdrop-yaw, 0deg)) scale(1.045);transform-origin:center;transition:filter .18s ease;will-change:transform}.viewport-backdrop:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 44%,transparent 28%,rgba(13,9,6,.18) 78%,rgba(8,6,4,.45))}.viewport-panel[data-lighting=soft] .viewport-backdrop{filter:saturate(.72) brightness(1.04) contrast(.92)}.viewport-panel[data-lighting=workshop] .viewport-backdrop{filter:saturate(1.16) brightness(.76) contrast(1.08) sepia(.12)}.viewport-mount{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0}.viewport-canvas{display:block;width:100%;height:100%}.viewport-toolbar{position:absolute;z-index:4;top:20px;left:20px;right:20px;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}.lighting-select{min-width:160px;height:40px;display:flex;align-items:center;gap:9px;padding:0 11px;border:1px solid var(--rule-strong);border-radius:12px;background:#0f0f0dc2;color:var(--ink);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:auto}.lighting-select>svg{width:18px;flex:0 0 auto;color:var(--accent)}.lighting-select select{min-width:0;flex:1;border:0;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;color:inherit;font-size:.66rem;cursor:pointer}.lighting-select option{color:var(--ink);background:#171815}.lighting-select>span{color:var(--muted);font-size:.65rem}.viewport-actions{height:40px;display:flex;align-items:center;overflow:hidden;border:1px solid var(--rule-strong);border-radius:12px;background:#0f0f0dc2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:auto}.viewport-actions button{width:45px;height:40px;display:grid;place-items:center;border:0;border-right:1px solid var(--rule);background:transparent;color:var(--muted);cursor:pointer}.viewport-actions button:last-child{border-right:0}.viewport-actions button:hover{color:var(--ink);background:#ffffff0d}.viewport-actions button[aria-pressed=true]{color:var(--accent);background:#ffb52d24}.viewport-actions svg{width:17px}.viewport-commandbar{position:absolute;z-index:4;left:50%;bottom:72px;display:flex;align-items:center;gap:11px;padding:8px 12px;border:1px solid var(--rule);border-radius:999px;background:#0e0e0cd6;color:var(--muted);font-size:.6rem;white-space:nowrap;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);transform:translate(-50%)}.viewport-commandbar>span,.viewport-commandbar button{display:flex;align-items:center;gap:7px}.viewport-commandbar svg{width:17px;color:#d7d3c8}.viewport-commandbar>i{width:1px;height:18px;background:var(--rule)}.viewport-commandbar button{padding:0;border:0;background:transparent;color:var(--muted);font-size:inherit;cursor:pointer}.viewport-commandbar button:hover{color:var(--ink)}.viewport-commandbar kbd{min-width:19px;height:19px;display:grid;place-items:center;border:1px solid var(--rule-strong);border-radius:5px;color:var(--ink);font:.55rem var(--font-ui)}.viewport-badges{position:absolute;z-index:4;left:50%;bottom:24px;display:flex;gap:8px;white-space:nowrap;pointer-events:none;transform:translate(-50%)}.viewport-badges span{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--rule);border-radius:999px;background:#0f0f0db8;color:var(--muted);font-size:.56rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.viewport-badges b{color:#d7d3c8;font-size:.62rem}.ok-dot{width:7px;height:7px;border-radius:50%;background:#4cad42;box-shadow:0 0 0 3px #4cad421a}.viewport-file{position:absolute;z-index:4;top:72px;left:20px;max-width:45%;overflow:hidden;color:#fff9ea94;font-size:.57rem;text-overflow:ellipsis;white-space:nowrap}.floating-report{position:absolute;z-index:5;top:72px;right:20px;display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid rgba(157,200,92,.35);border-radius:10px;background:#131311db;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.floating-report>span{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--ok);color:#142006;font-weight:900}.floating-report div{display:flex;flex-direction:column;gap:2px}.floating-report strong{font-size:.62rem}.floating-report small{color:var(--muted);font-size:.52rem}.floating-report.repair,.floating-report.bad{border-color:#ef6a6259}.floating-report.repair>span,.floating-report.bad>span{background:var(--danger);color:#260806}.viewport-panel:fullscreen{border:0;border-radius:0}.viewport-panel.is-expanded{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;border:0;border-radius:0}.viewport-panel:fullscreen .viewport-commandbar{bottom:max(72px,env(safe-area-inset-bottom))}.viewport-panel.is-expanded .viewport-commandbar{bottom:max(72px,env(safe-area-inset-bottom))}.face-design-panel{border:1px solid var(--rule-strong);border-radius:14px;background:linear-gradient(145deg,#1f201de0,#161714f2)}.face-design-header{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;padding:17px 18px 14px}.face-design-copy{display:flex;min-width:0;flex-direction:column;gap:4px}.face-design-copy strong{font-size:.72rem;letter-spacing:.11em;text-transform:uppercase}.face-design-copy small{color:var(--faint);font-size:.54rem}.face-design-body{display:flex;flex-direction:column;gap:10px;padding:0 11px 12px}.symmetry-control{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:.5rem}.symmetry-control button{width:34px;height:19px;padding:2px;border:1px solid var(--rule-strong);border-radius:999px;background:#11120f;cursor:pointer}.symmetry-control button i{width:13px;height:13px;display:block;border-radius:50%;background:var(--faint);transition:transform .15s ease,background .15s ease}.symmetry-control button[aria-checked=true]{border-color:#ffc1288c;background:var(--accent-soft)}.symmetry-control button[aria-checked=true] i{background:var(--accent);transform:translate(14px)}.face-component-list,.component-transform-editor,.face-advanced{border:1px solid var(--rule);border-radius:10px;background:#ffffff04}.face-component-list{padding:11px}.subsection-heading{display:flex;flex-direction:column;gap:3px;margin-bottom:9px}.subsection-heading strong{font-size:.59rem;letter-spacing:.08em;text-transform:uppercase}.subsection-heading small{color:var(--faint);font-size:.49rem;line-height:1.35}.component-rows{display:flex;flex-direction:column;gap:5px}.face-component-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;border:1px solid var(--rule);border-radius:8px;background:#08090847}.face-component-row.selected{border-color:#ffc1289e;background:#ffc1280e}.face-component-select{min-width:0;min-height:43px;display:grid;grid-template-columns:20px minmax(0,1fr) 38px;align-items:center;gap:8px;padding:5px 8px;border:0;background:transparent;text-align:left;cursor:pointer}.component-grip{color:var(--faint);font-size:.9rem}.component-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.component-copy strong{font-size:.55rem}.component-copy small{overflow:hidden;color:var(--faint);font-size:.46rem;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap}.component-preview{width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--rule-strong);border-radius:50%;background:#eee9dc;color:#080908;font-size:.72rem}.component-preview.mouth{color:#050505;font-size:1rem}.component-preview.cheeks{background:radial-gradient(circle at 35% 30%,#ffb7b9,#f06a72);color:transparent}.component-visibility{border:0;border-left:1px solid var(--rule);background:transparent;color:var(--faint);cursor:pointer}.component-visibility.visible{color:var(--ink)}.add-component-menu{position:relative}.add-component-menu summary{min-height:36px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(255,193,40,.65);border-radius:8px;color:var(--accent);font-size:.53rem;font-weight:800;cursor:pointer;list-style:none}.add-component-menu summary::-webkit-details-marker{display:none}.add-component-menu>div{position:absolute;z-index:5;top:40px;right:0;left:0;display:grid;gap:4px;padding:7px;border:1px solid var(--rule-strong);border-radius:9px;background:#191a17;box-shadow:var(--shadow)}.add-component-menu>div button{min-height:35px;display:flex;align-items:center;gap:9px;padding:7px 10px;border:0;border-radius:6px;background:transparent;color:var(--muted);text-transform:capitalize;cursor:pointer}.add-component-menu>div button:hover{background:var(--panel-hover);color:var(--ink)}.component-style-row,.independent-eye-styles,.component-style-note{padding:10px;border:1px solid var(--rule);border-radius:10px;background:#ffffff04}.component-style-row>span{display:block;margin-bottom:7px;color:var(--muted);font-size:.52rem;font-weight:700}.component-style-options{display:grid;grid-auto-flow:column;grid-auto-columns:1fr}.component-style-options button{min-width:0;min-height:34px;padding:6px;border:1px solid var(--rule);background:var(--panel-soft);color:var(--faint);font-size:.49rem;cursor:pointer}.component-style-options button:first-child{border-radius:7px 0 0 7px}.component-style-options button:last-child{border-radius:0 7px 7px 0}.component-style-options button+button{border-left:0}.component-style-options button.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.independent-eye-styles{display:grid;grid-template-columns:1fr 1fr;gap:9px}.independent-eye-styles .component-style-row{padding:0;border:0;background:transparent}.component-style-note{display:flex;align-items:center;gap:10px}.component-style-note>span:last-child{display:flex;flex-direction:column;gap:2px}.component-style-note strong{font-size:.55rem}.component-style-note small{color:var(--faint);font-size:.47rem}.component-transform-editor{padding:11px}.transform-heading{flex-direction:row;align-items:center;justify-content:space-between}.transform-heading>span{display:flex;flex-direction:column;gap:3px}.transform-heading button,.face-reset{padding:0;border:0;background:transparent;color:var(--muted);font-size:.48rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.transform-controls{display:grid;gap:10px}.transform-range{display:flex;flex-direction:column;gap:6px}.transform-range>span{display:flex;justify-content:space-between;color:var(--muted);font-size:.5rem}.transform-range strong{color:var(--ink);font-size:.49rem}.transform-range input{width:100%;accent-color:var(--accent);cursor:pointer}.face-advanced{overflow:hidden}.face-advanced summary{min-height:52px;display:flex;align-items:center;justify-content:space-between;padding:10px 11px;cursor:pointer;list-style:none}.face-advanced summary::-webkit-details-marker{display:none}.face-advanced summary>span:first-child{display:flex;flex-direction:column;gap:3px}.face-advanced summary strong{font-size:.58rem;letter-spacing:.08em;text-transform:uppercase}.face-advanced summary small{color:var(--faint);font-size:.47rem}.face-advanced summary>span:last-child{color:var(--muted);transition:transform .15s ease}.face-advanced[open] summary>span:last-child{transform:rotate(180deg)}.face-advanced-body{display:flex;flex-direction:column;gap:13px;padding:0 11px 12px;border-top:1px solid var(--rule)}.face-advanced-body .face-fit-controls{padding-top:11px}.customize-scroll{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-color:var(--rule-strong) transparent;scrollbar-width:thin;padding:18px}.editor-sections{display:flex;flex-direction:column;gap:10px}.editor-section-icon{width:22px;height:22px;display:grid;place-items:center;color:var(--accent)}.editor-section-icon svg{width:18px}.editor-section-copy{min-width:0;display:flex;flex-direction:column;gap:4px}.editor-section-copy strong{font-size:.66rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}.editor-section-copy small{color:var(--faint);font-size:.52rem;line-height:1.35}.compact-editor-section{overflow:hidden;border:1px solid var(--rule-strong);border-radius:11px;background:#ffffff05}.compact-editor-section>summary{min-height:61px;display:grid;grid-template-columns:24px minmax(0,1fr) auto 12px;align-items:center;gap:10px;padding:11px 15px;cursor:pointer;list-style:none}.compact-editor-section>summary::-webkit-details-marker{display:none}.compact-editor-section>summary:hover{background:#ffffff05}.compact-editor-section>summary em{padding:4px 7px;border:1px solid var(--rule);border-radius:999px;color:var(--muted);font-size:.45rem;font-style:normal;font-weight:750}.compact-chevron{color:var(--muted);transition:transform .15s ease}.compact-editor-section[open] .compact-chevron{transform:rotate(90deg)}.compact-editor-body{display:flex;flex-direction:column;gap:15px;padding:4px 15px 16px;border-top:1px solid var(--rule)}.limb-placement-editor{display:flex;flex-direction:column;gap:14px;padding-top:3px;border-top:1px solid var(--rule)}.joint-mode-note{margin:-3px 0 2px;color:var(--faint);font-size:.49rem;line-height:1.45}.placement-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:13px}.placement-heading>span{min-width:0;display:flex;flex-direction:column;gap:3px}.placement-heading strong{font-size:.62rem}.placement-heading small{color:var(--faint);font-size:.5rem}.pair-toggle{flex:0 0 auto;min-height:34px;padding:6px 9px;border:1px solid var(--rule);border-radius:7px;background:var(--panel-soft);color:var(--muted);font-size:.5rem;cursor:pointer}.pair-toggle.selected{border-color:#ffc12873;background:var(--accent-soft);color:var(--accent)}.limb-size-presets,.limb-forward-presets{display:grid;grid-template-columns:repeat(3,1fr)}.limb-size-presets button,.limb-forward-presets button{min-width:0;min-height:38px;padding:7px 5px;border:1px solid var(--rule);background:var(--panel-soft);color:var(--faint);cursor:pointer}.limb-size-presets button:first-child,.limb-forward-presets button:first-child{border-radius:7px 0 0 7px}.limb-size-presets button:last-child,.limb-forward-presets button:last-child{border-radius:0 7px 7px 0}.limb-size-presets button+button,.limb-forward-presets button+button{border-left:0}.limb-size-presets button.selected,.limb-forward-presets button.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.limb-size-presets strong,.limb-forward-presets strong{display:block;font-size:.52rem}.limb-size-presets small,.limb-forward-presets small{display:block;margin-top:2px;font-size:.45rem}.limb-size-control,.limb-forward-control{display:flex;flex-direction:column;gap:8px}.limb-size-control>span,.limb-forward-control>span{display:flex;align-items:center;justify-content:space-between;gap:8px}.limb-size-control>span>span,.limb-forward-control>span>span{display:flex;flex-direction:column;gap:2px}.limb-size-control strong,.limb-forward-control strong{font-size:.56rem}.limb-size-control small,.limb-forward-control small{display:flex;justify-content:space-between;color:var(--faint);font-size:.47rem}.limb-size-control input,.limb-forward-control input{width:100%;accent-color:var(--accent);cursor:pointer}.placement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 20px}.placement-slider{display:flex;flex-direction:column;gap:6px}.placement-slider>span{display:flex;justify-content:space-between;color:var(--muted);font-size:.53rem}.placement-slider strong{color:var(--ink);font-size:.51rem}.placement-slider input{width:100%;accent-color:var(--accent);cursor:pointer}.placement-reset{align-self:flex-start;padding:0;border:0;background:transparent;color:var(--muted);font-size:.5rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.placement-reset:hover{color:var(--accent)}.export-mode-control{margin:0}.export-mode-control legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.export-mode-control>div{display:grid;grid-template-columns:1fr 1fr;gap:0}.export-mode-control button{position:relative;min-width:0;min-height:44px;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:7px 8px 7px 32px;border:1px solid var(--rule);background:#0a0b0a40;color:var(--muted);text-align:left;cursor:pointer}.export-mode-control button:first-child{border-radius:8px 0 0 8px}.export-mode-control button:last-child{border-left:0;border-radius:0 8px 8px 0}.export-mode-control button:before{content:"";position:absolute;left:9px;width:14px;height:14px;border:1px solid var(--rule-strong);border-radius:50%}.export-mode-control button:hover{border-color:var(--rule-strong)}.export-mode-control button.selected{border-color:var(--accent);background:var(--accent);color:#171207}.export-mode-control button.selected:before{border-color:#171207;background:radial-gradient(circle,var(--accent) 25%,#171207 30%)}.export-mode-control strong{overflow:hidden;font-size:.54rem;text-overflow:ellipsis;white-space:nowrap}.export-mode-control small{overflow:hidden;color:var(--faint);font-size:.45rem;text-overflow:ellipsis;white-space:nowrap}.export-mode-control button.selected small{color:#171207b3}.output-content{display:flex;flex-direction:column;gap:12px}.output-summary{display:grid;grid-template-columns:1fr 1fr;padding:11px 12px;border-radius:9px;background:#ffffff09}.output-summary>div{min-width:0;display:flex;flex-direction:column;gap:6px}.output-summary>div+div{padding-left:14px;border-left:1px solid var(--rule)}.output-summary strong{margin-bottom:2px;font-size:.56rem}.output-summary span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:.49rem}.output-summary span i{width:5px;height:5px;flex:0 0 auto;border-radius:50%;background:var(--faint)}.output-summary span em{overflow:hidden;margin-left:auto;color:var(--ink);font-style:normal;text-overflow:ellipsis;white-space:nowrap}.output-summary span.ok{color:var(--ok)}.primary-button{width:100%;min-height:46px;display:flex;align-items:center;justify-content:space-between;padding:11px 15px;border:0;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#171207;font-size:.68rem;font-weight:900;cursor:pointer;box-shadow:0 9px 24px #eda5082e}.primary-button:hover{filter:brightness(1.06);transform:translateY(-1px)}.primary-button:disabled{filter:grayscale(.6);opacity:.52;cursor:not-allowed;transform:none}.print-note{color:var(--faint);font-size:.5rem;text-align:center}.error-banner{padding:9px 10px;border:1px solid rgba(239,106,98,.32);border-radius:8px;background:#ef6a6214;color:#f69a94;font-size:.61rem;line-height:1.4}.customize-output-dock{flex:0 0 auto;padding:11px 15px 13px;border-top:1px solid var(--rule-strong);background:#111210fa;box-shadow:0 -14px 30px #00000038}.customize-output-dock>header{display:flex;align-items:center;gap:9px;margin-bottom:9px}.customize-output-dock>header>span:first-child{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:var(--accent);color:#171207}.customize-output-dock>header b{font-size:.62rem}.customize-output-dock>header>span:last-child{display:flex;flex-direction:column;gap:2px}.customize-output-dock>header strong{font-size:.6rem;letter-spacing:.07em;text-transform:uppercase}.customize-output-dock>header small{color:var(--accent);font-size:.47rem}.customize-output-dock .output-summary{display:none}.customize-output-dock .primary-button{min-height:42px}.customize-output-dock .print-note{font-size:.46rem}@media(max-width:1430px)and (min-width:1350px){.topbar{grid-template-columns:250px minmax(430px,1fr) auto;padding-inline:22px}.studio-grid{grid-template-columns:230px minmax(410px,1fr) 500px;padding-inline:14px;gap:12px}.body-card{min-height:86px}.body-card svg{width:36px;height:36px}.library-tip{min-height:54px}}@media(max-width:1349px)and (min-width:1101px){.topbar{grid-template-columns:210px minmax(390px,1fr) auto;padding-inline:14px}.topbar-note{display:none}.studio-grid{grid-template-columns:210px minmax(380px,1fr) 480px;padding-inline:12px;gap:10px}.panel{padding:13px}.customize-panel{padding:0}.body-grid{gap:8px}.body-card{min-height:80px;padding:8px}.body-card svg{width:34px;height:34px}.library-tip{min-height:50px}}@media(max-width:1100px){html,body,#root{height:auto;overflow:auto}.app-shell{height:auto;min-height:100dvh;overflow:visible;border-radius:0}.topbar{grid-template-columns:230px minmax(420px,1fr) auto;padding-inline:18px}.topbar-note{display:none}.studio-grid{grid-template-columns:clamp(230px,25vw,280px) minmax(0,1fr);overflow:visible}.library-panel,.viewport-panel{min-height:680px}.customize-panel{grid-column:1 / -1;min-height:720px}.customize-scroll{width:min(100%,760px);margin-inline:auto;overflow:visible}.customize-output-dock{width:min(100%,760px);margin-inline:auto;border:1px solid var(--rule-strong);border-radius:12px}}@media(max-width:900px){.topbar{min-height:128px;grid-template-columns:1fr auto;gap:4px 16px;padding-block:7px 9px}.topbar .stepper{grid-column:1 / -1;grid-row:2}.brand-lockup img{width:116px;height:48px}.brand-copy{display:none}.studio-grid{padding:10px}.library-panel,.viewport-panel{min-height:620px}.customize-panel{min-height:0}}@media(max-width:780px){.studio-grid{display:flex;flex-direction:column;padding:8px}.viewport-panel{min-height:550px;order:-1}.library-panel{min-height:0;overflow:visible}.body-grid{grid-template-columns:repeat(4,1fr)}.body-card{min-height:82px}.library-tip{margin-top:18px}.customize-scroll{padding:14px}.viewport-commandbar{bottom:68px}.viewport-badges{bottom:20px}}@media(max-width:600px){.topbar{padding-inline:12px}.topbar-actions{gap:8px}.help-menu{display:none}.ghost-button{width:40px;justify-content:center;padding-inline:0}.ghost-button span,.step strong{display:none}.step-line{width:clamp(45px,14vw,75px);margin-inline:12px}.viewport-commandbar>span{font-size:0}.viewport-commandbar>span svg{width:19px}.viewport-commandbar button{font-size:0}.viewport-badges span:nth-child(2),.viewport-badges span:nth-child(3){display:none}.lighting-select{min-width:142px}.viewport-toolbar{top:14px;left:14px;right:14px}.viewport-actions button{width:40px}.choice-row{grid-template-columns:repeat(2,minmax(0,1fr))}.placement-grid,.independent-eye-styles{grid-template-columns:1fr}}@media(max-width:520px){.app-shell{border:0}.brand-lockup img{width:108px}.studio-grid{gap:8px}.panel{padding:14px}.customize-panel{padding:0}.body-grid{grid-template-columns:repeat(2,1fr)}.body-card{min-height:88px}.viewport-panel{min-height:500px}.viewport-actions button:nth-child(2){display:none}.viewport-commandbar{bottom:62px}.viewport-badges{bottom:16px}.swatches{flex-wrap:wrap;justify-content:flex-start}.editor-section-head,.editor-section-body{padding-inline:14px}.output-summary{grid-template-columns:1fr;gap:10px}.output-summary>div+div{padding:10px 0 0;border-top:1px solid var(--rule);border-left:0}.face-design-header{grid-template-columns:24px minmax(0,1fr)}.symmetry-control{grid-column:1 / -1;justify-content:flex-end}.compact-editor-section>summary{grid-template-columns:24px minmax(0,1fr) 12px}.compact-editor-section>summary em{display:none}}
