@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@500;600;650;700;800&display=swap');
:root{font-family:'DM Sans',Arial,sans-serif;color:#303a32;background:#f8f7f3;font-synthesis:none;--ink:#303a32;--muted:#747a70;--line:#dedfd6;--accent:#ad6247;--panel:#f8f7f3}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button{border:0;background:none}button:disabled{cursor:default;opacity:.3}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ad6247;outline-offset:4px}button:hover:not(:disabled){filter:brightness(.94)}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.topbar{height:84px;display:flex;align-items:center;padding:0 34px;border-bottom:1px solid var(--line);gap:30px}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink);font:800 38px/1 'Manrope',sans-serif;letter-spacing:-2.5px}.brand svg{width:32px;height:32px;stroke-width:1.35}.brand-period{color:var(--accent)}.edition{font-size:12px;letter-spacing:1.8px;font-weight:550;color:#6e766b;padding-left:25px;border-left:1px solid var(--line)}.edition span{padding:0 10px;color:#b2b6ab}.top-actions{margin-left:auto;display:flex;align-items:center;gap:22px}.history{display:flex;gap:8px;border-right:1px solid var(--line);padding-right:20px}.icon-btn{width:36px;height:36px;display:inline-flex;justify-content:center;align-items:center;border-radius:7px;font-size:22px}.icon-btn:hover{background:#d2d4c844}.quiet-btn{font-size:14px;font-weight:550;white-space:nowrap}.quiet-btn span{display:inline-flex;width:21px;height:21px;align-items:center;justify-content:center;background:#e8e9e1;border-radius:50%;margin-left:7px;font-size:12px}.share-btn{display:flex;align-items:center;gap:9px;border:1px solid #c9cec1;padding:10px 15px;border-radius:7px;font-size:14px;font-weight:550}.share-btn svg{width:17px;height:17px}.studio{display:grid;grid-template-columns:292px 1fr;min-height:600px;height:calc(100dvh - 125px)}.tool-panel{padding:24px 26px 16px;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:auto;z-index:1;background:var(--panel)}.panel-heading{display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:11px;letter-spacing:2.1px;font-weight:650;color:#7b8277}.help-btn{width:23px;height:23px;border:1px solid #cdd1c6;border-radius:50%;font-size:13px}.tool-panel h1{font-family:'Manrope',sans-serif;font-size:26px;letter-spacing:-1.1px;margin:14px 0 5px;font-weight:650}.intro{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 28px}.section-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px}.section-head h2{font-size:13px;font-weight:650;margin:0}.section-head>span{font-size:11px;color:#949b8d}.tool-list{display:grid;gap:6px}.tool{display:flex;align-items:center;width:100%;text-align:left;gap:12px;border:1px solid transparent;border-radius:8px;padding:12px 10px}.tool>svg{width:25px;height:25px;margin:0 2px}.tool strong{display:block;font-size:14px;font-weight:600}.tool small{display:block;font-size:11px;margin-top:3px;opacity:.65}.tool kbd{margin-left:auto;border:1px solid #c5ccbd;border-radius:4px;padding:1px 4px;font:11px 'DM Sans',sans-serif;opacity:.55}.tool.active{background:#e8ede2;border-color:#cbd5c1}.tool.active svg{color:#52704d}.control{margin-top:22px}label{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:550;margin-bottom:9px}output{font-size:12px;font-variant-numeric:tabular-nums;color:#6a7265}input[type=range]{--fill:36%;width:100%;height:4px;margin:8px 0;appearance:none;background:linear-gradient(to right,#657957 var(--fill),#dcded4 var(--fill));border-radius:8px;cursor:pointer;touch-action:auto}input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:14px;background:#fff;border:3px solid #667b58;border-radius:50%;box-shadow:0 1px 3px #3332}input[type=range]::-moz-range-thumb{width:9px;height:9px;background:#fff;border:3px solid #667b58;border-radius:50%}.range-labels{display:flex;justify-content:space-between;font-size:10px;color:#8f9588;margin-top:6px}.material-section{margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}.swatches{display:flex;gap:14px;margin-top:14px}.swatch{width:27px;height:27px;border-radius:50%;background:var(--swatch);box-shadow:inset 0 0 0 1px #0001;border:3px solid var(--panel);outline:1px solid transparent}.swatch.active{outline-color:#617255}.wheel-control{margin-top:22px;border-top:1px solid var(--line);padding-top:20px}.speed-row{display:flex;gap:10px;align-items:center}.speed-row .icon-btn{width:25px;height:26px;font-size:16px;padding:0;flex-shrink:0}.new-btn{display:flex;justify-content:space-between;align-items:center;border:1px solid #d9ded0;border-radius:7px;padding:11px 13px;margin-top:20px;font-size:13px;font-weight:550}.new-btn span{font-size:20px}.panel-foot{display:flex;align-items:center;gap:9px;margin-top:auto;padding-top:24px;color:#929889;font-size:10px;line-height:1.5}.mini-wheel{width:16px;height:16px;border:1px solid #a4ad98;border-radius:50%;flex-shrink:0;box-shadow:inset 0 0 0 4px var(--panel),inset 0 0 0 5px #a4ad98}.viewport{position:relative;overflow:hidden;background:#dedcd5;min-width:0}#scene{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px;cursor:crosshair}.scene-heading{position:absolute;top:32px;left:36px;pointer-events:none}.scene-heading .eyebrow{color:#7d8378;font-size:10px}.scene-heading h2{font-family:'Manrope',sans-serif;font-size:25px;font-weight:500;letter-spacing:-1px;margin:7px 0 5px}.scene-heading>span:last-child{font-size:12px;color:#85877d}.scene-top-right{position:absolute;right:30px;top:31px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.camera-btn{display:flex;gap:9px;align-items:center;background:#f7f7f0bd;border:1px solid #fff7;border-radius:7px;backdrop-filter:blur(8px);padding:11px 16px;font-size:13px;font-weight:600;box-shadow:0 2px 8px #303a3210}.camera-btn svg{width:19px;height:19px}.camera-btn.on{background:var(--ink);color:white}#input-status{font-size:10px;color:#7b8174;margin-right:3px}.scene-bottom{position:absolute;bottom:24px;left:30px;right:28px;display:flex;justify-content:space-between;align-items:end;gap:20px}.interaction-hint{font-size:12px;line-height:1.6;color:#757b6f}.interaction-hint strong{font-weight:650;color:#505b49}.interaction-hint small{display:block;font-size:10px;margin-top:6px;color:#898f81}.keycap{border:1px solid #bac0ad;border-radius:3px;padding:1px 4px;margin:0 3px 0 8px;font-size:9px}.keycap:first-child{margin-left:0}.view-controls{display:flex;gap:10px;align-items:center}.view-controls .icon-btn{background:#f7f7f044;border:1px solid #fff4;width:33px;height:33px}.view-controls .icon-btn svg{width:17px}.save-btn{display:flex;gap:9px;align-items:center;padding:12px 16px;background:#334030;color:#f6f7ed;font-size:13px;border-radius:7px;box-shadow:0 3px 8px #18251118;white-space:nowrap}.save-btn svg{width:16px;height:16px}.dimension{position:absolute;right:33px;top:48%;display:flex;flex-direction:column;gap:5px;border-left:1px solid #aeb6a255;padding-left:11px;pointer-events:none}.dimension>span{font-size:18px;font-weight:400;font-variant-numeric:tabular-nums}.dimension small{font-size:8px;letter-spacing:1.5px;color:#929b85}.statusbar{height:41px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;font-size:11px;color:#7c8573}.statusbar>span{display:flex;align-items:center;gap:8px}.statusbar i{width:5px;height:5px;background:#6c8858;border-radius:50%}.statusbar button{font-size:11px}.statusbar button span{margin-left:8px}.loading{position:absolute;inset:0;display:flex;gap:12px;align-items:center;justify-content:center;background:#e6e4dd;font-size:14px;z-index:4}.loader{width:18px;height:18px;border:2px solid #bfc7b7;border-top-color:#48573f;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading[hidden], [hidden]{display:none!important}.brush-cursor{position:absolute;pointer-events:none;transform:translate(-50%,-50%);border:1px solid #fff9;border-radius:50%;width:24px;height:24px;box-shadow:0 0 0 1px #303a3233;display:grid;place-items:center}.brush-cursor span{width:4px;height:4px;border-radius:50%;background:#fff}.camera-card{position:absolute;right:28px;top:112px;width:228px;border:1px solid #e5e9df;background:#f7f8f0;box-shadow:0 8px 35px #34402c20;border-radius:10px;overflow:hidden;z-index:3}.camera-feed{position:relative;aspect-ratio:4/3;background:#26322b}.camera-feed video,.camera-feed canvas{position:absolute;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}#tracking-label{position:absolute;bottom:9px;left:9px;background:#17231aca;color:#fff;padding:5px 8px;font-size:10px;border-radius:4px}.camera-info{padding:13px}.camera-info strong{font-size:13px}.camera-info .icon-btn{float:right;width:22px;height:22px;margin-top:-3px}.camera-info .icon-btn svg{width:15px}.camera-info p{font-size:11px;color:#828a77;line-height:1.5}.camera-info small{font-size:10px;color:#8b947f;display:block;margin-top:9px}.camera-select-label{font-size:10px;margin-bottom:4px}.camera-info select{width:100%;padding:5px;font-size:11px;border:1px solid #d7dece;border-radius:4px;background:#fff}.toast{position:fixed;bottom:66px;left:50%;transform:translate(-50%,15px);opacity:0;pointer-events:none;background:#303c2d;color:#fbfff4;padding:13px 20px;border-radius:8px;font-size:13px;box-shadow:0 4px 24px #0002;transition:opacity .2s,transform .2s;z-index:20;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{width:min(620px,92vw);max-height:87dvh;padding:26px;border:1px solid #d6ddce;border-radius:14px;background:#fafbf5;color:var(--ink);box-shadow:0 22px 90px #0003}dialog::backdrop{background:#26322365;backdrop-filter:blur(6px)}.modal-head{display:flex;align-items:center;justify-content:space-between}dialog h2{font:600 28px 'Manrope',sans-serif;letter-spacing:-1px;margin:8px 0 18px}dialog p{font-size:14px;line-height:1.7;color:#748169}dialog h3{font-size:15px;margin-bottom:5px}dialog input[type=text]{width:100%;padding:12px;border:1px solid #c7d0bd;background:#fff;border-radius:6px;font-size:16px}dialog .primary{padding:12px 20px;border-radius:7px;background:#354631;color:white;font-size:14px}dialog .secondary{padding:12px 20px;border:1px solid #ced6c5;border-radius:7px;font-size:14px}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px 28px}.help-grid p{font-size:13px;margin-top:3px}.help-keys{border-top:1px solid var(--line);padding-top:15px;font-size:12px;color:#7f8a75;line-height:2}.shelf-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.piece-card{border:1px solid #d6decc;border-radius:9px;overflow:hidden;background:#f1f3eb}.piece-card img{width:100%;aspect-ratio:1.3;object-fit:cover;display:block}.piece-card>div{padding:12px}.piece-card strong{font-size:14px;display:block;overflow-wrap:anywhere}.piece-card small{display:block;font-size:11px;color:#8b957f;margin:5px 0 11px}.piece-actions{display:flex;gap:8px}.piece-actions button{padding:7px 12px;border:1px solid #cbd6bf;border-radius:5px;font-size:12px}.piece-actions .delete{margin-left:auto;color:#9b6452}.challenge-list{display:flex;gap:12px}.challenge-list button{flex:1;border:1px solid #cbd6bf;border-radius:7px;padding:18px 12px;background:#edf1e5;font-size:15px}.fatal{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px;background:#e6e4dd}.fatal p{max-width:400px;line-height:1.6}.fatal button{background:#354631;color:white;padding:12px 20px;border-radius:6px}
@media(min-height:850px){.tool-panel{padding-top:32px}.intro{margin-bottom:34px}.tool{padding-top:15px;padding-bottom:15px}.control{margin-top:26px}.material-section{margin-top:29px;padding-top:24px}.wheel-control{margin-top:27px;padding-top:23px}.new-btn{margin-top:24px}}
@media(max-width:1050px){.topbar{padding:0 22px;gap:20px}.edition{font-size:10px;padding-left:17px}.studio{grid-template-columns:254px 1fr}.tool-panel{padding:22px 20px 16px}.scene-heading{left:25px}.scene-bottom{left:24px;right:20px;align-items:start}.interaction-hint{max-width:240px}.view-controls{gap:5px}.view-controls .icon-btn{display:none}.scene-top-right{right:20px}.dimension{right:24px}.top-actions{gap:14px}}
@media(max-width:760px),(max-width:940px) and (max-height:500px){.topbar{height:68px;padding:0 17px;gap:16px}.brand{font-size:31px}.brand svg{width:25px}.edition{font-size:9px;border:0;padding:0}.edition span{display:none}.edition{max-width:70px;line-height:1.6}.top-actions{gap:8px}.top-actions .history{display:none}.quiet-btn{font-size:12px}.share-btn{padding:9px}.share-btn span{display:none}.studio{display:flex;flex-direction:column-reverse;height:auto;min-height:0}.viewport{height:64dvh;min-height:400px;flex:none}.tool-panel{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;padding:20px 22px;border-right:0;border-top:1px solid var(--line);overflow:visible}.panel-heading{grid-column:1/-1}.tool-panel h1{margin:9px 0 16px;font-size:23px;grid-column:1/-1}.intro,.panel-foot,.tool-panel>.section-head{display:none}.tool-list{grid-column:1/-1;display:flex;gap:7px}.tool{flex:1;flex-direction:column;gap:7px;padding:11px 5px;justify-content:center;text-align:center}.tool strong{font-size:12px}.tool small,.tool kbd{display:none}.control{margin-top:23px}.material-section,.wheel-control{margin-top:20px;padding-top:17px}.section-head>span{font-size:10px}.swatches{gap:7px}.new-btn{grid-column:1/-1;margin-top:20px}.scene-heading{top:22px;left:22px}.scene-heading h2{font-size:23px}.scene-heading>span:last-child{font-size:10px}.scene-top-right{right:17px;top:22px}.camera-btn{font-size:11px;padding:9px 11px;gap:6px}.camera-btn svg{width:16px}.scene-bottom{bottom:18px;left:20px;right:17px;gap:10px}.interaction-hint{font-size:10px;max-width:200px}.interaction-hint small{display:none}.save-btn{font-size:11px;padding:10px 12px;gap:6px}.dimension{right:20px;font-size:14px}.camera-card{width:190px;top:95px;right:17px}.camera-info p{font-size:10px}.statusbar{height:48px;padding:0 20px}.statusbar>span:nth-child(2){display:none}.statusbar button{font-size:10px}.help-grid{grid-template-columns:1fr}.shelf-grid{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.loader{animation:none}}
.tool-panel{scrollbar-width:thin;scrollbar-color:#bfc6b5 transparent}.section-head h2,label,.new-btn{font-size:14px}.tool small,.range-labels,.panel-foot,.section-head>span{font-size:12px}.intro{font-size:14px}.scene-heading>span:last-child{font-size:13px}.scene-heading .eyebrow,.eyebrow{font-size:12px}.interaction-hint{font-size:14px;max-width:420px}.interaction-hint small,.keycap,#input-status,.statusbar,.statusbar button{font-size:12px}.scene-top-right{max-width:45%}.camera-info strong{font-size:14px}.camera-info p,.camera-info small,.camera-info select,.camera-select-label,#tracking-label{font-size:12px}.camera-card{width:242px}.target-card{position:absolute;left:32px;top:170px;width:104px;padding:13px 10px;border:1px solid #fff8;border-radius:7px;background:#f4f5ed80;backdrop-filter:blur(5px);display:flex;flex-direction:column;align-items:center;gap:5px;pointer-events:none}.target-card>span{font-size:9px;letter-spacing:1.2px;color:#7e8a70}.target-card svg{width:76px;height:88px;stroke:#6c7e5e;fill:#8ba37422;stroke-width:1.4}.target-card strong{font-size:12px;text-transform:capitalize;font-weight:550}.target-card small{font-size:10px;color:#8a947d}
@media(max-width:1050px){.interaction-hint{max-width:250px;font-size:12px}.interaction-hint small,.keycap{font-size:11px}.tool-panel{padding-left:18px;padding-right:18px}.section-head>span{font-size:11px}}
@media(max-width:760px),(max-width:940px) and (max-height:500px){.scene-heading .eyebrow{font-size:10px}.scene-heading>span:last-child{font-size:11px;max-width:160px;display:block}.interaction-hint{font-size:12px;max-width:210px}.scene-top-right{max-width:43%}#input-status{font-size:10px;max-width:140px;text-align:right}.camera-card{width:205px}.camera-info p,.camera-info small,.camera-select-label{font-size:11px}.statusbar,.statusbar button{font-size:11px}.section-head{align-items:start;gap:5px}.section-head>span{font-size:10px;text-align:right}.target-card{width:75px;left:18px;top:135px;padding:9px 4px}.target-card svg{width:55px;height:65px}.target-card>span,.target-card small{font-size:8px}.target-card strong{font-size:10px}}

/* The mobile camera gets its own compact row, outside the sculpting canvas. */
.wheel-scene{position:relative;width:100%;height:100%;min-width:0;overflow:hidden}
@media(max-width:760px),(max-width:940px) and (max-height:500px){
 .viewport{height:auto;min-height:0;display:flex;flex-direction:column}
 .wheel-scene{height:64dvh;min-height:400px;flex:none}
 .camera-card{position:relative;inset:auto;width:100%;margin:0;display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;padding:12px 16px;border:0;border-top:1px solid #d7ddce;border-radius:0;box-shadow:none;overflow:visible;background:#f1f3ea;z-index:auto}
 .camera-feed{width:88px;height:66px;aspect-ratio:4/3;align-self:center;overflow:hidden;border-radius:6px}
 .camera-feed #tracking-label{display:none}
 .camera-info{padding:0;min-width:0}
 .camera-info strong{display:block;min-height:24px;padding:2px 32px 0 0;font-size:14px;line-height:20px}
 .camera-info .icon-btn{position:absolute;right:8px;top:3px;float:none;margin:0;width:40px;height:40px}
 .camera-info .icon-btn svg{width:18px;height:18px}
 .camera-info p,.camera-info small,.camera-select-label{display:none}
 .camera-info select{display:block;width:100%;min-height:38px;margin-top:5px;padding:7px 9px;font-size:14px;overflow:hidden;text-overflow:ellipsis}
}
