.talk-prompt{position:absolute;z-index:3;display:flex;align-items:center;gap:13px;max-width:calc(100% - 12px);padding:10px 13px;border:2px solid #5a503a;border-radius:10px;background:#fff1cf;color:#2c352b;box-shadow:3px 4px 0 #12201d70;line-height:1.35;touch-action:manipulation}
.talk-prompt:after{content:"";position:absolute;left:var(--talk-tail,50%);top:100%;width:12px;height:12px;background:#fff1cf;border:solid #5a503a;border-width:0 2px 2px 0;transform:translate(-50%,-5px) rotate(45deg)}
.talk-invitation{font-size:14px;font-weight:700}.talk-action{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap;color:#655839}.talk-action kbd{padding:2px 6px;font-size:15px;font-weight:800;line-height:1.2;box-shadow:0 2px #907a50;border:1px solid #8e7d53;border-radius:4px;background:#ead8a8;color:#344237}
.talk-prompt:hover{background:#fff9e2;transform:translateY(-2px)}
.stage.is-conversing :is(.prompt,.edges,.talk-prompt,.help-panel,.camera-controls,.author-entry){visibility:hidden}
.stage.is-fatal > :not(canvas){visibility:hidden}
.fatal-layer{position:fixed;inset:0;z-index:40;overflow:hidden;background:transparent;outline:none;touch-action:none}
.fatal-impact{position:absolute;inset:0;pointer-events:none;opacity:var(--fatal-impact,0);background:radial-gradient(ellipse at center,transparent 20%,#a12720 100%)}
.fatal-result{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:35px;background:#0b1119b5;color:#db4d47;animation:fatal-fade 1s ease both}
#death-title{margin:0 0 0 .16em;font:600 clamp(68px,11vw,148px)/1 Consolas,monospace;letter-spacing:.16em;text-shadow:3px 2px 0 #3d1d23,0 0 35px #942e264d}
#restart-town{min-height:44px;padding:10px 21px;border:1px solid #b6ad9385;border-radius:3px;color:#e6d9bf;background:#1c2b2bd9;font:14px system-ui;cursor:pointer}
#restart-town span{margin-left:20px;color:#9b9b8a}#restart-town:hover{background:#32403b}#restart-town:focus-visible{outline:2px solid #efd6a3;outline-offset:5px}
@keyframes fatal-fade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.fatal-result{animation:none}}
.encounter-layer{--actor-w:clamp(128px,14vw,218px);--actor-h:clamp(180px,32vh,312px);--actor-edge:clamp(16px,2.4vw,38px);--actor-bottom:clamp(22px,4vh,42px);position:fixed;inset:0;z-index:30;width:100%;height:100dvh;overflow:hidden;background:none;border:0;padding:0;margin:0;color:#26392f;isolation:isolate}
.encounter-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.encounter-scene{position:absolute;inset:0;background:none;pointer-events:none}
.encounter-character{position:absolute;bottom:var(--actor-bottom);width:var(--actor-w);height:var(--actor-h);display:flex;flex-direction:column;align-items:center;z-index:2;pointer-events:none;filter:saturate(.8) brightness(.91);transform:translateY(3px);transition:filter .18s,transform .18s}
.encounter-character.is-npc{left:var(--actor-edge)}.encounter-character.is-visitor{right:var(--actor-edge)}
.encounter-character.is-speaking{filter:none;transform:translateY(0)}
.encounter-art{height:calc(100% - 26px);width:100%;display:flex;align-items:end;justify-content:center}
.encounter-art svg{height:100%;width:100%;overflow:visible;filter:drop-shadow(2px 3px 0 #07181180) drop-shadow(0 0 3px #e9e1b44d)}
.is-visitor .encounter-art svg{transform:scaleX(-1)}
.encounter-character-name{display:block;white-space:nowrap;margin-top:4px;padding:2px 7px;color:#f7ecd0;background:#20382bd9;border:1px solid #b9c29c66;border-radius:3px;font-size:12px;line-height:1.5;font-weight:700;letter-spacing:.05em}
.encounter-bubble{position:absolute;z-index:3;left:calc(var(--actor-edge) + var(--actor-w) - 12px);bottom:calc(var(--actor-bottom) + clamp(80px,14vh,142px));width:min(27vw,380px);padding:18px 21px 12px;background:#fff5da;border:2px solid #44533f;border-radius:17px;box-shadow:3px 4px 0 #10251f66;pointer-events:none}
.encounter-layer[data-speaker="visitor"] .encounter-bubble{left:auto;right:calc(var(--actor-edge) + var(--actor-w) - 12px)}
.encounter-bubble:after{content:"";position:absolute;left:-11px;bottom:22px;width:20px;height:18px;background:#fff5da;border:solid #44533f;border-width:0 0 2px 2px;transform:skewY(-20deg) rotate(26deg);border-radius:0 0 0 3px}
.encounter-layer[data-speaker="visitor"] .encounter-bubble:after{left:auto;right:-11px;border-width:2px 2px 0 0;transform:skewY(20deg) rotate(26deg)}
#conversation-name{position:relative;z-index:1;margin:0 0 8px;color:#617c52;font-size:12px;font-weight:800;letter-spacing:.06em;line-height:1.4}
#conversation-line{position:relative;z-index:1;margin:0;min-height:3.2em;color:#26392f;font-size:clamp(16px,1.4vw,21px);font-weight:650;line-height:1.65;text-wrap:pretty}
.encounter-continue{position:relative;z-index:1;display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:9px;font-size:10px;line-height:1.5;color:#728363}.encounter-continue b{color:#536f4b;font:18px/1 sans-serif;animation:talk-cue 1.4s ease-in-out infinite}
#conversation-next{position:absolute;z-index:5;inset:0;margin:0;padding:0;width:100%;height:100%;appearance:none;border:0;background:transparent;color:transparent;pointer-events:auto;touch-action:manipulation;cursor:pointer}
#conversation-next:focus-visible{outline:none}
.encounter-scene:has(#conversation-next:focus-visible) .encounter-continue span{text-decoration:underline;text-underline-offset:3px;color:#4f6847}
.encounter-controls{position:absolute;z-index:7;right:max(20px,env(safe-area-inset-right));top:max(24px,env(safe-area-inset-top));display:flex;align-items:center;gap:8px}
.encounter-controls button{display:flex;align-items:center;gap:8px;margin:0;min-height:35px;padding:6px 10px;color:#f3e7c8;background:#20392eea;border:1px solid #a5b08e;border-radius:4px;font-size:11px;line-height:1.4;box-shadow:2px 3px 0 #0d1e2550}
.encounter-controls button:hover{background:#365445}.encounter-controls kbd{font-size:10px;color:#b2bca0}.encounter-controls #conversation-close span{font:21px/1 sans-serif}
.encounter-help{position:absolute;z-index:6;bottom:8px;left:var(--actor-edge);display:flex;align-items:center;gap:12px;padding:2px 6px;font-size:10px;line-height:1.5;color:#dfdec3;background:#1d362dc7;border-radius:3px;pointer-events:none}.encounter-page{color:#9fb095;font-family:Consolas,monospace;font-size:9px}
@keyframes talk-cue{50%{transform:translateX(2px)}}
@media(max-width:700px){
  .talk-prompt{padding:8px 10px;gap:9px}.talk-invitation{font-size:12px}
  .encounter-layer{--actor-w:clamp(80px,24vw,108px);--actor-h:clamp(128px,22vh,176px);--actor-edge:12px;--actor-bottom:25px}
  .encounter-art{height:calc(100% - 22px)}.encounter-character-name{font-size:10px;margin-top:2px;padding:1px 5px;letter-spacing:0}
  .encounter-bubble,.encounter-layer[data-speaker="visitor"] .encounter-bubble{left:12px;right:auto;bottom:calc(var(--actor-bottom) + var(--actor-h) - 14px);width:min(42vw,190px);padding:13px 13px 9px;border-radius:13px}
  .encounter-layer[data-speaker="visitor"] .encounter-bubble{left:auto;right:12px}
  .encounter-bubble:after{left:25px;bottom:-10px;transform:rotate(-45deg);width:17px;height:17px;border-width:0 0 2px 2px}.encounter-layer[data-speaker="visitor"] .encounter-bubble:after{left:auto;right:25px;bottom:-10px;transform:rotate(45deg);border-width:0 2px 2px 0}
  #conversation-name{font-size:11px;margin-bottom:6px}#conversation-line{font-size:15px;line-height:1.7;min-height:0}.encounter-continue{font-size:9px;gap:6px;margin-top:8px}
  .encounter-controls{top:max(24px,env(safe-area-inset-top));right:12px;gap:5px}.encounter-controls button{padding:5px 7px;min-height:34px;font-size:10px;gap:5px}.encounter-controls kbd{display:none}
  .encounter-help{font-size:9px;gap:8px;bottom:6px}.encounter-page{font-size:8px}
}
@media(max-height:550px) and (min-width:701px){
  .encounter-layer{--actor-w:125px;--actor-h:171px;--actor-bottom:23px;--actor-edge:18px}
  .encounter-bubble{bottom:93px;width:29vw;max-width:274px;padding:12px 15px 9px}.encounter-controls{top:16px;right:16px}.encounter-controls button{min-height:31px;padding:4px 8px}
  #conversation-name{font-size:11px;margin-bottom:5px}#conversation-line{font-size:16px;line-height:1.55;min-height:0}.encounter-continue{margin-top:7px;font-size:9px}
}
@media(max-height:550px) and (max-width:700px){.encounter-layer{--actor-h:112px;--actor-w:80px}.encounter-bubble,.encounter-layer[data-speaker="visitor"] .encounter-bubble{bottom:123px}#conversation-line{font-size:14px;line-height:1.55}}
@media(prefers-reduced-motion:reduce){.encounter-character{transition:none}.encounter-continue b{animation:none}}
@media(max-width:620px){.camera-controls{flex-wrap:wrap}.camera-controls .hud-row{flex:1 0 100%;justify-content:center}.camera-controls .hud-row+.hud-row{padding:6px 0 0;border-left:0;border-top:1px solid #697c685e}}
/* Leave the persistent music switch its own row, including short/mobile views. */
.encounter-controls{top:max(40px,calc(env(safe-area-inset-top) + 35px))}
