.game{touch-action:none}.game:before{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;border:clamp(8px,1.3vw,18px) solid transparent;border-image:linear-gradient(90deg,#5d4327,#c7a765 4%,transparent 8% 92%,#c7a765 96%,#5d4327) 1;box-shadow:inset 0 0 28px rgba(47,32,16,.3)}#world{filter:none}.spirit i{width:0;transition:width .5s ease}.round-btn{cursor:pointer;flex:0 0 auto}.collect-fx{position:fixed;z-index:30;left:0;top:0;display:none;font:52px serif;color:#fff1a6;text-shadow:0 0 18px #ffd65c;pointer-events:none}.collect-fx.play{display:block;animation:fly-to-book .9s cubic-bezier(.2,.7,.2,1) forwards}@keyframes fly-to-book{0%{transform:translate(var(--from-x),var(--from-y)) scale(.6);opacity:0}18%{opacity:1;transform:translate(var(--from-x),calc(var(--from-y) - 35px)) scale(1.5)}100%{transform:translate(var(--to-x),var(--to-y)) scale(.28) rotate(18deg);opacity:.1}}
.dialogue{position:absolute;z-index:14;left:50%;bottom:30px;translate:-50% 30px;width:min(680px,calc(100% - 36px));display:flex;gap:18px;align-items:center;padding:18px 22px;background:linear-gradient(110deg,#e9dfbf,#f5edcf 55%,#d8caa3);border:1px solid #806b43;box-shadow:0 16px 45px rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:.3s}.dialogue.visible{translate:-50% 0;opacity:1;visibility:visible}.npc-portrait{width:58px;height:58px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:#40564a;color:#eee1bb;font-size:27px;border:3px double #b99a58}.dialogue small{color:#8c6334;letter-spacing:.18em}.dialogue p{margin:6px 0;line-height:1.6}.dialogue button{position:absolute;right:18px;bottom:12px;border:0;background:none;color:#7c3c31;font-family:inherit;cursor:pointer}
.joystick{display:none;position:absolute;z-index:5;left:max(20px,env(safe-area-inset-left));bottom:max(22px,env(safe-area-inset-bottom));width:132px;height:132px}.joystick-ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(239,227,194,.65);background:radial-gradient(circle,rgba(239,227,194,.1) 0 24%,rgba(20,32,26,.64) 26%);box-shadow:inset 0 0 25px rgba(0,0,0,.3)}.joystick i{position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px;border-radius:50%;background:rgba(211,188,126,.82);border:2px solid #f0db9d;box-shadow:0 5px 15px rgba(0,0,0,.4);transition:transform .05s linear}.action-btn{right:max(24px,env(safe-area-inset-right));bottom:max(38px,env(safe-area-inset-bottom))}
.book-card{position:relative;width:min(780px,94vw);max-height:88vh;overflow:auto;padding:30px 38px;border:1px solid #917c50;box-shadow:0 20px 60px rgba(0,0,0,.45),inset 0 0 40px rgba(102,74,30,.1)}.book-card:after{content:"";position:absolute;left:50%;top:80px;bottom:62px;width:1px;background:linear-gradient(transparent,rgba(92,70,38,.3),transparent);pointer-events:none}.book-card h2{text-align:center;font-weight:500}.book-summary{text-align:center;color:#66583e}.book-pages{perspective:900px}.book-pages.turn{animation:page-turn .42s ease}@keyframes page-turn{0%{transform:rotateY(-9deg);opacity:.35}100%{transform:rotateY(0);opacity:1}}.book-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0}.book-grid button{min-height:125px;border:1px solid #9b8962;background:rgba(255,252,235,.55);color:#2d332b;font-family:inherit;padding:12px;cursor:pointer}.book-grid button b{display:block;font-size:40px}.book-grid button span{display:block;font-size:12px;line-height:1.5;margin-top:8px}.book-grid .locked{opacity:.42;cursor:not-allowed}.book-grid .learned:hover{background:#f2e4b9;transform:translateY(-2px)}.book-nav{display:flex;align-items:center;justify-content:center;gap:24px}.book-nav button{border:0;background:none;border-bottom:1px solid #8b6e3e;color:#614b29;font-family:inherit;padding:6px;cursor:pointer}.book-nav button:disabled{opacity:.3;cursor:not-allowed}.danger-link{display:block;margin:22px auto 0;border:0;border-bottom:1px solid #8c3b31;background:none;color:#8c3b31;font-family:inherit;cursor:pointer}
.round-btn:focus-visible,.seal-btn:focus-visible,.choices button:focus-visible,.trial-choices button:focus-visible,.action-btn:focus-visible{outline:3px solid #f0cf72;outline-offset:3px}@media(max-width:760px),(pointer:coarse){.game{min-height:100dvh}.joystick,.action-btn{display:block}.controls{display:none}.quest-panel{top:62px}.amo{left:166px;bottom:max(20px,env(safe-area-inset-bottom))}.topbar{gap:7px}.round-btn{width:34px;height:34px;font-size:12px}.book-card{padding:24px 16px}.book-grid{grid-template-columns:repeat(2,1fr)}.book-grid button{min-height:105px}.book-card:after{display:none}.dialogue{bottom:max(18px,env(safe-area-inset-bottom));padding:14px 16px}.dialogue p{padding-right:28px;font-size:14px}.npc-portrait{width:46px;height:46px}.opening-card p{max-width:92vw;margin-inline:auto}}@media(max-width:480px){.quest-panel{width:205px}.quest-panel small{display:none}.runes{gap:5px}.joystick{width:118px;height:118px}.joystick i{width:48px;height:48px;margin:-24px}.amo{left:148px;font-size:12px}.action-btn{width:66px;height:66px}.brand span{letter-spacing:.08em}.book-grid button b{font-size:34px}}@media(orientation:landscape) and (max-height:520px){.quest-panel{top:58px;padding:8px 12px}.quest-panel h2{margin:2px 0}.joystick{width:105px;height:105px}.action-btn{width:60px;height:60px;bottom:24px}.amo{bottom:12px}.opening-card h1{font-size:36px;margin:5px 0}.opening-card blockquote{margin:10px}.dialogue{bottom:10px}}
