:root{--bg:#f4ede2;--panel:#fffdf8;--ink:#33302b;--ink-soft:#7a7264;--line:#e7ddcd;--accent:#d98a3d;--accent-deep:#b96f28;--radius:14px;font-size:15px}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);background:var(--bg);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;overflow:hidden}#topbar{background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:60px;padding:0 18px;display:flex}.brand{align-items:center;gap:10px;display:flex}.brand-paw{font-size:26px}.brand h1{letter-spacing:.2px;margin:0;font-size:17px}.brand p{color:var(--ink-soft);margin:0;font-size:11px}.top-actions{align-items:center;gap:14px;display:flex}.split-toggle{color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12.5px;display:flex}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:600;transition:background .15s}.btn-primary:hover{background:var(--accent-deep)}#layout{height:calc(100% - 60px);display:flex}#panel{background:var(--panel);border-right:1px solid var(--line);flex:0 0 332px;width:332px;padding:14px 16px 24px;overflow-y:auto}#viewport{flex:1;min-width:0;position:relative}#scene{width:100%;height:100%;display:block;position:absolute;inset:0}.group{border-bottom:1px solid var(--line);padding:14px 0 10px}.group:last-of-type{border-bottom:none}.group h2{text-transform:uppercase;letter-spacing:1.2px;color:var(--ink-soft);margin:0 0 10px;font-size:11.5px}.group h2 .muted{text-transform:none;letter-spacing:0;font-weight:400}.row{align-items:center;gap:10px;margin-bottom:9px;display:flex}.row>label{color:var(--ink);flex:0 0 62px;font-size:13px}.slider-row input[type=range]{flex:1;min-width:0}.slider-row output{text-align:right;color:var(--ink-soft);font-variant-numeric:tabular-nums;flex:0 0 58px;font-size:12px}input[type=range]{-webkit-appearance:none;background:var(--line);border-radius:2px;outline:none;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border:2.5px solid #fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 4px #00000040}select,.name-input{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:9px;flex:1;padding:8px 10px;font-size:14px}.name-input{letter-spacing:1px;font-size:16px;font-weight:600}.name-input:focus,select:focus{outline:2px solid var(--accent);border-color:#0000}.seg{background:var(--bg);border-radius:9px;flex:1;gap:3px;padding:3px;display:flex}.seg button{color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;flex:1;padding:7px 4px;font-size:12.5px}.seg button.active{color:var(--ink);background:#fff;font-weight:600;box-shadow:0 1px 3px #0000001f}.seg.icons button{padding:5px 2px;font-size:15px}.hint,.footnote{color:var(--ink-soft);margin:6px 0 0;font-size:11.5px;line-height:1.45}.footnote{margin-top:14px}.swatches{flex-wrap:wrap;flex:1;gap:7px;display:flex}.swatch{cursor:pointer;border:2px solid #00000014;border-radius:50%;width:24px;height:24px;padding:0}.swatch.active{outline:2.5px solid var(--accent);outline-offset:2px}#stats{border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffdf8eb;padding:10px 14px;font-size:12.5px;line-height:1.55;position:absolute;bottom:14px;left:14px}#stats b{font-variant-numeric:tabular-nums}#warnings{pointer-events:none;flex-direction:column;gap:6px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}#warnings .warn{color:#8a5d18;background:#fff4e0;border:1px solid #ecd5ac;border-radius:10px;padding:7px 14px;font-size:12.5px}@media (max-width:760px){html,body{overflow:auto}#layout{flex-direction:column-reverse;height:auto}#viewport{flex:none;height:46vh;min-height:300px}#panel{border-right:none;border-top:1px solid var(--line);flex:none;width:100%}#topbar{padding:0 12px}.brand p{display:none}}
