:root{--ink:#143642;--blue:#4a75e2;--yellow:#ffd700;--paper:#fdfdec;--line:#cbd7d7;--muted:#4c626c}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.47 'Source Sans 3',sans-serif}
button,input,select{font:inherit}button{cursor:pointer}a{color:#2d58c4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
h1,h2,h3,.button,.eyebrow,.file-tab,.mission-top,.puzzle-head,.place-label,.start-facts,.route-list,.seal{font-family:'Plus Jakarta Sans',sans-serif}h1,h2,h3,p{margin-top:0}
.shell{width:min(100% - 36px,1080px);margin-inline:auto}.site-head{background:#fff;border-bottom:1px solid var(--line)}.head-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:15px}.logo{width:154px;display:block;flex:none}.logo img{display:block;width:100%}.back{text-decoration:none;font-weight:800;font-size:14px;border-bottom:2px solid var(--yellow)}
.game-title{padding:26px 0 24px}.eyebrow{display:block;color:#315bc9;font-size:12px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.game-title h1{font-size:clamp(36px,5vw,56px);line-height:1.08;letter-spacing:-.05em;margin:5px 0 8px}.game-title p{font-size:18px;color:var(--muted);margin:0;max-width:690px}
.start-panel,.mission,.journal,.final-panel{background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 14px 32px rgba(20,54,66,.06)}
.start-panel{position:relative;overflow:hidden;padding:32px;max-width:770px;border-top:6px solid var(--yellow)}.start-mark{position:absolute;right:22px;top:28px;width:92px;transform:rotate(8deg);opacity:.35}.file-tab{display:inline-block;background:#e8eeff;color:#315bc9;border-radius:5px;padding:7px 10px;font-size:12px;font-weight:800;letter-spacing:.08em}.start-panel h2{font-size:clamp(25px,3vw,34px);line-height:1.18;letter-spacing:-.035em;max-width:570px;margin:19px 0 12px}.lead{font-size:18px;max-width:630px}.start-facts{display:flex;flex-wrap:wrap;gap:9px;margin:22px 0}.start-facts span{background:#f0f4ff;border-radius:9px;padding:10px 13px;font-size:14px;font-weight:700}.start-facts strong{font-size:20px;color:#315bc9}.level-label{display:grid;gap:7px;font-weight:800;font-size:15px;max-width:360px;margin-bottom:16px}.level-label select{min-height:48px;border:1px solid #aabec4;border-radius:8px;background:#fff;color:var(--ink);padding:9px 12px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:8px;border:0;padding:11px 17px;font-weight:800;font-size:14px;text-align:center}.button-primary{background:var(--blue);color:#fff}.button-primary:hover{background:#315fcf}.note{font-size:14px;color:var(--muted);max-width:600px;margin:17px 0 0}
.game-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}.mission{padding:26px}.mission-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;font-weight:800}.mission-top>span:last-child{color:var(--muted)}.meter{height:7px;border-radius:10px;background:#dce5f3;margin:12px 0 25px;overflow:hidden}.meter span{display:block;width:0;height:100%;background:var(--blue);border-radius:inherit;transition:width .35s}
.place-card{display:flex;gap:16px;align-items:center}.place-stamp{width:57px;height:57px;flex:none;display:grid;place-items:center;background:var(--yellow);border-radius:12px;font:800 21px 'Plus Jakarta Sans',sans-serif}.place-label{display:block;font-size:12px;letter-spacing:.09em;text-transform:uppercase;font-weight:800;color:#315bc9}.place-card h2{font-size:clamp(24px,3vw,31px);line-height:1.17;letter-spacing:-.035em;margin:3px 0 0}.scene{font-size:18px;line-height:1.47;margin:22px 0}.walk{border-left:4px solid var(--yellow);padding:12px 16px;background:#fcfae9;border-radius:0 9px 9px 0}.walk strong{font-size:14px}.walk p{margin:5px 0;font-size:15px}.walk a{font-weight:800;font-size:14px}.puzzle{margin-top:24px;border-top:1px solid var(--line);padding-top:22px}.puzzle-head{display:flex;justify-content:space-between;gap:8px;text-transform:uppercase;font-size:12px;letter-spacing:.06em;color:#315bc9;font-weight:800}.puzzle h3{font-size:21px;line-height:1.28;margin:14px 0 17px}.answers{display:grid;gap:9px}.answer{width:100%;min-height:52px;text-align:left;background:#fff;color:var(--ink);border:1px solid #aebec4;border-radius:9px;padding:11px 15px;font-weight:700;font-size:16px}.answer:hover{border-color:var(--blue);background:#f1f5ff}.answer:disabled{cursor:default}.answer.is-correct{background:#e5f4eb;border-color:#2b8053}.answer.is-wrong{border-color:#a5392f;background:#fff0ed}.hint,.text-button{border:0;background:none;color:#315bc9;text-decoration:underline;text-underline-offset:3px;padding:11px 0;font-weight:800;font-size:15px}.feedback{min-height:23px;margin:6px 0;color:#315bc9;font-weight:700;font-size:15px}.feedback.error{color:#a13126}.explanation{background:#e8f4eb;border-left:4px solid #2b8053;border-radius:0 9px 9px 0;padding:17px;margin-top:16px}.explanation strong{font:800 14px 'Plus Jakarta Sans',sans-serif}.explanation p{margin:6px 0 15px}.discovery{margin-top:25px;padding:22px;background:#fff6ba;border-radius:12px;border:1px solid #e9d257;animation:rise .35s ease both}.discovery .eyebrow{color:#6b5300}.discovery-row{display:flex;align-items:flex-start;gap:17px;margin-top:12px}.found-letter{width:72px;height:82px;flex:none;display:grid;place-items:center;background:#fff;border:2px solid var(--ink);border-radius:8px;font:800 44px 'Plus Jakarta Sans',sans-serif}.discovery h3{font-size:20px;margin:3px 0 7px}.discovery p{margin:0;font-size:16px}.discovery-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:20px}.discovery-actions a{font-size:14px;font-weight:800}
.journal{padding:22px;position:sticky;top:15px}.journal h2{font-size:20px;margin:6px 0 15px}.code-strip{display:flex;gap:5px}.code-strip span{flex:1;min-width:0;min-height:36px;display:grid;place-items:center;border:1px solid #bacbd6;border-radius:6px;background:#f2f5fc;font:800 18px 'Plus Jakarta Sans',sans-serif}.code-strip span.open{background:var(--yellow);border-color:#ddbf1c}.route-list{list-style:none;margin:19px 0;padding:0}.route-list li{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);padding:9px 0;font-size:13px;font-weight:700;color:var(--muted)}.route-list li b{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#eef2f5;color:var(--ink);flex:none;font-size:11px}.route-list li.current{color:#315bc9}.route-list li.current b{background:#e2eaff;color:#315bc9}.route-list li.done b{background:var(--yellow)}.safety{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;margin:0}
.final-panel{padding:30px;max-width:790px;border-top:6px solid var(--yellow)}.final-panel h2{font-size:clamp(27px,3vw,34px);margin:9px 0}.final-panel>p{font-size:17px;max-width:650px}.final-letters{max-width:520px;margin:23px 0}.final-letters span{min-height:50px;font-size:25px}.final-panel form label{font-size:15px;font-weight:800}.final-entry{display:flex;gap:9px;margin-top:7px}.final-entry input{min-width:0;flex:1;max-width:270px;min-height:48px;border:1px solid #aebec4;border-radius:8px;padding:9px 12px;text-transform:uppercase;font-weight:800;letter-spacing:.12em}.success{background:#edf5e9;border-radius:13px;padding:22px;margin-top:20px}.seal{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:var(--yellow);font-size:28px}.success h3{font-size:25px;margin:12px 0 7px}.success p{margin-bottom:12px}.success a{font-weight:800}.final-actions{display:flex;gap:21px;align-items:center;margin-top:18px}.final-actions a{font-size:14px;font-weight:800}
.footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:35px 0;color:var(--muted);font-size:13px}
[hidden]{display:none!important}@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:820px){.game-grid{grid-template-columns:1fr}.journal{position:static;order:2}.route-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}}
@media(max-width:560px){.shell{width:min(100% - 28px,1080px)}.head-inner{min-height:68px}.logo{width:126px}.back{font-size:12px}.game-title{padding:20px 0}.game-title h1{font-size:36px}.game-title p{font-size:16px}.start-panel,.mission,.final-panel{padding:20px}.start-mark{width:65px;right:13px;top:16px}.lead{font-size:16px}.start-facts span{font-size:12px;padding:8px 9px}.start-facts strong{font-size:17px}.start-panel .button,.discovery-actions .button{width:100%}.mission-top{font-size:12px}.place-stamp{width:48px;height:48px;font-size:18px}.place-card h2{font-size:23px}.scene{font-size:17px}.puzzle h3{font-size:19px}.discovery-row{gap:11px}.found-letter{width:54px;height:65px;font-size:36px}.discovery-actions{align-items:stretch}.journal{padding:18px}.route-list li{font-size:12px}.final-entry{flex-direction:column}.final-entry input{max-width:none}.final-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.meter span{transition:none}.discovery{animation:none}}

.secret-account{margin:1rem 0;padding:1rem;border:1px solid #c9d7d3;border-radius:14px;background:#f8fbf9;color:#143642}.secret-account form,.secret-account #secretActions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.6rem}.secret-account [hidden]{display:none!important}.secret-account input{font:inherit;max-width:18rem;padding:.5rem;border:1px solid #879b99;border-radius:6px}.secret-account button{font:inherit;padding:.5rem .7rem;border:1px solid #849b99;border-radius:8px;background:white;color:#143642;cursor:pointer}.secret-account button:disabled{opacity:.55;cursor:not-allowed}.secret-account #secretCompare,.secret-account #secretStatus{margin:.5rem 0 0;font-size:.95rem}
