:root{--bg:#eceef1;--surface:#fff;--ink:#14171b;--muted:#5e6570;--line:#d4d8de;--accent:#e4520f;--accent-ink:#fff;--accent-soft:#fce6da;--stage:#dfe3e8;--stage-2:#f6f7f9;--ok:#1f8a55;--ok-soft:#ddf2e6;--warn:#a86a00;--warn-soft:#fbefd5;--bad:#c4302b;--bad-soft:#f9dedc;--grid:#9aa3ae;--font-display:"Archivo","Arial Narrow",system-ui,sans-serif;--font-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111317;--surface:#1a1d22;--ink:#eceef1;--muted:#9aa1ab;--line:#2c3139;--accent:#ff6b2c;--accent-ink:#1a0a02;--accent-soft:#3a2116;--stage:#0c0e11;--stage-2:#1a1e24;--ok:#4cc488;--ok-soft:#163327;--warn:#e3a83a;--warn-soft:#352914;--bad:#f2706b;--bad-soft:#3a1a19;--grid:#4a525d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111317;--surface:#1a1d22;--ink:#eceef1;--muted:#9aa1ab;--line:#2c3139;--accent:#ff6b2c;--accent-ink:#1a0a02;--accent-soft:#3a2116;--stage:#0c0e11;--stage-2:#1a1e24;--ok:#4cc488;--ok-soft:#163327;--warn:#e3a83a;--warn-soft:#352914;--bad:#f2706b;--bad-soft:#3a1a19;--grid:#4a525d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.45}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wrap{max-width:1360px;margin:0 auto;padding:20px clamp(16px,3vw,32px) 40px}.top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px 24px;margin-bottom:18px;display:flex}.top h1{font-family:var(--font-display);letter-spacing:-.01em;text-transform:uppercase;text-wrap:balance;margin:0;font-size:clamp(28px,3.4vw,40px);font-weight:800;font-stretch:78%;line-height:1}.top h1 span{color:var(--accent)}.top p{color:var(--muted);max-width:60ch;margin:6px 0 0}.app{grid-template-columns:330px minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (max-width:900px){.app{grid-template-columns:1fr}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px}.controls{flex-direction:column;padding:6px 18px 14px;display:flex}.controls section{border-bottom:1px solid var(--line);flex-direction:column;gap:12px;padding:14px 0;display:flex}.controls h2,.formats h2{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:13px;font-weight:700;font-stretch:85%}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip-btn{border:1px solid var(--line);cursor:pointer;color:var(--ink);background:0 0;border-radius:999px;padding:4px 10px;font-size:12.5px}.chip-btn:hover{border-color:var(--accent);color:var(--accent)}.dim{grid-template-columns:70px 1fr 78px;align-items:center;gap:10px;display:grid}.dim label{color:var(--muted);font-size:13.5px}.dim input[type=range]{width:100%;accent-color:var(--accent)}.num{border:1px solid var(--line);background:var(--bg);border-radius:6px;align-items:center;padding:0 6px;display:flex}.num input{width:100%;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;-moz-appearance:textfield;background:0 0;border:0;padding:5px 0;font-size:14px}.num input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.num input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.num span{color:var(--muted);padding-left:4px;font-size:12px}.num:focus-within{border-color:var(--accent)}.seg{border:1px solid var(--line);background:var(--bg);border-radius:7px;grid-auto-columns:1fr;grid-auto-flow:column;display:grid;overflow:hidden}.seg button{cursor:pointer;color:var(--ink);background:0 0;border:0;padding:7px 4px;font-size:12.5px;line-height:1.2}.seg button+button{border-left:1px solid var(--line)}.seg button small{font-family:var(--font-mono);color:var(--muted);font-size:11px;display:block}.seg button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.seg button[aria-pressed=true] small{color:inherit;opacity:.75}.row{justify-content:space-between;align-items:center;gap:10px;display:flex}.row>label{color:var(--muted);font-size:13.5px}.row .num{width:96px}details{padding:12px 0 0}details summary{cursor:pointer;color:var(--muted);align-items:center;gap:6px;font-size:13.5px;list-style:none;display:flex}details summary:before{content:"+";font-family:var(--font-mono);width:14px}details[open] summary:before{content:"−"}details .adv{flex-direction:column;gap:10px;padding-top:12px;display:flex}.hint{color:var(--muted);margin:0;font-size:12.5px}.stage-col{flex-direction:column;gap:20px;min-width:0;display:flex}.stage{border:1px solid var(--line);background:radial-gradient(120% 90% at 50% 30%,var(--stage-2),var(--stage));border-radius:10px;height:clamp(380px,60vh,620px);position:relative;overflow:hidden}.stage canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.stage canvas:active{cursor:grabbing}.lbl{pointer-events:none;white-space:nowrap;font-family:var(--font-mono);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:4px;padding:2px 7px;font-size:12px;font-weight:600;display:none;position:absolute;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 2px 8px #00000014}.lbl.acc{background:var(--accent);color:var(--accent-ink);border-color:#0000}.toolbar{pointer-events:none;flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.toolbar>*{pointer-events:auto}.toggles{flex-wrap:wrap;gap:6px;display:flex}.tg{border:1px solid var(--line);background:var(--surface);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:12.5px;display:inline-flex}.tg input{accent-color:var(--accent);margin:0}.swatches{background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:4px 8px;display:flex}.sw{border:2px solid var(--surface);width:20px;height:20px;box-shadow:0 0 0 1px var(--line);cursor:pointer;border-radius:50%;padding:0}.sw[aria-pressed=true]{box-shadow:0 0 0 2px var(--accent)}.bottombar{pointer-events:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.bottombar>*{pointer-events:auto}.explode{background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:10px;padding:5px 12px;font-size:12.5px;display:flex}.explode input{width:130px;accent-color:var(--accent)}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;padding:6px 13px;font-size:12.5px}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.zoom{gap:4px;display:flex}.zoom .btn{width:32px;font-family:var(--font-mono);padding:6px 0}.gesture{color:var(--muted);font-size:12px}.stage .warn-banner{background:var(--bad);color:#fff;white-space:nowrap;pointer-events:none;border-radius:6px;padding:6px 12px;font-size:13px;font-weight:600;position:absolute;top:58px;left:50%;transform:translate(-50%)}.results{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (max-width:1100px){.results{grid-template-columns:1fr}}.ticket{flex-direction:column;gap:12px;padding:18px 20px 16px;display:flex;position:relative}.ticket:before{content:"";background:var(--accent);border-radius:10px 0 0 10px;width:6px;position:absolute;top:0;bottom:0;left:0}.ticket-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.eyebrow{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:700;font-stretch:85%}.big{font-family:var(--font-display);letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:clamp(44px,6vw,64px);font-weight:800;font-stretch:72%;line-height:.95}.big small{color:var(--muted);letter-spacing:0;font-size:.4em;font-weight:600}.sub{color:var(--muted);margin:0;font-size:13.5px}.specs{border-top:1px dashed var(--line);grid-template-columns:auto 1fr;margin:0;display:grid}.specs dt,.specs dd{border-bottom:1px dashed var(--line);margin:0;padding:8px 0}.specs dt{color:var(--muted);padding-right:16px;font-size:13.5px}.specs dd{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13.5px}.specs dd em{color:var(--muted);font-style:normal;font-family:var(--font-body);font-size:12.5px}.ticket-actions{flex-wrap:wrap;gap:8px;display:flex}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.pill.ideal{background:var(--ok-soft);color:var(--ok)}.pill.snug{background:var(--warn-soft);color:var(--warn)}.pill.big{background:var(--bg);color:var(--muted)}.pill.small{background:var(--bad-soft);color:var(--bad)}.formats{flex-direction:column;gap:10px;padding:16px 18px;display:flex}.formats-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.flist{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.frow{border:1px solid var(--line);cursor:pointer;text-align:left;background:0 0;border-radius:8px;grid-template-columns:62px 1fr auto 26px;align-items:center;gap:10px;width:100%;padding:6px 8px;display:grid}.frow:hover{border-color:var(--muted)}.frow[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.frow svg{display:block}.fname{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.fname small{font-family:var(--font-body);color:var(--muted);font-size:12px;font-weight:400;display:block}.fname .rec{color:var(--accent);font-weight:600}.del{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px;font-size:16px;line-height:1}.del:hover{color:var(--bad)}.addf{flex-wrap:wrap;align-items:center;gap:8px;padding-top:4px;display:flex}.addf .num{width:84px}.addf .x{color:var(--muted)}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.pill.force{background:var(--accent-soft);color:var(--accent)}.hud{pointer-events:none;flex-direction:column;gap:6px;display:flex;position:absolute;top:56px;left:12px}.hud-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-width:190px;padding:7px 10px;font-size:12px}.hud-card b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600}.meter{background:linear-gradient(90deg,#6fb7e8,#f2c14e 60%,#e3402b);border-radius:3px;height:6px;margin-top:5px;position:relative}.meter i{background:var(--ink);border-radius:1px;width:2px;height:12px;position:absolute;top:-3px;transform:translate(-1px)}.seal-ok{color:var(--ok);font-weight:600}.seal-ko{color:var(--bad);font-weight:600}.seal-warn{color:var(--accent);font-weight:600}.play{flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:56px;right:12px}.play .btn{text-align:left;min-width:118px}.play .btn[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.air{background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:8px;padding:5px 12px;font-size:12.5px;display:flex}.air input{width:92px;accent-color:var(--accent)}.mode{border:1px solid var(--line);background:var(--surface);border-radius:999px;grid-auto-flow:column;display:inline-grid;overflow:hidden}.mode button{cursor:pointer;background:0 0;border:0;padding:6px 12px;font-size:12.5px}.mode button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:600}.btn:disabled{opacity:.45;cursor:not-allowed}.force-line{border:1px dashed var(--accent);background:var(--accent-soft);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;display:flex}.force-line b{font-family:var(--font-mono)}@media (max-width:640px){.hud,.play{top:auto;bottom:62px}.gesture{display:none}}.hud-sub{color:var(--muted);margin-top:4px}.mono{font-family:var(--font-mono);font-weight:600}.row-label{color:var(--muted);font-size:13.5px}.seg-layers{width:170px}.bottom-actions{gap:8px;margin-left:auto;display:flex}.foot{color:var(--muted);flex-wrap:wrap;gap:6px 18px;margin-top:28px;font-size:12.5px;display:flex}.foot a{color:inherit}
