:root{--bg:#f3f0e6;--text:#352a1c;--muted:#6b5a45;--accent:#3f5730;--accent-strong:#2e3f22;--card-bg:#fffdf7;--border:#d8c9a8;--amber:#9c6a1e}*{box-sizing:border-box}body{margin:0;color:var(--text);font-family:var(--font-shippori),"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;line-height:1.8}.scene{position:relative;min-height:100vh}.bg-layer{position:fixed;inset:0;z-index:-1;background-size:cover;background-position:50%;background-attachment:fixed;transition:opacity 1s ease}.bg-market{background-image:linear-gradient(rgba(20,14,8,.25),rgba(20,14,8,.35)),url(/assets/background/Backgrounds/market_square_at_daylight.png);transform:scale(1)}.bg-market.walking{animation:walk-zoom 4.8s ease-out forwards}@keyframes walk-zoom{0%{transform:scale(1)}to{transform:scale(1.18)}}.bg-tavern{background-image:linear-gradient(rgba(20,14,8,.45),rgba(20,14,8,.55)),url(/assets/background/Backgrounds/tavern_interior.png)}.landing{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1.5rem}.landing-panel{max-width:460px;background:#f8f0dc;border-style:solid;border-width:24px;border-image-source:url(/assets/rpg_ui/PNG/panel_brown.png);border-image-slice:33;border-image-width:24px;border-image-repeat:round;padding:1.6rem 1.8rem 2rem;text-align:center}.share-page-inner{display:flex;flex-direction:column;align-items:center}.share-page-inner .enter-btn{margin-top:1.2rem}.share-panel{max-width:560px;text-align:left}.share-panel h1{text-align:center}.share-books{margin:1.2rem 0 1.6rem}.share-book-row{display:flex;gap:.9rem;align-items:flex-start;margin-bottom:.6rem}.export-book-reason-share{margin:.3rem 0;font-size:.95rem;line-height:1.7}.sign{font-size:2rem;margin-bottom:.25rem}h1{font-size:1.6rem;font-weight:500;letter-spacing:.05em;margin:0 0 1rem;color:var(--accent-strong)}.landing-text{color:var(--muted);margin:0 0 1.4rem;font-size:.95rem;text-align:left}.enter-btn{display:inline-block;padding:.7rem 1.6rem;font-family:inherit;font-size:1rem;color:#fff;background:var(--accent);border:none;border-radius:999px;cursor:pointer;letter-spacing:.05em;text-decoration:none}.stage-area{position:relative;min-height:44vh}.mute-toggle{position:fixed;top:1rem;right:1rem;z-index:10;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:hsla(43,67%,92%,.9);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.companion-wrap{position:absolute;left:50%;bottom:0;width:clamp(220px,30vw,320px);pointer-events:none;opacity:1;transform:translateX(-50%) translateY(0) scale(1);transition:opacity 1.1s ease,transform 1.1s ease}.companion-wrap.pre-mount{opacity:0;transform:translateX(-50%) translateY(14px) scale(1)}.companion-wrap.backstage{opacity:0;transform:translateX(-50%) translateY(-70px) scale(.85)}.companion-portrait{display:block;width:100%;height:auto;filter:drop-shadow(0 12px 14px rgba(0,0,0,.45));animation:companion-idle 3.6s ease-in-out infinite}@keyframes companion-idle{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-5px) rotate(-.5deg)}}.loading-dots{display:inline-flex;gap:.25rem;margin-left:.4rem;vertical-align:middle}.loading-dots span{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:loading-dot-bounce 1.2s ease-in-out infinite}.loading-dots span:nth-child(2){animation-delay:.15s}.loading-dots span:nth-child(3){animation-delay:.3s}@keyframes loading-dot-bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-4px);opacity:1}}.item-card{position:absolute;left:50%;top:6%;transform:translateX(-50%);width:min(90%,420px);display:flex;gap:.8rem;align-items:flex-start;background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:.9rem 1rem;box-shadow:0 6px 16px rgba(0,0,0,.3);animation:item-pop .25s ease-out}@keyframes item-pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.cover{border-radius:4px;flex-shrink:0;object-fit:cover}.cover-placeholder{width:56px;height:84px;display:flex;align-items:center;justify-content:center;background:var(--bg);font-size:1.3rem}.item-title{margin:0 0 .15rem;font-weight:500}.item-authors{margin:0 0 .35rem;color:var(--muted);font-size:.88rem}.info-link{font-size:.82rem;color:var(--accent)}.dialogue-dock{padding:0 1.5rem 5.5rem}.dialogue-dock-inner{max-width:640px;margin:0 auto}.dialogue-box{position:relative;background:var(--card-bg);border:2px solid var(--accent-strong);border-radius:10px;padding:.9rem 1.1rem 1rem;min-height:4.5rem;box-shadow:0 8px 20px rgba(0,0,0,.35)}.dialogue-box,.dialogue-box.advanceable{cursor:pointer}.dialogue-name{margin:0 0 .3rem;font-size:.8rem;color:var(--amber);letter-spacing:.1em}.dialogue-text{margin:0;white-space:pre-line;min-height:1.6em}.dialogue-next{display:inline-block;margin-left:.4rem;animation:bob 1s infinite;color:var(--accent)}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.chat-form{margin-top:.8rem;animation:item-pop .2s ease-out}.chat-row{display:flex;gap:.6rem;align-items:flex-end}.chat-examples{margin:.5rem 0 0;font-size:.8rem;line-height:1.6;color:rgba(255,250,240,.75);text-shadow:0 1px 3px rgba(0,0,0,.6)}.chat-row textarea{flex:1 1;padding:.7rem .9rem;font-family:inherit;font-size:1rem;color:var(--text);background:var(--card-bg);border:1px solid var(--border);border-radius:10px;resize:none}.chat-row textarea:focus{outline:2px solid var(--accent);outline-offset:1px}.chat-row button{padding:.7rem 1.2rem;font-family:inherit;font-size:1rem;color:#fff;background:var(--accent);border:none;border-radius:999px;cursor:pointer;letter-spacing:.05em}.closing-actions{display:flex;gap:.6rem;align-items:center;margin-top:.9rem;flex-wrap:wrap}.save-btn,.share-btn{padding:.6rem 1.3rem;font-family:inherit;font-size:.95rem;color:#fff;background:var(--accent);border:none;border-radius:999px;cursor:pointer}.share-msg{margin:.6rem 0 0;font-size:.85rem;color:var(--muted);word-break:break-all}.save-btn:disabled{opacity:.6;cursor:default}.restart-btn{margin-top:.8rem;padding:.6rem 1.3rem;font-family:inherit;font-size:.95rem;color:#f8f0dc;background:transparent;border:1px solid #f8f0dc;border-radius:999px;cursor:pointer}.closing-summary{margin-top:.9rem}.closing-summary-panel{max-width:none;width:100%;text-align:left;margin-bottom:.9rem}.closing-summary-title{text-align:center;margin:0 0 1rem;font-size:1.15rem;color:var(--accent-strong)}.summary-brand{text-align:center;margin:0 0 .2rem;font-size:.78rem;letter-spacing:.1em;color:var(--amber)}.prescription-date{margin:-.4rem 0 .6rem;text-align:right;color:var(--muted);font-size:.8rem;letter-spacing:.02em}.summary-line{padding-bottom:1rem;border-bottom:1px dashed var(--border);font-size:.92rem}.start-muted-toggle,.summary-line{margin:0 0 1.2rem;color:var(--muted)}.start-muted-toggle{justify-content:center}.share-summary-toggle,.start-muted-toggle{display:flex;align-items:center;gap:.5rem;font-size:.85rem;cursor:pointer}.share-summary-toggle{margin:.7rem 0 0;color:rgba(255,250,240,.85);text-shadow:0 1px 3px rgba(0,0,0,.6)}.export-book{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #d8c9a8}.export-book:last-of-type{border-bottom:none}.export-book-title{margin:0 0 .2rem;font-size:1.05rem;font-weight:700}.export-book-authors{margin:0 0 .3rem;color:var(--muted);font-size:.85rem}.export-book-usage{margin:0;color:var(--amber);font-size:.9rem;line-height:1.5}.footer{position:fixed;left:0;right:0;bottom:0;z-index:5;background:linear-gradient(rgba(20,14,8,0),rgba(20,14,8,.82) 35%,rgba(20,14,8,.9));padding:1.6rem 1.5rem 1rem}.footer p{max-width:640px;margin:0 auto;color:rgba(255,250,240,.8);font-size:.78rem;line-height:1.6;text-shadow:0 1px 3px rgba(0,0,0,.6)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}