html.bench-root{background:var(--machine-paint);font-size:clamp(12.8px,min(1.25vw,2.22222vh),24px)}@media (width>=1024px) and (height>=576px){html.bench-root,html.bench-root body{height:100%;overflow:hidden}}.bench{--sig-forward:var(--dur-signal);--sig-return:var(--dur-signal);--lamp-delay:var(--delay-lamp);width:100%;max-width:80rem;height:100dvh;min-height:36rem;color:var(--alu);font-family:var(--font-sans);font-size:var(--type-ui);grid-template-rows:3.25rem minmax(0,1fr);margin-inline:auto;line-height:1.4;display:grid;position:relative}.bench[data-mode=slow]{--sig-forward:var(--dur-signal-slow);--sig-return:var(--dur-signal-slow);--lamp-delay:var(--delay-lamp-slow)}.bench button,.bench select,.bench input{font:inherit;color:inherit}.bench :focus-visible{outline:2px solid var(--focus-machine);outline-offset:2px}.bench-header{border-bottom:1px solid var(--machine-line);align-items:center;gap:.625rem;min-width:0;padding-inline:1.25rem;display:flex}.bench-brand{color:var(--alu-bright);letter-spacing:.02em;margin-right:1.125rem;font-size:1.25rem;font-weight:800;font-stretch:125%;text-decoration:none}.bench-nav{gap:1.125rem;margin-left:auto;display:flex}.bench-nav a{color:var(--alu);white-space:nowrap;text-decoration:none}@media (width<=1199.98px){.bench-nav{gap:.75rem}}.bench-nav a:hover{color:var(--alu-bright)}.bench-tools{gap:.5rem;margin-left:1.125rem;display:flex}.ctl{border:1px solid var(--machine-control-border);border-radius:var(--radius);background:var(--machine-control);max-width:13rem;height:2rem;color:var(--alu-bright);cursor:pointer;align-items:center;gap:.5rem;padding:0 .5rem;font-size:.8125rem;display:inline-flex}.ctl:hover{border-color:var(--machine-control-border-hover)}.ctl[aria-expanded=true],.ctl[aria-pressed=true]{border-color:var(--focus-machine);color:var(--focus-machine)}.ctl:disabled{cursor:not-allowed;opacity:.5}.ctl-icon{justify-content:center;width:2rem;padding:0}.arrow{width:1.75rem;height:1.5rem;color:var(--alu-muted);cursor:pointer;background:0 0;border:0;border-radius:.25rem;justify-content:center;align-items:center;padding:0;display:inline-flex}.arrow:hover{background:var(--machine-line);color:var(--alu-bright)}.arrow:disabled{cursor:not-allowed;opacity:.4}.bench-main{grid-template-columns:26.875rem minmax(0,1fr);gap:1rem;min-height:0;padding:.75rem 1.25rem .875rem;display:grid}.bench-left{flex-direction:column;gap:1rem;min-height:0;display:flex}.bench-machine{flex-direction:column;align-items:center;gap:1rem;padding-top:.375rem;display:flex}.bench-rows{flex-direction:column;align-items:center;display:flex}.bench-rows>div{display:flex}.lamps{gap:.5rem}.lamps>div{gap:.5625rem}.keys{gap:.4375rem}.keys>div{gap:.375rem}.lamp{background:radial-gradient(circle at 40% 35%, var(--lamp-off-center), var(--lamp-off-edge) 70%);width:2.125rem;height:2.125rem;box-shadow:inset 0 .125rem .3125rem var(--shadow-deep), 0 0 0 .1875rem var(--machine-well);color:var(--ring-letter);font-family:var(--font-lamp);border-radius:50%;justify-content:center;align-items:center;font-size:.9375rem;display:flex}.lamp[data-lit]{background:radial-gradient(circle at 42% 38%, var(--lamp-on-center), var(--lamp-on-mid) 45%, var(--lamp-on-edge) 100%);box-shadow:0 0 0 .1875rem var(--machine-well), 0 0 1.375rem .4375rem var(--lamp-glow);color:var(--lamp-on-ink)}.lamp[data-warm]{animation:bench-lamp var(--dur-lamp) ease-out var(--lamp-delay) both}@keyframes bench-lamp{0%{filter:brightness(.25)saturate(.4)}}.key{border:.1875rem solid var(--key-rim);background:radial-gradient(circle at 45% 35%, var(--key-cap-center), var(--key-cap-edge));width:2.5rem;height:2.5rem;box-shadow:0 .25rem 0 var(--machine-shadow), 0 .3125rem .5rem var(--shadow-soft);color:var(--alu-bright);cursor:pointer;transition:transform var(--dur-key) linear;border-radius:50%;padding:0;font-size:.9375rem;font-weight:700}.key:hover{border-color:var(--key-rim-hover)}.key:active{box-shadow:0 .0625rem 0 var(--machine-shadow);transform:translateY(.1875rem)}.key[data-struck=a]{animation:bench-key-a calc(var(--dur-key) * 2) linear}.key[data-struck=b]{animation:bench-key-b calc(var(--dur-key) * 2) linear}@keyframes bench-key-a{50%{transform:translateY(.1875rem)}}@keyframes bench-key-b{50%{transform:translateY(.1875rem)}}.key:disabled{cursor:not-allowed;opacity:.45}.sheet{--color-focus:var(--focus-paper);border-radius:var(--radius-sheet);background:var(--sheet);min-height:0;box-shadow:0 .625rem 1.5rem var(--shadow-sheet);color:var(--sheet-ink);flex-direction:column;flex:1;gap:.5rem;padding:.625rem .875rem .75rem;display:flex}.sheet :focus-visible{outline-color:var(--focus-paper)}.sheet h2{color:var(--sheet-red);margin:0;font-size:.875rem;font-weight:700}.sheet-row{justify-content:space-between;align-items:center;gap:.625rem;display:flex}.sheet-rule{border-bottom:1.5px solid var(--sheet-red);padding-top:.125rem}.sheet-status{border:1px solid var(--sheet-red);color:var(--sheet-ink);margin:0;padding:.25rem .5rem;font-size:.75rem}.sheet-mission p{min-width:0;margin:0;font-size:.75rem;line-height:1.3}.sheet-mission-label{color:var(--sheet-red);font-weight:700}.field{border:1px solid var(--sheet-field-border);background:var(--sheet-field);min-width:0;height:1.75rem;color:var(--sheet-ink);border-radius:2px;padding:0 .5rem;font-size:.8125rem}.sheet select.field{max-width:13.75rem;padding:0 .25rem;font-size:.75rem}.typed{font-family:var(--font-mono)}.key-table{border:1.5px solid var(--sheet-red);grid-template-columns:max-content max-content minmax(0,1fr) max-content;margin:0;display:grid}.key-table[data-columns="3"]{grid-template-columns:max-content max-content minmax(0,1fr)}.key-table>div{border-right:1px solid var(--sheet-red);flex-direction:column;gap:1px;min-width:0;padding:.25rem .5rem;display:flex}.key-table>div:last-child{border-right:0}.key-table dt{color:var(--sheet-red);font-size:.6875rem}.key-table dd{font-family:var(--font-mono);overflow-wrap:anywhere;margin:0;font-size:.875rem;font-weight:700}.key-table dd.small{font-size:.75rem;line-height:1.25}.sbtn{height:1.75rem;color:var(--sheet-ink);text-decoration:underline;text-decoration-color:var(--sheet-red-soft);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;border-radius:2px;padding:0 .5rem;font-size:.8125rem}.sbtn:hover{background:var(--sheet-hover);text-decoration-color:var(--sheet-red)}.sbtn:disabled{color:var(--sheet-ink-muted);cursor:not-allowed;background:0 0;text-decoration:none}.sbtn-main{background:var(--sheet-ink);height:2rem;color:var(--sheet);padding:0 .875rem;text-decoration:none}.sbtn-main:hover{background:var(--sheet-ink);color:var(--sheet)}.sbtn-main:disabled{background:var(--sheet-ink-muted);color:var(--sheet)}.sbtn[aria-expanded=true]{background:var(--sheet-hover);text-decoration-color:var(--sheet-red)}.message{min-height:0;font-family:var(--font-mono);scrollbar-width:thin;flex:1;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:min-content;gap:0 .625rem;display:grid;overflow-y:auto}.group{border-bottom:1px solid var(--sheet-red-soft);flex-direction:column;padding:.125rem 0;display:flex}.group[data-current]{border-bottom:2px solid var(--sheet-red)}.group-in{min-height:.8125rem;color:var(--sheet-ink-faint);letter-spacing:.06em;font-size:.6875rem;line-height:1.2}.group-out{letter-spacing:.04em;min-height:1.125rem;font-size:.9375rem;font-weight:700;line-height:1.2}.ink-new{animation:bench-ink var(--dur-ink) ease-out both;display:inline-block}@keyframes bench-ink{0%{opacity:0;transform:translateY(-3px)}}.type-row{gap:.5rem;display:flex}.type-row .field{height:2rem;font-family:var(--font-mono);flex:1}.well{border-radius:var(--radius-well);background:var(--machine-well);min-height:0;box-shadow:inset 0 .125rem .625rem var(--shadow-soft);flex-direction:column;padding:.5rem .875rem;display:flex;position:relative}.well-heads{flex:none;height:6.5rem;position:relative}.col-label{color:var(--alu-muted);text-align:center;white-space:nowrap;font-size:.75rem;line-height:1.3;position:absolute;top:2.5rem;transform:translate(-50%)}.col-label b{color:var(--alu-bright);font-size:.875rem}.rotor-head{flex-direction:column;align-items:center;gap:.3125rem;display:flex;position:absolute;top:0;transform:translate(-50%)}.rotor-head select.ctl{width:4.25rem;height:1.5rem;padding:0 .25rem;font-weight:700}.rotor-dial{align-items:stretch;gap:.3125rem;display:flex}.rotor-arrows{flex-direction:column;justify-content:space-between;display:flex}.window{border-radius:var(--radius);background:var(--window);width:2.75rem;height:3.125rem;box-shadow:inset 0 .1875rem .375rem var(--shadow-inset), 0 0 0 .25rem var(--window-bezel);color:var(--window-ink);cursor:ns-resize;user-select:none;justify-content:center;align-items:center;display:flex;overflow:hidden}.window span{font-size:var(--type-window);font-weight:800;font-stretch:90%;line-height:1;display:block}.window .tick{animation:bench-tick var(--dur-tick) var(--ease-snap) both}.window .tick-back{animation:bench-tick-back var(--dur-tick) var(--ease-snap) both}@keyframes bench-tick{0%{opacity:.15;transform:translateY(60%)}}@keyframes bench-tick-back{0%{opacity:.15;transform:translateY(-60%)}}.knurl{background:repeating-linear-gradient(180deg, var(--knurl-light) 0 2px, var(--knurl-dark) 2px 4px);border-radius:.3125rem;width:1rem}.ring-set{color:var(--alu-muted);white-space:nowrap;align-items:center;gap:1px;font-size:.75rem;display:flex}.ring-set .arrow{width:1.375rem;height:1.25rem}.well-head-button{height:1.5rem;margin-top:.25rem;font-size:.75rem}.circuit{flex:none;width:47.875rem;height:29.375rem;position:relative}.circuit svg{width:100%;height:100%;display:block;overflow:hidden}.wire{fill:none;stroke:var(--wire);stroke-width:1px}.signal{fill:none;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.signal-forward{stroke:var(--signal-forward)}.signal-return{stroke:var(--signal-return)}.signal-forward.draw{stroke-dasharray:1;animation:bench-draw var(--sig-forward) linear both}.signal-return.draw{stroke-dasharray:1;animation:bench-draw var(--sig-return) linear var(--sig-forward) both}@keyframes bench-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.turn{animation:bench-turn var(--dur-ring) var(--ease-snap) both}.turn-back{animation:bench-turn-back var(--dur-ring) var(--ease-snap) both}@keyframes bench-turn{0%{transform:translateY(18px)}}@keyframes bench-turn-back{0%{transform:translateY(-18px)}}.contact{fill:var(--contact)}.contact[data-dir=forward],.label-forward{fill:var(--signal-forward)}.contact[data-dir=return],.label-return{fill:var(--signal-return)}.ring-bg{fill:var(--machine-well)}.ring-letter,.key-letter{fill:var(--ring-letter);font-family:var(--font-sans)}.ring-letter.label-forward,.ring-letter.label-return,.key-letter.label-forward,.key-letter.label-return{font-weight:800}.ring-letter.label-forward,.key-letter.label-forward{fill:var(--signal-forward)}.ring-letter.label-return,.key-letter.label-return{fill:var(--signal-return)}.issues{border:1px solid var(--machine-control-border);border-radius:var(--radius-well);background:var(--machine-panel);color:var(--alu);flex-direction:column;gap:.5rem;padding:1rem 1.25rem;display:flex;position:absolute;inset:2rem 3rem auto}.issues h2{color:var(--alu-bright);margin:0;font-size:.9375rem}.issues ul{margin:0;padding-left:1.25rem}.well-foot{color:var(--alu-muted);align-items:flex-start;gap:1rem;margin-top:auto;padding-top:.25rem;font-size:.75rem;line-height:1.35;display:flex}.well-foot p{flex:1;margin:0}.well-foot .controls{flex:none;align-items:center;gap:.375rem;display:flex}.well-foot select.ctl{height:1.625rem;font-size:.75rem}.panel{z-index:5;box-sizing:border-box;border:1px solid var(--machine-control-border);border-radius:var(--radius-well);background:var(--machine-panel);box-shadow:0 1.125rem 2.5rem var(--shadow-deep);color:var(--alu);animation:bench-panel var(--dur-panel) var(--ease-snap) both;flex-direction:column;gap:.75rem;padding:1rem 1.125rem 1.125rem;display:flex;position:absolute}@keyframes bench-panel{0%{opacity:0;transform:translateY(-6px)scale(.98)}}.panel-left{width:26.875rem;max-height:calc(100% - 4.5rem);top:3.75rem;left:1.25rem;overflow-y:auto}.panel-right{width:24rem;top:3.5rem;right:1.25rem}.panel-bottom{width:26.875rem;bottom:4.25rem;left:1.25rem}.panel-title{justify-content:space-between;align-items:center;display:flex}.panel h2{color:var(--alu-bright);margin:0;font-size:.9375rem;font-weight:700}.panel h2 span{color:var(--alu-muted);font-weight:400}.panel-hint{color:var(--alu-muted);margin:0;font-size:.75rem;line-height:1.45}.panel label.stack{color:var(--alu-muted);flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.panel input[type=text],.panel input:not([type]){border:1px solid var(--machine-control-border);border-radius:var(--radius);background:var(--machine-control);height:2rem;color:var(--alu-bright);font-family:var(--font-mono);letter-spacing:.04em;padding:0 .5rem;font-size:.9375rem}.panel .check{cursor:pointer;align-items:center;gap:.5rem;font-size:.8125rem;display:flex}.panel .check input{width:1rem;height:1rem;accent-color:var(--focus-machine)}.panel-text{margin:0;font-size:.8125rem;line-height:1.5}.panel h3{color:var(--alu-bright);margin:0;font-size:.8125rem;font-weight:700}.panel summary{color:var(--alu-bright);cursor:pointer;font-size:.8125rem;font-weight:700}.panel-list{flex-direction:column;gap:.25rem;margin:0;padding-left:1rem;font-size:.75rem;line-height:1.4;display:flex}.panel a{color:var(--alu-bright);text-underline-offset:2px}.panel-section{border-top:1px solid var(--machine-panel-line);flex-direction:column;gap:.5rem;padding-top:.625rem;display:flex}.panel input[type=range]{accent-color:var(--focus-machine)}.sockets{flex-direction:column;align-items:center;gap:.375rem;display:flex}.sockets>div{gap:.375rem;display:flex}.socket{border:1px solid var(--socket-border);background:var(--socket);width:2.25rem;height:2.25rem;color:var(--alu-muted);cursor:pointer;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;padding:0;line-height:1;display:flex}.socket:hover{border-color:var(--alu);color:var(--alu-bright)}.socket b{font-size:.8125rem}.socket small{min-height:.5625rem;font-size:.5625rem}.socket[data-plugged]{border-color:var(--alu);background:var(--alu);color:var(--machine-control)}.socket[data-waiting]{border:2px solid var(--focus-machine);color:var(--focus-machine)}.socket:disabled{cursor:not-allowed;opacity:.8}.share-link{gap:.5rem;display:flex}.share-link input{flex:1;min-width:0;font-size:.75rem!important}.qr{border-radius:var(--radius);width:11rem}@media (prefers-reduced-motion:reduce){.bench *,.bench :before,.bench :after{transition:none!important;animation:none!important}}.bench-loading,.bench-noscript{color:var(--alu-muted);margin:0;padding:2rem 1.25rem}.panel-close{width:2rem;height:2rem;font-size:1.125rem}@media not ((width>=1024px) and (height>=576px)){html.bench-root{font-size:16px}.bench{max-width:none;height:auto;min-height:100dvh;display:block}.bench-fallback{min-height:0}.bench-header{flex-wrap:wrap;min-height:3.25rem;padding-inline:1rem}.bench-header .bench-nav{flex-wrap:wrap;gap:0 1.125rem;margin-left:0}.bench-header .bench-nav a{align-items:center;min-height:2.75rem;display:inline-flex}.bench-brand{margin-right:auto}.compact-header{flex-wrap:nowrap;justify-content:space-between;height:3.25rem;padding-inline:1rem .5rem;position:relative}.compact-header .bench-brand{align-items:center;min-height:2.75rem;font-size:1.1875rem;display:inline-flex}.compact-menu{border-radius:var(--radius);width:2.75rem;height:2.75rem;color:var(--alu-bright);cursor:pointer;touch-action:manipulation;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.compact-menu[aria-expanded=true]{color:var(--focus-machine)}.compact-sheet{z-index:10;border-bottom:1.5px solid var(--print-red);background:var(--paper);color:var(--ink);animation:bench-sheet var(--dur-panel) var(--ease-snap) both;padding:.25rem 1rem 1rem;position:absolute;inset:100% 0 auto}.compact-sheet :focus-visible{outline-color:var(--focus-paper)}.compact-sheet ul{margin:0;padding:0;list-style:none}.compact-sheet li{border-bottom:1px solid var(--print-red-soft)}.compact-sheet a{min-height:3rem;color:var(--ink);align-items:center;font-size:1rem;text-decoration:none;display:flex}.compact-sheet a[aria-current=page]{color:var(--print-red);font-weight:700}.compact-theme{border:1px solid var(--field-border);border-radius:var(--radius);background:var(--paper-deep);width:100%;min-height:2.75rem;color:var(--ink);cursor:pointer;align-items:center;gap:.75rem;margin-top:1rem;padding:0 .75rem;font-size:1rem;display:flex}@keyframes bench-sheet{0%{opacity:0;transform:translateY(-6px)}}.compact-main{flex-direction:column;align-items:center;gap:1.125rem;width:100%;max-width:30rem;margin-inline:auto;padding:1rem 1rem .875rem;display:flex}.compact-rotors{gap:.875rem;display:flex}.compact-rotor{flex-direction:column;align-items:center;display:flex}.rotor-dial.stacked{flex-direction:column;align-items:center;gap:0}.stacked .rotor-arrows{display:contents}.stacked .arrow{touch-action:manipulation;width:2.75rem;height:2.75rem}.stacked .arrow:first-child{order:1}.stacked .window{order:2;width:3.125rem;height:3.375rem}.stacked .window span{font-size:1.875rem}.stacked .arrow:last-child{order:3}.compact-rotor-name{color:var(--alu-muted);font-size:.75rem}.compact-main .bench-machine{gap:1.125rem;width:100%;padding-top:0}.compact-main .bench-rows,.compact-main .bench-rows>div{justify-content:center;width:100%}.compact-main .lamps,.compact-main .lamps>div{gap:.4375rem}.compact-main .keys{gap:.375rem}.compact-main .keys>div{gap:.25rem}.compact-main .lamp{aspect-ratio:1;flex:0 1.9375rem;width:auto;min-width:0;height:auto;font-size:.875rem}.compact-main .key{touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;border-width:2px;border-radius:1.0625rem;flex:0 2.125rem;width:auto;min-width:0;height:2.875rem;font-size:1rem}.compact-sheet-message{flex:none;width:100%;padding:.25rem .75rem .75rem}.compact-sheet-message .sheet-rule{flex-wrap:wrap}.compact-sheet-message .sbtn{min-width:2.75rem;height:2.75rem}.compact-sheet-message .message{flex:none;max-height:13.5rem}.compact-sheet-message .group-in{font-size:.75rem}.compact-sheet-message .group-out{font-size:1.0625rem}.compact-notice{max-width:30ch;color:var(--alu-muted);text-align:center;margin-top:.25rem;font-size:.8125rem;line-height:1.45}.compact-notice p{margin:0}.compact-notice a{min-height:2.75rem;color:var(--focus-machine);align-items:center;display:inline-flex}.compact-notice a:hover{color:var(--alu-bright)}}
