.reading-spirit{position:fixed;right:24px;bottom:max(20px,env(safe-area-inset-bottom));z-index:40;font-family:inherit;color:#183f3b}.reading-spirit[hidden],.spirit-panel[hidden]{display:none!important}.spirit-launch{display:flex;align-items:center;gap:8px;padding:8px 14px 8px 9px!important;background:#fffdf6!important;border:1px solid #d1ddd2!important;border-radius:40px!important;box-shadow:0 7px 25px #143e3021;cursor:pointer;color:#183f3b!important;transition:box-shadow .2s}.spirit-launch:hover{box-shadow:0 10px 32px #143e3038}.spirit-launch:focus-visible,.spirit-panel button:focus-visible{outline:3px solid #d5a16b;outline-offset:3px}.spirit-label{display:flex;flex-direction:column;text-align:left;gap:3px;font-size:14px}.spirit-label small{font-size:10px;color:#708171;letter-spacing:.06em}.spirit-mascot{position:relative;display:block;width:68px;height:64px;flex:none;animation:spirit-float 4.5s ease-in-out infinite;transform-origin:center bottom}.spirit-halo{position:absolute;inset:3px;border-radius:50%;background:#e2eddf}.spirit-page{position:absolute;top:16px;width:29px;height:35px;background:#fcf7e5;border:2px solid #20514a;box-shadow:0 4px 0 #80a994}.spirit-left{left:5px;border-radius:10px 3px 4px 9px;transform:skewY(8deg)}.spirit-right{right:5px;border-radius:3px 10px 9px 4px;transform:skewY(-8deg)}.spirit-page:after{content:'';position:absolute;left:5px;right:5px;bottom:6px;height:1px;background:#c6d4b6;box-shadow:0 -4px 0 #d5dfc7}.spirit-spine{position:absolute;left:33px;top:19px;width:2px;height:32px;background:#20514a}.spirit-eye{position:absolute;top:29px;width:5px;height:7px;border-radius:50%;background:#173f39;animation:spirit-blink 7s infinite}.spirit-eye.one{left:22px}.spirit-eye.two{right:22px}.spirit-smile{position:absolute;left:29px;top:37px;width:10px;height:5px;border-bottom:2px solid #173f39;border-radius:0 0 12px 12px}.spirit-leaf{position:absolute;left:32px;top:5px;width:13px;height:10px;border-radius:12px 2px 12px 2px;background:#c48855;transform:rotate(-20deg)}.spirit-spark{position:absolute;right:0;top:6px;width:7px;height:7px;background:#d7ad6c;transform:rotate(45deg);border-radius:2px}.spirit-foot{position:absolute;bottom:3px;width:10px;height:4px;background:#20514a;border-radius:50%}.spirit-foot.one{left:18px}.spirit-foot.two{right:18px}.spirit-panel{position:absolute;right:0;bottom:91px;width:min(374px,calc(100vw - 32px));max-height:min(650px,calc(100dvh - 145px));overflow:auto;border:1px solid #d4ded0;border-radius:22px;background:#fffdf7;box-shadow:0 18px 65px #163b302b;padding:21px;overscroll-behavior:contain;text-align:left}.spirit-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.spirit-top h2{font-size:21px;margin:0 0 4px;letter-spacing:.01em}.spirit-top p{font-size:12px;margin:0;color:#6f7a6e}.spirit-close{padding:4px 10px!important;border:none!important;background:transparent!important;font-size:23px;line-height:1}.spirit-context{font-size:12px;padding:11px 12px;border-radius:11px;background:#edf1e6;margin:16px 0 9px;line-height:1.65;overflow-wrap:anywhere}.spirit-connection{font-size:12px;line-height:1.7;margin:0 0 14px;color:#786c54}.spirit-greeting{font-size:14px;line-height:1.8;margin:8px 0 13px}.spirit-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.spirit-actions button{padding:10px 7px!important;background:#f6f4ed;border:1px solid #e1e3d7;border-radius:11px;font-size:12px;line-height:1.4;white-space:normal}.spirit-actions button:disabled{opacity:.45;cursor:default}.spirit-selection{font-size:12px;line-height:1.65;padding:9px 11px;border-left:2px solid #c28d5a;background:#f6f1e5;white-space:pre-wrap;overflow-wrap:anywhere;max-height:82px;overflow:auto}.spirit-panel label{font-size:12px;display:block}.spirit-panel textarea{width:100%;box-sizing:border-box;min-height:88px;resize:vertical;margin:7px 0 9px;padding:11px;border:1px solid #d4dace;border-radius:11px;background:#fff;font-family:inherit;font-size:14px;line-height:1.7}.spirit-send-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.spirit-send{padding:10px 20px!important;background:#20514a!important;color:#fff!important;border:0!important;border-radius:12px;font-size:13px}.spirit-send:disabled{background:#cbd3c7!important;color:#667360!important;cursor:not-allowed}.spirit-status{font-size:12px;line-height:1.6;color:#95593f;margin:8px 0;white-space:pre-wrap}.spirit-messages{display:grid;gap:10px;max-height:250px;overflow:auto;scrollbar-width:thin}.spirit-message{font-size:13px;line-height:1.8;padding:11px 12px;border-radius:12px;background:#edf2e9;white-space:pre-wrap;overflow-wrap:anywhere}.spirit-message.user{background:#f3ebdd}.spirit-message small{display:block;font-size:10px;color:#75836f;margin-bottom:4px}.spirit-refs{font-size:11px;line-height:1.6;margin:8px 0}.spirit-refs a{display:block;margin:4px 0;overflow-wrap:anywhere}.spirit-footer{display:flex;justify-content:space-between;gap:8px;margin-top:15px;padding-top:12px;border-top:1px solid #e6e7db}.spirit-footer button{padding:3px 0!important;background:none!important;border:none!important;color:#647860;font-size:11px}.reading-spirit.quiet .spirit-mascot,.reading-spirit.quiet .spirit-eye{animation:none}.reading-spirit.thinking .spirit-spark{animation:spirit-glow 1s ease-in-out infinite}.reading-spirit.quiet.thinking .spirit-spark{animation:none}.reading-spirit.sleeping .spirit-label{display:none}.reading-spirit.sleeping .spirit-launch{padding-right:9px!important}.reading-spirit.sleeping .spirit-mascot{transform:scale(.72);margin:-8px -8px}.reading-spirit.sleeping .spirit-panel{bottom:72px}@keyframes spirit-float{0%,100%{translate:0 0}50%{translate:0 -4px}}@keyframes spirit-blink{0%,42%,46%,100%{transform:scaleY(1)}44%{transform:scaleY(.12)}}@keyframes spirit-glow{0%,100%{opacity:.4}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.spirit-mascot,.spirit-eye,.reading-spirit.thinking .spirit-spark{animation:none!important}}@media(max-width:600px){.reading-spirit{right:14px;bottom:max(15px,env(safe-area-inset-bottom))}.spirit-panel{padding:18px;bottom:86px}.spirit-label small{max-width:65px}.spirit-mascot{width:62px}.reader-wrap footer{padding-bottom:110px}}
