@font-face{font-family:Barlow;font-weight:400;font-display:swap;src:url(/fonts/barlow-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Barlow;font-weight:500;font-display:swap;src:url(/fonts/barlow-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Barlow;font-weight:600;font-display:swap;src:url(/fonts/barlow-latin-600-normal.woff2)format("woff2")}@font-face{font-family:Barlow Condensed;font-weight:500;font-display:swap;src:url(/fonts/barlow-condensed-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Barlow Condensed;font-weight:600;font-display:swap;src:url(/fonts/barlow-condensed-latin-600-normal.woff2)format("woff2")}@font-face{font-family:Barlow Fallback;src:local(Arial);size-adjust:96%;ascent-override:96%;descent-override:20%}@font-face{font-family:Barlow Cond Fallback;src:local(Arial Narrow),local(Arial);size-adjust:84%;ascent-override:102%;descent-override:22%}:root{--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--f-body:Barlow,"Barlow Fallback",Arial,sans-serif;--f-cond:"Barlow Condensed","Barlow Cond Fallback","Arial Narrow",Arial,sans-serif;--t-1:13px;--t0:16px;--t1:20px;--t2:25px;--t3:31px;--t4:39px;--t5:49px;--t6:clamp(44px,8vw,88px);--cell:28px;--enamel:#202622;--bakelite:#2a2a26;--engr:#e8e2cf;--wire:#6a766f;--fwd:#f5c04a;--ret:#7cc4d6;--lamp-off:#3b3a33;--lamp-on:#ffd37a;--lamp-ink:#1c2321;--bomb-1:#c4664e;--bomb-2:#d8b04a;--bomb-3:#6fa7b8}:root[data-theme=light]{--bg:#e3e7e1;--surface:#f2f4f0;--surface-2:#d3d9d0;--line:#a9b3a6;--text:#1c2321;--text-muted:#46524d;--action:#1b6577;--on-action:#fff;--signal:#8a5300;--danger:#b32d1e;--ok:#2d6e45;--focus:#1b6577;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#1d2420;--surface:#27302b;--surface-2:#323c36;--line:#3a4640;--text:#e9ede6;--text-muted:#a7b3aa;--action:#7cc4d6;--on-action:#10242a;--signal:#f5c04a;--danger:#ff8a7a;--ok:#8fd19e;--focus:#f5c04a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font:400 var(--t0)/1.55 var(--f-body);font-variant-numeric:tabular-nums lining-nums;flex-direction:column;min-height:100vh;margin:0;display:flex}main{width:100%;max-width:1200px;padding:var(--sp-4) var(--sp-4) var(--sp-7);flex:1;min-height:100vh;margin:0 auto}main:focus{outline:none}h1,h2,h3{font-family:var(--f-cond);margin:0 0 var(--sp-3);letter-spacing:.005em;font-weight:600;line-height:1.1}h1{font-size:var(--t6)}h2{font-size:var(--t4)}h3{font-size:var(--t2)}p{margin:0 0 var(--sp-3);max-width:70ch}a{color:var(--action);text-underline-offset:3px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.top nav .sm{display:none}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{left:var(--sp-2);background:var(--surface);padding:var(--sp-2) var(--sp-3);z-index:50;border-radius:6px;position:absolute;top:-60px}.skip:focus{top:var(--sp-2)}.top{align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);flex-wrap:wrap;width:100%;max-width:1200px;min-height:64px;margin:0 auto;display:flex}.top .brand{font-family:var(--f-cond);font-weight:600;font-size:var(--t2);color:var(--text);margin-right:auto;text-decoration:none}.top nav{gap:var(--sp-1);flex-wrap:wrap;display:flex}.top nav a{color:var(--text);border-radius:6px;align-items:center;min-height:44px;padding:10px 12px;font-weight:500;text-decoration:none;display:inline-flex}.top nav a:hover{background:var(--surface-2)}.top nav a[aria-current=page]{box-shadow:inset 0 -3px 0 var(--signal)}.foot{border-top:1px solid var(--line);padding:var(--sp-5) var(--sp-4);text-align:center;color:var(--text-muted);font-size:var(--t-1)}.foot p{margin:0 auto}.btn{font:500 var(--t0)/1 var(--f-body);min-height:44px;padding:0 var(--sp-4);border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;justify-content:center;align-items:center;gap:var(--sp-2);border-radius:6px;text-decoration:none;transition:background .2s,transform .2s,box-shadow .2s;display:inline-flex}.btn:hover{background:var(--surface-2);border-color:var(--text-muted)}.btn:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #00000040}.btn.primary{background:var(--action);color:var(--on-action);border-color:var(--action)}.btn.primary:hover{filter:brightness(1.1)}.btn.icon{width:44px;padding:0}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.row{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.muted{color:var(--text-muted)}.toasts{bottom:var(--sp-4);gap:var(--sp-2);z-index:60;flex-direction:column;width:min(92vw,420px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--text);color:var(--bg);padding:var(--sp-3) var(--sp-4);border-radius:8px;font-size:15px}.panel{background:var(--enamel) var(--crackle,none);color:var(--engr);padding:var(--sp-4);background-size:cover;border-radius:14px;position:relative;box-shadow:0 10px 24px #00000040}.panel:before,.panel:after{content:"";background:radial-gradient(circle at 35% 35%,#8a8f88,#2a2f2b);border:1px solid #101310;border-radius:50%;width:10px;height:10px;position:absolute;top:10px}.panel:before{left:10px}.panel:after{right:10px}.sc-wrap{padding:var(--sp-4) var(--sp-3)}.sc{width:100%;height:auto;display:block}.sc text{font-family:var(--f-cond);fill:var(--engr)}.sc-idle{stroke:var(--wire);stroke-width:.7px;fill:none;opacity:.8}.sc-idle.refl{stroke-width:1px}.sc-col{fill:#2a2a26;stroke:#4a5650;stroke-width:1px}.sc-contact{fill:#4a5650}.sc-contact.lit{fill:var(--fwd)}.sc-contact.lit.back{fill:var(--ret)}.sc-lbl{fill:#9aa59d;font-size:9px}.sc-lbl.lit{fill:var(--engr);font-weight:600}.sc-win{fill:var(--engr);font-size:22px;font-weight:600}.sc-name{fill:#9aa59d;font-size:12px}.sc-notch{fill:none;stroke:var(--fwd);stroke-width:2px;opacity:0}.sc-notch.on{opacity:1}.sc-fwd{fill:none;stroke:var(--fwd);stroke-width:3px;stroke-linejoin:round;stroke-linecap:round}.sc-ret{fill:none;stroke:var(--ret);stroke-width:3px;stroke-dasharray:6 4;stroke-linejoin:round;stroke-linecap:round}.sc-plug{stroke:var(--engr);stroke-width:1.4px;opacity:.9;fill:none}.sc-step{animation:.3s ease-out scstep}@keyframes scstep{0%{fill:var(--fwd)}to{fill:var(--engr)}}.kb{padding:var(--sp-4) var(--sp-3);gap:var(--sp-2);flex-direction:column;align-items:center;display:flex}.kb-row{gap:var(--sp-2);justify-content:center;display:flex}.kb-row.k{margin-left:calc(var(--k-off,0px))}.kb-lamp{background:var(--lamp-off);color:#b8b49f;width:34px;height:34px;font:600 18px/34px var(--f-cond);text-align:center;border:2px solid #101310;border-radius:50%;transition:background 60ms,color 60ms,box-shadow 60ms}.kb-lamp.on{background:var(--lamp-on);color:var(--lamp-ink);transition:background 60ms;box-shadow:0 0 14px 3px #ffd37a8c}.kb-lamp.off-fade{transition:background .22s,box-shadow .22s}.kb-key{background:var(--bakelite);width:34px;height:34px;color:var(--engr);font:600 18px/1 var(--f-cond);cursor:pointer;touch-action:manipulation;border:2px solid #6a766f;border-radius:50%;padding:0;transition:background .2s,box-shadow .2s,transform .2s;position:relative}.kb-key:after{content:"";position:absolute;inset:-5px}.kb-key:hover{border-color:var(--engr);background:#3a3a34}.kb-key:active,.kb-key.down{background:#1c1c19;transform:translateY(1px);box-shadow:inset 0 3px 6px #000000b3}.kb-key:focus-visible{outline:2px solid var(--fwd);outline-offset:3px}.kb-sep{width:80%;height:1px;margin:var(--sp-2) 0;background:#4a5650}.tp{background:var(--surface);border:1px solid var(--line);padding:var(--sp-4);border-radius:12px}.tp-rows{gap:var(--sp-2);max-height:180px;display:grid;overflow:auto}.tp-row{gap:var(--sp-3) var(--sp-4);flex-wrap:wrap;align-items:center;display:flex}.tp-row .lab{font-size:var(--t-1);color:var(--text-muted);width:64px}.tp-group{gap:2px;display:flex}.tp-cell{width:var(--cell);background:var(--surface-2);height:34px;font:600 20px/1 var(--f-cond);color:var(--text);border-radius:2px;place-items:center;display:grid}.tp-cell.cipher{background:var(--bakelite);color:var(--engr)}.tp-empty{color:var(--text-muted);margin:0}.tp-meta{justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.lp-hero{align-content:center;column-gap:var(--sp-6);padding-top:var(--sp-4);grid-template:"copy live""cta live"/minmax(0,5fr) minmax(0,8fr);row-gap:0;min-height:calc(100vh - 220px);display:grid}.lp-copy{grid-area:copy;align-self:end}.lp-live{grid-area:live;align-self:center}.lp-cta{margin-top:var(--sp-3);grid-area:cta;align-self:start}.sc{max-height:460px}.lp-hero h1{font-size:clamp(40px,5vw,64px)}.lp-lead{font-size:var(--t1);color:var(--text-muted)}.lp-hero .row{margin-top:var(--sp-4)}.lp-live{min-width:0}.lp-live .tp{margin-top:var(--sp-3)}.hw{margin-top:var(--sp-8);max-width:900px}.hw ul{padding-left:var(--sp-5)}.hw li{margin-bottom:var(--sp-2);max-width:70ch}.lp-live .kb-key,.lp-live .kb-sep{display:none}.lp-live .panel+.panel{margin-top:var(--sp-2)}.lp-live .kb{padding:var(--sp-2)}.mx-grid{gap:var(--sp-4);margin-top:var(--sp-4);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.mx-bar{gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.mx-msg{margin-top:var(--sp-4);background:var(--surface);border:1px solid var(--line);padding:var(--sp-4);border-radius:12px}.mx-msg textarea{width:100%;min-height:80px;font:400 var(--t0)/1.5 var(--f-body);background:var(--bg);color:var(--text);border:1px solid var(--line);padding:var(--sp-3);resize:vertical;border-radius:6px}.mx-sum{font-size:var(--t-1);color:var(--text-muted);margin:var(--sp-2) 0 0}.mx-notice{color:var(--signal);margin:var(--sp-2) 0 0;min-height:1.5em;font-size:15px}.coach{margin-top:var(--sp-3);background:var(--surface);border:2px solid var(--signal);padding:var(--sp-3) var(--sp-4);border-radius:12px;position:relative}.coach p{margin:0 0 var(--sp-2)}dialog.pb{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:12px;width:min(560px,100vw);max-height:92vh;margin:auto 0 auto auto;padding:0;overflow:auto}dialog.pb::backdrop{background:#00000073}.pb-in{padding:var(--sp-4)}.pb-head{margin-bottom:var(--sp-3);justify-content:space-between;align-items:center;display:flex}.pb-head h2{font-size:var(--t3);margin:0}.pb fieldset{border:1px solid var(--line);margin:0 0 var(--sp-3);padding:var(--sp-3);border-radius:8px}.pb legend{padding:0 var(--sp-2);font-weight:600}.pb-trio{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.pb label{font-size:var(--t-1);color:var(--text-muted);margin-bottom:2px;display:block}.pb select{width:100%;min-height:44px;font:500 var(--t0) var(--f-body);background:var(--bg);color:var(--text);border:1px solid var(--line);padding:0 var(--sp-2);border-radius:6px}.pb-wheel{align-items:center;gap:2px;display:flex}.pb-wheel .btn{width:36px;min-height:44px;padding:0}.pb-wheel input{text-align:center;width:100%;min-width:0;font:600 22px var(--f-cond);background:var(--bg);min-height:44px;color:var(--text);border:1px solid var(--line);text-transform:uppercase;border-radius:6px}.pb-sockets{grid-template-columns:repeat(13,minmax(0,1fr));gap:4px;display:grid}.pb-sock{min-width:0;min-height:44px;font:600 17px var(--f-cond);background:var(--bakelite);color:var(--engr);cursor:pointer;border:2px solid #6a766f;border-radius:6px;padding:0}.pb-sock.paired{background:var(--signal);color:var(--bg);border-color:var(--signal)}.pb-sock.pick{outline:3px solid var(--ret);outline-offset:1px}.pb-cables{gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.pb-err{color:var(--danger);min-height:1.5em;margin:var(--sp-2) 0 0;font-size:15px}.pb-note{color:var(--signal);margin:0 0 var(--sp-3);font-size:15px}dialog.kbd{border:1px solid var(--line);background:var(--surface);color:var(--text);padding:var(--sp-4);border-radius:12px;max-width:420px}dialog.kbd dl{gap:var(--sp-2) var(--sp-4);grid-template-columns:auto 1fr;display:grid}dialog.kbd dt{font-weight:600}dialog.kbd dd{margin:0}.fo-cap{background:var(--surface);border:1px solid var(--line);padding:var(--sp-4);margin-top:var(--sp-3);border-radius:12px}.fo-cap p{font-size:var(--t1);margin:0 0 var(--sp-3)}.fo-count{color:var(--text-muted);font-size:var(--t-1)}.fo-pick{margin-top:var(--sp-3);flex-wrap:wrap;gap:4px;display:flex}.fo-pick button{min-width:44px;min-height:44px;font:600 18px var(--f-cond);border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px}.fo-pick button[aria-pressed=true]{background:var(--action);color:var(--on-action)}@media (max-width:900px){.lp-hero{row-gap:var(--sp-3);grid-template-columns:1fr;grid-template-areas:"copy""live""cta";min-height:0}.lp-copy{align-self:auto}.lp-cta{margin-top:0}.mx-grid{grid-template-columns:minmax(0,1fr)}dialog.pb{border-radius:12px 12px 0 0;width:100vw;max-height:88vh;margin:auto 0 0}}@media (max-width:560px){:root{--cell:22px}main{padding:var(--sp-2) var(--sp-3) var(--sp-6)}.top{padding:var(--sp-2) var(--sp-3);gap:var(--sp-1);flex-wrap:nowrap;min-height:56px}.top .brand{font-size:18px}.top nav a{padding:10px 5px;font-size:14px}.top{padding-left:var(--sp-2);padding-right:var(--sp-2)}.top nav .lg{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.top nav .sm{display:inline}.lp-lead{display:none}.lp-hero h1{margin-bottom:var(--sp-2);font-size:34px}.kb-lamp,.kb-key{width:34px;height:34px;line-height:31px}.kb-row{gap:3px}.kb{padding:var(--sp-3) var(--sp-1)}.top nav a{justify-content:center;min-width:44px}.tp-cell{height:28px;font-size:17px}.pb-sockets{grid-template-columns:repeat(7,minmax(0,1fr))}.sc-wrap{padding:var(--sp-3) var(--sp-2)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.br-sec{margin-top:var(--sp-5);background:var(--surface);border:1px solid var(--line);padding:var(--sp-4);border-radius:12px}.br-h{font-size:var(--t2);margin:var(--sp-4) 0 var(--sp-2)}.br-sec .br-h:first-child{margin-top:0}.br-intel{padding-left:var(--sp-5);margin:0 0 var(--sp-3)}.br-lab{font-size:var(--t-1);color:var(--text-muted);margin-bottom:2px;display:block}.br-in,.br-ta{width:100%;max-width:520px;min-height:44px;font:600 20px var(--f-cond);letter-spacing:.04em;text-transform:uppercase;background:var(--bg);color:var(--text);border:1px solid var(--line);padding:var(--sp-2) var(--sp-3);border-radius:6px}.br-ta{max-width:none;margin-bottom:var(--sp-3);display:block}.br-rows{margin-top:var(--sp-3)}.br-scroll{padding-bottom:var(--sp-3);overflow-x:auto}.br-line{gap:2px;width:max-content;margin-top:4px;display:flex}.br-line .tp-cell{flex:none;width:30px}.br-crib{cursor:grab;touch-action:pan-y;outline-offset:3px;border-radius:4px}.br-crib .tp-cell{background:var(--signal);color:var(--bg)}.br-crib.bad .tp-cell{background:var(--danger);color:var(--bg)}.br-line .tp-cell.crash{outline:2px solid var(--danger);outline-offset:-2px}.br-strip{margin-top:var(--sp-2);gap:1px;height:10px;display:flex}.br-tick{background:var(--ok);opacity:.7;border-radius:1px;flex:1}.br-tick.bad{background:var(--danger);opacity:.8}.br-tick.cur{opacity:1;outline:2px solid var(--text);outline-offset:1px}.br-info{color:var(--text-muted);margin-top:var(--sp-2);font-size:15px}.br-menu{gap:var(--sp-4);grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:start;display:grid}.br-graph{background:var(--enamel);border-radius:12px;width:100%;height:auto}.br-edge{stroke:var(--wire);stroke-width:1.3px}.br-edge.loop{stroke:var(--fwd);stroke-width:2.2px}.br-elab{font:600 9px var(--f-cond);fill:var(--engr)}.br-node{fill:var(--bakelite);stroke:var(--wire)}.br-node.used{stroke:var(--engr)}.br-node.reg{fill:var(--signal);stroke:var(--signal)}.br-nlab{font:600 11px var(--f-cond);fill:var(--engr)}.br-node.reg+.br-nlab{fill:#1c2321}.br-prog{margin-top:var(--sp-3)}.br-prog progress{width:100%;height:12px;accent-color:var(--action)}.br-stats{color:var(--text-muted);margin:var(--sp-1) 0 0;font-size:15px}.br-drums{gap:var(--sp-2);margin-top:var(--sp-3);flex-direction:column;min-height:0;display:flex}.br-drumrow{gap:var(--sp-2);align-items:center;display:flex}.br-dlab{width:110px;font-size:var(--t-1);color:var(--text-muted)}.br-drum{width:34px;height:44px;font:600 24px var(--f-cond);color:#1c2321;border-radius:8px;place-items:center;display:grid}.br-drum.b1{background:var(--bomb-1)}.br-drum.b2{background:var(--bomb-2)}.br-drum.b3{background:var(--bomb-3)}.br-count{font-variant-numeric:tabular-nums}.br-out{margin-top:var(--sp-3);gap:var(--sp-3);display:grid}.br-stop{border:2px solid var(--line);padding:var(--sp-3) var(--sp-4);border-radius:12px}.br-stop.good{border-color:var(--ok)}.br-stop.bad{border-color:var(--danger)}.br-stop p{margin:0 0 var(--sp-2)}.br-stophead{font-weight:600}.br-read{font:600 var(--t1)/1.4 var(--f-cond);letter-spacing:.03em;min-height:1.4em}.br-solved{color:var(--ok);font-weight:600}.ix-list{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));padding:0;list-style:none;display:grid}.ix-card{background:var(--surface);border:1px solid var(--line);padding:var(--sp-4);border-radius:12px}.ix-card h2{font-size:var(--t2)}.ix-card.solved{border-color:var(--ok)}.ix-card.locked{border-style:dashed}@media (max-width:700px){.br-menu{grid-template-columns:1fr}.br-line .tp-cell{width:24px}.br-dlab{width:84px}}.lp-strip{gap:var(--sp-5);margin-top:var(--sp-7);padding:var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:12px;grid-template-columns:auto 1fr;align-items:center;display:grid}.lp-strip .br-drumrow{flex-direction:column;align-items:flex-start}.lp-strip h2{font-size:var(--t3)}@media (max-width:700px){.lp-strip{grid-template-columns:1fr}}.dl-streak{font:600 var(--t1) var(--f-cond);margin:0 0 var(--sp-3)}.dl-archive{gap:var(--sp-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.dl-archive .btn{min-height:44px}.mx-msg select{min-height:44px;font:500 var(--t0) var(--f-body);background:var(--bg);color:var(--text);border:1px solid var(--line);padding:0 var(--sp-2);max-width:100%;margin:var(--sp-1) 0 var(--sp-3);border-radius:6px;display:block}.mx-msg .br-in{margin-bottom:var(--sp-3);text-transform:none;font:500 var(--t0) var(--f-body);letter-spacing:0}
