:root{--sheet-paper:#f2f1ea;--sheet-paper-hi:#f8f7f1;--sheet-grid:#dde2dc;--sheet-grid-strong:#c8d0c9;--sheet-ink:#262a33;--sheet-ink-soft:#5d6372;--sheet-blue:#2c5ea8;--sheet-blue-soft:#8fa9d1;--ui-paper:#e8edf3;--ui-paper-hi:#f5f8fb;--ui-grid:#d3dce7;--ui-ink:#1c2733;--ui-ink-soft:#55657a;--ui-blue:#1f4f8f;--ui-blue-soft:#8aa6cc;--ui-red:#b23b2a;--mono:ui-monospace, "Courier New", monospace;--hand:var(--mono);--sans:ui-sans-serif, system-ui, sans-serif;--display:var(--mono);--paper:var(--ui-paper);--paper-hi:var(--ui-paper-hi);--grid:var(--ui-grid);--grid-strong:color-mix(in srgb, var(--ui-blue) 22%, var(--ui-paper));--ink:var(--ui-ink);--ink-soft:var(--ui-ink-soft);--blue:var(--ui-blue);--blue-soft:var(--ui-blue-soft);--on-blue:#fff;--rule:var(--ui-ink);--rule-w:1px;--line:var(--ui-ink-soft);--field:var(--ui-paper-hi);--btn:var(--ui-paper-hi);--hover-bg:color-mix(in srgb, var(--ui-blue) 10%, transparent);--hover-fg:var(--ui-blue);--sel-bg:var(--ui-blue);--sel-fg:#fff;--check:var(--ui-blue);--danger:var(--ui-red);--font:var(--sans);--font-title:var(--mono);--title-w:600;--rad:3px;--rad-box:3px;--tilt:0deg;--focus:solid;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.sheet,.stage{--paper:var(--sheet-paper);--paper-hi:var(--sheet-paper-hi);--grid:var(--sheet-grid);--grid-strong:var(--sheet-grid-strong);--ink:var(--sheet-ink);--ink-soft:var(--sheet-ink-soft);--blue:var(--sheet-blue);--blue-soft:var(--sheet-blue-soft);--on-blue:#fff;--rule:var(--sheet-ink);--rule-w:1.5px;--line:var(--sheet-ink);--field:var(--sheet-paper-hi);--btn:var(--sheet-paper-hi);--hover-bg:#e9ece6;--hover-fg:var(--sheet-ink);--sel-bg:var(--sheet-ink);--sel-fg:var(--sheet-paper-hi);--check:var(--sheet-ink);--danger:#b23b2a;--font:var(--hand);--font-title:var(--hand);--title-w:400;--rad:7px 9px 6px 10px / 9px 6px 10px 7px;--rad-box:7px 9px 6px 10px / 9px 6px 10px 7px;--tilt:-1deg;--focus:dashed;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);font-family:var(--font)}*{box-sizing:border-box}body{background-color:var(--paper);background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);min-height:100vh;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;background-size:24px 24px;margin:0;padding-block:0 28px;padding-inline:24px;font-size:15px;line-height:1.5}.sheet{margin:0 auto;border:2.5px solid var(--ink);outline:1px solid var(--ink);outline-offset:5px;background-color:var(--paper);background-image:linear-gradient(var(--grid-strong) 1px, transparent 1px), linear-gradient(90deg, var(--grid-strong) 1px, transparent 1px), linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);max-width:1320px;box-shadow:0 0 0 12px var(--paper), 0 14px 44px 10px #1c273347;background-size:100px 100px,100px 100px,20px 20px,20px 20px;grid-template-columns:minmax(0,1fr) 330px;margin-block:14px 0;display:grid}.head{border-bottom:var(--rule-w) solid var(--rule);flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:6px 24px;padding:14px 20px 10px;display:flex}.head h1{font-family:var(--font-title);font-weight:var(--title-w);letter-spacing:.02em;text-wrap:balance;margin:0;font-size:clamp(24px,3.4vw,36px);line-height:1.15}.head h1 span{color:var(--blue)}.head p{color:var(--ink-soft);margin:0;font-size:15px}.board{border-right:var(--rule-w) solid var(--rule);flex-direction:column;min-width:0;display:flex}.stage{touch-action:none;height:min(76vh,760px);min-height:440px;position:relative;overflow:hidden}.stage canvas{cursor:grab;width:100%;height:100%;display:block}.stage canvas:active{cursor:grabbing}.labels{pointer-events:none;position:absolute;inset:0}.labels *{pointer-events:none}.hint{color:var(--ink-soft);font-size:14px;position:absolute;top:10px;left:14px;transform:rotate(-1.2deg)}.dim{font-family:var(--hand);color:var(--blue);background:var(--paper);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:3px;padding:0 5px;font-size:15px}.callout{font-family:var(--hand);color:var(--blue);white-space:nowrap;background:var(--paper);padding:0 4px;font-size:13.5px;line-height:1.2}.balloon{border:1.7px solid var(--ink);background:var(--paper-hi);width:30px;height:30px;font-family:var(--hand);color:var(--ink);border-radius:52% 46% 50% 48%/47% 53% 46% 54%;place-items:center;font-size:16px;display:grid}.tools{border-top:var(--rule-w) solid var(--rule);flex-wrap:wrap;align-items:center;gap:10px 18px;padding:12px 16px 14px;display:flex}.group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.group-label{color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;margin-right:2px;font-size:13px}button{font:inherit;color:var(--ink);background:var(--btn);border:1.5px solid var(--line);border-radius:var(--rad);cursor:pointer;padding:3px 11px;font-size:15px;transition:transform .12s,background .12s,color .12s,border-color .12s}button:hover{background:var(--hover-bg);color:var(--hover-fg);border-color:var(--hover-fg);transform:rotate(var(--tilt))}button[aria-pressed=true]{background:var(--sel-bg);color:var(--sel-fg);border-color:var(--sel-bg)}button:focus-visible,input:focus-visible{outline:2px var(--focus) var(--blue);outline-offset:3px}input[type=range]{accent-color:var(--blue);width:150px;max-width:40vw}.check{cursor:pointer;align-items:center;gap:6px;font-size:15px;display:inline-flex}.check input{accent-color:var(--check);width:16px;height:16px;margin:0}.side{flex-direction:column;min-width:0;display:flex}.block{border-bottom:var(--rule-w) solid var(--rule);padding:14px 18px}.block h2{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 8px;font-size:14px;font-weight:400}.parts{border-collapse:collapse;width:100%;font-size:14px}.parts td{vertical-align:top;border-top:1px dashed var(--grid-strong);padding:5px 4px}.parts tr:first-child td{border-top:0}.parts .mk{width:30px}.mk span{border:1.4px solid var(--ink);border-radius:50% 46% 52% 48%;place-items:center;width:24px;height:24px;font-size:14px;display:inline-grid}.parts .nm{line-height:1.25}.parts .nm small{color:var(--ink-soft);font-size:12.5px;display:block}.parts .ms{text-align:right;color:var(--blue);white-space:nowrap;font-variant-numeric:tabular-nums}.parts tr{cursor:default}.parts tr.on td{background:color-mix(in srgb, var(--blue) 9%, transparent)}.notes{color:var(--ink-soft);gap:4px;margin:0;padding-left:18px;font-size:14px;display:grid}.rotulo{border-bottom:0;margin-top:auto;padding:0}.rotulo table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:12px}.rotulo td{border-top:1px solid var(--ink);vertical-align:top;padding:5px 8px}.rotulo td+td{border-left:1px solid var(--ink)}.rotulo .k{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);font-size:10px;display:block}.rotulo .big{font-family:var(--hand);font-size:20px;line-height:1.15}@media (max-width:960px){.sheet{grid-template-columns:minmax(0,1fr)}.board{border-right:0;border-bottom:var(--rule-w) solid var(--rule)}.stage{height:68vh;min-height:400px}}@media (max-width:560px){.sheet{box-shadow:0 0 0 9px var(--paper), 0 14px 44px 10px #1c273347}}@media (prefers-reduced-motion:reduce){button{transition:none}button:hover{transform:none}}.head-right{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.seg{flex-wrap:wrap;gap:6px;display:inline-flex}select{font:inherit;color:var(--ink);background:var(--field);border:1.5px solid var(--line);border-radius:var(--rad-box);cursor:pointer;padding:3px 8px;font-size:15px}select:focus-visible{outline:2px var(--focus) var(--blue);outline-offset:3px}.stage{transition:background-color .3s}.stage[data-style=blueprint]{background-color:#1f4f8f;background-image:linear-gradient(#ffffff29 1px,#0000 1px),linear-gradient(90deg,#ffffff29 1px,#0000 1px),linear-gradient(#ffffff12 1px,#0000 1px),linear-gradient(90deg,#ffffff12 1px,#0000 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px}.stage[data-style=blueprint] .dim,.stage[data-style=blueprint] .callout{color:#f2f6ff;background:#1f4f8f}.stage[data-style=blueprint] .balloon{color:#f2f6ff;background:#1f4f8f;border-color:#f2f6ff}.stage[data-style=blueprint] .hint{color:#c6d6f0}.stage[data-style=real]{background:radial-gradient(ellipse at 50% 42%, #fbfaf6 0%, var(--paper) 62%, #e4e3da 100%)}.seg button:disabled{opacity:.45;cursor:progress}.parts tr.supuesto .ms{color:var(--ink-soft);font-style:italic}.parts tr.fuente .ms{color:var(--blue)}.respaldo{color:var(--ink-soft);gap:3px;margin:8px 0 0;padding:0;font-size:13px;list-style:none;display:grid}.respaldo .supuesto{font-style:italic}.respaldo .fuente a{color:var(--blue)}.dim[data-respaldo=supuesto]{font-style:italic}button[aria-pressed=true]#play{font-weight:700}.param{gap:4px;margin-bottom:10px;font-size:14px;display:grid}.param-ctl{align-items:center;gap:10px;display:flex}.param-ctl input[type=range]{flex:1;min-width:0}.param-ctl output{text-align:right;min-width:5.5em;color:var(--blue);font-variant-numeric:tabular-nums}.marca.supuesto{color:var(--ink-soft);cursor:help;font-weight:700}.marca.fuente{color:var(--blue);font-size:12px}.calculos{margin:6px 0 0;font-size:14px}.calculo dt{font-weight:700}.calculo dd{margin:2px 0 6px}.calculo .valor{color:var(--blue);font-variant-numeric:tabular-nums;font-size:20px}.calculo .formula code{color:var(--ink-soft);font-size:13px}.calculo .sub{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);font-size:12px;display:block}.calculo ul{color:var(--ink-soft);margin:2px 0 0;padding-left:18px}.calculo small{font-style:italic}.calculo .aviso{border:1px solid var(--ink);background:var(--paper-hi);border-left-width:4px;margin:4px 0;padding:6px 8px}.appbar{z-index:40;background:color-mix(in srgb, var(--paper) 90%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:var(--rule-w) solid var(--rule);align-items:center;gap:8px 20px;margin:0 -24px 16px;padding:10px calc(24px + max(0px,50% - 660px));display:flex;position:sticky;top:0}.modes{scrollbar-width:none;overscroll-behavior-x:contain;gap:4px;min-width:0;margin-left:auto;display:flex;position:relative;overflow-x:auto}.modes::-webkit-scrollbar{display:none}.modes a{color:var(--ink-soft);white-space:nowrap;border-radius:var(--rad);border:1px solid #0000;flex:none;align-items:center;padding:5px 13px;font-size:15px;font-weight:500;text-decoration:none;transition:color .15s,background .15s,border-color .15s;display:inline-flex}.modes a:hover{color:var(--blue);border-color:color-mix(in srgb, var(--blue) 45%, transparent)}.modes a[aria-current=page]{background:var(--blue);color:var(--on-blue);border-color:var(--blue)}.modes a:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:2px}#mode[aria-busy=true]:before{content:"cargando…";text-align:center;max-width:1320px;color:var(--ink-soft);margin:40px auto;font-size:18px;display:block}.msheet{border:1.5px solid var(--ink);background:var(--paper-hi);border-radius:2px;grid-template-columns:minmax(0,1fr) 340px;max-width:1320px;margin:0 auto;display:grid;overflow:hidden;box-shadow:0 14px 40px -18px #1c273373}.msheet>.head{background:var(--paper);grid-column:1/-1}.msheet .board{border-right:var(--rule-w) solid var(--rule)}.msheet .stage{height:min(74vh,740px);min-height:420px}.msheet .stage[data-style=hand]{background-color:var(--paper);background-image:linear-gradient(var(--grid-strong) 1px, transparent 1px), linear-gradient(90deg, var(--grid-strong) 1px, transparent 1px), linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px}.panel{flex-direction:column;min-width:0;display:flex}.panel .block:last-child{border-bottom:0}.panel label.row,.panel .row{justify-content:space-between;align-items:center;gap:10px;margin:6px 0;font-size:14.5px;display:flex}.panel .row input[type=range]{width:150px}.panel .row output{font-family:var(--mono);color:var(--blue);text-align:right;min-width:64px;font-size:13px}.panel .muted,.muted{color:var(--ink-soft);font-size:13.5px}.panel select{max-width:190px}.stack{flex-wrap:wrap;align-items:center;gap:6px;display:flex}button.primary{background:var(--blue);color:var(--on-blue);border-color:var(--blue)}button.primary:hover{background:color-mix(in srgb, var(--blue) 82%, #000);color:var(--on-blue)}button.danger{border-color:var(--danger);color:var(--danger)}button:disabled{opacity:.45;cursor:not-allowed;transform:none}input[type=text],input[type=number],input[type=color]{font:inherit;color:var(--ink);background:var(--field);border:1.5px solid var(--line);border-radius:var(--rad-box);padding:2px 8px;font-size:15px}input[type=color]{width:44px;height:28px;padding:0 2px}input[type=number]{width:84px}.kbd,kbd{font-family:var(--mono);border:1.2px solid var(--line);background:var(--field);border-bottom-width:2.5px;border-radius:4px;padding:0 5px;font-size:12px}@media (max-width:960px){.msheet{grid-template-columns:minmax(0,1fr)}.msheet .board{border-right:0;border-bottom:var(--rule-w) solid var(--rule)}.msheet .stage{height:62vh;min-height:360px}}.cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.card{border:1.5px solid var(--ink);background:var(--paper-hi);color:var(--ink);border-radius:2px;flex-direction:column;gap:6px;min-width:0;padding:14px 16px;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}a.card:hover{border-color:color-mix(in srgb, var(--blue) 60%, transparent);transform:translateY(-3px);box-shadow:0 14px 34px -14px #1c273380}.card h3{font-family:var(--display);margin:0;font-size:21px;font-weight:600;line-height:1.15}.card p{color:var(--ink-soft);margin:0;font-size:14px}.card .thumb{aspect-ratio:4/3;border:1px dashed var(--grid-strong);background:var(--paper) center / contain no-repeat;color:var(--ink-soft);text-align:center;border-radius:2px;place-items:center;padding:8px;font-size:13px;display:grid}.card .tag{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--blue);color:var(--blue);border-radius:2px;align-self:flex-start;padding:0 8px;font-size:11.5px;font-weight:500}.card .actions{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px;display:flex}.card .actions a,.card .actions button{padding:2px 10px;font-size:13.5px}.card .actions a{color:var(--ink);border:1.5px solid var(--line);border-radius:var(--rad);background:0 0;text-decoration:none}.card .actions a:hover{color:var(--blue);border-color:var(--blue)}.page{max-width:1320px;margin:0 auto}.page>h1{font-family:var(--display);letter-spacing:-.015em;text-wrap:balance;margin:10px 0 6px;font-size:clamp(30px,4.4vw,46px);font-weight:600;line-height:1.08}.page>.lead{color:var(--ink-soft);max-width:70ch;margin:0 0 20px;font-size:16px}.empty{text-align:center;max-width:640px;color:var(--ink-soft);margin:40px auto}.empty h2{font-family:var(--display);color:var(--ink);font-weight:600}.toasts{z-index:50;pointer-events:none;gap:8px;display:grid;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--paper-hi);border-radius:2px;padding:7px 16px;font-size:15px;font-weight:500;transition:opacity .35s,transform .35s;box-shadow:0 10px 28px -8px #1c273380}.toast.out{opacity:0;transform:translateY(8px)}.drop{border:1.5px dashed var(--line);text-align:center;color:var(--ink-soft);background:color-mix(in srgb, var(--paper-hi) 70%, transparent);border-radius:14px;padding:18px}.drop.over{border-color:var(--blue);color:var(--blue);background:color-mix(in srgb, var(--blue) 7%, var(--paper-hi))}@media (max-width:560px){body{padding-inline:14px}.appbar{gap:10px;margin-inline:-14px;padding:6px 0 6px 14px}.modes{padding-left:8px;padding-right:14px;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 12px calc(100% - 26px),#0000);mask-image:linear-gradient(90deg,#0000 0,#000 12px calc(100% - 26px),#0000)}.modes a{min-height:44px;padding:0 12px;font-size:15px}}@media (prefers-reduced-motion:reduce){.card,.modes a{transition:none}a.card:hover{transform:none}}
