:root{--ink: #1b1b1f;--muted: #6b6b73;--line: #dcdce2;--accent: #2b59ff}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#fff}body{font:11px/1.3 system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink)}#app{position:fixed;inset:0}canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab}canvas:active{cursor:grabbing}.panel{position:absolute;top:12px;right:12px;width:268px;max-height:calc(100vh - 24px);display:flex;flex-direction:column;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 24px #0000001f;color:var(--ink)}.panel.hidden{display:none}.panel-head{display:flex;align-items:center;gap:2px;padding:4px 6px 4px 10px;cursor:move;-webkit-user-select:none;user-select:none}.panel-head .title{font-weight:600;font-size:12px;letter-spacing:.02em}.spacer{flex:1}.panel-body{overflow-y:auto;padding:0 10px 8px;border-top:1px solid var(--line)}section{padding-top:7px}section+section{margin-top:5px;border-top:1px solid #efeff3}h3{margin:0 0 4px;font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.field{display:grid;grid-template-columns:88px 1fr;align-items:center;gap:6px;margin-bottom:4px}.field>span{color:var(--muted);font-size:10.5px;line-height:1.15}.row{display:flex;gap:4px;margin-bottom:4px}.row>*{flex:1;min-width:0}.row .field{display:block;margin-bottom:0}.row .field>span{display:block;margin-bottom:1px}.num{display:flex;gap:6px;align-items:center;min-width:0}.num input[type=range]{flex:1;min-width:0;height:14px;margin:0}input,select,textarea,button{font:inherit;color:inherit}input[type=number],select,textarea{width:100%;height:20px;padding:1px 4px;border:1px solid var(--line);border-radius:4px;background:#fff}.num input[type=number]{width:52px;flex:none}textarea{height:auto;resize:vertical;padding:3px 4px}input[type=color]{width:100%;height:20px;padding:0;border:1px solid var(--line);border-radius:4px;background:#fff}.check{display:flex;gap:5px;align-items:center;margin-bottom:4px;font-size:10.5px;color:var(--muted)}.check input{margin:0}button{height:20px;padding:0 7px;border:1px solid var(--line);border-radius:4px;background:#fff;cursor:pointer;white-space:nowrap}button:hover{background:#f3f3f6}button.ghost{height:18px;padding:0 5px;border-color:transparent;background:transparent;color:var(--muted)}.row button{width:100%;padding:0 4px}.seg{display:flex;border:1px solid var(--line);border-radius:4px;overflow:hidden}.seg button{flex:1;border:0;border-radius:0;background:#fff;color:var(--muted);padding:0 4px}.seg button+button{border-left:1px solid var(--line)}.seg button[aria-pressed=true]{background:var(--accent);color:#fff}.hint,.status{margin:3px 0;color:var(--muted);font-size:10.5px}.status{min-height:1.3em;margin-top:6px}.caption{position:absolute;left:20px;bottom:14px;pointer-events:none;-webkit-user-select:none;user-select:none;font:12px/1.2 Helvetica,Arial,sans-serif;color:#6b6b73;letter-spacing:.02em}button:disabled{opacity:.45;cursor:default;background:#fff}.right{display:flex;justify-content:flex-end;margin-bottom:4px}.caption{white-space:pre-line}.foot{display:flex;align-items:center;gap:6px;margin-top:6px}.foot .status{flex:1;margin:0;min-height:18px}button.info{width:18px;height:18px;padding:0;border-radius:50%;flex:none;font:italic 600 11px/1 Georgia,Times New Roman,serif;color:var(--muted)}.info-overlay{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#ffffff8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:16px}.info-overlay[hidden]{display:none}.info-dialog{width:min(500px,100%);height:min(640px,100%);display:flex;flex-direction:column;overflow:hidden;padding:18px 20px 14px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 40px #0000002e;font-size:12.5px;line-height:1.5}.info-dialog h2{margin:0 0 10px;font-size:15px;font-weight:600}.info-dialog p{margin:0 0 9px}.info-dialog a{color:var(--accent)}.info-dialog .right{margin:10px 0 0}.stops{flex:1;min-width:0}.stops input[type=range]{width:100%;display:block}.ticks{display:flex;justify-content:space-between;padding:0 7px;margin-top:-1px;pointer-events:none}.ticks span{width:1px;height:4px;background:#d2d2d8}.stops.full{flex:none;margin:-1px 0 6px}.info-dialog .version{margin:12px 0 0;font-size:10.5px;color:var(--muted)}.info-dialog .version a{color:inherit}@media(max-width:640px){body{font-size:13px}.panel{inset:auto 0 0;width:auto;height:min(86vh,720px);height:min(86dvh,720px);max-height:none;border-radius:14px 14px 0 0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -6px 24px #00000024;transform:translateY(calc(100% - 34px));transition:transform .26s cubic-bezier(.2,.8,.2,1);will-change:transform}.panel-head{display:block;padding:0 8px;cursor:default;touch-action:none}.grip{height:30px;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none;outline-offset:-3px}.grip:before{content:"";width:42px;height:5px;border-radius:3px;background:#c4c4cc}.sheet-title{display:flex;align-items:center;padding:0 2px 6px 6px}.panel-head .title{font-size:14px}.panel-body{flex:1;min-height:0;padding:0 14px 10px;overflow-y:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}button{height:34px;padding:0 12px}button.ghost{height:32px;min-width:36px;font-size:14px}input[type=number],select{height:34px;font-size:16px}textarea{font-size:16px}input[type=color]{height:34px}.num input[type=number]{width:64px}.num input[type=range],.stops input[type=range]{height:28px}.field{grid-template-columns:100px 1fr;margin-bottom:9px;gap:8px}.field>span,.check{font-size:12.5px}.check{margin-bottom:9px}.hint,.status{font-size:12px}h3{font-size:10.5px}button.info{width:30px;height:30px;font-size:13px}.row{gap:6px;margin-bottom:8px}.foot{margin-top:6px;margin-bottom:4px}section:first-of-type{margin-top:6px}.caption{top:14px;bottom:auto;left:14px;font-size:11.5px}.info-dialog{font-size:13.5px}}.info-tabs{display:flex;gap:2px;margin:-6px 0 14px;border-bottom:1px solid var(--line)}.info-tabs button{height:32px;padding:0 12px;border:0;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--muted);font-size:12.5px;margin-bottom:-1px}.info-tabs button:hover{color:var(--ink);background:none}.info-tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}.info-panels{flex:1;min-height:0;overflow-y:auto;padding-right:4px}.info-panel{min-width:0}.info-dialog h3{margin:14px 0 8px}.shortcuts{display:grid;grid-template-columns:max-content 1fr;gap:7px 14px;margin:0;align-items:baseline}.shortcuts dt{white-space:nowrap}.shortcuts dd{margin:0;color:var(--muted);font-size:12px;line-height:1.4}kbd{font:inherit;font-size:11px;padding:1px 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;background:#f7f7fa;color:var(--ink);white-space:nowrap}@media(max-width:640px){.info-tabs button{height:38px;font-size:13.5px}.shortcuts{grid-template-columns:1fr;gap:3px}.shortcuts dt{margin-top:8px}.shortcuts dd{font-size:13px}}.info-dialog .right{flex:none;margin-top:8px}.info-tabs{flex:none}.info-dialog h4{margin:12px 0 6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.info-dialog .hint{margin:0 0 4px}
