@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/ibm-plex-mono-latin-400-normal.3xdfs0-p_zi4c.woff2)format("woff2"),url(../media/ibm-plex-mono-latin-400-normal.2lhng2ntocry9.woff)format("woff")}
@font-face{font-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(../media/instrument-serif-latin-400-normal.3_vslfxq_--4i.woff2)format("woff2"),url(../media/instrument-serif-latin-400-normal.2maraz2ovyahx.woff)format("woff")}
:root{color:#39372f;font-synthesis:none;--ink:#39372f;--muted:#777062;--paper:#f7f2e7;--line:#b8ae98;--highlight-fill:#e8c67740;--highlight-border:#ad853e;--display:"Instrument Serif",Georgia,serif;--mono:"IBM Plex Mono",monospace;background:#e6e1d5;font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,summary{color:inherit;font:inherit;cursor:pointer}button{border:0}.introduction{z-index:6;pointer-events:none;transition:opacity .7s,transform .9s;position:absolute;inset:0}.intro-copy{--intro-action-font-size:17px;pointer-events:auto;width:min(39vw,490px);position:absolute;top:clamp(28px,6vh,72px);left:clamp(28px,5vw,88px)}.intro-copy h1{font:clamp(38px, 4.4vw, 68px)/.98 var(--display);text-wrap:balance;max-width:440px;margin:0 0 18px}.intro-copy #intro-body{max-width:420px;margin:0;font:16px/1.6 Georgia,serif}.intro-copy em{color:#496553}.intro-copy .intro-action{max-width:360px;margin-top:24px}.intro-gallery{width:min(46vw,820px);margin:0;position:absolute;bottom:clamp(28px,5vh,60px);left:clamp(28px,5vw,88px)}.intro-photos{grid-template-columns:1.5fr 1fr .9fr;align-items:end;gap:clamp(8px,1vw,15px);padding:8px 3px 12px;display:grid}.intro-photo{background:#faf6eb;border:1px solid #cabea5;min-width:0;padding:6px;box-shadow:1px 5px 12px #51472d20}.intro-photo img{width:100%;height:auto;display:block}.intro-photo-room{margin-bottom:12px;transform:rotate(-3deg)}.intro-photo-command{margin-bottom:26px;transform:rotate(2deg)}.intro-photo-field{transform:rotate(-1.5deg)}.intro-gallery figcaption{color:#71644f;border-top:1px solid #b8ae9866;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;padding-top:12px;font:italic 16px/1.4 Georgia,serif;display:flex}.intro-gallery figcaption small{font:9px/1.6 var(--mono);letter-spacing:1px;text-transform:uppercase}.introduction.leaving{opacity:0;pointer-events:none;transform:translate(-35px)}.introduction.leaving .intro-copy{pointer-events:none}.intro-action{color:#fff9ed;width:100%;min-height:56px;font-size:var(--intro-action-font-size);text-align:left;background:#496553;border-radius:4px;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.intro-action:hover{background:#354f3f}.intro-history-link{color:#496553;width:fit-content;min-height:44px;font-size:var(--intro-action-font-size);text-underline-offset:3px;align-items:center;margin-top:4px;text-decoration:underline;display:flex}.intro-history-link:hover{color:#354f3f}.introducing .anchored-note,.introducing .annotation-leaders,.introducing .component-info,.transmitting .anchored-note,.transmitting .annotation-leaders,.transmitting .component-info{opacity:0;visibility:hidden;pointer-events:none}.anchored-note{transition:opacity .45s}.typing-feedback{z-index:7;pointer-events:none;position:absolute;inset:0}.typing-note{opacity:0;pointer-events:auto;border-color:#b59962;transition:none;box-shadow:0 8px 32px #51402619}.anchored-note.typing-note{-webkit-backdrop-filter:none;backdrop-filter:none;background:#faf6e9}.typing-example{font:19px var(--mono);gap:18px;margin:12px 0;display:flex}.typing-example span{align-items:center;gap:10px;display:flex}.typing-example i{color:#9a8a67;font-style:normal}.typing-example b{color:#76511e;background:#f7e7bb;border:1px solid #d9b977;border-radius:50%;padding:5px 9px;font-weight:400}.typing-continue{color:#605239;background:#eee4ce;border-top:1px solid #c9b992;justify-content:space-between;align-items:center;min-height:44px;padding:11px 17px;font-size:13px;display:flex}.typing-continue:hover{background:#e4d6b8}.typing-trail{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.typing-trail path{fill:none;stroke:#b18a48;stroke-width:1px;stroke-dasharray:3 4}.lamp-focus{border:2px solid #d2a352;border-radius:50%;width:34px;height:34px;position:absolute;box-shadow:0 0 20px #ddb15866}.flying-letter{color:#705024;width:36px;height:36px;font:22px var(--mono);background:#f8e9bd;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;box-shadow:0 3px 12px #96723d40}.teaching-typing #narrative,.teaching-typing .annotation-leaders{opacity:0;visibility:hidden}.setting-dials #narrative,.setting-dials .annotation-leaders,.setting-plugboard #narrative,.setting-plugboard .annotation-leaders{display:none}.dial-lesson,.plugboard-sheet-lesson{z-index:7;pointer-events:none;position:absolute;inset:0}.dial-panel{pointer-events:auto;background:#eae5d9f5;border-radius:5px;flex-direction:column;gap:14px;width:min(43vw,560px);max-height:calc(100dvh - 96px);padding:16px;display:flex;position:absolute;top:72px;left:24px}.dial-panel header h1{font:38px/1.05 var(--display);margin:0 0 10px}.dial-panel header p{max-width:470px;margin:0;font:14px/1.5 Georgia,serif}.dial-panel header .settings-task{margin-top:8px}.daily-sheet{aspect-ratio:950/643;color:#302b20;background-color:#d5c3a1;background-image:radial-gradient(at 30% 12%,#e4d5b5 0%,#0000 65%),url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23736449' opacity='.14' filter='url(%23grain)' d='M0 0h160v160H0z'/%3E%3C/svg%3E");border:1px solid #ad9877;flex-direction:column;flex:0 auto;min-height:120px;padding:20px 16px 12px;display:flex;position:relative;overflow:hidden;transform:rotate(-.5deg);box-shadow:0 7px 20px #51402626}.sheet-heading{border-bottom:2px solid #514832;grid-template-columns:1.2fr 3fr .65fr;align-items:center;gap:9px;padding:0 0 12px;display:grid;position:relative}.sheet-heading strong{text-align:center;font:700 clamp(13px,1.3vw,19px)/1.1 Times New Roman,serif}.sheet-secrecy{font:11px/1.2 Times New Roman,serif;position:relative}.sheet-secrecy small{margin-top:4px;font:700 7px/1.25 Times New Roman,serif;display:block}.sheet-serial{font:8px var(--mono);white-space:nowrap}.sheet-secrecy-note{border-left:1px solid #a28d62;flex-shrink:0;max-width:390px;margin:0 0 3px 35px;padding:0 0 0 12px;position:relative}.sheet-secrecy-note p{color:#70644e;margin:0;font:12px/1.45 Georgia,serif}.sheet-secrecy-note:after{content:"";z-index:2;pointer-events:none;border-bottom:1px solid #a28d62;border-left:1px solid #a28d62;width:16px;height:43px;position:absolute;top:100%;left:-1px}.sheet-scroll{overscroll-behavior:contain;scrollbar-width:thin;min-height:0;position:relative;overflow:auto}.daily-sheet table{border-collapse:collapse;table-layout:fixed;width:100%;font:10px/1.45 var(--mono)}.sheet-date-col{width:7%}.sheet-order-col{width:15%}.sheet-ring-col{width:16%}.sheet-position-col{width:17%}.sheet-plugs-col{width:32%}.sheet-groups-col{width:13%}.daily-sheet th,.daily-sheet td{text-align:center;border-bottom:0;border-right:1px solid #716348a6;padding:3px 2px}.daily-sheet thead th{z-index:1;background:#d8c7a7;border-bottom:1px solid #716348;padding:8px 1px;font:10px/1.3 Times New Roman,serif;position:sticky;top:0}.daily-sheet tbody th{font-weight:400}.daily-sheet .unexplained{filter:blur(2.5px);-webkit-user-select:none;user-select:none;pointer-events:none;white-space:nowrap;overflow:hidden}.daily-sheet tr[data-selected=true]{background:var(--highlight-fill);outline:1px solid var(--highlight-border);outline-offset:-1px;color:#352a16}.daily-sheet tr[data-selected=true] td,.daily-sheet tr[data-selected=true] th{font-weight:700}.sheet-letters span{width:30%;display:inline-block}.dial-goal{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dial-navigation{align-items:center;gap:10px;display:flex}.dial-navigation .next-action{border-radius:3px;flex:1;text-decoration:none}.dial-navigation .next-action[aria-disabled=true]{opacity:.45;cursor:default}.sheet-source{font:9px/1.3 var(--mono);color:#84765e;text-align:center}.dial-target{border:1.5px solid var(--highlight-border);background:var(--highlight-fill);pointer-events:auto;border-radius:5px;width:48px;height:52px;padding:0;position:absolute;top:0;left:0;box-shadow:0 0 0 5px #e8c67718}.dial-target:hover,.dial-target[aria-expanded=true]{background:#e8c67744;box-shadow:0 0 0 5px #e8c67733}.dial-target[data-matched=true]{box-shadow:none;background:0 0;border-color:#0000}.dial-hint{text-align:center;background:#faf6e9f2;border:1px solid #b59962;border-radius:4px;width:240px;margin:0;padding:12px 15px;font:14px/1.4 Georgia,serif;position:absolute;top:0;left:0}.dial-hint:after{content:"";border-left:1px dashed #b59962;height:36px;position:absolute;top:100%;left:50%}.dial-editor{pointer-events:auto;text-align:center;background:#faf5e7;border:1px solid #b59962;border-radius:5px;width:184px;padding:14px;position:absolute;top:0;left:0;box-shadow:0 8px 24px #30291c33}.dial-editor label{font:25px/1.1 var(--display);display:block}.dial-editor[data-matched=true]{border:2px solid #51815b;box-shadow:0 0 0 3px #5d8b5714,0 8px 24px #30291c26}.dial-scrubber{grid-template-columns:1fr;width:70px;margin:7px auto;display:grid}.dial-scrubber input{color:#342d20;text-align:center;width:70px;height:64px;font:38px var(--mono);text-transform:uppercase;caret-color:#0000;touch-action:none;cursor:ns-resize;-webkit-user-select:none;user-select:none;background:#fffdf4;border:1px solid #b5a789;border-radius:3px}.dial-editor p{margin:8px 0;font:12px/1.4 Georgia,serif}.dial-editor .dial-match{fill:none;stroke:#3c6a4b;stroke-width:1.8px;width:19px;height:19px;position:absolute;top:8px;right:8px}.dial-key-hints{justify-content:center;align-items:center;gap:4px;margin:2px 0 6px;display:flex}.dial-key-hints button{background:0 0;place-items:center;width:44px;height:44px;padding:0;display:grid}.dial-key-hints button:hover kbd{background:var(--highlight-fill);border-color:var(--highlight-border)}.dial-key-hints kbd{font:11px/1.2 var(--mono);color:#777062;background:#fffaf0;border:1px solid #b8ae98;border-bottom-width:2px;border-radius:3px;padding:3px 7px}.dial-done{background:var(--highlight-fill);border:1px solid var(--highlight-border);color:#4b402c;border-radius:3px;width:100%;min-height:36px}@media (max-width:899px){.dial-panel{gap:8px;width:calc(100% - 32px);height:min(51dvh,440px);padding:10px;top:60px;bottom:auto;left:16px}.dial-panel header{flex-shrink:0}.dial-panel header h1{margin-bottom:6px;font-size:27px}.dial-panel header p{font-size:12px;line-height:1.35}.daily-sheet{aspect-ratio:auto;flex:1;min-height:88px;padding:8px 10px 4px}.sheet-heading{gap:5px;padding-bottom:5px}.sheet-heading strong{font-size:12px}.sheet-secrecy{font-size:10px}.sheet-secrecy small,.sheet-serial{font-size:6px}.sheet-secrecy-note{margin-left:22px;padding-left:9px}.sheet-secrecy-note p{font-size:11px;line-height:1.3}.sheet-secrecy-note:after{height:29px}.daily-sheet table{font-size:9px}.daily-sheet thead th{font-size:8px}.dial-navigation .next-action{min-height:40px;padding:10px;font-size:12px}.sheet-source{font-size:8px}.dial-hint{width:230px;padding:8px 12px;font-size:12px}.dial-editor{width:170px;padding:10px}.dial-scrubber{margin:3px auto}.dial-scrubber input{height:50px;font-size:30px}}.radio-journey{z-index:8;pointer-events:none;flex-direction:column;justify-content:space-between;align-items:center;padding:clamp(22px,4vh,46px) 24px 20px;display:flex;position:absolute;inset:0}.journey-copy{text-align:center;pointer-events:auto;flex-shrink:0;width:min(640px,100%)}.journey-copy h1{font:42px/1.04 var(--display);margin:0 0 10px}.journey-description{margin:0;font:15px/1.55 Georgia,serif}.journey-footer{text-align:center;pointer-events:auto;flex-shrink:0;width:min(570px,100%)}.intercept{background:#f7f2e7d9;border:1px solid #b8ae9860;border-radius:3px;padding:10px 18px}.intercept span{font:9px var(--mono);text-transform:uppercase;letter-spacing:1px;color:#887855;margin-bottom:6px;display:block}.intercept output{font:14px/1.4 var(--mono);letter-spacing:2px;overflow-wrap:anywhere;display:block}.journey-progress{font:11px/1.4 var(--mono);color:#706449;min-height:16px;margin:7px 0 0}.journey-next{color:#f5eedf;background:#334d40;border-radius:3px;width:100%;min-height:44px;margin:10px auto 0;padding:10px 16px;font:14px/1.4 Georgia,serif;display:block}.journey-next:hover{background:#243b2e}.journey-next:disabled{opacity:.45;cursor:default}.radio-journey[data-audio=true]{padding-bottom:78px}.journey-sound svg{flex-shrink:0;width:14px;height:14px}.journey-sound .speaker-muted,.journey-sound.muted .speaker-waves{display:none}.journey-sound.muted .speaker-muted{display:block}@media (max-height:740px) and (min-width:900px){.intro-copy{top:28px}.intro-copy h1{font-size:45px}.intro-copy #intro-body{font-size:14px}.intro-copy .intro-action{min-height:48px;margin-top:18px}.intro-gallery{width:min(43vw,680px);bottom:25px}}@media (max-width:899px){.intro-copy{--intro-action-font-size:14px;width:calc(100% - 48px);top:24px;left:24px}.intro-copy h1{max-width:100%;margin-bottom:12px;font-size:36px}.intro-copy #intro-body{max-width:100%;font-size:13px;line-height:1.5}.intro-copy .intro-action{max-width:340px;min-height:44px;margin-top:16px;padding:10px 14px}.intro-gallery{display:none}.radio-journey{padding:22px 18px 12px}.journey-copy h1{font-size:31px}.journey-description{font-size:13px}.intercept{padding:9px 12px}.intercept output{font-size:12px}}@media (max-width:899px) and (max-height:740px){.intro-copy{width:calc(100% - 40px);top:16px;left:20px}.intro-copy h1{font-size:30px}.intro-copy #intro-body{font-size:12px}}@media (max-width:899px) and (max-height:650px){.journey-copy h1{font-size:26px}.journey-description{font-size:12px;line-height:1.35}.journey-progress{font-size:9px}.journey-next{margin-top:6px;font-size:12px}}button:focus-visible,summary:focus-visible,a:focus-visible,canvas:focus-visible{outline-offset:5px;outline:2px solid #835d35}select:focus-visible{outline-offset:2px;outline:2px solid #835d35}.configuring .anchored-note{width:300px;max-height:calc(100dvh - 40px)}.note-content{overscroll-behavior:contain;min-height:0;padding:14px 17px 13px;overflow:auto}.lesson-navigation{border-top:1px solid #d9cfbc;flex-direction:row;flex-shrink:0;gap:8px;padding:12px;display:flex}.next-action{background:var(--highlight-fill);border:1px solid var(--highlight-border);color:#4b402c;text-align:left;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:50px;padding:15px 17px;font-size:14px;display:flex}.next-action:hover:not(:disabled){background:#e8c67770}.next-action:disabled{opacity:.5;cursor:default}.lesson-navigation button:focus-visible{outline-offset:-4px;outline-color:#d1a761}kbd{font:10px var(--mono);opacity:.72;border:1px solid;border-radius:3px;padding:1px 5px}.enter-hint{font:10px/1.4 var(--mono);opacity:.6;flex-shrink:0;padding:2px 5px;font-weight:400}.journey-next{justify-content:space-between;align-items:center;gap:16px;display:flex}.anchored-note .keyboard-hints{color:var(--muted);flex-wrap:wrap;gap:6px 12px;margin-top:12px;font-size:10px;display:flex}#lesson-controls button[aria-pressed=true]{background:#d5c3a2;border-color:#9c8154}#lesson-controls{margin-top:12px}#lesson-controls button{background:#e6dfcf;border:1px solid #c7bca8;border-radius:3px;min-height:36px;padding:7px 10px;font-size:12px}#lesson-controls button:hover{background:#d8cfbc}#lesson-controls select{font:12px var(--mono);color:var(--ink);background:#fcf9f1;border:1px solid #b8ad98;border-radius:3px;width:100%;min-height:36px;padding:7px 3px}.lesson-buttons{align-items:end;gap:8px;margin:9px 0;display:flex}#lesson-controls [data-reset-action]{justify-content:space-between;align-items:center;width:100%;display:flex}#lesson-controls .touch-advance{width:100%;min-height:44px;margin-bottom:8px;display:none}@media (pointer:coarse),(max-width:700px){#lesson-controls .touch-advance{display:block}}.rotor-windows{aspect-ratio:2.5;width:100%;margin:12px 0 2px}.rotor-windows canvas{width:100%;height:100%;display:block}.historical-aside{color:var(--muted);margin-top:16px}.historical-aside p{font-size:11px;line-height:1.5}.historical-aside a{color:inherit;text-underline-offset:2px}.socket-grid{margin:8px 0}.socket-row{justify-content:center;gap:2px;display:flex}#lesson-controls .socket-row button{width:25px;height:28px;min-height:28px;font:11px var(--mono);background:0 0;margin:2px 0;padding:0}#lesson-controls .socket-row .paired{color:#faf5e9;background:#585446}#lesson-controls .socket-row [aria-pressed=true]{color:#fff;background:#a47135;outline:2px solid #bfa47b}.lesson-result{font:13px/1.5 var(--mono);overflow-wrap:anywhere;background:#eee7d7;border-left:2px solid #b29569;margin:10px 0;padding:10px}.lesson-result small{color:var(--muted);font:10px/1.5 Georgia,serif;display:block}.lesson-result p{margin-top:6px;font-size:11px}.comparison{grid-template-columns:1fr 1fr;gap:10px;margin:8px 0;font:10px/1.5 Georgia,serif;display:grid}.comparison b{font:17px var(--mono);margin-top:4px;display:block}#lesson-controls fieldset{border:0;min-width:0;margin:10px 0;padding:0}#lesson-controls legend{margin-bottom:5px;font-size:11px}.reflection-proof{text-align:center;flex-direction:column;gap:2px;font-size:11px;display:flex}.reflection-proof b{font-size:17px}.reflector-pair{color:#854a28;background:#e6d9bc;margin:3px 0;padding:6px}.cipher-definition{font-style:italic}@media (max-width:899px){.configuring .anchored-note{width:calc(100vw - 32px);max-width:380px;max-height:min(360px,48dvh)}#lesson-controls .socket-row button{width:28px;min-height:30px}}[hidden]{display:none!important}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--paper);color:var(--ink);padding:12px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:20px}.tutorial{background:radial-gradient(at 50% 35%,#f4f0e5 0%,#e8e3d8 65%,#d8d0bd 100%);position:fixed;inset:0;overflow:hidden}#scene{position:absolute;inset:0}canvas{touch-action:none;cursor:grab;display:block}canvas:active{cursor:grabbing}#loading,.context-message{font:14px/1.6 var(--mono);text-align:center;max-width:350px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.context-message{background:var(--paper);z-index:20;padding:25px;display:none}.context-lost .context-message{display:block}.annotation-leaders{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0}.annotation-leaders path{fill:none;stroke:#7c725e;stroke-width:1px;stroke-dasharray:2 4}.annotation-leaders circle{fill:#7c725e}.pawl-contact-note{z-index:4;visibility:hidden;pointer-events:none;background:#faf6e9;border:1px solid #b5996280;border-radius:4px;width:max-content;max-width:190px;padding:10px 13px;position:absolute;top:0;left:0;box-shadow:0 5px 24px #51402619}.pawl-contact-note h2{font:21px/1.15 var(--display);margin:0;font-weight:400}.annotation-leaders #pawl-contact-leader{stroke:#9a762f;stroke-width:1.3px;stroke-dasharray:none;opacity:0}.annotation-leaders #pawl-contact-dot{fill:#e5bf61;stroke:#8e6c28;stroke-width:1px;opacity:0}.scene-unavailable .pawl-contact-note{display:none}.signal-letter-leaders{pointer-events:none;z-index:4;width:100%;height:100%;position:absolute;inset:0}.signal-letter-leaders g{color:#a27c38}.signal-letter-leaders g[data-direction=return]{color:#377d7d}.signal-letter-leaders path{fill:none;stroke:currentColor;stroke-width:1.25px}.signal-letter-leaders circle{fill:#faf6e9;stroke:currentColor;stroke-width:1.5px}.signal-letter{z-index:5;color:#785321;pointer-events:none;background:#faf6e9;border:1px solid #b59962;border-radius:4px;place-items:center;width:40px;height:40px;display:grid;position:absolute;top:0;left:0;box-shadow:0 3px 14px #5140261a}.signal-letter[data-direction=return]{color:#256b6c;border-color:#6b9690}.signal-letter h2{font:600 22px/1 var(--mono);margin:0}.signal-letter span{font:10px/1.2 var(--mono);white-space:nowrap;background:#faf6e9ed;border-radius:2px;padding:2px 4px;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%)}.signal-letter[hidden],.anchored-note[hidden],.scene-unavailable #signal-letters{display:none}.anchored-note[data-intro-hidden]{opacity:0;visibility:hidden;pointer-events:none}@media (max-width:699px){.signal-letter{width:36px;height:36px}.signal-letter h2{font-size:20px}}.anchored-note{z-index:4;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f7f3e8ec;border:1px solid #c5bba74f;border-radius:4px;flex-direction:column;width:300px;max-height:calc(100dvh - 40px);padding:0;display:flex;position:absolute;top:0;left:0;overflow:hidden;box-shadow:0 5px 24px #4a40240b}.anchored-note h1{font:29px/1.06 var(--display);margin:0 0 8px;font-weight:400}.german{letter-spacing:.1px;color:var(--muted);margin-top:4px;font:italic 12px/1.2 Georgia,serif;display:block}.anchored-note p{margin:0;font-size:14px;line-height:1.5}.anchored-note .german,.dial-panel header .german{color:var(--muted);margin:-3px 0 10px;font:italic 13px/1.2 Georgia,serif}.anchored-note .key-prompt{margin-top:12px;font-size:14px;font-weight:700}.anchored-note .note-detail,.note-detail{color:var(--muted);margin-top:7px;font-size:11px;line-height:1.5}.input-mistake .key-prompt{color:#a34931}.paper-actions{z-index:5;text-align:center;width:max-content;max-width:calc(100vw - 32px);position:absolute;top:0;left:0}.send-action{color:#faf6eb;background:#49483b;border:1px solid #353628;border-radius:3px;justify-content:space-between;align-items:center;gap:20px;min-height:46px;padding:11px 18px;font-size:15px;display:flex;box-shadow:0 3px 9px #403c2820}.send-action:hover{background:#363c30}.message-buttons{justify-content:center;align-items:center;gap:6px;display:flex}.reset-action{color:#6b6557;background:#f7f2e7b8;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:10px 12px;font-size:13px;display:flex}.reset-action svg{flex-shrink:0;width:17px;height:17px}.reset-action:hover{color:var(--ink);background:var(--paper)}.backspace-popover .note-content,.space-popover .note-content{padding-right:38px}.backspace-dismiss{width:40px;min-height:44px;color:var(--muted);font:23px/1 var(--mono);background:0 0;position:absolute;top:0;right:0}.backspace-dismiss:hover{color:var(--ink)}.message-replay{color:#605239;background:#eee4ce;border:1px solid #c9b992;border-radius:3px;width:100%;min-height:44px;margin-top:14px;padding:10px 12px;font-size:13px}.message-replay:hover:not(:disabled){background:#e4d6b8}.message-replay:disabled{opacity:.5;cursor:default}.send-action span{font:20px Georgia,serif}.paper-actions p{color:#6b6557;font:11px/1.4 var(--mono);margin:8px 0 0}.component-caption,.component-info{z-index:3;width:max-content;max-width:240px;font:10px/1.2 var(--mono);letter-spacing:.7px;text-align:center;color:#655f51;position:absolute;top:0;left:0}.component-caption{pointer-events:none}.component-caption .german,.component-info .german{letter-spacing:0;margin-top:3px;font-size:11px}.component-info summary{outline-offset:2px;border-bottom:1px dotted #938b74;min-height:35px;padding:4px 10px;list-style:none}.component-info summary::-webkit-details-marker{display:none}.component-info summary:hover{color:#362f24}.component-popover{background:var(--paper);text-align:left;letter-spacing:0;z-index:6;border:1px solid #c8beaa;width:240px;padding:14px;font:13px/1.5 Georgia,serif;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 6px 24px #443b2720}.component-popover p{margin:0}.component-popover .note-detail{margin-top:8px}.lamp-caption{color:#6a542a;background:#f8edcbd9;border-radius:3px;padding:7px 11px}.lamp-caption b{font:17px var(--mono);margin-top:5px;display:block}.tutorial[data-stage=receiving] .anchored-note,.tutorial[data-stage=sending] .anchored-note{width:260px}.tutorial[data-stage=plugboard] .anchored-note{width:324px}.tutorial[data-stage=plugboard] .key-prompt{color:#171714;font:14px/1.5 Georgia,serif}@media (max-width:899px){.intro-action{padding:14px 16px}.anchored-note{width:calc(100vw - 40px);max-width:330px}.note-content{padding:11px 14px}.next-action{min-height:46px;padding:12px 14px;font-size:13px}.anchored-note h1{margin-bottom:6px;font-size:23px}.anchored-note h1 .german{margin-left:0;font-size:11px;display:block}.anchored-note p{font-size:12px;line-height:1.45}.anchored-note .key-prompt{margin-top:7px;font-size:12px}.anchored-note .note-detail{margin-top:4px;font-size:10px}.component-caption,.component-info{max-width:170px;font-size:9px}.component-caption .german,.component-info .german{font-size:10px}.paper-actions p{font-size:9px}.send-action{min-height:44px;padding:9px 13px;font-size:13px}.lamp-caption{display:none}.tutorial[data-stage=plugboard] .anchored-note{width:calc(100vw - 32px);max-width:350px}.component-popover{width:210px;left:0;transform:none}.tutorial[data-stage=sending] .anchored-note,.tutorial[data-stage=receiving] .anchored-note{width:calc(100vw - 40px);max-width:320px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media (min-width:900px){.anchored-note,.tutorial[data-stage=plugboard] .anchored-note{width:250px}.anchored-note h1{font-size:26px}.anchored-note p{font-size:13px}.anchored-note .german{overflow-wrap:anywhere}}@media (max-width:370px){.message-buttons{gap:5px}.send-action{gap:8px;padding:9px 10px;font-size:12px}.reset-action{gap:5px;padding:9px 8px;font-size:12px}}.tour-menu{z-index:30;max-width:calc(100vw - 40px);font:12px var(--mono);position:absolute;top:16px;right:20px}.tour-menu summary{background:#f7f2e7ed;border:1px solid #b8ae9866;border-radius:4px;justify-content:space-between;align-items:center;gap:24px;min-height:44px;padding:12px 16px;list-style:none;display:flex}.tour-menu-chevron{flex-shrink:0}.tour-menu summary::-webkit-details-marker{display:none}.tour-menu nav{background:var(--paper);border:1px solid #c8beaa;border-radius:4px;width:290px;max-width:100%;max-height:calc(100dvh - 92px);margin-top:8px;padding:8px;overflow:auto;box-shadow:0 8px 30px #443b2728}.tour-menu nav a{min-height:40px;color:var(--ink);border-radius:2px;align-items:center;gap:12px;padding:10px;font-size:11px;text-decoration:none;display:flex}.tour-menu nav a:hover,.tour-menu nav a[aria-current=page]{background:#e5dcc8}.tour-menu nav a[aria-current=page]{color:#354f3f;font-weight:700}.tour-menu nav p{letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:14px 10px 4px;font-size:9px}.chapter-number{color:#8a7a5b;font-size:9px}.intro-action:disabled{cursor:wait;opacity:.65}.lesson-navigation a{text-decoration:none}.lesson-navigation a:focus-visible{outline-offset:-4px}.lesson-navigation a[aria-disabled=true]{opacity:.5;cursor:wait}fieldset.lesson-controls{border:0;min-width:0;margin:12px 0 0;padding:0}fieldset.lesson-controls:disabled{opacity:.55}button:disabled{cursor:default}.scene-error{background:var(--paper);text-align:center;z-index:8;width:min(360px,80vw);padding:20px;font-size:14px;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}.scene-error button{background:var(--highlight-fill);border:1px solid var(--highlight-border);color:#4b402c;border-radius:3px;padding:12px}.scene-unavailable:not(.introducing) #narrative{transform:translate(24px,80px)!important}.scene-unavailable .annotation-leaders{visibility:hidden}.noscript-note{background:var(--paper);z-index:40;padding:12px;position:absolute;bottom:16px;left:20px;right:20px}@media (max-width:899px){.tour-menu{top:10px;right:12px}.tour-menu summary{min-height:40px;padding:10px 12px;font-size:10px}.intro-copy{top:70px}.configuring .anchored-note{max-height:min(360px,48dvh)}}.radio-journey{padding-top:76px}@media (max-width:359px) and (max-height:620px){.intro-copy{--intro-action-font-size:13px;top:62px}.intro-copy h1{margin-bottom:10px;font-size:26px}.intro-copy #intro-body{font-size:11.5px;line-height:1.45}.intro-copy .intro-action{min-height:44px;margin-top:12px;padding:8px 12px}}@media (min-width:600px) and (max-height:500px){.intro-copy{--intro-action-font-size:13px;width:44%;top:24px;left:24px}.intro-copy h1{margin-bottom:10px;font-size:24px}.intro-copy #intro-body{font-size:12px;line-height:1.4}.intro-copy .intro-action{min-height:40px;margin-top:10px;padding:8px 12px}.intro-gallery{width:260px;bottom:16px;left:24px;transform:none}.intro-photo{padding:4px}.intro-photo-room{margin-bottom:8px}.intro-photo-command{margin-bottom:16px}.intro-gallery figcaption{padding-top:8px;font-size:12px}.intro-gallery figcaption small{letter-spacing:.6px;font-size:8px}}.plugboard-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f7f3e8ec;border:1px solid #c5bba74f;gap:14px;bottom:24px;box-shadow:0 5px 24px #4a40240b}.plugboard-panel header .german{color:var(--muted);margin:-3px 0 10px;font:italic 13px Georgia,serif}.plugboard-panel header h1{font-size:32px}.sheet-with-plugs{flex:1;min-height:150px}.sheet-with-plugs .sheet-letters span{width:30%}.sheet-with-plugs .sheet-plugs{white-space:normal;word-spacing:7px;font-size:11px;line-height:1.7}.sheet-pending-pair{border:1px solid var(--highlight-border);background:var(--highlight-fill);color:inherit;word-spacing:normal;border-radius:3px;padding:0 3px;display:inline-block}.sheet-selectable tbody tr{cursor:pointer}.sheet-selectable tbody tr:hover{background:#dac79755}.sheet-with-plugs th button{width:100%;min-height:44px;color:inherit;font:inherit;background:0 0;padding:0}.cable-task{flex-direction:column;gap:4px;margin:0;font:14px/1.5 Georgia,serif;display:flex}.cable-task strong{color:var(--muted);font-size:12px;font-weight:400}.plug-target{border:1.5px solid var(--highlight-border);background:var(--highlight-fill);pointer-events:auto;visibility:hidden;border-radius:6px;width:44px;height:44px;padding:0;position:absolute;top:0;left:0}.plug-target:hover,.plug-target[aria-pressed=true]{background:#e8c67766;box-shadow:0 0 0 4px #e8c67722}.plug-target[aria-pressed=true]{border-width:3px}@media (max-width:899px){.plugboard-panel{height:min(51dvh,490px);overflow:auto}.plugboard-panel header h1{font-size:25px}.plugboard-panel .sheet-with-plugs{flex:1;min-height:100px}.plugboard-panel .sheet-source{display:none}.sheet-with-plugs .sheet-plugs{word-spacing:3px;font-size:10px}}.key-hint{font:10px/1.4 var(--mono);color:var(--muted);white-space:nowrap;background:#fffaf02b;border:1px solid #b8ae9870;border-radius:3px;padding:2px 5px;font-weight:400}.model-actions{gap:8px;margin:10px 0;display:grid}.model-actions button{justify-content:space-between;align-items:center;gap:14px;display:flex}#lesson-controls .keyboard-hint{margin:6px 0;display:inline-block}.lesson-navigation .next-action{border-radius:3px;flex:1;min-width:0}.lesson-navigation .next-action:disabled{opacity:.45;cursor:default}.dial-panel>.lesson-navigation{border:0;flex-shrink:0;width:100%;margin-top:0;padding:0}@media (max-width:899px){.dial-panel>.lesson-navigation .next-action{min-height:40px;padding:10px;font-size:12px}}.setting-rotor-order #narrative,.setting-rotor-order .annotation-leaders{display:none}.rotor-order-lesson{z-index:7;pointer-events:none;position:absolute;inset:0}.rotor-order-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f7f3e8ec;border:1px solid #c5bba74f;gap:12px;height:auto;bottom:auto;box-shadow:0 5px 24px #4a40240b}.rotor-order-panel header,.rotor-order-panel .sheet-heading,.rotor-order-panel .order-task{flex-shrink:0}.rotor-order-panel header h1{font-size:32px}.rotor-order-panel .german{color:var(--muted);margin:-3px 0 10px;font:italic 13px Georgia,serif}.rotor-order-panel .daily-sheet{aspect-ratio:auto;flex:0 auto;height:240px;min-height:120px}.sheet-rotor-order{white-space:pre-wrap}.sheet-order-target{border:2px solid var(--highlight-border);background:var(--highlight-fill);color:inherit;white-space:normal;border-radius:3px;padding:4px 3px;font-weight:700;display:inline-block}.order-task{margin:0;font:14px/1.4 Georgia,serif}.order-rotor-target{border:1px solid var(--highlight-border);color:#3f3828;min-width:54px;height:44px;font:16px var(--mono);pointer-events:auto;visibility:hidden;background:#f6edd4ed;border-radius:4px;padding:4px 8px;position:absolute;top:0;left:0}.order-rotor-target[aria-pressed=true],.order-rotor-target[data-destination=true]{background:#e8c67788;border-width:2px}.order-rotor-target[data-matched=true]{border-color:#51815b}.order-rotor-target:disabled{pointer-events:none;opacity:.7}@media (max-width:899px){.rotor-order-panel{gap:8px;height:auto;max-height:min(56dvh,470px);bottom:auto;overflow:auto}.rotor-order-panel .daily-sheet{height:170px;min-height:104px}.rotor-order-panel header h1{font-size:25px}.rotor-order-panel .german{margin-bottom:6px}.order-task{font-size:12px}.order-rotor-target{min-width:44px;padding:2px 4px;font-size:13px}}.rotor-order-lesson[data-seated=true] .order-rotor-target{opacity:1;min-width:20px;height:24px;padding:2px;font-size:10px}.rotor-order-lesson[data-seated=true] .order-rotor-target span{display:none}.assembly-restart{text-align:center;color:var(--ink);text-underline-offset:3px;padding:12px 18px;font-size:13px;display:block}.setting-rings #narrative,.setting-rings .annotation-leaders{display:none}.ring-lesson{z-index:7;pointer-events:none;position:absolute;inset:0}.ring-panel .ring-task,.ring-panel .ring-current{margin:0;font:14px/1.4 Georgia,serif}.ring-panel .ring-current{color:#171714}.ring-panel .lesson-controls{margin:0}.ring-panel .model-actions button{background:#e6dfcf;border:1px solid #c7bca8;border-radius:3px;min-height:44px;padding:7px 10px;font-size:12px}.ring-panel .model-actions button:hover{background:#d8cfbc}.sheet-ring-target{border:2px solid var(--highlight-border);background:var(--highlight-fill);color:inherit;white-space:nowrap;border-radius:3px;padding:4px 1px;display:block}.ring-target[data-matched=true]{background:#51815b18;border-color:#51815b}.ring-check{color:#fff;background:#51815b;border-radius:50%;place-items:center;width:20px;height:20px;font-size:13px;display:grid;position:absolute;top:-10px;right:-10px}#ring-editor{z-index:1}#ring-letter{cursor:text;touch-action:auto}@media (max-width:899px){.ring-panel .daily-sheet{height:130px;min-height:88px}.ring-panel .ring-task,.ring-panel .ring-current{font-size:12px}}
:root{--feedback-button-width:76px;--utility-button-gap:8px;--utility-button-right:max(16px, env(safe-area-inset-right))}.feedback-link,.journey-sound{bottom:max(10px, env(safe-area-inset-bottom));z-index:50;color:#514a3c;cursor:pointer;pointer-events:auto;background:#eee9dedb;border:1px solid #b5afa0;border-radius:5px;justify-content:center;align-items:center;gap:6px;min-height:28px;padding:5px 9px;font:11px/16px IBM Plex Mono,monospace;display:inline-flex;position:fixed}.feedback-link{right:var(--utility-button-right);width:var(--feedback-button-width)}.journey-sound{right:calc(var(--utility-button-right) + var(--feedback-button-width) + var(--utility-button-gap))}.feedback-link:hover,.journey-sound:hover{background:#faf6ed}.feedback-widget dialog{color:#302d25;background:#f5f1e7;border:1px solid #b5afa0;border-radius:10px;width:min(460px,100vw - 32px);max-height:calc(100dvh - 40px);padding:24px;overflow-y:auto;box-shadow:0 20px 80px #0003}.feedback-widget dialog::backdrop{background:#26231a66}.feedback-widget h2{margin:0 0 12px;font:32px Instrument Serif,serif}.feedback-widget p,.feedback-widget label{font:13px/1.6 IBM Plex Mono,monospace}.feedback-widget label{margin-bottom:6px;display:block}.feedback-widget textarea{box-sizing:border-box;resize:vertical;width:100%;color:inherit;background:#fffdf8;border:1px solid #8d8677;border-radius:4px;padding:10px;font:15px/1.5 system-ui,sans-serif}.feedback-widget .feedback-length{color:#686153;font-size:10px}.feedback-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.feedback-actions button{color:inherit;cursor:pointer;background:0 0;border:1px solid #8d8677;border-radius:4px;padding:9px 14px;font:12px IBM Plex Mono,monospace}.feedback-actions button[type=submit]{color:#fff;background:#343d32}.feedback-actions button:disabled{opacity:.5;cursor:default}.feedback-widget :focus-visible{outline-offset:3px;outline:2px solid #8c691b}
