:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#263332;font-synthesis:none;--ink:#263332;--muted:#51625b;--paper:#fffdf5;--edge:#d3d9ca;--green:#1d554a;--mono:ui-monospace, "SF Mono", monospace;background:#f6f4ec;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button{cursor:pointer}:focus-visible{outline-offset:3px;outline:3px solid #98600d}#app{max-width:1180px;margin:auto;padding:0 clamp(16px,4vw,56px)}.masthead,.footer{border-bottom:1px solid var(--edge);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;padding:14px 0;display:flex}.brand{color:var(--green);font-size:14px;font-weight:800;text-decoration:none}.brand-mark{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;margin-right:5px;display:inline-grid}.edition,.intro-index,.caption,.footer{color:var(--muted);font:12px/1.5 var(--mono);letter-spacing:.08em}.edition b{color:var(--green);padding-left:8px}.intro{padding:clamp(24px,5vh,48px) 0 23px}.intro-index{color:var(--green);font-weight:700}.intro-index span{background:#ba7925;width:24px;height:2px;margin:0 6px 3px 0;display:inline-block}h1,h2,p{margin:0}h1{letter-spacing:-.045em;margin:8px 0;font-family:Songti SC,Noto Serif CJK SC,serif;font-size:clamp(2.35rem,6vw,4.75rem);line-height:1.15}h1 span{color:var(--green)}h1 i{color:#aa641c;font-style:normal}.intro p{color:var(--muted);font-size:clamp(.86rem,2vw,1rem);line-height:1.65}.switcher{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.switch{border:1px solid var(--edge);min-height:40px;color:var(--green);background:#eeeee4;border-radius:6px;padding:8px clamp(8px,2vw,16px);font-size:.875rem;font-weight:700}.switch span{font:.75em var(--mono);margin-right:.5em}.switch[aria-pressed=true]{color:#fff;background:var(--green);border-color:var(--green)}.workbench{border:1px solid var(--edge);background:var(--paper);border-radius:14px}.workbench-head,.workbench-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:12px clamp(12px,2.3vw,24px);display:flex}.workbench-head h2{margin-top:2px;font-size:clamp(1.18rem,2.6vw,1.65rem);line-height:1.35}.kind{border:1px solid var(--edge);color:var(--green);border-radius:100px;padding:4px 9px;font-size:.75rem}.stage{isolation:isolate;border-block:1px solid var(--edge);background-color:#e8eee2;background-image:radial-gradient(at 50% 45%,#f8f8ee 4%,#0000 70%),radial-gradient(circle,#acbeac .7px,#0000 1px);background-size:auto,16px 16px;place-items:center;height:clamp(230px,49vh,525px);min-height:200px;display:grid;position:relative}.stage>svg{filter:drop-shadow(0 7px 5px #3c564524);width:100%;height:100%;min-height:0;display:block}.stage[data-module=scene]{height:clamp(230px,49vh,525px)}.stage canvas{touch-action:none;width:100%;height:100%;display:block}.stage canvas:focus-visible{outline-offset:-4px}.stage>[role=status],.error{text-align:center;padding:20px}.error p{margin-bottom:12px}.note,.status{color:var(--muted);font-size:.85rem}.actions,.error-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.actions button,.actions select,.error-controls button{min-height:38px;color:var(--green);background:var(--paper);border:1px solid #9eb3a6;border-radius:5px;padding:6px 10px}.actions .download,.actions .play{color:#fff;background:var(--green);border-color:var(--green)}.actions label{font-size:.85rem}.footer{border:0;margin-top:8px}@media (width<=560px){.stage{height:clamp(205px,70vw,375px)}.stage[data-module=scene]{height:clamp(230px,78vw,390px)}.workbench-foot{align-items:start}}.stage canvas{position:absolute;inset:0}
