#modal.npc-dialogue[open]{position:fixed;display:block;left:max(10px,env(safe-area-inset-left));right:auto;top:auto;bottom:max(10px,env(safe-area-inset-bottom));width:min(730px,calc(100vw - 136px - env(safe-area-inset-left) - env(safe-area-inset-right)));height:auto;max-height:calc(100dvh - 24px);max-width:none;margin:0;padding:0;border:3px solid #887754;border-radius:3px;background:linear-gradient(105deg,#c5b78e,#d7cba7 55%,#c1b28b);box-shadow:inset 0 0 0 2px #e8dfc0,inset 0 0 20px #715b3344,0 5px 20px #08140c80;color:#272519;overflow:auto}
#modal.npc-dialogue::backdrop{background:#07120a15}
.npc-dialogue #modalBody{display:grid;grid-template-columns:128px minmax(0,1fr);gap:10px;padding:13px 37px 12px 10px;overflow:visible}.npc-dialogue #modalBody:after{display:none}
.npc-portrait-frame{align-self:end;height:160px;overflow:hidden;background:radial-gradient(ellipse at 50% 65%,#81734c33,transparent 70%);border-right:1px solid #85744c77}.npc-portrait-frame canvas{width:147px;height:160px;max-width:none;margin-left:-9px;object-fit:contain;filter:drop-shadow(1px 3px 2px #60522e55)}
.npc-conversation{min-width:0;align-self:center}.npc-name-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.npc-dialogue #npcName{font:700 20px Georgia,serif;color:#634516;margin:0;line-height:1.2;text-align:left}.npc-dialogue #npcPage{color:#645b42;font-size:12px}.npc-dialogue #npcTopic{display:block;color:#6b5732;font:13px Georgia,serif;line-height:1.3;margin-top:3px}.npc-dialogue #npcTopic:empty{display:none}
.npc-dialogue #npcWords{font:16px/1.48 Georgia,serif;color:#25251a;margin:8px 0 10px;white-space:pre-line}
.npc-choices{display:flex;flex-direction:column;gap:3px}.npc-dialogue .npc-choice{display:flex;gap:8px;align-items:center;text-align:left;width:100%;min-height:34px;padding:5px 7px;margin:0;border:1px solid transparent;border-radius:2px;background:transparent;box-shadow:none;color:#253f7a;font:600 15px/1.3 Georgia,serif}.npc-dialogue .npc-choice:hover,.npc-dialogue .npc-choice:focus-visible{color:#172950;background:#eee4bf88;border-color:#8a7853;outline:0}.npc-choice-number{color:#78613a;flex:0 0 15px;text-align:center}
.npc-dialogue #closeModal{position:absolute;right:6px;top:6px;width:27px;height:27px;min-height:27px;margin:0;padding:0;font-size:24px;line-height:1;background:#7e4e35;color:#f1dab0;border:1px solid #694d35;border-radius:2px}
body.npc-talking #tutorial,body.npc-talking .action,body.npc-talking #cameraControls{visibility:hidden}
@media(max-height:500px){.npc-dialogue #modalBody{grid-template-columns:100px minmax(0,1fr);padding-top:9px;padding-bottom:9px;gap:9px}.npc-portrait-frame{height:135px}.npc-portrait-frame canvas{width:124px;height:135px;margin-left:-10px}.npc-dialogue #npcWords{line-height:1.35;margin:6px 0}.npc-dialogue #npcName{font-size:18px}.npc-dialogue .npc-choice{min-height:32px;padding:4px 5px}}
@media(max-width:620px){#modal.npc-dialogue[open]{width:calc(100vw - 20px - env(safe-area-inset-left) - env(safe-area-inset-right))}.npc-dialogue #modalBody{grid-template-columns:80px minmax(0,1fr);gap:7px}.npc-portrait-frame{height:115px}.npc-portrait-frame canvas{width:106px;height:115px;margin-left:-12px}}

.sound-slider{display:grid;grid-template-columns:118px minmax(80px,1fr) 44px;align-items:center;gap:12px;margin:18px 0;font-size:16px}.sound-slider input{width:100%;height:34px;padding:0;margin:0;accent-color:#c5aa6e}.sound-slider output{font-size:14px;text-align:right;color:#ecd6a4}.sound-track{font-size:14px;line-height:1.5;color:#ccb990}.sound-track strong{color:#f2dbac}

#tutorialCrossing{position:fixed;inset:0;z-index:35;pointer-events:none}.crossing-veil{position:absolute;inset:0;background:#c8e4d6;opacity:var(--crossing-opacity,0)}#crossingCaption{position:absolute;left:50%;bottom:12%;transform:translateX(-50%);margin:0;padding:9px 18px;border:1px solid #c6b786;background:#1c302ce6;color:#f2e1b1;font:18px Georgia,serif;white-space:nowrap}
body.tutorial-crossing #tutorial,body.tutorial-crossing #gameDock,body.tutorial-crossing #gameTabs,body.tutorial-crossing .action,body.tutorial-crossing #combatbar,body.tutorial-crossing #cameraControls{visibility:hidden}
@media(prefers-reduced-motion:reduce){.crossing-veil{opacity:0!important}}
