:root{--bg:#f5f3ed;--ink:#293d31;--muted:#71806e;--line:#d8dfcf;--accent:#c26c49}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.8 'Avenir Next','PingFang SC',sans-serif}.shell{max-width:1200px;margin:auto;padding:0 42px}header,footer{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:28px 0}a{color:inherit;text-decoration:none}header>a{font-size:22px;letter-spacing:3px}small{font-size:11px}header>span,.step,.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted)}main{padding:55px 0;display:grid;grid-template-columns:1fr 1fr;gap:32px}.intro{padding:10px 0 25px}h1{font:48px/1.5 'Songti SC',serif;letter-spacing:3px;margin:18px 0}h1 span{color:var(--accent)}.intro p{color:var(--muted);font-size:15px}.tag{display:inline-block;background:#e7edde;padding:5px 12px;border-radius:30px;font-size:11px;margin-top:15px}.panel{background:#fcfbf7;border:1px solid var(--line);border-radius:10px;padding:28px}h2{font:25px 'Songti SC',serif;font-weight:400;margin:14px 0 25px}.upload{display:block;border:1px dashed #9aa98f;background:#f0f3e9;padding:22px;border-radius:6px;color:#354c3e}input[type=file]{display:block;max-width:100%;margin-top:10px}.hint{font-size:12px;color:var(--muted)}#engine{font-size:12px}#status{color:#9a5035}#workspace,#results{grid-column:1/-1}.workgrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:24px}canvas{width:100%;display:block;touch-action:manipulation;background:#18261e;margin-top:22px;border-radius:5px;cursor:crosshair}button,.upload{font:inherit}button{border:0;border-radius:5px;background:#354e3d;color:#fff;padding:12px 22px;cursor:pointer}button:disabled{opacity:.45;cursor:wait}.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}label{display:block;margin:14px 0}input[type=range]{display:block;width:100%;accent-color:#486342}input[type=number]{width:75px}input,select{font:inherit;padding:6px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink)}.point{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:8px 0}.point label{margin:0;font-size:12px}.point>button{padding:6px 10px;min-width:64px;background:#edf0e7;color:var(--ink)}.point>button[aria-pressed=true]{background:#354e3d;color:white}output{float:right;color:var(--muted)}progress{display:block;width:100%;margin-top:16px;accent-color:#486342}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:20px 0}.metrics strong{display:block;font:38px Georgia,serif}.metrics span{font-size:11px;color:var(--muted)}.playbar{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.playbar label{display:flex;align-items:center;gap:12px}footer{border-bottom:0;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}[hidden]{display:none!important}:focus-visible{outline:3px solid #c26c49;outline-offset:3px}@media(max-width:760px){.shell{padding:0 20px}main,.workgrid{grid-template-columns:1fr}main{padding:30px 0;gap:20px}h1{font-size:39px}.panel{padding:22px}header>span{font-size:8px;letter-spacing:1px}.metrics{grid-template-columns:1fr 1fr}.point{gap:6px}.intro{padding:0}header{padding:22px 0}}
