*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#4c5149;color:#f6ead2;font-family:Georgia,'Songti SC','SimSun',serif}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;border:1px solid #decba454;background:#252924a8;border-radius:5px;padding:.65em 1.1em;transition:background .15s}button:hover{background:#716348c9}button:disabled{opacity:.45;cursor:default}#game{width:100%;height:100%;display:block;touch-action:none}#vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 12vw 2vw #191b1e7a;background:linear-gradient(0deg,#131b226b,transparent 23%,transparent 85%,#22282f35)}#hud{position:absolute;top:3%;left:3%;right:3%;display:flex;align-items:center;justify-content:space-between;pointer-events:none;text-shadow:0 2px 6px #172022}#seal{display:flex;align-items:center;gap:.7em}#seal b{letter-spacing:.2em;font-size:clamp(15px,1.4vw,23px);font-weight:normal}#seal small{display:block;margin-top:.4em;font-size:clamp(10px,.9vw,14px);color:#daca9f}.cameo{display:block;color:#d1ab52;font-size:clamp(30px,4vw,60px);border:1px solid #c9ac6950;border-radius:50%;width:1.2em;height:1.25em;text-align:center;background:#342f2333}#chapter{letter-spacing:.15em;font-size:clamp(12px,1.15vw,18px);opacity:.85}#pause{pointer-events:auto}#hint{position:absolute;top:14%;left:50%;transform:translateX(-50%);text-align:center;font-size:clamp(11px,1.05vw,16px);color:#f2e4c7;text-shadow:0 2px 6px #111;background:#292c2560;border-radius:20px;padding:.5em 1.2em;pointer-events:none}#subtitle{position:absolute;bottom:9%;left:22%;right:22%;text-align:center;line-height:1.7;font-size:clamp(16px,1.65vw,27px);text-shadow:0 2px 2px #000,0 0 8px #000;pointer-events:none}#subtitle small{font-size:.62em;display:block;letter-spacing:.16em;color:#dfc898;margin-bottom:.25em}#controls{position:absolute;inset:0;pointer-events:none}#controls button,#joystick{pointer-events:auto}#joystick{position:absolute;bottom:5%;left:4%;width:clamp(82px,10vw,146px);aspect-ratio:1;border:1px solid #e8dfc53a;border-radius:50%;background:#35403c25;touch-action:none;display:grid;place-items:center}#joystick span{width:38%;height:38%;border-radius:50%;border:1px solid #ece2c96b;background:#e9dbb521;pointer-events:none}#joystick i{position:absolute;bottom:10%;font-size:11px;opacity:.6;font-style:normal;pointer-events:none}#altitude{position:absolute;bottom:8%;right:18%;display:flex;flex-direction:column;gap:.55em}#altitude button{width:3em;height:3em;padding:0;background:#2b332b55}#actions{position:absolute;right:3%;bottom:5%;display:flex;flex-direction:column;gap:.65em;min-width:clamp(94px,11vw,170px);font-size:clamp(12px,1.05vw,17px)}#actions button{min-height:3em;background:#2c302760;backdrop-filter:blur(5px)}#book{color:#e2c693}#overlay{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:#131c2460;backdrop-filter:blur(5px)}#overlay.active{display:flex}.panel{width:min(90%,1050px);max-height:88%;overflow:auto;padding:clamp(20px,3vw,48px);border:1px solid #cbb4826b;background:linear-gradient(125deg,#272e2bee,#151d22ee);box-shadow:0 20px 100px #0006;border-radius:6px;position:relative}.panel h1{font-size:clamp(32px,5vw,68px);font-weight:normal;letter-spacing:.2em;margin:.25em 0}.panel h2{font-weight:normal;letter-spacing:.15em;margin:.2em 0 .7em}.panel p{line-height:1.9;color:#dfd6bf}.eyebrow{font-size:12px;letter-spacing:.28em;color:#c6ae7e}.intro{max-width:650px;margin-right:auto;margin-left:5%;background:linear-gradient(110deg,#222a29ec,#222a29aa)}.intro .lead{font-size:clamp(16px,1.7vw,23px)}.intro footer{margin-top:1.6em;font-size:11px;color:#b5b8ad;line-height:1.7}.primary{background:#c8aa6b!important;color:#272b27;border-color:#dac396}.buttonrow{display:flex;flex-wrap:wrap;gap:.6em;margin-top:1em}.notebook{max-height:92%;background:linear-gradient(100deg,#d6c29d,#f0dfb9 47%,#c3aa83 50%,#e0cca6 53%,#ddc59b);color:#493b2d;width:92%;max-width:1250px;box-shadow:0 15px 100px #000a;padding:2.3vw}.notebook p{color:#62503b}.notebook button{background:#fff5d934;color:#493b2d;border-color:#745b3b60}.bookhead{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #8c6b4260;margin-bottom:1em}.bookgrid{display:grid;grid-template-columns:1.2fr 1fr;gap:3vw}.notes{display:grid;grid-template-columns:1fr 1fr;gap:.65em;max-height:41vh;overflow:auto;padding:.3em}.note{font-size:clamp(11px,1vw,16px);line-height:1.65;box-shadow:1px 2px 4px #654a2730;position:relative;text-align:left;border-radius:1px!important;background:#f4e5bd!important;transform:rotate(-.7deg);padding:.7em!important}.note.selected{outline:2px solid #8c5d32;transform:rotate(1deg);background:#ffe9ae!important}.note small{font-size:.75em;display:block;color:#957450;margin-bottom:.25em}.card{border-bottom:1px solid #a0856059;padding:.7em 0}.card b{font-weight:normal;font-size:1.2em}.card small{margin-left:.65em;color:#876e50}.card button{padding:.35em .6em;font-size:.85em;margin-top:.4em}.card p{font-size:.8em;margin:.5em 0}.merge{border:1px dashed #8f7147;margin-top:.8em;padding:.8em;font-size:.9em;line-height:1.6;min-height:4em}.route{display:flex;flex-wrap:wrap;gap:.5em;margin-top:1em}.route button{font-size:.78em;padding:.5em .6em}.muted{opacity:.7;font-size:.8em}.close{position:absolute;right:1em;top:1em}.night{text-align:center;max-width:800px;background:#172128df}.night blockquote{font-size:clamp(17px,1.8vw,25px);line-height:1.9;color:#e8d5af;margin:1em}.night .truth{font-size:clamp(12px,1.1vw,17px);line-height:1.8;color:#b6c4c6}#toast{position:absolute;left:50%;bottom:25%;transform:translateX(-50%);padding:.6em 1.4em;border-radius:25px;background:#172321db;font-size:13px;color:#e4d3b2;pointer-events:none;opacity:0;transition:opacity .3s;max-width:60%;text-align:center}@media(max-height:520px){.panel{max-height:94%;padding:1.5em}.intro footer{margin-top:.6em}.panel h1{font-size:36px}#subtitle{bottom:7%;font-size:17px}.notes{max-height:34vh}.bookhead{margin-bottom:.3em}.bookhead h2{font-size:20px}.card{padding:.4em 0}.notebook{font-size:12px}#hint{top:15%}#joystick{width:84px}#actions{gap:.35em}#altitude{right:18%;bottom:6%}}