:root{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:#17383c;background:#f4f4ef;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.topbar{height:66px;background:#fffdf8;border-bottom:1px solid #dfe8e2;display:flex;align-items:center;gap:24px;padding:0 clamp(16px,3vw,42px);position:sticky;top:0;z-index:5}.brand{font-size:25px;font-weight:800;color:#137d76;white-space:nowrap}.brand span{font-size:17px;color:#17383c}.tag{font-size:12px;letter-spacing:.12em;background:#d7efea;color:#14665f;border-radius:99px;padding:7px 11px;font-weight:800}.topbar nav{margin-left:auto;display:flex;gap:18px;font-size:14px;color:#506967}.topbar nav a:hover{color:#0d8178}.layout{display:grid;grid-template-columns:minmax(310px,350px) minmax(0,1fr);min-height:calc(100vh - 66px)}.tools{padding:24px 20px 40px;background:#fcfbf7;border-right:1px solid #dfe7e1;max-height:calc(100vh - 66px);overflow:auto}.intro{padding:6px 8px 19px}.eyebrow{font-size:11px;letter-spacing:.17em;font-weight:800;color:#a16432}.intro h1{font-size:clamp(28px,3vw,40px);line-height:1.19;letter-spacing:-.04em;margin:9px 0}.intro p,.hint{font-size:13px;line-height:1.6;color:#657977}.panel{border-top:1px solid #dce6df;padding:17px 6px}.panel h2{font-size:16px;margin:0 0 13px}.section-head,.row,.canvas-head,.step-head,.player,.modal-head{display:flex;align-items:center;gap:10px}.section-head,.canvas-head,.step-head,.modal-head{justify-content:space-between}.section-head span{font-size:12px;color:#6a807e}.button{border:1px solid #cbdad1;background:#fffefa;color:#23494b;border-radius:10px;padding:9px 13px;font-weight:700;white-space:nowrap}.button:hover{border-color:#16877e;background:#f0faf6}.button:disabled{opacity:.45;cursor:not-allowed}.button.primary{background:#178679;color:white;border-color:#178679}.button.primary:hover{background:#096f66}.ai-button{background:#f6ece0;border-color:#e6cdb0;color:#8b542a}.template-list{display:grid;gap:8px}.template-list button{text-align:left;background:#f4f8f5;border:1px solid #e1e9e2;padding:11px 13px;border-radius:12px;color:#1f4444;font-weight:700}.template-list button:hover{background:#e5f3ed;border-color:#91c7b8}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:20px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:20px}.form-grid label,.surface-label{font-size:12px;font-weight:700;color:#546d69}.form-grid input,.surface-label input,textarea{display:block;width:100%;border:1px solid #cddbd4;border-radius:9px;background:#fff;padding:9px 8px;margin-top:5px;color:#1f4144;outline:none}.form-grid input:focus,.surface-label input:focus,textarea:focus{border-color:#158d81;box-shadow:0 0 0 3px #158d8129}.surface-label{display:block;margin:20px 0 10px}.object-list{display:grid;gap:6px;max-height:220px;overflow:auto}.object-row{display:flex;justify-content:space-between;padding:7px 8px;border-radius:8px;background:#f1f5f1;font-size:12px}.object-row strong{color:#137c72}.workspace{padding:22px clamp(16px,3vw,40px) 32px;min-width:0}.canvas-head{align-items:flex-start;margin-bottom:15px}.canvas-head h2{font-size:26px;margin:4px 0}.canvas-head p{font-size:13px;color:#6d827c;margin:0;max-width:600px}.canvas-head .row{flex-wrap:wrap;justify-content:flex-end}.view3d{height:min(59vh,640px);min-height:390px;position:relative;overflow:hidden;border:1px solid #d5e2d9;border-radius:22px;background:linear-gradient(145deg,#f8fcf9,#eef4ef);box-shadow:0 12px 36px #133f3220}.view3d canvas{display:block;width:100%;height:100%}.view-help{position:absolute;right:16px;bottom:14px;color:#627b74;background:#ffffffca;font-size:12px;padding:7px 12px;border-radius:99px;pointer-events:none}.timeline{margin-top:18px;background:#fffdf9;border:1px solid #dce7e0;border-radius:19px;padding:17px 20px}.step-head{align-items:flex-start}.step-head h3{margin:4px 0;font-size:21px}.step-head p{margin:0;color:#59716d;font-size:13px}.parameter-value{font-size:13px;color:#0d766c}.step-list{display:flex;gap:7px;overflow-x:auto;padding:17px 0}.step-list button{padding:7px 11px;border:1px solid #d2ddd6;background:#f6f8f4;border-radius:99px;white-space:nowrap;color:#53716a;font-size:12px}.step-list button.active{background:#177f75;color:#fff;border-color:#177f75}.player{flex-wrap:wrap}.player>input[type=range]{flex:1;min-width:140px}.player label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700}.player label input{width:120px}.status{min-height:24px;color:#9a5732;font-size:13px}.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:10;background:#0c282c9a;display:grid;place-items:center;padding:16px}.modal-card{background:#fffdf9;border-radius:20px;padding:24px;width:min(710px,100%);max-height:90vh;overflow:auto;box-shadow:0 24px 70px #0004}.modal-head h2{font-size:25px;margin:4px 0}.modal-card>p,.modal-card #ai-preview p{font-size:13px;color:#5d746e;line-height:1.6}.modal-card textarea{resize:vertical;margin:11px 0}.modal-card .row{flex-wrap:wrap}.modal-card #ai-status{min-height:20px;color:#a55934;font-size:13px}.conditions{display:grid;gap:7px;margin:10px 0}.conditions label{font-size:13px;background:#f2f7f3;padding:8px;border-radius:8px}.confirm{display:block;padding:12px;background:#eaf5ef;border-radius:9px;margin:12px 0;font-size:13px}.confirm input{margin-right:6px}@media(max-width:900px){.layout{grid-template-columns:1fr}.tools{max-height:none;overflow:visible}.workspace{order:-1}.view3d{height:50vh}.topbar nav{gap:9px;font-size:12px}}@media(max-width:600px){.topbar{gap:8px;padding:0 12px}.brand span{display:none}.tag{font-size:10px}.canvas-head{display:block}.canvas-head .row{justify-content:flex-start;margin-top:12px}.view3d{min-height:330px}.player label{width:100%}.player label input{flex:1}}

.object-row{align-items:center;gap:6px}.object-row span{margin-right:auto}.object-row button{border:1px solid #cedbd4;border-radius:5px;background:white;color:#326a65;padding:3px 5px;font-size:11px}.panel>.row{flex-wrap:wrap}
