:root{font-family:system-ui,sans-serif;background:#132c43;color:#ece8dc;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{min-height:46px;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.4;cursor:default}a{color:inherit}header{display:flex;justify-content:space-between;align-items:center;padding:18px 5vw;border-bottom:1px solid #355069;font-size:14px}header button{background:none;color:#e4ddcb;border:1px solid #70808c;padding:8px 15px}main{max-width:1220px;margin:auto;padding:34px 30px}.intro{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}h1{font:normal clamp(42px,5vw,68px)/1 Georgia,serif;letter-spacing:-.025em;margin:0}h1 em{color:#f5ba67}.intro p{line-height:1.7;font-size:16px}.layout{display:grid;grid-template-columns:290px 1fr;gap:38px}aside{padding-top:4px}.keeper{display:block;width:180px;height:165px;margin:0 auto 22px}.progress{display:flex;gap:5px}.progress span{flex:1;height:6px;background:#466077}.progress .done{background:#f5ba67}.progress .active{background:#f3eee0}aside h2{font:28px Georgia,serif;margin:22px 0 12px}aside p{font-size:15px;line-height:1.7;color:#ced8df}#start{background:#f5ba67;color:#142c42;border:0;padding:12px 24px;width:100%;margin:12px 0}details{border-block-end:1px solid #496177;padding:14px 0}summary{cursor:pointer;min-height:28px;padding:6px 0}details label{display:block;font-size:13px;margin:12px 0 8px}details input{width:100%;padding:12px;color:#ece8dc;background:#0d2032;border:1px solid #5c758a}.tool-buttons{display:flex;gap:6px;margin:10px 0}.tool-buttons button{font-size:12px;padding:5px;flex:1;background:#26465f;color:#ece8dc;border:1px solid #5c758a}output{display:block;overflow-wrap:anywhere;color:#f5ba67;font-family:ui-monospace,monospace}aside .small{font-size:12px;color:#aabcca;margin-top:24px}.terminal{background:#f1eee3;color:#203748;box-shadow:0 16px 40px #05142240;display:flex;flex-direction:column;min-width:0}.terminal-head{display:flex;justify-content:space-between;gap:10px;background:#244961;color:#eee8da;padding:16px 22px;font:12px ui-monospace,monospace}#chat{height:350px;overflow:auto;padding:24px;scrollbar-color:#718493 #e3dfd2}.welcome{padding:40px 0 25px;text-align:center;color:#536572}.welcome h2{font:27px/1.3 Georgia}.welcome p{font-size:14px;line-height:1.7}.lock{font:22px ui-monospace,monospace;color:#8b5930}.message{margin-bottom:22px;max-width:90%}.message.player{margin-left:auto}.message b{display:block;font-size:11px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:7px}.message p{white-space:pre-wrap;overflow-wrap:anywhere;background:#e0e3dc;padding:13px 17px;margin:0;font-size:15px;line-height:1.55}.message.player p{background:#264e66;color:#fff9eb}form{padding:16px 24px;border-top:1px solid #c8cfc9}form label{display:block;font-size:13px;margin-bottom:9px}.input-row{display:flex;gap:9px}.input-row textarea,.input-row input{min-width:0;flex:1;resize:vertical;background:#fffdf5;color:#203748;border:1px solid #9aa9aa;padding:11px}.input-row button{background:#254d64;color:#fff9eb;border:0;padding:10px 15px}form small{display:block;margin-top:7px;font-size:11px;color:#576c75}#answer-form{background:#e4e4d8}#answer{font-family:ui-monospace,monospace;text-transform:uppercase}#answer-result{font-size:14px;line-height:1.5;margin:8px 0 0}#error{background:#eed5bd;color:#762d19;margin:0 24px 16px;padding:14px;font-size:14px;line-height:1.5}footer{margin-top:26px;font-size:12px;line-height:1.7;color:#aabcca}::selection{background:#e8b15f;color:#132c43}:focus-visible{outline:3px solid #bb7826;outline-offset:3px}[hidden]{display:none!important}@media(max-width:750px){main{padding:25px 16px}.intro{display:block}.intro p{font-size:14px;margin-top:16px}h1{font-size:45px}h1 br{display:none}.layout{grid-template-columns:1fr;gap:22px}.keeper{width:100px;height:92px;float:right;margin:0 0 10px 15px}.progress{clear:both;padding-top:12px}aside h2{font-size:25px}aside p{font-size:14px}.small{display:none}details{font-size:14px}#chat{height:320px;padding:18px}.terminal-head{padding:14px}form{padding:16px}.input-row button{padding:10px;font-size:13px}.input-row textarea{min-height:74px}#error{margin:0 16px 14px}.welcome h2{font-size:23px}.welcome{padding-top:20px}.message{max-width:97%}.message p{font-size:14px}footer{font-size:11px}}
#example{width:100%;background:#26465f;color:#ece8dc;border:1px solid #5c758a;padding:10px;font-size:14px} @media(max-width:750px){h1 br{display:block}}

#cipher{min-height:44px}
@font-face{font-family:Manrope;src:url('assets/manrope-cyrillic.woff2') format('woff2');font-display:swap;unicode-range:U+0400-052F}@font-face{font-family:Manrope;src:url('assets/manrope-latin.woff2') format('woff2');font-display:swap}
:root{font-family:Manrope,sans-serif;background:#112b25;color:#efe6ca}body{background:radial-gradient(circle at 50% 0,#234839,#0f2a25 68%)}header{border-color:#496551}header button{border-color:#9f9870;color:#efe6ca}main{max-width:1360px;padding-top:20px}.intro{margin-bottom:15px}.intro h1{font-family:Georgia,serif}.intro h1 em{color:#e8bd70}.intro p{max-width:32ch;font-size:14px}.layout{grid-template-columns:minmax(270px,.95fr) minmax(0,1.05fr);gap:20px;align-items:start}aside{padding-top:0}.keeper{position:relative;display:block;width:100%;height:clamp(260px,33vw,460px);margin:0;background:#173b31 url('assets/archive.webp') center 48%/cover;border:4px solid #b48d52;box-shadow:0 15px 35px #081c17a6;overflow:hidden}.keeper:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 60%,#0c2a25ac);pointer-events:none}.keeper-glow{position:absolute;z-index:1;left:43%;top:33%;width:18%;height:25%;border-radius:50%;background:#e1bc64;filter:blur(35px);opacity:calc(var(--opened)*.025);transition:opacity .4s}.keeper-caption{position:absolute;z-index:2;bottom:14px;left:16px;color:#f7eac6;font-size:11px;letter-spacing:.17em;text-shadow:0 2px 8px #061913}.progress{display:flex;gap:5px;margin:12px 0}.progress span{height:16px;background:#263f34;border:1px solid #866d44;transform:rotate(45deg) scale(.68);transition:background .4s,transform .4s}.progress .done{background:#edca78;box-shadow:0 0 13px #e8b8659c;transform:rotate(45deg) scale(.85)}.progress .active{background:#c1844c;animation:rune 2.5s ease-in-out infinite}.terminal{background:#e8ddbf;color:#213b31;box-shadow:0 16px 40px #051b15a3}.terminal-head{background:#4b4930;color:#fff4d8;font-family:Manrope,sans-serif}.message.bot p{background:#d6d1ac}.message.player p{background:#335c4c}#chat{scrollbar-color:#8a916c #e8ddbf}.welcome{color:#476253}.lock{color:#a9793d}.input-row button,#example{background:#29533f;color:#fff5da}#answer-form{background:#e4d3aa}.input-row input,.input-row textarea{background:#fff8e7;color:#1d362c}#start{background:#ecc477;color:#1b352a}aside h2{font-family:Georgia,serif;margin:11px 0 5px}aside p{line-height:1.5;margin:4px 0 10px}details{border-color:#58745d}footer{color:#c6d0b7}:focus-visible{outline-color:#e7b669}::selection{background:#e6bc69;color:#102c24}.keeper.unlock{animation:unlock .8s}.keeper.mistake{animation:shake .4s}@keyframes unlock{50%{filter:brightness(1.6) saturate(1.3)}}@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes rune{50%{background:#f0d996;box-shadow:0 0 17px #f0d996}}@media(max-width:750px){main{padding:12px 10px}.intro{margin-bottom:8px}.intro h1{font-size:36px}.intro p{display:none}.layout{display:flex;flex-direction:column;gap:0}aside{display:contents}.keeper{order:1;width:100%;height:164px;float:none;margin:0;background-position:center 42%;border-width:3px}.keeper-caption{font-size:9px;bottom:7px}.progress{order:2;width:100%;margin:5px 0}.progress span{height:12px}aside h2{order:3;font-size:18px;margin:0 0 2px}aside>p:not(.small){order:4;font-size:11px;margin:0 0 5px;line-height:1.35}#start{order:5;margin:4px 0;min-height:44px}.terminal{order:6;width:100%}aside details{order:7;width:100%;padding:7px 0}aside .small{display:none}.terminal-head{padding:8px 12px}#chat{height:175px;padding:10px}.welcome{padding:8px 0}.welcome h2{font-size:18px;margin:4px}.welcome p{font-size:11px;margin:3px}form{padding:9px 11px}form label{font-size:11px;margin-bottom:4px}.input-row textarea{min-height:48px}.input-row button{min-height:44px}.message{margin-bottom:8px}.message p{font-size:12px;padding:7px 9px}.message b{margin-bottom:2px}footer{margin-top:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
