.npc-dialogue-modal[hidden]{display:none!important}
.npc-dialogue-modal{position:fixed;inset:0;z-index:9850;display:grid;place-items:center;padding:26px;font-family:Arial,Helvetica,sans-serif}
.npc-dialogue-modal__backdrop{position:absolute;inset:0;background:rgba(11,6,9,.72);backdrop-filter:blur(5px)}
.npc-dialogue-modal__dialog{position:relative;z-index:1;width:min(760px,calc(100vw - 52px));max-height:min(820px,calc(100dvh - 52px));overflow:auto;border:1px solid rgba(213,168,74,.68);border-radius:18px;background:linear-gradient(180deg,#fbf3e4,#f4ead9);box-shadow:0 32px 95px rgba(0,0,0,.58)}
.npc-dialogue-modal__dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:17px 19px;background:linear-gradient(110deg,#281016,#491620);color:#fff5e7;border-bottom:1px solid rgba(219,175,83,.42)}
.npc-dialogue-modal__dialog>header small{display:block;margin-bottom:4px;color:#d7ad61;font:bold .61rem/1 Arial,sans-serif;letter-spacing:.17em}
.npc-dialogue-modal__dialog>header h2{margin:0;font:700 1.35rem Georgia,serif}.npc-dialogue-modal__dialog>header span{display:block;margin-top:4px;color:#d8c7b1;font-size:.73rem}
.npc-dialogue-modal__dialog>header button{width:38px;height:38px;border:1px solid rgba(236,196,109,.42);border-radius:50%;background:#35131a;color:#f2ce7b;font-size:24px;cursor:pointer}
.npc-dialogue-modal__body{padding:22px 22px 14px;color:#3e302b}.npc-dialogue-modal__body p{margin:0;font:1rem/1.65 Georgia,serif;white-space:pre-wrap}
.npc-dialogue-modal__options{display:grid;gap:9px;padding:10px 22px 20px}.npc-dialogue-modal__options button{padding:12px 14px;border:1px solid #cfb58a;border-radius:10px;background:#fffaf1;color:#4f332a;text-align:left;font:700 .82rem/1.35 Arial,sans-serif;cursor:pointer;transition:.15s ease}
.npc-dialogue-modal__options button:hover,.npc-dialogue-modal__options button:focus-visible{border-color:#9b6232;background:#fff1d7;transform:translateY(-1px);outline:none}.npc-dialogue-modal__options button.is-close{text-align:center;background:#efe3d0}
.npc-dialogue-modal__feedback{min-height:18px;margin:0;padding:0 22px 18px;color:#7c5960;font-size:.72rem}.npc-dialogue-modal.is-busy .npc-dialogue-modal__options{opacity:.55;pointer-events:none}
body.npc-dialogue-open{overflow:hidden}
@media(max-width:640px){.npc-dialogue-modal{padding:0}.npc-dialogue-modal__dialog{width:100vw;max-height:100dvh;height:100dvh;border:0;border-radius:0}.npc-dialogue-modal__body{padding:18px 16px 12px}.npc-dialogue-modal__options{padding:8px 16px 18px}}

.npc-dialogue-modal__options button{
  display:grid;
  gap:4px;
}
.npc-dialogue-modal__options button small{
  color:#8b1734;
  font:800 .68rem/1.2 Arial,sans-serif;
  letter-spacing:.02em;
}
.npc-dialogue-modal__feedback{
  display:grid;
  gap:4px;
}
.npc-dialogue-modal__feedback strong{
  color:#6f1b34;
}
.npc-dialogue-modal__feedback span{
  color:#70564e;
}

.npc-dialogue-modal__identity{display:flex;align-items:center;gap:14px;min-width:0}
.npc-dialogue-modal__identity>div{min-width:0}
.npc-dialogue-modal__portrait{
  width:70px;height:88px;flex:0 0 70px;margin:0;
  overflow:hidden;border:1px solid rgba(236,196,109,.58);border-radius:10px;
  background:#160d10;box-shadow:0 7px 18px rgba(0,0,0,.28)
}
.npc-dialogue-modal__portrait[hidden]{display:none!important}
.npc-dialogue-modal__portrait img{
  display:block;width:100%;height:100%;object-fit:cover;object-position:center 18%
}
@media(max-width:640px){
  .npc-dialogue-modal__dialog>header{padding:13px 14px;gap:12px}
  .npc-dialogue-modal__identity{gap:10px}
  .npc-dialogue-modal__portrait{width:58px;height:72px;flex-basis:58px;border-radius:8px}
  .npc-dialogue-modal__dialog>header h2{font-size:1.14rem}
}

/* Blocking cinematográfico reutilizável por nó de diálogo. */
.npc-dialogue-modal__stage[hidden]{display:none!important}
.npc-dialogue-modal.has-blocking .npc-dialogue-modal__portrait{display:none!important}
.npc-dialogue-modal__stage{
  position:relative;height:250px;overflow:hidden;
  border-bottom:1px solid rgba(139,94,54,.24);
  background:radial-gradient(circle at 50% 110%,rgba(180,129,59,.22),transparent 58%),linear-gradient(180deg,#25161a,#120c0e);
}
.npc-dialogue-actor{
  position:absolute;bottom:10px;left:50%;z-index:1;
  width:166px;margin:0;
  transform:translateX(-50%) scale(var(--actor-scale,1));
  transform-origin:50% 100%;opacity:.72;
  transition:left var(--blocking-ms,420ms) ease,transform var(--blocking-ms,420ms) ease,opacity .26s ease,filter .26s ease;
}
.npc-dialogue-actor[data-slot="left"]{left:24%}
.npc-dialogue-actor[data-slot="center"]{left:50%}
.npc-dialogue-actor[data-slot="right"]{left:76%}
.npc-dialogue-actor__frame{
  height:210px;overflow:hidden;border:1px solid rgba(220,180,94,.38);border-radius:12px;
  background:#0f0a0b;box-shadow:0 14px 32px rgba(0,0,0,.38)
}
.npc-dialogue-actor__frame img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}

.npc-dialogue-actor figcaption{
  margin-top:5px;padding:3px 7px;border-radius:999px;
  background:rgba(18,10,12,.82);color:#ead5aa;text-align:center;
  font:700 11px/1.2 Arial,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.npc-dialogue-actor.is-focus{z-index:3;opacity:1;filter:none}
.npc-dialogue-actor.is-focus .npc-dialogue-actor__frame{border-color:#e4b95d;box-shadow:0 17px 38px rgba(0,0,0,.48),0 0 0 2px rgba(228,185,93,.14)}
.npc-dialogue-actor.is-dim{opacity:.52;filter:saturate(.62) brightness(.82)}
.npc-dialogue-actor.is-hidden{opacity:0;pointer-events:none}
.npc-dialogue-actor.is-entering[data-enter-from="left"]{opacity:0;transform:translateX(calc(-50% - 110px)) scale(var(--actor-scale,1))}
.npc-dialogue-actor.is-entering[data-enter-from="right"]{opacity:0;transform:translateX(calc(-50% + 110px)) scale(var(--actor-scale,1))}
.npc-dialogue-actor.is-entering[data-enter-from="none"]{opacity:0}
.npc-dialogue-actor.is-exiting[data-exit-to="left"]{opacity:0;transform:translateX(calc(-50% - 110px)) scale(var(--actor-scale,1))}
.npc-dialogue-actor.is-exiting[data-exit-to="right"]{opacity:0;transform:translateX(calc(-50% + 110px)) scale(var(--actor-scale,1))}
.npc-dialogue-actor.is-exiting[data-exit-to="none"]{opacity:0}

@media(max-width:640px){
  .npc-dialogue-modal__stage{height:176px}
  .npc-dialogue-actor{width:112px;bottom:7px}
  .npc-dialogue-actor__frame{height:143px;border-radius:9px}
  .npc-dialogue-actor[data-slot="left"]{left:20%}
  .npc-dialogue-actor[data-slot="right"]{left:80%}
  .npc-dialogue-actor figcaption{font-size:9px}
}
@media(prefers-reduced-motion:reduce){.npc-dialogue-actor{transition:none!important}}

/* Gate 1 v3 — palco RPG inspirado no layout aprovado pelo Mestre. */
.npc-dialogue-modal__dialog{width:min(720px,calc(100vw - 40px));border-radius:14px;border:2px solid #74502f;background:#ead9b8;box-shadow:0 34px 110px rgba(0,0,0,.72),0 0 0 1px #24130d}
.npc-dialogue-modal__dialog>header{position:relative;padding:14px 20px 15px;background:linear-gradient(180deg,#4b2d1f,#2d1812);border-bottom:2px solid #9b7040;box-shadow:inset 0 0 0 1px rgba(233,196,123,.14)}
.npc-dialogue-modal__dialog>header small{color:#d8b870}.npc-dialogue-modal__dialog>header h2{font-size:1.55rem;text-shadow:0 2px 2px #000}.npc-dialogue-modal__dialog>header span{color:#d4c2a3}
.npc-dialogue-modal__stage{height:330px;border-bottom:3px solid #6e4b2e;background:radial-gradient(ellipse at 50% 108%,rgba(179,117,45,.34),transparent 53%),linear-gradient(90deg,rgba(16,17,18,.96),rgba(38,28,24,.94) 50%,rgba(16,17,18,.96));box-shadow:inset 0 -18px 34px rgba(0,0,0,.4)}
.npc-dialogue-modal__stage:before,.npc-dialogue-modal__stage:after{content:"";position:absolute;inset:0;pointer-events:none}.npc-dialogue-modal__stage:before{background:linear-gradient(90deg,rgba(0,0,0,.36),transparent 25%,transparent 75%,rgba(0,0,0,.36))}.npc-dialogue-modal__stage:after{background:radial-gradient(circle at 50% 35%,rgba(239,189,104,.09),transparent 42%)}
.npc-dialogue-actor{bottom:0;width:142px;transition:left var(--blocking-ms,420ms) cubic-bezier(.2,.72,.22,1),width var(--blocking-ms,420ms) cubic-bezier(.2,.72,.22,1),transform var(--blocking-ms,420ms) cubic-bezier(.2,.72,.22,1),opacity .26s ease,filter .26s ease}
.npc-dialogue-actor[data-slot="left"]{left:18%}.npc-dialogue-actor[data-slot="center"]{left:50%}.npc-dialogue-actor[data-slot="right"]{left:82%}
.npc-dialogue-actor__frame{height:214px;border:1px solid #80603d;border-radius:5px;background:linear-gradient(180deg,rgba(52,43,37,.34),rgba(10,9,9,.18));box-shadow:0 14px 30px rgba(0,0,0,.46),inset 0 0 0 3px rgba(27,16,11,.5)}
.npc-dialogue-actor__frame img{object-fit:contain;object-position:center bottom;filter:drop-shadow(0 10px 8px rgba(0,0,0,.52));image-rendering:auto}
.npc-dialogue-actor.is-focus{width:244px}.npc-dialogue-actor.is-focus .npc-dialogue-actor__frame{height:292px;border:2px solid #c6a15e;background:linear-gradient(180deg,rgba(88,68,48,.22),rgba(10,9,9,.08));box-shadow:0 18px 44px rgba(0,0,0,.55),0 0 0 4px rgba(58,35,20,.82),0 0 0 5px rgba(198,161,94,.38)}
.npc-dialogue-actor.is-dim{opacity:.64;filter:saturate(.65) brightness(.72)}.npc-dialogue-actor.is-dim .npc-dialogue-actor__frame{height:196px}
.npc-dialogue-actor figcaption{margin:5px auto 0;width:max-content;max-width:100%;padding:4px 10px;border:1px solid rgba(187,145,76,.32);border-radius:4px;background:#271710;color:#e9d5a6;font:700 10px/1.2 Georgia,serif}
.npc-dialogue-modal__body{padding:22px 24px 12px;background:linear-gradient(180deg,#f1e2c4,#e8d4ae);color:#39271d;border-top:1px solid rgba(255,255,255,.4)}.npc-dialogue-modal__body p{font-size:1.05rem;line-height:1.55}
.npc-dialogue-modal__options{gap:10px;padding:10px 24px 22px;background:#e8d4ae}.npc-dialogue-modal__options button{padding:12px 16px;border:1px solid #6f4b2d;border-radius:6px;background:linear-gradient(180deg,#765136,#56331f);color:#fff0d2;box-shadow:inset 0 1px rgba(255,255,255,.13),0 2px 4px rgba(66,38,20,.2);font:700 .84rem/1.35 Georgia,serif}.npc-dialogue-modal__options button:hover,.npc-dialogue-modal__options button:focus-visible{background:linear-gradient(180deg,#89613d,#674027);border-color:#c59856;color:#fff8e8}
.npc-dialogue-modal__options button small{color:#ffd28a}.npc-dialogue-modal__options button.is-close{background:linear-gradient(180deg,#6b4932,#4b2c1e);text-align:center;color:#f5e1bd}.npc-dialogue-modal__feedback{background:#e8d4ae;margin:0;padding:0 24px 18px}
@media(max-width:640px){.npc-dialogue-modal__stage{height:250px}.npc-dialogue-actor{width:100px}.npc-dialogue-actor.is-focus{width:174px}.npc-dialogue-actor__frame{height:150px}.npc-dialogue-actor.is-focus .npc-dialogue-actor__frame{height:215px}.npc-dialogue-actor.is-dim .npc-dialogue-actor__frame{height:136px}.npc-dialogue-actor[data-slot="left"]{left:16%}.npc-dialogue-actor[data-slot="right"]{left:84%}}

.npc-dialogue-service-result{display:grid;gap:3px;margin-top:8px;padding:8px 10px;border:1px solid rgba(118,77,39,.22);border-radius:7px;background:rgba(255,248,231,.72);color:#4c3128}
.npc-dialogue-service-result strong{font:700 12px/1.2 Georgia,serif}.npc-dialogue-service-result small{color:#71584a;font:10px/1.25 Arial,sans-serif}

/* Saída narrativa explícita — permanece visível durante conversa ativa. */
.npc-dialogue-modal__exit[hidden]{display:none!important}
.npc-dialogue-modal__exit{
  position:sticky;bottom:0;z-index:6;
  padding:10px 22px 16px;
  border-top:1px solid rgba(151,108,63,.18);
  background:linear-gradient(180deg,rgba(247,237,218,.90),#f4ead9 42%);
  backdrop-filter:blur(5px);
}
.npc-dialogue-modal__exit button{
  width:100%;padding:11px 14px;
  border:1px solid rgba(126,27,52,.42);border-radius:10px;
  background:rgba(126,27,52,.07);color:#761a35;
  font:800 .78rem/1.2 Arial,sans-serif;letter-spacing:.015em;
  cursor:pointer;transition:.15s ease;
}
.npc-dialogue-modal__exit button:hover,
.npc-dialogue-modal__exit button:focus-visible{
  border-color:#7e1b34;background:rgba(126,27,52,.13);outline:none;
}
.npc-dialogue-modal.is-busy .npc-dialogue-modal__exit{opacity:.55;pointer-events:none}
@media(max-width:640px){.npc-dialogue-modal__exit{padding:9px 16px 14px}}
