.bar-conversation{--rpg-ink:#101e1e;--rpg-paper:#f7f1df;--rpg-red:#d34c39;position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;margin:0;padding:0;overflow:hidden;background:linear-gradient(0deg,#051215c9,transparent 78%);color:var(--rpg-paper);font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;isolation:isolate}
.bar-conversation::backdrop{background:#05121512}
.bar-conversation button{color:inherit;cursor:pointer;font:inherit;min-height:44px;touch-action:manipulation}
.bar-top-controls{position:absolute;z-index:5;inset:max(22px,env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) auto max(28px,env(safe-area-inset-left));display:flex;justify-content:space-between;gap:16px}
.bar-top-controls button{display:flex;align-items:center;gap:10px;border:1px solid #f7f1df55;background:#101e1ee8;padding:9px 15px;font-size:12px;font-weight:700;box-shadow:3px 3px 0 #020b0c4d}
.bar-leave>span{font-size:20px}.bar-leave kbd{font:10px/1 system-ui,sans-serif;color:#c4cbbd;border:1px solid #f7f1df40;padding:4px}.bar-sound svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.bar-sound .voice-slash,.bar-conversation.is-muted .voice-waves{display:none}.bar-conversation.is-muted .voice-slash{display:block}
.bar-stage{position:absolute;bottom:max(23px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(1190px,calc(100% - 64px));display:grid;grid-template-columns:220px minmax(0,1fr);align-items:end;gap:8px}
.bar-portrait{position:relative;grid-column:1;grid-row:1;align-self:end;height:375px;margin:0 -54px 42px -22px;z-index:3;pointer-events:none;transform-origin:50% 90%;animation:portrait-arrive .45s cubic-bezier(.18,.8,.3,1) both}
.bar-portrait img{position:absolute;bottom:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(3px 0 0 #f7f1df) drop-shadow(-3px 0 0 #f7f1df) drop-shadow(0 -3px 0 #f7f1df) drop-shadow(7px 10px 0 #101e1e);z-index:1}
.bar-portrait-disc{position:absolute;inset:18% 4% -2% 1%;background:radial-gradient(circle,#f7f1df24 1px,transparent 1.7px) 0 0/7px 7px,#b74432;clip-path:polygon(6% 20%,85% 0,100% 80%,27% 100%,0 58%);transform:rotate(-7deg)}
.bar-conversation.is-speaking .bar-portrait img{animation:portrait-breathe 3.6s ease-in-out infinite}
.bar-conversation.portrait-unavailable .bar-portrait{display:none}.bar-conversation.portrait-unavailable .bar-stage{grid-template-columns:1fr}
.bar-dialogue{position:relative;grid-column:2;grid-row:1;min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:0;animation:dialogue-arrive .32s cubic-bezier(.18,.8,.3,1) both}
.bar-replies{align-self:flex-end;display:flex;flex-direction:column;align-items:stretch;gap:6px;margin:0 6px 27px 0;width:min(440px,80%)}
.bar-replies button{position:relative;display:grid;grid-template-columns:24px 1fr 20px;align-items:center;gap:10px;text-align:left;padding:10px 17px 10px 12px;border:0;box-shadow:none;color:#152625;background:var(--rpg-paper);font-size:14px;font-weight:650;line-height:1.3;clip-path:polygon(3% 0,100% 3%,97% 100%,0 96%);transition:transform .15s,color .15s,background .15s;animation:choice-arrive .28s both;animation-delay:calc(var(--choice)*45ms)}
.bar-replies button:nth-child(2){margin-right:10px;margin-left:-8px}.bar-replies button:nth-child(3){margin-right:3px;margin-left:4px}
.bar-replies button kbd{display:grid;place-items:center;width:23px;height:25px;background:var(--rpg-ink);color:var(--rpg-paper);font:800 12px/1 system-ui,sans-serif;transform:rotate(-5deg)}
.bar-replies button i{font-style:normal;font-size:19px;transition:transform .15s}.bar-replies button:hover,.bar-replies button:focus-visible{background:var(--rpg-red);color:#fff9ec;transform:translateX(-6px);outline:none}.bar-replies button:hover i,.bar-replies button:focus-visible i{transform:translate(2px,-2px)}
.bar-bubble{position:relative;background:var(--rpg-paper);padding:30px 35px 27px 38px;filter:drop-shadow(8px 9px 0 #c64634);clip-path:polygon(1.5% 0,98% 2%,100% 93%,4% 100%,0 87%);isolation:isolate;min-width:0}
.bar-bubble::before{content:'';position:absolute;inset:4px;background:linear-gradient(115deg,#122c29,#101c20);clip-path:polygon(1.5% 0,98% 2%,100% 93%,4% 100%,0 87%);z-index:-1}
.bar-speaker{position:relative;display:table;margin:-7px 0 13px -4px;padding:2px 23px 4px 14px;background:var(--rpg-paper);color:#142522;font-size:27px;font-weight:850;line-height:1;letter-spacing:-.05em;transform:rotate(-3deg);clip-path:polygon(5% 0,100% 4%,93% 100%,0 91%)}.bar-speaker span{color:var(--rpg-red)}
.bar-question{font-size:11px;line-height:1.4;font-weight:600;color:#c0cdbf;margin:0 0 9px;letter-spacing:.01em}
.bar-line{position:relative;display:block;width:100%;text-align:left;margin:0;background:transparent;border:0;padding:0!important;min-height:0!important;font-size:clamp(16px,1.7vw,21px)!important;line-height:1.48!important;font-weight:530!important;letter-spacing:.005em;cursor:pointer!important;color:#f9f4e5!important}
.bar-line-measure{display:block;visibility:hidden}.bar-spoken{position:absolute;inset:0}.bar-line:focus-visible{outline:1px dashed #f7f1df6e!important;outline-offset:6px!important}
.bar-continue{position:absolute;bottom:20px;right:25px;font-size:10px;color:var(--rpg-red);opacity:.8;transform:rotate(45deg);transition:color .2s}.line-complete .bar-continue{color:var(--rpg-paper);animation:continue-pulse 1.5s ease-in-out infinite}
.bar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 25px;padding:12px 9px 0 25px;font-size:11px;font-weight:650;line-height:1.3}
.bar-actions button{padding:3px 0;background:none;border:0;min-height:34px;white-space:nowrap;text-shadow:0 2px 7px #0006}.bar-actions button:first-child{color:#f8d492}.bar-actions button:hover{text-decoration:underline;text-underline-offset:5px}
.bar-conversation button:focus-visible{outline:2px solid #f8d492;outline-offset:4px}.bar-conversation.is-serving .bar-stage{display:none}
.bar-service{position:absolute;bottom:28px;left:50%;transform:translateX(-50%) rotate(-1deg);margin:0;padding:14px 29px;font:700 17px/1.4 system-ui,sans-serif;background:#142b29f5;border:3px solid var(--rpg-paper);box-shadow:5px 5px 0 var(--rpg-red);text-align:center;max-width:calc(100% - 70px);white-space:nowrap}
.bar-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#world.bar-session .world-footer,#world.bar-session #room-hotspots,#world.bar-session #touch-controls{visibility:hidden;pointer-events:none}
@keyframes portrait-arrive{from{opacity:0;translate:-25px 15px;rotate:-3deg}to{opacity:1;translate:0 0;rotate:0deg}}
@keyframes dialogue-arrive{from{opacity:0;translate:28px 13px}to{opacity:1;translate:0 0}}
@keyframes choice-arrive{from{opacity:0;translate:16px 0}to{opacity:1;translate:0 0}}
@keyframes portrait-breathe{50%{translate:0 -3px}}
@keyframes continue-pulse{50%{opacity:.4}}
@media(min-width:1500px){.bar-stage{grid-template-columns:260px minmax(0,1fr);width:min(1350px,calc(100% - 90px))}.bar-portrait{height:445px;margin-left:-30px}.bar-line{font-size:22px!important}.bar-bubble{padding:34px 40px 32px 45px}.bar-replies{width:460px}.bar-replies button{font-size:15px}}
@media(max-width:900px){.bar-stage{width:calc(100% - 36px);grid-template-columns:145px minmax(0,1fr);gap:0}.bar-portrait{height:280px;margin:0 -25px 55px -20px}.bar-bubble{padding:25px 25px 26px 30px}.bar-replies{width:min(380px,90%)}.bar-replies button{font-size:12px;padding:10px}.bar-line{font-size:16px!important}.bar-speaker{font-size:25px}.bar-actions{gap:4px 14px;padding-left:18px}}
@media(max-width:600px){.bar-top-controls{inset:max(14px,env(safe-area-inset-top)) 14px auto}.bar-top-controls button{font-size:11px;padding:8px 11px}.bar-leave kbd{display:none}.bar-stage{bottom:max(14px,env(safe-area-inset-bottom));width:calc(100% - 26px);display:block;max-height:calc(100dvh - 100px);overflow-y:auto;overflow-x:hidden;padding-top:100px;scrollbar-width:thin;scrollbar-color:#d0c7a4 transparent}.bar-portrait{position:absolute;right:-3px;top:0;left:auto;width:126px;height:167px;margin:0;z-index:2}.bar-portrait-disc{inset:15% 3% 0 0}.bar-portrait img{filter:drop-shadow(2px 0 0 #f7f1df) drop-shadow(-2px 0 0 #f7f1df) drop-shadow(0 -2px 0 #f7f1df)}.bar-dialogue{display:flex;padding:0 2px}.bar-bubble{order:1;padding:23px 23px 25px;clip-path:polygon(2% 0,97% 1%,100% 96%,3% 100%,0 89%)}.bar-bubble::before{clip-path:polygon(2% 0,97% 1%,100% 96%,3% 100%,0 89%)}.bar-speaker{font-size:24px;margin:-6px 0 12px -1px;padding:4px 24px 6px 14px}.bar-question{max-width:calc(100% - 70px);font-size:10px;margin-bottom:8px}.bar-line{font-size:15px!important;line-height:1.5!important}.bar-continue{bottom:14px;right:16px;font-size:8px}.bar-replies{order:2;align-self:stretch;width:auto;gap:5px;margin:10px 4px 0}.bar-replies button{font-size:12px;padding:10px 12px;min-height:44px;gap:9px}.bar-replies button:nth-child(2){margin-left:0;margin-right:5px}.bar-replies button:nth-child(3){margin-left:5px;margin-right:0}.bar-replies button kbd{font-size:11px;width:21px;height:23px}.bar-actions{order:3;gap:0 17px;padding:7px 6px 0;font-size:10px}.bar-service{font-size:15px;white-space:normal;width:max-content;box-sizing:border-box;bottom:28px}}
@media(max-height:540px) and (min-width:601px){.bar-stage{width:calc(100% - 40px);bottom:12px;grid-template-columns:140px 1fr}.bar-portrait{height:235px;margin-bottom:37px}.bar-dialogue{display:grid;grid-template-columns:minmax(0,1fr) 235px;column-gap:14px}.bar-bubble{grid-column:1;grid-row:1;padding:22px 25px;align-self:end}.bar-replies{grid-column:2;grid-row:1;align-self:end;width:auto;margin:0;gap:6px}.bar-replies button{font-size:11px;min-height:45px;padding:8px 10px;grid-template-columns:18px 1fr 12px;gap:7px}.bar-replies button kbd{width:18px;height:21px;font-size:10px}.bar-actions{grid-column:1/-1;padding-top:5px}.bar-line{font-size:14px!important;line-height:1.4!important}.bar-question{font-size:10px}.bar-speaker{font-size:23px;margin-bottom:8px}.bar-top-controls{top:12px}.bar-stage{max-height:calc(100dvh - 70px);overflow-y:auto;overflow-x:hidden}}
@media(prefers-reduced-motion:reduce){.bar-conversation *,.bar-conversation *::before{animation:none!important;transition:none!important}}
/* Expression changes as text appears; the 3D host follows the chatter envelope. */
.bar-portrait .bar-portrait-speaking{opacity:0}.has-speaking-portrait.is-speaking .bar-portrait-speaking{opacity:1}.has-speaking-portrait.is-speaking .bar-portrait-listening{opacity:0}
@media(min-width:901px){.bar-bubble{padding-left:56px}}

.bar-actions button[data-bar=outing]{color:#f0d6a0}.bar-actions button:disabled{opacity:.45;cursor:default;text-decoration:none}
