:root{--ink:#253d3a;--muted:#89918c;--line:#e3e7e2;--green:#254f46;--paper:#f7f8f5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:13px -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:6px;color:var(--ink);padding:8px 12px;transition:.15s}button:hover{background:#edf1ec;border-color:#bac8bd}button:disabled{opacity:.35;cursor:default}.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:#356759}input,select{border:1px solid var(--line);border-radius:5px;padding:8px;background:#fafbf9;color:var(--ink);min-width:0}input:focus,select:focus{outline:2px solid #acc5b8}header{height:84px;background:#fff;display:flex;align-items:center;border-bottom:1px solid var(--line);padding:0 26px;gap:36px}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;min-width:204px}.mark{font-size:37px;font-weight:300}.brand b{font-size:23px;font-weight:500;letter-spacing:4px}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:4px}.project{flex:1}.project input{border:0;background:none;padding:0;font-size:14px;width:240px;display:block}.project span{display:block;font-size:10px;color:var(--muted);margin-top:7px}.actions{display:flex;gap:8px}main{display:grid;grid-template-columns:245px minmax(450px,1fr) 255px;height:calc(100dvh - 84px);min-height:650px}.library,.inspector{background:#fff;padding:24px 18px;overflow:auto}.library{border-right:1px solid var(--line);display:flex;flex-direction:column}.inspector{border-left:1px solid var(--line)}.section-head{display:flex;justify-content:space-between;align-items:center}h2{font-size:14px;font-weight:600;margin:0}h2 span{font-size:10px;color:var(--muted);font-weight:400;padding-left:6px}.eyebrow{font-size:8px;letter-spacing:1.6px;color:var(--muted)}.muted{font-size:11px;color:var(--muted);margin:10px 0 20px}#search{width:100%;font-size:12px;background:#f7f8f5}nav{display:flex;flex-wrap:wrap;gap:5px;margin:16px 0}nav button{font-size:11px;padding:6px 9px;border:0;background:transparent}nav button.active{background:#e9f0e9;color:var(--green)}#assets{display:grid;grid-template-columns:1fr 1fr;gap:9px}.asset{padding:0 0 9px;border:1px solid #e8ebe5;border-radius:8px;background:#fafbf8;text-align:left;overflow:hidden;cursor:grab}.asset:hover{border-color:#92ab99;background:#f1f5ee;transform:translateY(-1px)}.asset svg{width:100%;height:69px;display:block}.asset b{display:block;padding:0 9px;font-size:11px;font-weight:500}.asset small{display:block;padding:4px 9px 0;color:#8d958b;font-size:9px}.library-foot{padding-top:22px;margin-top:auto;font-size:10px;color:var(--muted)}.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#7d9e86;margin-right:5px}.workspace{padding:26px 22px 0;display:flex;flex-direction:column;min-height:0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px}h1{font-family:"Songti SC",serif;font-size:25px;font-weight:500;letter-spacing:1px;margin:7px 0 0}.tools{display:flex;gap:5px;align-items:center}.tools button{padding:6px 8px;font-size:11px}.tools label{font-size:11px;margin-left:6px;display:flex;align-items:center;white-space:nowrap}.tools input{accent-color:var(--green)}.preset-row{display:flex;align-items:center;gap:6px;margin:23px 0 16px;flex-wrap:wrap}.preset-row>span{font-size:10px;color:var(--muted);margin-right:8px}.preset-row button{font-size:10px;padding:6px 9px;background:transparent}.preset-row button.active{background:#e9eeE6;border-color:#b6c6b4}#views{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;flex:1;min-height:430px}.view{position:relative;min-height:0;min-width:0;overflow:hidden;border-radius:10px;border:1px solid #e7e1d6;background:#f7f3ea}.view.perspective{background:#edf0e9}.view.dragover{outline:2px solid #779b82}.grid-canvas,.render,.annotation{position:absolute;inset:0;width:100%;height:100%;display:block}.grid-canvas,.annotation{pointer-events:none}.view-title{position:absolute;z-index:2;top:16px;left:16px;right:16px;display:flex;justify-content:space-between;pointer-events:none}.view-title b{font-size:12px;font-weight:500}.view-title small{font-size:8px;color:#8a9588;font-weight:400;padding-left:7px;letter-spacing:.6px}.view-title>span{font-size:9px;color:#8a9588}.live i{width:5px;height:5px;background:#6f947e;border-radius:50%;display:inline-block;margin-right:4px}.view-help{position:absolute;bottom:12px;left:16px;font-size:9px;color:#98a092;pointer-events:none}footer{min-height:42px;display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#8c968c;gap:7px}footer button{border:0;background:none;padding:0;font-size:9px;color:#7b8b7b}.props-title{margin:23px 0 4px;font-size:17px;font-weight:500}.subtle{font-size:10px;color:var(--muted)}.field-title{font-size:10px;margin:23px 0 9px;color:#718175}.fields{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.field{font-size:9px;color:#899184}.field input{display:block;width:100%;padding:7px 5px;margin-top:5px;font-size:11px}.params{display:grid;grid-template-columns:1fr 1fr;gap:8px}.material-grid{display:flex;gap:9px;flex-wrap:wrap}.swatch{height:24px;width:24px;border-radius:50%;padding:0;border:3px solid white;box-shadow:0 0 0 1px #ddd}.swatch.active{box-shadow:0 0 0 2px var(--green)}.mat-name{font-size:10px;margin-top:9px;color:#81907e}.parts-head{border-top:1px solid var(--line);margin-top:26px;padding-top:20px;display:flex;align-items:center;justify-content:space-between}.parts-head button{border:0;font-size:18px;padding:2px 7px}.part{display:flex;gap:7px;align-items:center;width:100%;margin-top:5px;padding:9px 8px;border:0;border-radius:4px;text-align:left;font-size:11px;background:none}.part.active{background:#ecf1e9;color:#245243}.part span{flex:1}.part small{color:#8b9588;font-size:9px}.note{margin-top:25px;padding:14px;background:#f5f7f1;border-radius:6px;font-size:11px}.note b{font-weight:500}.note p{font-size:10px;line-height:1.9;color:#899080;margin-bottom:0}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#253e35;color:white;padding:12px 22px;border-radius:8px;z-index:50;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1}dialog{border:1px solid #dbe2d8;border-radius:14px;max-width:520px;padding:30px;color:var(--ink);box-shadow:0 20px 80px #14251c30}dialog::backdrop{background:#14231c50}dialog p{font-size:13px;line-height:1.9;color:#71816e}dialog button{float:right}@media(max-width:1150px){main{grid-template-columns:205px minmax(420px,1fr) 220px}.workspace{padding:20px 14px 0}.library,.inspector{padding:20px 13px}.eyebrow{letter-spacing:.6px}h1{font-size:21px}header{padding:0 18px;gap:20px}.brand{min-width:170px}.toolbar{flex-wrap:wrap}}@media(max-width:850px){body{min-width:760px}main{grid-template-columns:175px minmax(375px,1fr) 200px}header{gap:10px}.brand{min-width:140px}.project input{width:180px}.actions button{padding:8px}.view-title small{display:none}.preset-row>span{display:none}.workspace{padding:16px 10px 0}h1{font-size:19px}.tools{gap:3px}footer #overall{display:none}}

.tools{flex-wrap:wrap;justify-content:flex-end}.tools .grid-step-label{gap:4px}.tools select{padding:4px 5px;font-size:10px;background:#fff}.grid-canvas{z-index:0}.render{z-index:1}.annotation{z-index:2}.view-title,.view-help{z-index:3}

#properties .field input{cursor:ew-resize}#properties .field input:focus{cursor:text}.scrub-hint{font-size:10px;color:#8b9a8a;margin-top:9px}.scrubbing,.scrubbing *{cursor:ew-resize!important;user-select:none!important}

.asset .asset-image{width:100%;height:82px;object-fit:contain;display:block}.custom-swatch{background:conic-gradient(#ef6a68,#e8c856,#77be82,#72bfc6,#8d8ed0,#d782ae,#ef6a68);color:#fff;text-shadow:0 1px 2px #5e695f;font-size:11px}.color-panel{margin-top:13px;padding:12px;background:#f6f8f3;border:1px solid #e1e8de;border-radius:8px}.color-heading{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#879487}.color-heading b{color:#435a4c;font-weight:600}.color-heading span{font-size:9px}.color-wheel{width:132px;height:132px;border-radius:50%;position:relative;margin:14px auto;cursor:crosshair;touch-action:none}.color-wheel:before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,#fff,transparent),conic-gradient(from 90deg,red,yellow,lime,cyan,blue,magenta,red);filter:brightness(var(--brightness,1));box-shadow:0 0 0 1px #d8e0d5}.color-wheel i{position:absolute;z-index:1;width:13px;height:13px;border:2px solid white;border-radius:50%;box-shadow:0 0 0 1px #536458;transform:translate(-50%,-50%);pointer-events:none}.brightness-label{display:flex;align-items:center;gap:8px;color:#788a7b;font-size:10px}.brightness-label input{width:100%;padding:0;accent-color:#527661}.hex-row{display:flex;align-items:center;gap:7px;margin-top:10px}.hex-row>span{width:27px;height:27px;border-radius:5px;border:1px solid #dce4d8}.hex-row label{display:flex;align-items:center;gap:7px;font-size:9px;color:#899589}.hex-row input{width:96px;font-size:11px;padding:6px;background:#fff}

.color-open{display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;padding:0;color:#718175;font-size:10px}.color-open:hover{background:transparent;color:#254f46}.color-open .custom-swatch{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.color-open.active .custom-swatch{box-shadow:0 0 0 2px var(--green)}

.transform-gizmo{position:absolute;z-index:4;border:1px solid #779582;pointer-events:none;box-shadow:0 0 0 1px #ffffff70}.transform-gizmo[hidden]{display:none}.transform-gizmo button{position:absolute;pointer-events:auto;touch-action:none;padding:0;transform:translate(-50%,-50%)}.transform-scale{z-index:2;width:9px;height:9px;background:#fff;border:1px solid #668575;border-radius:1px;box-shadow:none}.transform-scale:hover{background:#e5f1e8;border-color:#416852}.transform-scale.nw{left:0;top:0;cursor:nwse-resize}.transform-scale.ne{left:100%;top:0;cursor:nesw-resize}.transform-scale.sw{left:0;top:100%;cursor:nesw-resize}.transform-scale.se{left:100%;top:100%;cursor:nwse-resize}.transform-rotate,.transform-gizmo .transform-rotate:hover{width:26px;height:26px;background:transparent;border:0;box-shadow:none;cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M5%2014a7%207%200%200%201%2011-7l2%202%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M5%2014a7%207%200%200%201%2011-7l2%202M15%209h3V6%22%20fill%3D%22none%22%20stroke%3D%22%23333%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M19%2010a7%207%200%200%201-11%207l-2-2M9%2015H6v3%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%3Cpath%20d%3D%22M19%2010a7%207%200%200%201-11%207l-2-2M9%2015H6v3%22%20fill%3D%22none%22%20stroke%3D%22%23333%22%20stroke-width%3D%221.7%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E") 12 12,crosshair}.transform-rotate.nw{left:-19px;top:-19px}.transform-rotate.ne{left:calc(100% + 19px);top:-19px}.transform-rotate.sw{left:-19px;top:calc(100% + 19px)}.transform-rotate.se{left:calc(100% + 19px);top:calc(100% + 19px)}
