/* A quiet survivor conversation: portrait, choices and one readable text panel. */
.city-npc{cursor:pointer;outline:none}.npc-map-sprite{image-rendering:pixelated}
.npc-talk-bubble{fill:#d7c485;stroke:#233327;stroke-width:1.5}.npc-talk-symbol{font:9px var(--pixel-font);fill:#24362b}
.npc-map-name{font:8px var(--pixel-font);fill:#f1d897;stroke:#15261c;stroke-width:3px;paint-order:stroke;pointer-events:none}
.city-npc.in-reach .npc-talk-bubble,.city-npc:hover .npc-talk-bubble,.city-npc:focus-visible .npc-talk-bubble{fill:#fff1b4;stroke:#cba967;stroke-width:2}
.city-npc:focus-within .npc-map-name{fill:white}.city-npc [data-npc]:focus-visible{outline:2px solid #d9be79;outline-offset:2px}.city-npc[aria-disabled=true]{cursor:default}
#npc-dialog{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border:0;background:#171d17;color:#e9dfbe;overflow:hidden;font-family:var(--pixel-font);box-sizing:border-box}
#npc-dialog::backdrop{background:#0a100eeb}
#npc-dialog[open]{display:grid;grid-template-rows:44px minmax(0,1fr) clamp(128px,24dvh,210px);gap:7px;padding:calc(8px + env(safe-area-inset-top)) calc(10px + env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) calc(10px + env(safe-area-inset-left));background:repeating-linear-gradient(0deg,#ffffff02 0 1px,transparent 1px 4px),#171d17}
.npc-topbar{display:flex;align-items:center;justify-content:flex-start;gap:18px;height:100%;min-height:0;border-top:2px solid #a78d53;border-bottom:1px solid #665e3e;padding:0 5px;color:#c8b77e}
.npc-topbar>span{font-size:14px;letter-spacing:3px;white-space:nowrap}.npc-topbar b{font-size:12px;font-weight:400;color:#bcb9a0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#npc-dialog #npc-close{margin:0 0 0 auto;flex:none;width:42px;min-height:34px;padding:2px;font-size:20px;line-height:1;border:1px solid #a68a51;background:#323827;color:#e7ce8d}
.npc-scene{display:grid;grid-template-columns:45% minmax(0,1fr);gap:9px;min-height:0}
#npc-portrait-stage{position:relative;overflow:hidden;min-height:0;border:2px solid #9a824c;box-shadow:inset 0 0 0 3px #263025;background:#151e18}
#npc-portrait-stage::before{content:'';position:absolute;inset:0;background-image:var(--npc-portrait);background-size:cover;background-position:center;filter:blur(12px) brightness(.32);opacity:.8;transform:scale(1.08)}
#npc-portrait{position:relative;width:100%;height:100%;object-fit:cover;object-position:center 10%;display:block}
.npc-identity{position:absolute;left:0;right:0;bottom:0;padding:22px 16px 10px;background:linear-gradient(transparent,#101b16ef);display:flex;align-items:baseline;gap:12px}
#npc-dialog #npc-name{font-size:24px;margin:0;color:#f0d99f;text-shadow:2px 2px #162217}#npc-role{font-size:12px;color:#c4c9ac}
.npc-options{min-height:0;display:flex;flex-direction:column;border:2px solid #817345;background:linear-gradient(120deg,#303b2b,#1c271f);padding:20px 20px 14px;box-shadow:inset 0 0 0 3px #14231b}
#npc-choice-heading{flex:none;font-size:15px;font-weight:400;margin:0 0 10px;color:#c9bd94;padding-bottom:8px;border-bottom:1px solid #69704a}
#npc-choices{display:flex;flex-direction:column;gap:9px;overflow-y:auto;min-height:0;scrollbar-color:#9a8958 #202c21}
#npc-dialog #npc-choices button{display:flex;align-items:center;gap:13px;text-align:left;width:100%;min-height:55px;flex-shrink:0;margin:0;padding:12px;border:1px solid #68724e;border-left:3px solid #b29b61;background:#253322;color:#e6e0c5;font:14px/1.65 var(--pixel-font);box-shadow:inset 0 1px #adb27922}
#npc-dialog #npc-choices button:hover,#npc-dialog #npc-choices button:focus-visible{outline:2px solid #d9be79;outline-offset:-2px;background:#455038;color:#fff0c9}
.npc-choice-key{flex:none;color:#b09f6d;font-size:11px}.npc-heard{margin-left:auto;color:#a8bd8e;font-size:12px}#npc-choices small{display:block;font-size:11px;color:#b6b892;line-height:1.4}
.npc-options-footer{margin:auto 0 0;padding-top:12px;font-size:10px;color:#9b9f85}
.npc-dialogue{position:relative;display:flex;flex-direction:column;min-height:0;padding:14px 25px 18px;border:3px double #b19a60;background:linear-gradient(130deg,#393925,#20291e);box-shadow:inset 0 0 0 4px #121e16,0 -2px #101810}
.npc-dialogue::before,.npc-dialogue::after{content:'';position:absolute;top:5px;width:8px;height:8px;border:1px solid #c3a865;background:#3d462f}.npc-dialogue::before{left:5px}.npc-dialogue::after{right:5px}
#npc-speaker{font-size:15px;color:#acccbd;flex:none;margin-bottom:9px}#npc-text{font:16px/1.85 var(--pixel-font);margin:0;overflow:auto;white-space:pre-wrap;color:#f1e1b5;text-shadow:1px 2px #172015}
.npc-dialogue-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none;min-height:24px;margin-bottom:7px}.npc-dialogue-head #npc-speaker{margin:0}
#npc-dialog #npc-text-skip{flex:none;width:auto;min-height:24px;margin:0;padding:3px 8px;background:#1e2a20;border:1px solid #7a7952;color:#daca97;font:11px var(--pixel-font)}#npc-text-skip[hidden]{display:none}#npc-text-skip:focus-visible{outline:2px solid #ebd597;outline-offset:2px}
#npc-text{min-height:0;scrollbar-color:#9a8958 #202c21;cursor:pointer}#npc-text.is-typing::after{content:'';display:inline-block;width:.4em;height:.95em;margin-left:.18em;background:#d4c491;vertical-align:-.08em}
.npc-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#npc-affinity{flex:none;display:flex;align-items:center;gap:12px;margin-bottom:10px;font-size:12px;color:#e8cf99}#npc-affinity span{white-space:nowrap}#npc-affinity progress{width:100%;height:9px;accent-color:#c0ad65;min-width:24px}
#npc-services{flex:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:12px}#npc-dialog #npc-services button{min-height:34px;margin:0;padding:5px;border:1px solid #7d7953;background:#253326;color:#cfc5a0;font:12px var(--pixel-font)}#npc-dialog #npc-services button[aria-pressed=true]{background:#c0aa6c;color:#19291d;border-color:#e4d399}
#npc-choices .npc-gift-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}#npc-dialog #npc-choices .npc-gift-grid button{display:flex;flex-direction:column;gap:3px;min-height:0;padding:7px 3px;font-size:11px;line-height:1.2;text-align:center;border-left-width:1px}#npc-choices .pixel-item{width:38px;height:38px;flex:none;padding:0;border:0;background:none;image-rendering:pixelated;pointer-events:none}#npc-choices .npc-gift-grid small{font-size:10px}#npc-choices .npc-gift-grid b{font-size:10px;color:#d8c78d}
#npc-dialog #npc-choices .npc-absent{border-style:dashed;color:#a9a895;background:#293026}#npc-choices .npc-absent .pixel-item{opacity:.4;filter:grayscale(1)}#npc-choices .npc-absent b{color:#cf9980}
.npc-goods{display:flex;flex-wrap:wrap;gap:7px}.npc-good{display:flex;gap:8px;align-items:center;padding:7px;background:#1d2b20;border:1px solid #58613f;flex:1;min-width:135px;font-size:12px}.npc-good span{flex:1}.npc-good b{margin-left:8px;color:#eddda6}.npc-good small{margin-top:2px}.npc-good.missing{border:1px dashed #b47d62;background:#392d24}.npc-good.missing small{color:#efb397!important}
#npc-choices>p{margin:2px 0;font-size:12px;line-height:1.5}.npc-preference{color:#dec584}.npc-exchange-error{color:#e1ba93;min-height:1.5em}.npc-exchange-note{color:#b9c5a1}.npc-trade-label{font-size:11px;color:#b9c5a1;margin-top:3px}
#npc-dialog #npc-choices button.npc-confirm{justify-content:center;background:#ae985e;color:#18271b;border-color:#dec683;font-weight:bold}#npc-dialog #npc-choices button:disabled{cursor:default;opacity:.6;outline:none;background:#343a2d;color:#a7a68f;border-color:#606245}#npc-dialog #npc-choices button.npc-back{min-height:28px;padding:4px 7px;font-size:11px;border-left:1px solid #68724e;background:#1d2d22}
#npc-choices .npc-batches{display:flex;gap:6px}#npc-dialog #npc-choices .npc-batches button{flex:1;min-height:28px;padding:4px;justify-content:center}#npc-dialog #npc-choices .npc-batches button[aria-pressed=true]{background:#8b804f;color:#fff1bc;border-color:#d4bd79}
#npc-dialog #npc-choices .npc-offer{padding:9px;gap:9px}.npc-offer>span:last-child{min-width:0}.npc-offer b{font-size:12px}.npc-offer-art{display:flex}.npc-locked{border-style:dashed!important}.npc-locked .npc-offer-art{opacity:.45}.npc-reward{flex:none;border:1px solid #6c7650;background:#243222;padding:10px}.npc-reward>b{display:block;font-size:12px;color:#dec58d;margin-bottom:7px}.npc-reward.claimed{opacity:.65}#npc-dialog #npc-choices .npc-reward button{justify-content:center;min-height:32px;margin-top:7px;padding:5px}
#npc-social-action{flex:none;padding-top:7px}#npc-social-action[hidden]{display:none}#npc-dialog #npc-social-action button{width:100%;min-height:36px;margin:0;padding:7px;font:12px var(--pixel-font);background:#baa365;color:#1b2b1d;border:1px solid #dfc88a}#npc-dialog #npc-social-action button:disabled{background:#343c2d;color:#c0b89d;border:1px dashed #77714e;cursor:default}
#npc-choices small.npc-offer-unavailable{color:#d9a382}
@media(orientation:landscape) and (max-height:540px){
 #npc-dialog[open]{grid-template-rows:30px minmax(0,1fr) 96px;gap:4px;padding:calc(4px + env(safe-area-inset-top)) calc(6px + env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) calc(6px + env(safe-area-inset-left))}
 .npc-topbar{gap:12px}.npc-topbar>span{font-size:10px}.npc-topbar b{font-size:10px}#npc-dialog #npc-close{width:32px;min-height:25px;font-size:17px}
 .npc-scene{grid-template-columns:44% minmax(0,1fr);gap:5px}.npc-options{padding:9px 11px 6px}#npc-choice-heading{font-size:11px;margin-bottom:7px;padding-bottom:6px}
 #npc-choices{gap:5px}#npc-dialog #npc-choices button{min-height:33px;font-size:11px;line-height:1.45;padding:6px 8px;gap:8px}.npc-choice-key{font-size:9px}#npc-choices small{font-size:9px}
 .npc-options-footer{padding-top:5px;font-size:8px}.npc-identity{padding:15px 10px 6px;gap:8px}#npc-dialog #npc-name{font-size:17px}#npc-role{font-size:9px}
 .npc-dialogue{padding:8px 15px 9px}#npc-speaker{font-size:11px;margin-bottom:4px}#npc-text{font-size:12px;line-height:1.75}
 .npc-dialogue-head{min-height:18px;margin-bottom:3px}#npc-dialog #npc-text-skip{font-size:9px;min-height:19px;padding:2px 6px}
 #npc-affinity{font-size:10px;gap:7px;margin-bottom:5px}#npc-affinity progress{height:7px}#npc-services{gap:4px;margin-bottom:6px}#npc-dialog #npc-services button{min-height:27px;font-size:10px;padding:3px}#npc-choice-heading{font-size:10px;margin-bottom:5px;padding-bottom:4px}
 #npc-choices .pixel-item{width:29px;height:29px}#npc-dialog #npc-choices .npc-gift-grid button{font-size:9px;padding:5px 2px;gap:2px}#npc-choices .npc-gift-grid small,#npc-choices .npc-gift-grid b{font-size:8px}.npc-good{font-size:10px;min-width:115px;padding:5px;gap:5px}.npc-goods{gap:4px}#npc-choices>p,.npc-trade-label{font-size:10px}#npc-dialog #npc-choices .npc-offer{padding:6px;gap:6px}.npc-offer b{font-size:10px}.npc-reward{padding:7px}.npc-reward>b{font-size:10px}
 #npc-social-action{padding-top:4px}#npc-dialog #npc-social-action button{min-height:30px;padding:5px;font-size:10px}
}
@media(orientation:portrait){#npc-dialog[open]{grid-template-rows:40px minmax(0,1fr) 180px}.npc-scene{grid-template-columns:1fr;grid-template-rows:minmax(130px,1fr) minmax(165px,1fr)}.npc-options{padding:10px}#npc-choice-heading{font-size:12px;margin-bottom:8px;padding-bottom:6px}#npc-choices{gap:5px}#npc-dialog #npc-choices button{font-size:11px;min-height:37px;padding:6px 8px}.npc-options-footer{display:none}#npc-role{font-size:10px}#npc-text{font-size:13px}.npc-topbar>span{font-size:11px;letter-spacing:1px}.npc-topbar{gap:8px}.npc-dialogue{padding:13px 17px}}
