:root{--bg:#e2dfda;--ink:#1c1b19;--muted:#6d6962;--faint:#9a958c;--accent:#9e1b2b;--line:#1c1b1929;--line-strong:#1c1b196b;--gutter:clamp(20px, 3vw, 44px);--toolbox-size:2.6rem;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", "Hoefler Text", Georgia, "Noto Serif TC", "PMingLiU", serif;--sans:"Helvetica Neue", Helvetica, "Segoe UI", system-ui, -apple-system, "Noto Sans TC", "Microsoft JhengHei", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--sans);margin:0;overflow:hidden}#stage{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#stage.can-grab{cursor:grab}#stage.can-place{cursor:crosshair}#stage.is-grabbing{cursor:grabbing}.target-badge{border:1px solid var(--line-strong);width:2rem;height:2rem;color:var(--ink);opacity:0;pointer-events:none;will-change:transform;background:#e2dfdaeb;border-radius:.5rem;place-items:center;transition:opacity 90ms ease-out;display:grid;position:fixed;top:0;left:0;box-shadow:0 2px 8px #1c1b1929}.target-badge.is-visible{opacity:1}.target-badge svg{width:1.2rem;height:1.2rem;display:block}.target-badge[data-icon=band] svg{width:1.6rem;height:auto}.masthead{top:var(--gutter);left:var(--gutter);pointer-events:none;max-width:28rem;position:fixed}.eyebrow{border-bottom:1px solid var(--line-strong);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .6rem;padding-bottom:.6rem;font-size:.7rem}.masthead h1{font-family:var(--serif);letter-spacing:-.02em;margin:0;font-size:clamp(2.4rem,6vw,4.4rem);font-weight:400;line-height:1}.caption{color:var(--muted);margin:.8rem 0 0;font-size:.85rem;line-height:1.5}.readouts{left:var(--gutter);bottom:var(--gutter);border-top:1px solid var(--line-strong);pointer-events:none;gap:clamp(1.4rem,3vw,3rem);margin:0;padding-top:.8rem;display:flex;position:fixed}.readouts dt{font-family:var(--mono);letter-spacing:.1em;color:var(--faint);font-size:.68rem}.readouts dd{font-family:var(--mono);font-variant-numeric:tabular-nums;min-width:4.5ch;margin:.25rem 0 0;font-size:1.5rem}.readouts small{color:var(--muted);margin-left:.15em;font-size:.7rem}.readouts dd.is-active{color:var(--accent)}.panel{--panel-width:280px;--live:#5c8a6e;top:var(--gutter);right:var(--gutter);width:var(--panel-width);max-height:calc(100% - var(--gutter) * 2 - var(--toolbox-size) - .6rem);flex-direction:column;align-items:flex-end;gap:.6rem;display:flex;position:fixed}.toolbox{right:var(--gutter);bottom:var(--gutter);align-items:center;display:flex;position:fixed}.toolbox-toggle{width:var(--toolbox-size);height:var(--toolbox-size);border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--muted);cursor:pointer;background:#e2dfdac7;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.lang-toggle{font:600 .78rem/1 var(--mono);letter-spacing:.04em;margin-left:.6rem}.toolbox-toggle svg{width:1.4rem;height:1.4rem}.toolbox-toggle:hover,.toolbox-toggle.is-active{background:var(--ink);color:var(--bg)}.pill{border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--muted);font:.68rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;cursor:default;background:#e2dfdac7;align-items:center;gap:.55rem;padding:.45rem .8rem;display:inline-flex}.pill .dot{background:var(--live);border-radius:50%;width:.45rem;height:.45rem}.pill.is-paused .dot{background:var(--accent)}.card{border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#e2dfdac7;width:100%;min-height:0;padding:0 1.1rem 1.1rem;overflow-y:auto}.panel.is-collapsed .card{display:none}.card section{border-bottom:1px solid var(--line);padding:1rem 0}.card h2{font:400 .8rem/1 var(--sans);letter-spacing:.1em;color:var(--muted);justify-content:space-between;align-items:baseline;margin:0 0 .9rem;display:flex}.card h2 small{font:.62rem/1 var(--mono);letter-spacing:.14em;color:var(--faint)}.card details h2{margin:0}.card summary{cursor:pointer;list-style:none}.card summary::-webkit-details-marker{display:none}.card details[open] summary{margin-bottom:.9rem}.swatches{grid-template-columns:repeat(3,1fr);gap:.5rem;display:grid}.swatch{border:1px solid var(--line);color:var(--muted);font:inherit;cursor:pointer;background:0 0;padding:.35rem}.swatch:hover{border-color:var(--line-strong)}.swatch[aria-checked=true]{border-color:var(--ink);color:var(--ink)}.chip{margin-bottom:.4rem;display:block}.chip svg{width:100%;height:1.7rem;display:block}.swatch-name{font-family:var(--serif);font-size:.85rem;display:block}.swatch-name em{color:var(--faint);margin-top:.1rem;font-size:.68rem;display:block}.bar-wrap{grid-template-columns:1fr;margin-left:.6rem;transition:grid-template-columns .25s,margin-left .25s;display:grid}.bar{white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#e2dfdac7;align-items:center;gap:.5rem;min-width:0;max-height:6rem;transition:opacity .2s;display:flex;overflow:hidden}.toolbox.is-collapsed .bar-wrap{grid-template-columns:0fr;margin-left:0}.toolbox.is-collapsed .bar{opacity:0;max-height:0;transition:opacity .2s,max-height 0s .25s}@media (prefers-reduced-motion:reduce){.bar-wrap,.bar,.toolbox.is-collapsed .bar{transition:none}}.tool-group{flex:none}.tool,.clear{border:1px solid var(--line-strong);color:var(--ink);font:.8rem/1.2 var(--sans);letter-spacing:.08em;cursor:pointer;background:0 0;align-items:center;gap:.5rem;padding:.45rem .8rem;display:flex}.tool-group{display:flex}.tool-group .clear{margin-left:-1px}.tool{padding-left:.6rem}.tool svg,.clear svg{flex:none;width:1.3rem;height:1.3rem}.tool:hover:not(:disabled),.tool[aria-pressed=true],.clear:hover:not(:disabled){background:var(--ink);color:var(--bg)}.tool:disabled,.clear:disabled{color:var(--faint);border-color:var(--line);cursor:default}.field+.field{margin-top:1rem}.field-head{font:.7rem/1 var(--mono);letter-spacing:.1em;color:var(--muted);justify-content:space-between;align-items:baseline;display:flex}.field-head output{color:var(--ink);font-variant-numeric:tabular-nums}.field input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:14px;margin:.6rem 0 .3rem}.field input[type=range]::-webkit-slider-runnable-track{background:var(--line-strong);height:1px}.field input[type=range]::-moz-range-track{background:var(--line-strong);height:1px}.field input[type=range]::-webkit-slider-thumb{appearance:none;border:1px solid var(--ink);background:var(--bg);border-radius:50%;width:14px;height:14px;margin-top:-7px}.field input[type=range]::-moz-range-thumb{border:1px solid var(--ink);background:var(--bg);border-radius:50%;width:12px;height:12px}.field input[type=range]:focus-visible::-webkit-slider-thumb{background:var(--ink)}.field input[type=range]:focus-visible::-moz-range-thumb{background:var(--ink)}.hints{font-family:var(--serif);color:var(--faint);justify-content:space-between;font-size:.72rem;display:flex}.toggles{flex-wrap:wrap;gap:.6rem 1.2rem;display:flex}.card details+.toggles{margin-top:.9rem}.toggles label{color:var(--muted);cursor:pointer;align-items:center;gap:.55rem;font-size:.78rem;display:flex}.toggles input{accent-color:var(--ink);margin:0}.actions{grid-template-columns:auto 1fr;gap:.5rem;padding-top:1rem;display:grid}.actions button{border:1px solid var(--line-strong);color:var(--ink);font:.8rem/1 var(--sans);letter-spacing:.08em;cursor:pointer;background:0 0;padding:.65rem 0}.actions button:hover{background:var(--ink);color:var(--bg)}.actions .icon-button{justify-content:center;align-items:center;padding:.5rem .9rem;display:flex}.icon-button svg{width:1.1rem;height:1.1rem}.dropdown{min-width:0;position:relative}.dropdown-button{border:1px solid var(--line-strong);width:100%;color:var(--muted);font:.8rem/1 var(--sans);letter-spacing:.04em;text-align:center;cursor:pointer;background:0 0;padding:.65rem 1.1rem .65rem .4rem}.dropdown-button:after{content:"";border-bottom:1px solid;border-right:1px solid;width:.35rem;height:.35rem;position:absolute;top:50%;right:.5rem;transform:translateY(-70%)rotate(45deg)}.dropdown-button:hover,.dropdown-button[aria-expanded=true]{color:var(--ink)}.dropdown-list{border:1px solid var(--line-strong);background:var(--bg);z-index:1;min-width:100%;margin:0;padding:.2rem 0;list-style:none;position:absolute;bottom:calc(100% + .3rem);right:0;box-shadow:0 6px 18px #1c1b1924}.dropdown-list[hidden]{display:none}.dropdown-list li{color:var(--muted);font:.8rem/1 var(--sans);letter-spacing:.04em;white-space:nowrap;text-align:center;cursor:pointer;padding:.55rem .8rem}.dropdown-list li:hover,.dropdown-list li:focus-visible{background:var(--ink);color:var(--bg);outline:none}.dropdown-list li[aria-selected=true]{color:var(--ink);box-shadow:inset 2px 0 var(--accent)}.dropdown-list li[aria-selected=true]:hover,.dropdown-list li[aria-selected=true]:focus-visible{color:var(--bg)}.panel button:focus-visible,.panel summary:focus-visible,.toolbox button:focus-visible,.lang-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px}@media (width>=720px){.pill{display:none}}@media (width<=719px){.pill{cursor:pointer}}@media (width<=640px){.masthead{max-width:16rem}.readouts{gap:1rem}.readouts dd{font-size:1.15rem}}
