/* Grimwood V10 · Ecos del Juramento — menus as world objects, contextual voices and hub banter. */
:root{--ink:#090b0b;--bone:#d8ccb0;--bronze:#a98b56;--wine:#5a252d;--moss:#24372f}
#ambient-banter{position:absolute;left:4vw;bottom:4.8vh;z-index:18;max-width:min(560px,86vw);padding:13px 18px 14px 21px;background:linear-gradient(90deg,#090c0ce8,#101713d8 78%,transparent);border-left:2px solid #aa8c55;color:#d7d1bf;pointer-events:none;opacity:0;transform:translateY(10px);transition:opacity .28s,transform .28s;filter:drop-shadow(0 8px 22px #000a)}
#ambient-banter.visible{opacity:1;transform:translateY(0)}#ambient-banter strong{display:block;color:#c5aa70;font:15px/1.2 Georgia,serif;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px}#ambient-banter span{font:16px/1.45 Georgia,serif}

dialog[data-portrait=merchant] #panel-portrait{background-image:url('assets/art/npc-oracles.png');background-size:300% 100%;background-position:left center;filter:saturate(.72) sepia(.15) drop-shadow(15px 10px 24px #000)}
dialog[data-portrait^=boss-] #panel-portrait{background-size:cover;background-position:center 20%;mask-image:linear-gradient(black 70%,transparent);border-right:1px solid #8f765055}
dialog[data-portrait=boss-morcant] #panel-portrait{background-image:url('assets/art/bosses/morcant_combat.jpg')}
dialog[data-portrait=boss-custodio] #panel-portrait{background-image:url('assets/art/bosses/custodio_combat.jpg')}
dialog[data-portrait=boss-forjador] #panel-portrait{background-image:url('assets/art/bosses/forjador_combat.jpg')}
dialog[data-portrait=boss-mago] #panel-portrait{background-image:url('assets/art/bosses/mago_combat.jpg')}

/* Dialogue is a framed illustrated exchange, not a generic modal. */
dialog[data-kind=dialogue]{border:1px solid #9d8354;background:linear-gradient(105deg,#101612fa 0 31%,#080b0afb 31% 100%);box-shadow:0 0 0 4px #050706,0 0 0 5px #816b473e,0 26px 100px #000e}
dialog[data-kind=dialogue]:before{content:'';position:absolute;inset:9px;border:1px solid #b3965a25;pointer-events:none}
dialog[data-kind=dialogue] h2{color:#d6bd82;text-shadow:0 2px 12px #000;letter-spacing:.045em}
dialog[data-kind=dialogue] .dialogue-location:before{content:'✦  ';color:#8f7650}.spoken{position:relative}.spoken.typing:after{content:'▌';color:#b99c64;animation:v10Caret .6s steps(1) infinite}@keyframes v10Caret{50%{opacity:0}}

/* Settings: three-page field manual. */
dialog[data-kind=settings]{width:min(1060px,96vw);background:radial-gradient(circle at 20% 10%,#493c2920,transparent 34%),linear-gradient(90deg,#11120f,#171712 50%,#0c0f0d);border-color:#887449}
dialog[data-kind=settings] #panel-portrait{display:none}.settings-book{display:grid;grid-template-columns:1.35fr .9fr .9fr;gap:0;border:1px solid #88744945;background:#090c0a99}.settings-section{min-width:0;padding:18px 21px 14px;border-right:1px solid #88744938;position:relative}.settings-section:last-child{border-right:0}.settings-section:after{content:'';position:absolute;inset:8px;border:1px solid #ffffff06;pointer-events:none}.settings-heading{display:flex;gap:13px;align-items:center;border-bottom:1px solid #8d774746;padding-bottom:13px;margin-bottom:5px}.settings-heading>span{font:31px Georgia;color:#8e794d}.settings-heading h3{margin:0!important;font:23px Georgia!important;color:#d2bb86!important}.settings-heading p{margin:4px 0 0;font-size:11px;color:#8f9188}.settings-section .setting{padding:13px 0}.settings-section input[type=range]{width:125px}.voice-preview{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:12px}.voice-preview button{border:1px solid #826f484a;background:#151914;color:#cbb887;padding:9px 8px;font:13px Georgia}.voice-preview button:hover{background:#6f5b3428;border-color:#a68b54}.cast-note,.settings-footnote{font-size:10px;line-height:1.55;color:#858b80}.settings-footnote{margin-top:14px;border-left:2px solid #7c6846;padding-left:12px}

/* Pause is a carved command table. */
dialog[data-kind=pause]{background:radial-gradient(circle at 78% 20%,#3c31221c,transparent 43%),#0b0e0c;border-color:#756443}
dialog[data-kind=pause] .menu-grid{grid-template-columns:1fr 1fr;border:1px solid #7d6b442f;padding:8px;background:#080a09aa}.menu-grid button{position:relative;padding-left:31px}.menu-grid button:before{content:'◇';position:absolute;left:8px;color:#7d6d49}.menu-grid button:hover:before,.menu-grid button:focus-visible:before{content:'◆';color:#c4a96e}

/* Map and chronicle have their own materials. */
dialog[data-kind=map]{background:linear-gradient(#17140fef,#0c0e0cfa),repeating-linear-gradient(0deg,#a88a5130 0 1px,transparent 1px 7px)}dialog[data-kind=map] .route-floor{background:linear-gradient(90deg,#c8aa6710,transparent);padding-left:13px}
dialog[data-kind=chronicle],dialog[data-kind=lore]{background:radial-gradient(circle at 20% 0,#67522d25,transparent 34%),linear-gradient(90deg,#12130f,#0a0c0b)}dialog[data-kind=chronicle] .topic-list button span{font-family:Georgia;color:#8b7349}

/* Merchant looks like a person at a travelling stall. */
dialog[data-kind=merchant]{background:radial-gradient(circle at 15% 20%,#5c452b2a,transparent 30%),linear-gradient(105deg,#17130ff2 0 31%,#0b0e0cf8 31%);border-color:#9b7f4c}.merchant-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px;border-bottom:1px solid #806b443b;padding-bottom:14px}.merchant-quote{font:18px/1.55 Georgia;color:#d1c3a3;max-width:520px;margin:0}.merchant-purse{text-align:right;min-width:130px}.merchant-purse span{display:block;font-size:9px;letter-spacing:.13em;color:#8f846f}.merchant-purse b{display:block;color:#d4b46e;font:27px Georgia;margin-top:5px}.merchant-stock .choice{background:linear-gradient(145deg,#4a392230,#0a0d0b)}.merchant-note{border-left:2px solid #7f6842;padding-left:10px}

/* Settings widgets feel physical and remain keyboard/touch friendly. */
.setting select,.setting input[type=range]{accent-color:#a58a55}.setting select{background:#0b100d;border-color:#7a6947;color:#d3c7ad}.setting input[type=checkbox]{width:20px;height:20px}

@media(max-width:820px){.settings-book{grid-template-columns:1fr}.settings-section{border-right:0;border-bottom:1px solid #88744938}.settings-section:last-child{border-bottom:0}.merchant-header{flex-direction:column}.merchant-purse{text-align:left}.voice-preview{grid-template-columns:1fr 1fr}}
@media(max-width:560px){#ambient-banter{left:5vw;bottom:21vh;max-width:88vw}.settings-section{padding:15px}.settings-section .setting{gap:12px}.settings-section input[type=range]{width:105px}.voice-preview{grid-template-columns:1fr}.merchant-stock{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){#ambient-banter{transition:none}.spoken.typing:after{animation:none}}
/* Remaining secondary windows inherit the same diegetic material language. */
dialog[data-kind=equipment]{background:radial-gradient(circle at 82% 14%,#7060421d,transparent 35%),linear-gradient(110deg,#171914,#0a0d0b);border-color:#81724f}dialog[data-kind=equipment] .inventory-heading{border-bottom:1px solid #85744b3f;padding-bottom:8px}dialog[data-kind=equipment] .choice{background:linear-gradient(145deg,#4b463522,#0b0e0c);border-color:#786b4b45}dialog[data-kind=equipment] .choice:hover{background:linear-gradient(145deg,#76694b2b,#151a15)}
dialog[data-kind=forge]{background:radial-gradient(circle at 18% 15%,#a9582c22,transparent 30%),linear-gradient(105deg,#18130f,#090c0a);border-color:#916d43}dialog[data-kind=forge] h2{color:#d6a56d}dialog[data-kind=forge] .choice em{color:#d79a5d}
dialog[data-kind=boons]{background:radial-gradient(circle at 50% -20%,#bfa96b25,transparent 42%),#0b0e0c}dialog[data-kind=boons] .choice{clip-path:polygon(0 0,93% 0,100% 12%,100% 100%,7% 100%,0 88%)}
dialog[data-kind=npc]{background:linear-gradient(105deg,#141914f4 0 31%,#0a0d0cf8 31%);border-color:#7f714d}dialog[data-kind=npc] .lore{color:#d7cfbb}dialog[data-kind=npc] #panel-footer{border-top:1px solid #7c6c4939;padding-top:12px}
