:root{--bg:#16130f;--panel:#1f1b16;--card:#29241d;--line:#3d362c;--ink:#efe6d4;--ink-read:#ddd2bd;--read-weight:430;--muted:#a89c86;--brass:#d6a94a;--brass-dim:#8a6d2f;--lamp:#ffd66b;--lamp-glow:#ffc8508c;--good:#7fc47a;--bad:#e0705f;--jev:#7fb2ff;--jev-dim:#7fb2ff2e;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--sans:"IBM Plex Sans",system-ui,sans-serif}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f3eee3;--panel:#ebe4d5;--card:#fbf8f1;--line:#d8cdb8;--ink:#2a241b;--ink-read:#2a241b;--read-weight:400;--muted:#75694f;--brass:#9a6f14;--brass-dim:#c9a65a;--lamp:#c98a00;--lamp-glow:#e6a01459;--good:#2f8a2a;--bad:#b2412f;--jev:#2f64c8;--jev-dim:#2f64c81f}}:root{--s-jev:#3987e5;--s-ngram:#d95926;--s-base:#199e70;--s-4:#c98500}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--s-jev:#2a78d6;--s-ngram:#eb6834;--s-base:#1baf7a;--s-4:#eda100}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);margin:0;font-size:15px}.mono{font-family:var(--mono)}.fine{color:var(--muted);font-size:12.5px;line-height:1.45}small{color:var(--muted);font-weight:400}.top{display:flex;justify-content:space-between;align-items: flex-start;gap:16px;max-width:1480px;margin:0 auto;padding:22px 28px 8px}h1{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:22px;font-weight:600}h1 .x{color:var(--brass)}.lede{color:var(--muted);max-width:760px;margin:6px 0 0}.pill{font-family:var(--mono);border:1px solid var(--line);white-space:nowrap;border-radius:99px;padding:5px 12px;font-size:12px}.pill.on{border-color:var(--jev);color:var(--jev)}main{display:grid;grid-template-columns:minmax(0,1fr)minmax(0,1.15fr);gap:20px;max-width:1480px;margin:0 auto;padding:12px 28px 28px}@media (max-width:1100px){main{grid-template-columns:1fr;padding:12px 16px}.top{padding:18px 16px 6px}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;min-width:0;padding:16px}h2{display:flex;align-items: center;gap:10px;margin:0 0 12px;font-size:16px;font-weight:600}h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:flex;justify-content:space-between;align-items: center;margin:0 0 10px;font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;min-width:0;padding:14px}select,input,textarea,button{font:inherit;color:var(--ink)}select,input,textarea{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:6px 8px}textarea{resize:vertical;width:100%;line-height:1.5}input:focus,select:focus,textarea:focus{outline:2px solid var(--brass-dim);outline-offset:0}.cipher{color:var(--brass)}h1 a.home{color:inherit;text-decoration:none}.topright{display:flex;align-items: center;gap:12px}.annexlink{font-family:var(--mono);color:var(--brass);text-decoration:none;font-size:12px}.annexlink:hover{text-decoration:underline}.pagenav{gap:4px}.pagenav .annexlink{border:1px solid #0000;border-radius:99px;padding:5px 10px}.pagenav .annexlink.here{border-color:var(--line);color:var(--ink);background:var(--card);text-decoration:none}.topright .annexlink+.annexlink{margin-left:2px}.timeline{list-style:none;display:grid;gap:12px;margin:0;padding:0}.stage{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--brass-dim);animation:rise .3s ease-out;border-radius:10px;min-width:0;padding:12px 14px}.stage.jev{border-left-color:var(--jev)}.stage.win-stage{border-left-color:var(--good)}.stage.fail{border-left-color:var(--bad)}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.stage h4{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 8px;font-size:13.5px}.stage h4 .tag{font-family:var(--mono);color:var(--muted);font-size:11px;font-weight:400}.stage h4 .tag.jev{color:var(--jev)}.groups{font-family:var(--mono);letter-spacing:.08em;word-spacing:.3em;word-break:break-word;font-size:13.5px;line-height:1.7}.drag{display:grid;font-family:var(--mono);overflow-x:auto;gap:3px;font-size:12.5px}.drag .row{display:flex;white-space:nowrap;align-items: center;gap:10px}.drag .row .letters span{display:inline-block;text-align:center;width:1.05em}.drag .row .letters .clash{color:#1b0f0b;background:var(--bad);border-radius:3px}.drag .row.out{opacity:.45}.drag .ctline{color:var(--brass)}.drag .badge{color:var(--muted);font-size:11px}.bars{display:grid;gap:5px}.bar{display:grid;grid-template-columns:minmax(120px,230px)1fr 44px;align-items: center;gap:8px;font-size:12.5px}.bar .name{font-family:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar .track{background:var(--bg);overflow:hidden;border-radius:99px;height:10px}.bar .fill{background:var(--jev);border-radius:99px;width:0;height:100%;transition:width .6s ease-out}.bar .val{font-family:var(--mono);text-align:right;color:var(--muted)}.bar.picked .name{color:var(--jev);font-weight:600}.bombe{display:grid;grid-template-columns:220px 1fr;align-items: start;gap:14px}@media (max-width:600px){.bombe{grid-template-columns:1fr}}.menu svg{display:block;width:100%;height:auto}.menu text{font-family:var(--mono);fill:var(--ink);font-size:11px}.menu .edge{stroke:var(--muted);stroke-width:1.2}.menu .edge.loop{stroke:var(--brass);stroke-width:2}.menu .node{fill:var(--bg);stroke:var(--line)}.menu .node.crib{stroke:var(--brass)}.drums{display:flex;gap:8px;margin-bottom:8px}.drum{display:grid;font-family:var(--mono);color:#f3e6c8;background:linear-gradient(90deg,#3a2f22,#6b5a40 50%,#3a2f22);border:1px solid #0006;border-radius:50%/18%;place-items: center;width:44px;height:50px;font-size:18px;font-weight:600}.bombeInfo{font-family:var(--mono);font-size:12.5px;line-height:1.6}.progress{background:var(--bg);overflow:hidden;border-radius:99px;height:6px;margin:6px 0}.progress div{background:var(--brass);width:0;height:100%;transition:width .15s linear}.found{color:var(--good)}.missed{color:var(--bad)}.plugboard{display:grid;grid-template-columns:repeat(13,1fr);gap:4px;margin:8px 0}.socket{font-family:var(--mono);text-align:center;border:1px solid var(--line);background:var(--bg);color:var(--muted);border-radius:6px;padding:3px 0;transition:all .2s;font-size:12px}.socket b{display:block;color:var(--brass);min-height:13px;font-size:10.5px}.socket.on{border-color:var(--brass);color:var(--ink)}.socket.locked{border-color:var(--good)}.socket.locked b{color:var(--good)}.resolve{font-family:var(--mono);letter-spacing:.06em;word-spacing:.3em;word-break:break-word;font-size:13.5px;line-height:1.7}.resolve .chg{color:var(--lamp)}.cands{display:grid;gap:8px}.cand{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:8px 10px}.cand.pick{border-color:var(--jev);box-shadow:0 0 0 1px var(--jev)inset}.cand .ctext{font-family:var(--mono);word-break:break-all;margin:4px 0;font-size:12px}.cand .meta{display:flex;color:var(--muted);flex-wrap:wrap;align-items: center;gap:12px;font-size:12px}.pbar{display:inline-block;background:var(--card);overflow:hidden;vertical-align:middle;border-radius:99px;width:90px;height:7px}.pbar i{display:block;background:var(--jev);width:0;height:100%;transition:width .6s}.verdict{margin-top:8px;font-weight:600}table.keycmp{border-collapse:collapse;width:100%;margin:6px 0 10px;font-size:13px}.keycmp th,.keycmp td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:5px 6px}.keycmp th{color:var(--muted);font-size:12px;font-weight:500}.keycmp td.mono{letter-spacing:.04em}.ok{color:var(--good)}.no{color:var(--bad)}.eq{color:var(--brass)}.final{font-family:var(--mono);letter-spacing:.06em;word-break:break-word;font-size:15px;line-height:1.7}.reading{color:var(--muted);margin-top:6px;font-size:14px;font-style:italic}footer{max-width:1480px;margin:0 auto;padding:0 28px 28px}.em-scene{--rx:-22deg;--ry:-24deg;--cy:40px;--cs:.86;--lid-a:0deg;--flap-a:0deg;position:relative;height:calc(730px*var(--fit,1));perspective:2200px;perspective-origin:50% 30%;user-select:none;-webkit-user-select:none;touch-action:manipulation}.em-scene.is-open{--lid-a:101deg}.em-scene.flap-open{--flap-a:-97deg}.em-scene[data-camera=hero]{--rx:-17deg;--ry:-32deg;--cy:-40px;--cs:.86}.em-scene[data-camera=closed]{--rx:-20deg;--ry:-28deg;--cy:20px;--cs:.84}.em-scene[data-camera=overview]{--rx:-34deg;--ry:-16deg;--cy:150px;--cs:.62}.em-scene[data-camera=deck]{--rx:-54deg;--ry:0deg;--cy:10px;--cs:1.15}.em-scene[data-camera=plugboard]{--rx:-12deg;--ry:0deg;--cy:-135px;--cs:1}.em-scene[data-camera=bombe]{--rx:-44deg;--ry:16deg;--cy:100px;--cs:1.05}.em-rig{position:absolute;transform-style:preserve-3d;transform:scale(var(--fit,1))translateY(var(--cy))scale(var(--cs))rotateX(calc(var(--rx) + var(--py,0)*1deg))rotateY(calc(var(--ry) + var(--px,0)*1deg));width:0;height:0;transition:transform 1.25s cubic-bezier(.22,.9,.24,1);top:50%;left:50%}.em-box,.em-lidbox,.em-flap,.em-key,.em-cyl,.em-post,.em-wheel{position:absolute;transform-style:preserve-3d;top:0;left:0}.em-f{position:absolute;backface-visibility:hidden;box-sizing:border-box}.em-deck,.em-terrace{transform-style:preserve-3d}.em-deck>*,.em-terrace>*{position:absolute;top:0;left:0}.em-wood{background:linear-gradient(90deg,#3c1e0847,#ffebbe12 30%,#3c1e081a 60%,#3c1e084d),repeating-linear-gradient(1.2deg,#5a321200 0 5px,#5a321233 5px 6px,#5a321200 6px 13px,#78461c29 13px 15px),repeating-linear-gradient(-.8deg,#c08448 0 19px,#b5783f 19px 31px,#c68d52 31px 44px,#ae723a 44px 57px);box-shadow:inset 0 0 0 1px #28140573,inset 0 0 14px #28140540}.em-side{filter:brightness(.78)}.em-under{filter:brightness(.4)}.em-rim{filter:brightness(1.12)}.em-inner{filter:brightness(.55)}.em-ledge{filter:brightness(.7)}.em-shadow{position:absolute;pointer-events:none;background:radial-gradient(closest-side,#0009,#00000047 50%,#0000);width:1100px;height:900px;top:-450px;left:-550px;transform:translateY(119px)rotateX(90deg)}.em-rail .em-hinge{position:absolute;background:linear-gradient(#e2e0da,#8f8c84);border-radius:0 0 3px 3px;height:7px;top:0;left:24px;right:24px;box-shadow:0 1px 2px #00000080}.em-metal{background:radial-gradient(circle at 30% 40%,#ffffff12 0 .6px,#0000 1.2px) 0 0/4px 4px,radial-gradient(circle at 70% 70%,#00000080 0 .7px,#0000 1.3px) 0 0/5px 5px,radial-gradient(120% 90% at 50% 10%,#2b2a27,#141312 75%);box-shadow:inset 0 0 0 1px #070707,inset 0 10px 20px #00000059}.em-riser{background:linear-gradient(#0b0b0a,#1f1e1b)}.em-cover{background:linear-gradient(#232220,#151412);border-radius:10px;width:392px;height:118px;box-shadow:inset 0 1px #ffffff14,0 0 0 1px #050505,0 6px 14px #00000073}.em-slot{background:#030303;border-radius:5px;width:30px;height:70px;box-shadow:inset 0 3px 8px #000,0 0 0 2px #2c2a26}.em-wheel{width:0;height:0;transition:transform .2s cubic-bezier(.2,.8,.3,1)}.em-facet{position:absolute;backface-visibility:hidden;background:linear-gradient(90deg,#0d0c0b,#4d473d 45%,#6d6557 55%,#1a1816);width:22px;left:-11px;box-shadow:inset 0 1px #ffffff1f}.em-facet.alt{background:linear-gradient(90deg,#070707,#2c2823 45%,#3d372f 55%,#0e0d0c)}.spinning .em-wheel{transition-duration:80ms}.em-win{display:grid;overflow:hidden;cursor:default;background:linear-gradient(#b9b2a0,#f5efdf 30% 70%,#b9b2a0);border:3px solid #9d9a92;border-radius:6px;place-items: center;width:38px;height:44px;padding:0;box-shadow:inset 0 6px 8px #00000059,inset 0 -6px 8px #00000059,0 0 0 2px #050505}.em-win span{color:#15130f;display:block;font:700 24px IBM Plex Mono,monospace}.em-win span.roll{animation:em-roll .16s ease-out}@keyframes em-roll{0%{transform:translateY(-70%);opacity:.15}to{transform:none;opacity:1}}.em-rlabel{text-align:center;color:#d7cfbd;letter-spacing:.08em;width:38px;font:600 11px IBM Plex Mono,monospace}.rotors-live .em-win,.rotors-live .em-wheel{cursor:ns-resize}.rotors-live .em-win:hover{border-color:#e2c26f}.rotors-live .em-wheel:hover .em-facet{filter:brightness(1.35)}.spinning .em-win span{filter:blur(.4px)}.em-ukw{display:grid;color:#1a1917;background:linear-gradient(#e0ddd4,#8d8a82);border-radius:5px;place-items: center;width:40px;padding:6px 0;font:600 10px IBM Plex Mono,monospace;box-shadow:0 2px 4px #0009}.em-ukw b{font-size:18px}.em-dial{color:#cfc7b3;background:radial-gradient(circle,#1b1a18 55%,#2e2c28 56%,#1b1a18 70%);border-radius:50%;width:74px;height:74px;font:600 9px IBM Plex Mono,monospace;box-shadow:0 0 0 1px #050505}.em-dial i{position:absolute;background:linear-gradient(90deg,#0a0a09,#3b3833,#0a0a09);border-radius:8px;width:16px;height:40px;margin:-20px 0 0 -8px;top:50%;left:50%;transform:rotate(-35deg);box-shadow:0 4px 6px #0009}.em-dial span{position:absolute}.em-dial .a{top:14px;left:10px}.em-dial .b{top:14px;right:10px}.em-dial .c{bottom:12px;left:10px}.em-dial .d{bottom:12px;right:10px}.em-clip{background:linear-gradient(#dcd9d1,#7e7b74);border-radius:7px;width:34px;height:14px;box-shadow:0 2px 3px #0009}.em-cyl{width:0;height:0}.em-disc{position:absolute;backface-visibility:hidden;background:#4a4843;border-radius:50%}.em-knob .em-disc{background:radial-gradient(circle at 40% 35%,#d9d6cf,#6f6c66)}.em-bolt .em-disc{background:radial-gradient(circle at 40% 35%,#f0ede6,#8d8a83 70%);box-shadow:0 0 0 1px #00000059}.em-bolt .em-disc.cap{background:radial-gradient(circle at 40% 35%,#fff,#b8b4ab 60%,#6f6c66)}.em-lamp{display:grid;color:#7c7466;background:radial-gradient(circle at 42% 34%,#ffffff1f,#0000 40%),radial-gradient(circle,#24221f,#0f0e0d 70%);border-radius:50%;place-items: center;width:40px;height:40px;transition:background 60ms,box-shadow 60ms,color 60ms;font:700 15px IBM Plex Sans,sans-serif;box-shadow:0 0 0 3px #0a0a09,0 0 0 4px #34322d,inset 0 2px 6px #000c}.em-lamp.lit{color:#3a2500;background:radial-gradient(circle at 45% 40%,#fffbe8,#ffd76a 45%,#e8a21a 78%);transition:none;box-shadow:0 0 0 3px #0a0a09,0 0 0 4px #7a6230,0 0 22px 8px #ffc440b8,0 0 70px 20px #ffaa284d}.em-key{cursor:default;background:0 0;border:0;width:0;height:0;padding:0;transition:transform 70ms ease-out}.em-key.down{--lift:-13px}.em-post-s{position:absolute;backface-visibility:visible;background:linear-gradient(90deg,#5d5b56,#d8d6d0 45%,#7a7872)}.em-cap .em-disc{background:linear-gradient(135deg,#e5e3dd,#77746d);box-shadow:0 0 0 1px #0006}.em-cap .em-disc:first-child{background:#1c1b19;box-shadow:0 8px 10px #0000008c}.em-cap .em-disc.cap{display:grid;background:radial-gradient(circle,#f7f3e8 0 58%,#cfcbc2 60%,#fafaf7 66%,#8f8c85 88%,#5f5c56);place-items: center;box-shadow:inset 0 2px 3px #ffffffb3,inset 0 -3px 5px #00000040}.em-cap .em-disc.cap span{color:#121110;font:700 16px IBM Plex Sans,sans-serif}.keys-live .em-key{cursor:pointer}.keys-live .em-key:hover .em-disc.cap{box-shadow:inset 0 2px 3px #ffffffb3,0 0 0 2px #d8b765,0 0 16px #e6b44673}.em-key:focus-visible{outline:none}.em-key:focus-visible .em-disc.cap{box-shadow:0 0 0 3px #d6a94a}.em-plugpanel{overflow:visible}.em-plugboard{position:absolute;display:grid;gap:1px;top:10px;left:30px;right:30px}.em-prow{display:flex;justify-content:center;gap:13px}.em-socket{display:flex;color:#e2dac6;cursor:default;background:0 0;border:0;flex-direction:column;align-items: center;gap:2px;width:52px;padding:0;font:600 10px IBM Plex Mono,monospace}.em-socket i{font-style:normal}.em-socket .holes{display:flex;background:radial-gradient(circle at 50% 30%,#3b3935,#151412);border-radius:9px;gap:7px;padding:5px 7px;box-shadow:0 0 0 1px #050505,inset 0 1px #ffffff1f,0 3px 4px #0009}.em-socket .holes b{background:radial-gradient(#000 45%,#4a463e);border-radius:50%;width:10px;height:10px}.em-socket.plugged .holes{background:radial-gradient(circle at 50% 30%,#5a4a33,#221a10)}.em-socket.pending .holes{box-shadow:0 0 0 2px #ffd76a,0 0 16px #ffc850a6}.sockets-live .em-socket{cursor:pointer}.sockets-live .em-socket:hover .holes{box-shadow:0 0 0 2px #cfae62,0 3px 4px #0009}.em-cables{position:absolute;overflow:visible;pointer-events:none;width:100%;height:100%;inset:0}.em-cables .cable{fill:none;stroke:#1c1814;stroke-width:6;stroke-linecap:round}.em-cables .cable-shadow{fill:none;stroke:#00000080;stroke-width:9;stroke-linecap:round;transform:translateY(4px)}.em-cables .plug{fill:url(#emPlug);stroke:#0a0806;stroke-width:1.5}.em-frontplate{position:absolute;letter-spacing:.22em;text-transform:uppercase;color:#8a816e;font:600 9px IBM Plex Mono,monospace;bottom:7px;right:16px}.em-serial{position:absolute;letter-spacing:.15em;color:#2a2823;background:linear-gradient(#e9e6de,#a5a29a);border-radius:0 0 3px 3px;padding:1px 10px;font:600 8px IBM Plex Mono,monospace;top:-1px;left:50%;transform:translate(-50%)}.em-flap{cursor:pointer;transition:transform .95s cubic-bezier(.34,.1,.2,1)}.is-open .em-flap{cursor:default}.em-flap-in{filter:brightness(.9);display:grid;place-items: center}.em-flap-in span{letter-spacing:.14em;text-transform:uppercase;color:#3c1e088c;font:600 10px IBM Plex Mono,monospace;transform:rotate(180deg)}.em-caselock{position:absolute;background:linear-gradient(#ecebe6,#9b988f);border-radius:4px;width:46px;height:32px;margin-left:-23px;top:34px;left:50%;box-shadow:0 2px 3px #00000080}.em-caselock:after{content:"";position:absolute;background:#1c1b19;border-radius:3px;width:6px;height:12px;margin-left:-3px;top:9px;left:50%}.em-flaplatch{position:absolute;background:linear-gradient(90deg,#cfccc4,#8a877f);border-radius:3px;width:12px;height:34px;top:60px}.em-flaplatch.l{left:8px}.em-flaplatch.r{right:8px}.em-lidbox{cursor:pointer;transition:transform 1.2s cubic-bezier(.35,.1,.2,1)}.is-open .em-lidbox{cursor:default}.em-scene:not(.is-open) .em-lidbox:hover .em-lid-top{filter:brightness(1.07)}.em-lid-top{display:grid;place-items: center}.em-lid-plate{letter-spacing:.3em;color:#2b2a26;opacity:.92;background:linear-gradient(135deg,#f1f0eb,#9d9a92 50%,#e3e1da);border-radius:40px/18px;padding:8px 22px;font:700 20px IBM Plex Mono,monospace;box-shadow:0 2px 3px #28140580,inset 0 1px #fff}.em-lid-lip{filter:brightness(.82)}.em-lid-lipin{filter:brightness(.62)}.em-hasp{position:absolute;background:linear-gradient(#ecebe6,#8f8c84);border-radius:3px;width:40px;height:22px;margin-left:-20px;bottom:4px;left:50%;box-shadow:0 2px 3px #00000080}.em-lid-under{filter:none}.em-lid-under:before{content:"";position:absolute;pointer-events:none;inset:0;box-shadow:inset 0 0 0 16px #78461c59,inset 0 0 60px #28140573}.em-bulbs{position:absolute;display:flex;background:linear-gradient(#d9d6ce,#8e8b83);border-radius:6px;justify-content:space-between;align-items: center;height:34px;padding:0 18px;top:20px;left:90px;right:90px;box-shadow:0 2px 4px #00000073}.em-bulbs i{background:radial-gradient(circle at 40% 35%,#fff,#bdb8ac 55%,#6f6b63);border-radius:50%;width:20px;height:20px;box-shadow:0 1px 2px #0009}.em-filter{position:absolute;display:grid;background:linear-gradient(135deg,#1f6d3f,#145430 60%,#1d6a3c);border-radius:4px;place-items: center;height:92px;top:70px;left:150px;right:150px;box-shadow:0 2px 5px #00000073,inset 0 0 0 2px #ffffff14}.em-filter span{color:#bfe5c9;opacity:.8;border:1px solid #bfe5c9;padding:1px 6px;font:600 10px IBM Plex Mono,monospace;transform:rotate(-4deg)}.em-sheet{position:absolute;color:#1b1a17;text-align:center;background:#f7f3e8;height:196px;padding:10px 14px;font-family:IBM Plex Sans,sans-serif;top:176px;left:170px;right:170px;box-shadow:0 3px 8px #00000073}.em-sheet b{display:block;font-size:15px}.em-sheet small{display:block;color:#3b3934;margin:2px 0 6px;font-size:7.5px}.em-sheet p{opacity:.55;background:repeating-linear-gradient(#f7f3e8 0 5px,#9d9990 5px 6px);height:118px;margin:0}.em-sheet em{display:block;letter-spacing:.15em;margin-top:6px;font:7px IBM Plex Mono,monospace}.em-spare{position:absolute;overflow:visible;width:calc(100% - 80px);height:70px;top:392px;left:40px;right:40px}.em-spare path{fill:none;stroke:#1a1714;stroke-width:5;stroke-linecap:round}.em-holder{position:absolute;background:linear-gradient(#2a2622,#0b0a09);border-radius:4px;width:30px;height:24px;box-shadow:0 2px 3px #00000080}.em-holder.l1{top:396px;left:60px}.em-holder.l2{top:432px;left:60px}.em-holder.r1{top:396px;right:60px}.em-holder.r2{top:432px;right:60px}@media (prefers-reduced-motion:reduce){.em-rig,.em-lidbox,.em-flap,.em-wheel{transition-duration:10ms}.em-win span.roll{animation:none}}.app-body{background:radial-gradient(1200px 700px at 38% 38%,#2a241c,var(--bg)70%);min-height:100vh}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .app-body{background:radial-gradient(1200px 700px at 38% 38%,#fffaf0,var(--bg)70%)}}.app-top{position:sticky;z-index:30;display:grid;grid-template-columns:auto 1fr auto;background:color-mix(in oklab,var(--bg)78%,transparent);backdrop-filter:saturate(1.4)blur(14px);-webkit-backdrop-filter:saturate(1.4)blur(14px);border-bottom:1px solid color-mix(in oklab,var(--line)70%,transparent);align-items: center;gap:18px;padding:12px 24px;top:0}.brand{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);text-decoration:none;white-space:nowrap;font-size:15px;font-weight:600}.brand .x{color:var(--brass)}.app-right{display:flex;align-items: center;gap:10px}.iconbtn{border:1px solid var(--line);background:var(--card);color:var(--muted);cursor:pointer;border-radius:50%;width:30px;height:30px;font-size:13px}.iconbtn[aria-pressed=true]{color:var(--brass)}.steps ol{display:flex;list-style:none;font-family:var(--sans);justify-content:center;gap:4px;margin:0;padding:0;font-size:13px}.steps li button{display:inline-flex;color:var(--muted);cursor:default;font:inherit;background:0 0;border:0;border-radius:99px;align-items: center;gap:7px;padding:6px 10px}.steps li button .n{display:inline-grid;border:1px solid var(--line);font-size:11px;font-family:var(--mono);border-radius:50%;place-items: center;width:20px;height:20px}.steps li.done button{color:var(--ink);cursor:pointer}.steps li.done button .n{background:color-mix(in oklab,var(--brass)25%,transparent);border-color:var(--brass-dim);color:var(--brass)}.steps li.now button{color:var(--ink);background:var(--card);box-shadow:0 0 0 1px var(--line)}.steps li.now button .n{background:var(--brass);color:#1b160e;border-color:var(--brass)}.steps li.done button:hover{background:var(--card)}@media (max-width:1100px){.steps li button .t,.pagenav{display:none}}@media (max-width:640px){.app-top{grid-template-columns:1fr auto;padding:10px 14px}.steps{grid-column:1/-1;grid-row:2}}.app{display:grid;grid-template-columns:minmax(0,1fr)420px;align-items: start;gap:24px;max-width:1560px;margin:0 auto;padding:8px 24px 32px}@media (max-width:1100px){.app{grid-template-columns:1fr;padding:8px 14px 24px}}.stagearea{position:relative;overflow-x:clip;overflow-y:visible;min-width:0}.app-body{overflow-x:clip}.machine-host{position:relative;overflow:visible}.hint{position:relative;z-index:2;text-align:center;font-family:var(--sans);color:var(--muted);min-height:20px;margin:0 auto 10px;font-size:14px}.hint kbd{font-family:var(--mono);border:1px solid var(--line);background:var(--card);color:var(--ink);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:12px}.tape{position:relative;z-index:2;display:block;color:#2b2418;-webkit-mask-image:linear-gradient(90deg,#0000,#000 24px calc(100% - 24px),#0000);mask-image:linear-gradient(90deg,#0000,#000 24px calc(100% - 24px),#0000);background:linear-gradient(#f4ecd8,#eadfc4);border-radius:6px;max-width:820px;margin:0 auto;padding:10px 14px;box-shadow:0 10px 30px #00000059,inset 0 1px #fff9}.tape-row{display:grid;grid-template-columns:64px 1fr;align-items: center;gap:10px}.tape-row+.tape-row{border-top:1px dashed #3c2d1440;margin-top:6px;padding-top:6px}.tape-l{font:600 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#8a7a55}.tape-t{font:500 17px var(--mono);letter-spacing:.12em;word-spacing:.4em;white-space:nowrap;overflow-x:auto;scrollbar-width:none;direction:rtl;text-align:left;min-height:26px}.tape-t::-webkit-scrollbar{display:none}.tape-t span{direction:ltr;unicode-bidi:isolate}.tape-row.lamps .tape-t{color:#7a4a00}.tape-t:empty:before{content:"—";color:#b5a67f}.inspector{position:sticky;overflow:auto;background:color-mix(in oklab,var(--card)88%,transparent);backdrop-filter:blur(10px);border:1px solid var(--line);font-family:var(--sans);border-radius:18px;max-height:calc(100vh - 96px);padding:22px 22px 0;top:76px;box-shadow:0 24px 60px #00000059}@media (max-width:1100px){.inspector{position:static;max-height:none}}.ip-k{font:600 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin:0 0 6px}.ip-h{color:var(--ink);margin:0 0 8px;font-family:"Source Serif 4",Georgia,serif;font-size:28px;font-weight:600;line-height:1.15}.ip-p{color:var(--muted);margin:0 0 18px;font-size:14.5px;line-height:1.55}.ip-sec{margin:0 0 18px}.ip-label{display:flex;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:12px;font-weight:600}.ip-label small{text-transform:none;letter-spacing:0;font-weight:400}.ip-foot{position:sticky;background:linear-gradient(transparent,color-mix(in oklab,var(--card)96%,transparent)30%);display:flex;flex-wrap:wrap;align-items: center;gap:10px;margin:8px -22px 0;padding:14px 22px 18px;bottom:0}.btn{font:600 15px var(--sans);cursor:pointer;border:0;border-radius:12px;padding:12px 18px;transition:transform .1s,filter .15s,opacity .15s}.btn:active{transform:scale(.98)}.btn.primary{background:var(--brass);color:#1b160e;flex:1}.btn.primary:hover{filter:brightness(1.06)}.btn.quiet{background:var(--bg);color:var(--ink);border:1px solid var(--line)}.btn:disabled{opacity:.4;cursor:default;transform:none}.linkbtn{color:var(--brass);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.sheet{color:#2b2418;position:relative;background:linear-gradient(#f6efdc,#efe4c8);border-radius:10px;margin-bottom:16px;padding:14px 16px 12px;box-shadow:0 8px 22px #0000004d,inset 0 1px #ffffffb3}.sheet:after{content:"";position:absolute;background:radial-gradient(circle at 5px -1px,#0000 5px,#f6efdc 5.5px) 0 0/12px 8px repeat-x;height:8px;top:-6px;left:0;right:0}.sheet-h{display:flex;font:600 10.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#8a7a55;justify-content:space-between;margin-bottom:10px}.sheet-row{display:grid;grid-template-columns:108px 1fr;border-top:1px solid #3c2d1424;align-items: center;gap:8px;padding:7px 0}.sheet-row>span{font:600 11px var(--mono);letter-spacing:.06em;color:#6f6143}.sheet-row>span small{display:block;letter-spacing:0;color:#9a8a64;font-weight:400;font-family:var(--sans);font-size:10.5px}.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.stepper{display:grid;grid-template-columns:22px 1fr 22px;overflow:hidden;background:#ffffff8c;border:1px solid #3c2d1433;border-radius:8px;align-items: center}.stepper button{color:#6f6143;font:600 14px var(--mono);cursor:pointer;background:0 0;border:0;height:30px}.stepper button:hover{background:#3c2d1414}.stepper output{text-align:center;font:600 16px var(--mono);color:#1f1a12}.rotorpick{appearance:none;-webkit-appearance:none;color:#1f1a12;font:600 15px var(--mono);text-align:center;text-align-last:center;cursor:pointer;background:#ffffff8c;border:1px solid #3c2d1433;border-radius:8px;width:100%;height:32px}.pairs{display:flex;flex-wrap:wrap;gap:5px}.pair{display:inline-flex;font:600 12.5px var(--mono);color:#f2e6c7;background:#2b2418;border-radius:6px;align-items: center;gap:4px;padding:3px 4px 3px 7px}.pair button{color:#bba878;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:12px}.pair.pending{color:#1b1306;background:#c98a00}.seg{display:inline-flex;border:1px solid var(--line);overflow:hidden;background:var(--bg);border-radius:10px}.seg button{font:500 13px var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:0;padding:7px 12px}.seg button.on{background:var(--brass);color:#1b160e}.row{display:flex;flex-wrap:wrap;align-items: center;gap:10px}.console{resize:vertical;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:12px;width:100%;min-height:110px;padding:12px 14px;font:15px/1.55 "Source Serif 4",Georgia,serif}.console:focus{outline:2px solid var(--brass-dim)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font:500 11.5px var(--mono);border:1px solid var(--line);background:var(--bg);cursor:pointer;color:var(--ink);border-radius:99px;padding:4px 10px}.chip:hover{border-color:var(--brass);color:var(--brass)}.toggle{display:inline-flex;color:var(--ink);cursor:pointer;align-items: center;gap:8px;font-size:13px}.toggle input{accent-color:var(--brass);width:16px;height:16px}.speed{display:inline-flex;color:var(--muted);align-items: center;gap:8px;font-size:12px}.speed input{accent-color:var(--brass);width:110px}.stat{font:500 12px var(--mono);color:var(--muted)}.field{font:15px var(--mono);letter-spacing:.06em;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;width:100%;padding:10px 12px}.funk{color:#2b2418;font-family:var(--mono);background:linear-gradient(#f3ead2,#eadfc3);border-radius:8px;margin-bottom:16px;padding:16px 18px;box-shadow:0 8px 22px #0000004d}.funk-h{display:flex;letter-spacing:.2em;border-bottom:2px solid #2b2418;justify-content:space-between;margin-bottom:10px;padding-bottom:6px;font-size:13px;font-weight:600}.funk-meta{display:grid;grid-template-columns:repeat(3,1fr);color:#6f6143;gap:6px;margin-bottom:10px;font-size:10.5px}.funk-meta b{display:block;color:#2b2418;font-size:12.5px}.funk-body{letter-spacing:.1em;word-spacing:.5em;word-break:break-word;min-height:60px;font-size:16px;line-height:1.8}.funk-body .cursor{display:inline-block;vertical-align:-2px;animation:blink 1s steps(2)infinite;background:#2b2418;width:9px;height:17px}@keyframes blink{50%{opacity:0}}.stamp{display:inline-block;color:#9b2c1c;letter-spacing:.2em;opacity:0;border:2px solid #9b2c1c;margin-top:8px;padding:3px 10px;transition:opacity .3s;font-size:12px;font-weight:600;transform:rotate(-4deg)}.stamp.on{opacity:.9}.inspector .timeline{margin:4px 0 8px}.inspector .stage{padding:10px 12px}.inspector .bombe{grid-template-columns:1fr}.inspector .menu svg{max-width:220px;margin:0 auto}.presetlist{display:grid;gap:6px}.presetlist button{text-align:left;border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;font:13px var(--sans);border-radius:10px;padding:9px 12px}.presetlist button small{display:block;color:var(--muted);font-size:11.5px}.presetlist button:hover{border-color:var(--brass)}.result{background:var(--bg);border:1px solid color-mix(in oklab,var(--good)45%,var(--line));border-radius:14px;margin-bottom:14px;padding:14px 16px}.result .plain{font:500 15px var(--mono);letter-spacing:.1em;word-spacing:.4em;word-break:break-word;color:var(--ink);line-height:1.7}.result .read{color:var(--muted);margin-top:8px;font:italic 16px/1.5 "Source Serif 4",Georgia,serif}.cmp{border-collapse:collapse;width:100%;margin-bottom:14px;font-size:12.5px}.cmp th,.cmp td{text-align:left;border-bottom:1px solid var(--line);padding:6px 4px}.cmp th{color:var(--muted);font-weight:500}.cmp td.m{font-family:var(--mono)}.tr-tip{position:fixed;z-index:90;pointer-events:none;-webkit-backdrop-filter:blur(20px)saturate(1.6);backdrop-filter:blur(20px)saturate(1.6);color:#f4ecd8;opacity:0;transform-origin:50% 100%;background:#1c1a17d1;border:1px solid #ffffff17;border-radius:13px;max-width:300px;padding:10px 13px 11px;transition:opacity .14s ease-out,transform .18s cubic-bezier(.2,.9,.3,1.15);font-family:IBM Plex Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;transform:translateY(4px)scale(.985);box-shadow:0 18px 44px #00000073,inset 0 1px #ffffff0f}.tr-tip[data-side=bottom]{transform-origin:50% 0;transform:translateY(-4px)scale(.985)}.tr-tip.on{opacity:1;transform:none}.tr-tip.long{max-width:440px}.tr-tip:after{content:"";position:absolute;left:calc(var(--arrow,50%) - 6px);background:inherit;border:inherit;-webkit-backdrop-filter:none;backdrop-filter:none;border-width:0 1px 1px 0;width:12px;height:12px;transform:rotate(45deg)}.tr-tip[data-side=top]:after{bottom:-7px}.tr-tip[data-side=bottom]:after{top:-7px;transform:rotate(225deg)}.tr-line{display:flex;align-items:baseline;gap:8px}.tr-line.main .tr-text{font-family:"Source Serif 4",Georgia,serif;font-size:17px;font-weight:600;line-height:1.3}.tr-tip.long .tr-line.main .tr-text{font-size:15px;font-weight:500}.tr-line.sub{margin-top:5px}.tr-line.sub .tr-text{color:#b9ad92;font-size:12.5px;line-height:1.4}.tr-lang{letter-spacing:.12em;color:#e2c26f;background:#ffffff17;border-radius:4px;flex:none;padding:2px 5px;font:600 9.5px IBM Plex Mono,monospace;transform:translateY(-2px)}.tr-line.sub .tr-lang{color:#9a8f79}.tr-say{color:#9a8f79;margin-top:6px;font-size:11.5px}.tr-say b{color:#e9dfc6;letter-spacing:.02em;font-weight:500}.tr-note{color:#c9bda2;border-top:1px solid #ffffff14;margin-top:7px;padding-top:7px;font-size:12px;line-height:1.45}@media (prefers-reduced-motion:reduce){.tr-tip,.tr-tip[data-side=bottom]{transition:opacity .1s;transform:none}}.inspector .ip-k[data-tr]:hover,.inspector .ip-h[data-tr]:hover,.inspector .ip-p[data-tr]:hover,.inspector .ip-label [data-tr]:hover,.hint[data-tr]:hover,.tape-l[data-tr]:hover{text-decoration:underline dotted color-mix(in oklab,var(--brass)60%,transparent);text-underline-offset:4px;text-decoration-thickness:1px}.ip-top{display:flex;justify-content:space-between;align-items: center;gap:10px;margin-bottom:6px}.ip-top .ip-k{margin:0}.trpill{display:inline-flex;border:1px solid var(--line);background:var(--bg);color:var(--muted);cursor:pointer;letter-spacing:.08em;border-radius:99px;align-items: center;gap:5px;padding:4px 9px;transition:all .15s;font:600 10px IBM Plex Mono,monospace}.trpill .trarrows{font-size:11px}.trpill[aria-checked=true]{border-color:var(--brass-dim);color:var(--brass);background:color-mix(in oklab,var(--brass)12%,var(--bg))}.trpill:hover{border-color:var(--brass)}.console.live{border-color:var(--brass);box-shadow:0 0 0 3px color-mix(in oklab,var(--brass)22%,transparent);letter-spacing:.12em;word-break:break-all;font:500 16px/1.6 IBM Plex Mono,monospace}.livedot{display:inline-block;vertical-align:1px;animation:livepulse 1.6s infinite;background:#e2554a;border-radius:50%;width:7px;height:7px;margin-right:6px;box-shadow:0 0 #e2554a99}@keyframes livepulse{0%{box-shadow:0 0 #e2554a8c}70%{box-shadow:0 0 0 7px #e2554a00}to{box-shadow:0 0 #e2554a00}}.shortnote{display:block;color:var(--muted);margin-top:6px;font-family:IBM Plex Sans,sans-serif;line-height:1.45}.notice{color:var(--ink);background:color-mix(in oklab,var(--brass)10%,var(--bg));border:1px solid color-mix(in oklab,var(--brass)40%,var(--line));border-radius:12px;margin:0 0 16px;padding:11px 13px;font-size:13px;line-height:1.5}.notice b{font-weight:600}.hint.aha{color:var(--ink);animation:aha .5s ease}.hint.aha b{color:var(--lamp);font-family:var(--mono)}@keyframes aha{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.habit{display:none;color:var(--ink);background:color-mix(in oklab,var(--bad)10%,var(--card));border:1px solid color-mix(in oklab,var(--bad)35%,var(--line));border-radius:8px;margin:10px 0 0;padding:8px 10px;font-size:12.5px;line-height:1.45}.habit.on{display:block}.habit-k{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--bad);margin-right:4px;font-size:10.5px}@media (prefers-reduced-motion:reduce){.hint.aha{animation:none}}@property --gate-a{syntax:"<angle>";inherits:false;initial-value:0deg}.app{transition:grid-template-columns .95s cubic-bezier(.22,.9,.24,1),gap .95s cubic-bezier(.22,.9,.24,1)}.inspector{width:100%;transition:opacity .55s .35s,transform .95s cubic-bezier(.22,.9,.24,1) .15s,filter .6s .3s}.locked .app{grid-template-columns:minmax(0,1fr)0px;gap:0}.locked .inspector{opacity:0;filter:blur(6px);pointer-events:none;visibility:hidden;min-width:420px;transition:opacity .3s,transform .5s,filter .3s,visibility 0s linear .5s;transform:translate(64px)scale(.97)}@media (max-width:1100px){.locked .inspector{display:none}.app-body:not(.locked) .inspector{animation:panelUp .7s cubic-bezier(.22,.9,.24,1)both}}@keyframes panelUp{0%{opacity:0;transform:translateY(28px)}}.steps,.app-top .pagenav{transition:opacity .5s,transform .5s}.locked .steps{opacity:0;pointer-events:none;transform:translateY(-6px)}.revealing .steps li{animation:stepIn .55s cubic-bezier(.22,.9,.24,1)both}.revealing .steps li:first-child{animation-delay:.55s}.revealing .steps li:nth-child(2){animation-delay:.61s}.revealing .steps li:nth-child(3){animation-delay:.67s}.revealing .steps li:nth-child(4){animation-delay:.73s}.revealing .steps li:nth-child(5){animation-delay:.79s}.revealing .steps li:nth-child(6){animation-delay:.85s}@keyframes stepIn{0%{opacity:0;transform:translateY(-8px)}}.lockstate{display:inline-flex;color:var(--muted);align-items: center;gap:6px}.lockstate svg,.lockpill svg{width:11px;height:12px}.app-body:not(.locked) .lockstate{display:none}.lockpill{display:inline-flex;font:12px var(--mono);color:var(--ink);background:var(--card);border:1px solid color-mix(in oklab,var(--good)40%,var(--line));cursor:pointer;border-radius:99px;align-items: center;gap:8px;padding:5px 6px 5px 11px;transition:border-color .2s,background .2s}.lockpill .dot{background:var(--good);box-shadow:0 0 0 3px color-mix(in oklab,var(--good)22%,transparent);border-radius:50%;width:7px;height:7px}.lockpill .lk{display:inline-flex;background:var(--bg);color:var(--muted);border-radius:99px;align-items: center;gap:5px;padding:2px 8px;transition:color .2s,background .2s}.lockpill:hover{border-color:var(--brass-dim)}.lockpill:hover .lk{color:#1b160e;background:var(--brass)}.lockpill:focus-visible .lk{color:#1b160e;background:var(--brass)}.lockpill:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.revealing .lockpill{animation:stepIn .6s cubic-bezier(.22,.9,.24,1).9s both}.hint,.tape{max-height:140px;transition:opacity .5s,max-height .7s cubic-bezier(.22,.9,.24,1),margin .7s,padding .7s}.locked .hint,.locked .tape{opacity:0;overflow:hidden;pointer-events:none;max-height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0}.stagearea:before{content:"";position:absolute;pointer-events:none;opacity:0;background:radial-gradient(46% 42% at 50% 40%,color-mix(in oklab,var(--brass)14%,transparent),transparent 70%);transition:opacity 1.2s;inset:-10% -10% 0}.locked .stagearea:before{opacity:1}.locked .machine-host{animation:float 7s ease-in-out infinite}@keyframes float{50%{transform:translateY(-7px)}}.locked .machine-host{--reserve:345px}.lockpill[hidden]{display:none}.gate{position:relative;z-index:5;margin:calc(var(--machine-fit,.7)*-182px)auto 20px;width:min(452px,100% - 32px)}.app-body:not(.locked) .gate:not(.leaving){display:none}.gate-card{position:relative;isolation:isolate;font-family:var(--sans);text-align:center;background:color-mix(in oklab,var(--card)74%,transparent);backdrop-filter:saturate(1.5)blur(22px);-webkit-backdrop-filter:saturate(1.5)blur(22px);animation:gateIn .9s cubic-bezier(.22,.9,.24,1).25s both;border-radius:22px;padding:26px 26px 20px;box-shadow:0 30px 80px #00000080,inset 0 2px #ffffff0a}.gate-card:before{content:"";position:absolute;z-index:-1;border-radius:inherit;background:conic-gradient(from var(--gate-a),var(--line)0 62%,color-mix(in oklab,var(--brass)85%,white)72%,var(--line)82% 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:glint 6s linear infinite;padding:1px;inset:0}@keyframes glint{to{--gate-a:360deg}}@keyframes gateIn{0%{opacity:0;transform:translateY(26px)scale(.96);filter:blur(8px)}}.gate.leaving .gate-card{animation:gateOut .65s cubic-bezier(.55,0,.3,1)forwards}@keyframes gateOut{to{opacity:0;transform:translateY(40px)scale(.9);filter:blur(10px)}}.gate.error .gate-card{animation:shake .42s cubic-bezier(.36,.07,.19,.97)both}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.padlock{display:block;overflow:visible;width:38px;height:46px;margin:-4px auto 10px}.padlock .shackle{fill:none;stroke:var(--brass);stroke-width:4.5;stroke-linecap:round;transform-origin:35px 27px;transition:transform .55s cubic-bezier(.3,1.6,.5,1),stroke .3s}.padlock .lock-body{fill:var(--brass);transition:fill .3s}.padlock .keyhole{fill:#1b160e}.gate.busy .padlock{animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{50%{transform:scale(.94);opacity:.75}}.gate.ok .padlock .shackle{stroke:var(--good);transform:translateY(-7px)rotate(28deg)}.gate.ok .padlock .lock-body{fill:var(--good)}.gate-k{font:600 11px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin:0 0 6px}.gate-h{color:var(--ink);letter-spacing:-.01em;text-transform:none;margin:0 0 8px;font:600 30px/1.1 "Source Serif 4",Georgia,serif}.gate-p{color:var(--muted);max-width:34ch;margin:0 auto 18px;font-size:14.5px;line-height:1.5}.gate-field{position:relative;display:flex;background:var(--bg);border:1px solid var(--line);border-radius:14px;align-items: center;gap:4px;padding:5px;transition:border-color .2s,box-shadow .25s}.gate-field:focus-within{border-color:var(--brass-dim);box-shadow:0 0 0 4px color-mix(in oklab,var(--brass)16%,transparent)}.gate.error .gate-field{border-color:var(--bad);box-shadow:0 0 0 4px color-mix(in oklab,var(--bad)16%,transparent)}.gate.ok .gate-field{border-color:var(--good);box-shadow:0 0 0 4px color-mix(in oklab,var(--good)18%,transparent)}.gate-field input{outline:none;font:500 15px var(--mono);letter-spacing:.08em;color:var(--ink);background:0 0;border:0;flex:1;min-width:0;padding:10px 8px 10px 12px}.gate-field input::placeholder{font-family:var(--sans);letter-spacing:0;color:color-mix(in oklab,var(--muted)80%,transparent)}.gate-eye,.gate-go{display:grid;cursor:pointer;border:0;border-radius:10px;flex:none;place-items: center;width:40px;height:40px}.gate-eye{color:var(--muted);background:0 0}.gate-eye:hover{color:var(--ink)}.gate-eye svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;width:19px;height:19px}.gate-eye .slash{opacity:0}.gate-eye[aria-pressed=true] .slash{opacity:1}.gate-go{position:relative;background:var(--brass);color:#1b160e;font:600 19px var(--sans);transition:transform .15s,filter .15s,background .3s}.gate-go:hover{filter:brightness(1.08)}.gate-go:active{transform:scale(.94)}.gate-go:disabled{cursor:default}.gate-go .spin{position:absolute;opacity:0;border:2px solid #1b160e40;border-top-color:#1b160e;border-radius:50%;width:18px;height:18px}.gate.busy .gate-go .arrow{opacity:0}.gate.busy .gate-go .spin{opacity:1;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.gate.ok .gate-go{background:var(--good)}.gate.ok .gate-go .arrow{opacity:0}.gate.ok .gate-go:after{content:"✓";position:absolute;color:#0f1a0e}.gate-eye:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.gate-go:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.gate-remember input:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.gate-row{display:flex;color:var(--muted);justify-content:space-between;align-items: center;gap:10px;margin:12px 2px 0;font-size:12.5px}.gate-remember{display:inline-flex;cursor:pointer;align-items: center;gap:7px}.gate-remember input{accent-color:var(--brass);margin:0}.gate-kbd kbd{font:11px var(--mono);border:1px solid var(--line);background:var(--card);color:var(--ink);border-bottom-width:2px;border-radius:5px;padding:1px 6px}.gate-msg{color:var(--muted);min-height:2.9em;margin:12px 0 0;transition:color .2s;font-size:12.5px;line-height:1.45}.gate-indep{letter-spacing:.02em;color:color-mix(in oklab,var(--muted)75%,transparent);margin:10px 0 0;font-size:11px}.gate-msg b{color:var(--ink);font-weight:600}.gate.error .gate-msg{color:color-mix(in oklab,var(--bad)80%,var(--ink))}.gate.ok .gate-msg{color:var(--ink)}.gate.ok .gate-msg .v{color:var(--good)}@media (max-width:640px){.gate-card{padding:22px 18px 16px}.gate-h{font-size:25px}.gate-kbd{display:none}}@media (prefers-reduced-motion:reduce){.gate-card,.gate-card:before,.locked .machine-host,.gate.busy .padlock,.revealing .steps li,.revealing .lockpill{animation:none!important}.app,.inspector,.hint,.tape{transition-duration:10ms!important}}.verified{display:flex;background:color-mix(in oklab,var(--good)9%,var(--bg));border:1px solid color-mix(in oklab,var(--good)32%,var(--line));border-radius:12px;align-items: center;gap:12px;margin:4px 0 16px;padding:10px 12px}.verified svg{overflow:visible;flex:none;width:20px;height:24px}.verified svg path{fill:none;stroke:var(--good);stroke-width:4.5;stroke-linecap:round}.verified svg rect{fill:var(--good)}.verified b{display:block;color:var(--ink);font-size:13.5px}.verified span{font:12px var(--mono);color:var(--muted)}
