@font-face{font-family:"Host Grotesk";font-weight:400;font-display:swap;src:url(../vendor/fonts/host-grotesk-latin-400-normal.woff2) format("woff2")}@font-face{font-family:"Host Grotesk";font-weight:500;font-display:swap;src:url(../vendor/fonts/host-grotesk-latin-500-normal.woff2) format("woff2")}@font-face{font-family:"Host Grotesk";font-weight:600;font-display:swap;src:url(../vendor/fonts/host-grotesk-latin-600-normal.woff2) format("woff2")}@font-face{font-family:"JetBrains Mono";font-weight:100 800;font-display:swap;src:url(../vendor/fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2")}@font-face{font-family:"Instrument Serif";font-weight:400;font-style:normal;font-display:swap;src:url(../vendor/fonts/instrument-serif-latin-400-normal.woff2) format("woff2")}@font-face{font-family:"Instrument Serif";font-weight:400;font-style:italic;font-display:swap;src:url(../vendor/fonts/instrument-serif-latin-400-italic.woff2) format("woff2")}@font-face{font-family:Anton;font-weight:400;font-display:swap;src:url(../vendor/fonts/anton-latin-400-normal.woff2) format("woff2")}@font-face{font-family:"Space Grotesk";font-weight:500;font-display:swap;src:url(../vendor/fonts/space-grotesk-latin-500-normal.woff2) format("woff2")}@font-face{font-family:"Space Grotesk";font-weight:700;font-display:swap;src:url(../vendor/fonts/space-grotesk-latin-700-normal.woff2) format("woff2")}:root{--bg:#050505;--panel:#0d0d0d;--line:#262626;--fg:#f2f2f2;--mute:#8a8a8a;--soft:#bdbdbd;--on:#ffffff;--warn:#e6b35a;--ok:#8fd19e;--sans:'Host Grotesk',system-ui,-apple-system,sans-serif;--mono:'JetBrains Mono',ui-monospace,Menlo,monospace;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body,html{height:100%}body{background:var(--bg);color:var(--fg);font:14px/1.45 var(--sans);margin:0}.app{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0}.bar{grid-column:1/-1;display:flex;align-items:center;gap:14px;padding:10px 18px;border-bottom:1px solid var(--line);font:500 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mute);flex-wrap:wrap}.bar a.name{color:var(--fg);text-decoration:none;border:1px solid var(--line);border-radius:4px;padding:5px 10px;letter-spacing:.16em}.bar a.name:hover{border-color:var(--fg)}.bar a.tutorial{color:var(--soft);text-decoration:none;border:1px solid var(--line);border-radius:4px;padding:5px 10px;letter-spacing:.12em;white-space:nowrap}.bar a.tutorial:hover{border-color:var(--fg);color:var(--fg)}.bar .tool{color:var(--fg);letter-spacing:.24em}.bar .sp{flex:1}.stage{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;border-right:1px solid var(--line)}.lienzo{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:18px;overflow:hidden}.lienzo canvas.main{max-width:100%;max-height:100%;width:auto;height:auto;display:block;background:#000;outline:1px solid var(--line)}.lienzo canvas.trans{background:repeating-conic-gradient(#1a1a1a 0 25%,#0e0e0e 0 50%) 0 0/24px 24px}.drop{position:absolute;inset:18px;border:1px dashed var(--soft);display:flex;flex-direction:column;gap:14px;align-items:center;justify-content:center;font:12px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fg);background:rgba(0,0,0,.78);text-align:center;padding:20px;z-index:2}.drop small{text-transform:none;letter-spacing:0;color:var(--mute);max-width:44ch}.drop.sobre{border-color:var(--on);background:rgba(20,20,20,.9)}.transport{display:flex;align-items:center;gap:12px;padding:10px 18px;border-top:1px solid var(--line);flex-wrap:wrap}.transport input[type=range]{flex:1;min-width:120px}.tc{font:12px var(--mono);font-variant-numeric:tabular-nums;color:var(--soft);min-width:11ch;text-align:right}.panel{overflow:auto;min-height:0;background:var(--panel)}.grp{padding:14px 18px 16px;border-bottom:1px solid var(--line);display:grid;gap:10px}.grp h2{margin:0;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mute);display:flex;justify-content:space-between;gap:8px}.grp h2 i{font-style:normal;color:var(--soft);letter-spacing:.04em;text-transform:none}.row{display:grid;grid-template-columns:96px minmax(0,1fr) 46px;align-items:center;gap:10px}.row.dos{grid-template-columns:96px minmax(0,1fr)}.row label{font-size:13px;color:var(--soft)}.row output{font:12px var(--mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--fg)}.btns{display:flex;flex-wrap:wrap;gap:6px}.btns.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}input[type=range]{accent-color:var(--on);width:100%}input[type=color]{width:100%;height:30px;padding:0 2px;background:#000;border:1px solid var(--line);border-radius:4px}input[type=number],input[type=text],select,textarea{width:100%;background:#000;color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:6px 8px;font:12px var(--mono)}textarea{resize:vertical;font:14px/1.4 var(--sans)}.boton,button{font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;background:0 0;color:var(--fg);border:1px solid var(--line);border-radius:4px;padding:7px 10px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}.boton:hover,button:hover{border-color:var(--soft)}button:disabled{opacity:.4;cursor:default}button[aria-pressed=true]{background:var(--on);color:#000;border-color:var(--on)}button.main{background:var(--on);color:#000;border-color:var(--on)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--on);outline-offset:2px}.hint{margin:0;font-size:12px;color:var(--mute);line-height:1.45}.hint.warn{color:var(--warn)}.hint.ok{color:var(--ok)}.hint.epi{margin:-4px 0 2px;padding-left:8px;border-left:2px solid var(--line);font-size:11.5px}.prog{height:3px;background:var(--line);border-radius:2px;overflow:hidden}.prog i{display:block;height:100%;width:0;background:var(--on);transition:width .15s}.premisa{font:12px/1.5 var(--sans);color:var(--soft);border-left:2px solid var(--on);padding:2px 0 2px 10px;margin:0}kbd{font:11px var(--mono);border:1px solid var(--line);border-radius:3px;padding:1px 5px;color:var(--soft)}@media (max-width:860px){.app{grid-template-columns:1fr;grid-template-rows:auto auto auto;height:auto}.stage{border-right:0;border-bottom:1px solid var(--line)}.lienzo{height:56vh;flex:none;padding:12px}.grp{padding:14px 16px}}.tabs{position:sticky;top:0;z-index:3;display:grid;gap:0 2px;background:var(--panel);border-bottom:1px solid var(--line);padding:8px 12px 0}.tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:0 0;padding:8px 2px 9px;font:500 11px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mute);white-space:nowrap}.tabs button[aria-selected=true]{color:var(--on);border-bottom-color:var(--on)}.tabs button:hover{color:var(--fg)}.row.prm{grid-template-columns:84px minmax(0,1fr) 40px 18px 92px;gap:6px}.row.prm select{padding:4px;font-size:10px}.row.prm select.vivo{border-color:var(--on);color:var(--on)}.rombo{width:18px;height:22px;padding:0;border:0;background:0 0;color:var(--mute);font-size:13px;line-height:1;cursor:pointer;letter-spacing:0}.rombo:hover{color:var(--on)}.rombo.has{color:var(--soft)}.rombo.on{color:var(--on)}.grp h3{margin:2px 0 0;font:500 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}.bar a.ayuda{color:var(--soft);text-decoration:none;border:1px solid var(--line);border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;letter-spacing:0}.bar a.ayuda:hover{border-color:var(--fg);color:var(--fg)}.lienzo canvas.main:fullscreen{width:100%!important;height:100%!important;object-fit:contain;background:#000;outline:0}.tl{display:flex;align-items:center;gap:10px;flex:1;min-width:160px}.tl input{flex:1}@media (max-width:860px){.row.prm{grid-template-columns:76px minmax(0,1fr) 36px 18px 84px}}.bar button.aMapeo{font-size:10px;padding:5px 9px;letter-spacing:.12em}[data-lanza-mapeo].en-mapeo{background:0 0;color:var(--ok);border-color:var(--ok)}