:root{
  --dh-bg:#09090c;--dh-panel:#111117;--dh-panel-2:#171722;--dh-line:rgba(255,255,255,.12);
  --dh-soft:rgba(255,255,255,.72);--dh-strong:#fff;--dh-pink:#ff2f92;--dh-gold:#ffd36b;--dh-red:#ff6b7d;--dh-green:#7df3ae;
  --dh-desert:#c78c52;--dh-desert-2:#9a6336;--dh-ink:#050507;
}
body.page-dusthaven{background:radial-gradient(circle at top,#2a0b1b 0,#09090c 52%,#050507 100%);}
.dh-main{padding-bottom:4.5rem;}
.dh-hero{padding:2rem 0 1.2rem;}
.dh-hero .dh-topline{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap;color:var(--dh-soft);font-size:.9rem;margin-bottom:1rem}
.dh-hero .dh-topline a{color:#fff;text-decoration:none;font-weight:700}
.dh-heading{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:1.5rem;align-items:end}
.dh-overline{display:inline-flex;gap:.45rem;align-items:center;font-size:.77rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dh-gold);font-weight:800}
.dh-heading h1{margin:.45rem 0 .5rem;font-size:clamp(2rem,4vw,4rem);line-height:.92}
.dh-heading h1 em{font-style:normal;color:var(--dh-pink)}
.dh-heading p{max-width:62ch;color:var(--dh-soft);margin:0}
.dh-brand-mark{aspect-ratio:1;border:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));border-radius:28px;display:grid;place-items:center;position:relative;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.35)}
.dh-brand-mark::before,.dh-brand-mark::after{content:"";position:absolute;border-radius:50%;inset:12% auto auto 12%;width:110px;height:110px;border:1px solid rgba(255,47,146,.25)}
.dh-brand-mark::after{inset:auto 12% 12% auto;width:78px;height:78px;border-color:rgba(255,211,107,.24)}
.dh-brand-mark b{font-size:1.15rem;letter-spacing:.18em;color:#fff;text-align:center}
.dh-story-blurb{margin-top:1.2rem;padding:1rem 1.15rem;border-radius:22px;background:linear-gradient(90deg,rgba(255,47,146,.12),rgba(255,211,107,.06));border:1px solid rgba(255,255,255,.08);display:flex;gap:1rem;align-items:start}
.dh-story-blurb span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:999px;background:#170910;color:var(--dh-pink);font-weight:900;flex:0 0 auto}
.dh-story-blurb p{margin:0;color:var(--dh-soft)}
.dh-stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.9rem;margin:1.4rem 0 1.3rem}
.dh-stat{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:1rem 1rem .9rem;box-shadow:0 16px 30px rgba(0,0,0,.25)}
.dh-stat small{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.54);margin-bottom:.35rem}
.dh-stat strong{font-size:1.32rem;display:block;line-height:1.05}
.dh-stat span{display:block;font-size:.84rem;color:var(--dh-soft);margin-top:.18rem}
.dh-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.9fr);gap:1.1rem;align-items:start}
.dh-stage,.dh-sidebar{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08);border-radius:28px;box-shadow:0 24px 64px rgba(0,0,0,.35)}
.dh-stage{padding:1rem 1rem 1.15rem;position:relative;overflow:hidden}
.dh-stage-head{display:flex;justify-content:space-between;gap:.8rem;align-items:center;flex-wrap:wrap;margin-bottom:.85rem}
.dh-stage-head h2{margin:0;font-size:1.15rem}.dh-stage-head p{margin:.18rem 0 0;color:var(--dh-soft);font-size:.9rem}
.dh-stage-canvas{position:relative;border-radius:24px;background:radial-gradient(circle at 50% 0%,rgba(255,243,224,.14),rgba(14,14,18,.2) 38%),linear-gradient(180deg,#2b1711,#130f13 70%,#0c0b10);border:1px solid rgba(255,255,255,.08);padding:.55rem;overflow:hidden}
#dhCanvas{display:block;width:100%;height:auto;border-radius:18px;outline:none;background:linear-gradient(180deg,#d09861,#9d6438 55%,#7c4c2c)}
.dh-stage-hud{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}
.dh-tag{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .8rem;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#fff}
.dh-tag i{width:9px;height:9px;border-radius:50%;background:var(--dh-pink);box-shadow:0 0 0 5px rgba(255,47,146,.16)}
.dh-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:.85rem}
.dh-btn,.dh-mini-btn,.dh-dialog-actions button,.dh-choice-grid button{appearance:none;border:none;border-radius:16px;padding:.88rem 1rem;background:#171722;color:#fff;font-weight:800;letter-spacing:.04em;cursor:pointer;transition:transform .14s ease, background .14s ease, border-color .14s ease;box-shadow:0 12px 26px rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.08)}
.dh-btn:hover,.dh-mini-btn:hover,.dh-dialog-actions button:hover,.dh-choice-grid button:hover{transform:translateY(-1px)}
.dh-btn.primary,.dh-dialog-actions button.primary,.dh-choice-grid button.primary{background:linear-gradient(135deg,var(--dh-pink),#ff5cad);color:#09090c;border-color:transparent}
.dh-btn.gold{background:linear-gradient(135deg,#f8c35b,#ffda84);color:#09090c;border-color:transparent}
.dh-btn.subtle,.dh-mini-btn{background:rgba(255,255,255,.04)}
.dh-sidebar{padding:1rem}
.dh-panel{background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.08);border-radius:22px;padding:1rem;margin-bottom:.9rem}
.dh-panel h3{margin:0 0 .8rem;font-size:1rem}
.dh-panel p{margin:.15rem 0 .6rem;color:var(--dh-soft);font-size:.92rem}
.dh-policy{display:grid;gap:.7rem}
.dh-policy-row{display:grid;grid-template-columns:1fr 88px;gap:.6rem;align-items:center}
.dh-policy-row label{font-size:.84rem;color:#fff;line-height:1.2}
.dh-policy-row label small{display:block;color:rgba(255,255,255,.58);font-size:.73rem;margin-top:.15rem}
.dh-policy-row input[type="range"]{width:100%;accent-color:var(--dh-pink)}
.dh-policy-value{justify-self:end;font-size:.84rem;color:var(--dh-gold);font-weight:700}
.dh-two-col{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.dh-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.dh-choice-grid button.active{outline:2px solid rgba(255,47,146,.55);background:rgba(255,47,146,.12)}
.dh-currency-input{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.7rem}.dh-currency-input input,.dh-select, .dh-input{width:100%;background:#0f1016;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:.78rem .85rem;color:#fff}
.dh-market-table{width:100%;border-collapse:collapse;font-size:.88rem}
.dh-market-table th,.dh-market-table td{padding:.55rem .35rem;border-bottom:1px solid rgba(255,255,255,.06);text-align:left}
.dh-market-table th{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.dh-market-up{color:var(--dh-green);font-weight:700}.dh-market-down{color:var(--dh-red);font-weight:700}
.dh-log{display:grid;gap:.55rem;max-height:238px;overflow:auto;padding-right:.25rem}
.dh-log-item{border-radius:16px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06);padding:.7rem .8rem}
.dh-log-item b{display:block;margin-bottom:.18rem;font-size:.85rem;color:#fff}.dh-log-item p{margin:0;color:var(--dh-soft);font-size:.85rem}
.dh-advisor{display:flex;gap:.75rem;align-items:flex-start;padding:.88rem;border-radius:20px;background:linear-gradient(135deg,rgba(255,47,146,.1),rgba(255,211,107,.08));border:1px solid rgba(255,255,255,.08)}
.dh-advisor span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#190912;color:var(--dh-gold);font-weight:900;flex:0 0 auto}
.dh-advisor p{margin:0;color:var(--dh-soft);font-size:.88rem}
.dh-bottom{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.1rem;margin-top:1.1rem}
.dh-chart-wrap{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08);border-radius:28px;padding:1rem}
.dh-chart-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.7rem}.dh-chart-head h3{margin:0}.dh-chart-head p{margin:.2rem 0 0;color:var(--dh-soft);font-size:.9rem}
#dhChart{width:100%;height:auto;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));border-radius:18px;border:1px solid rgba(255,255,255,.06)}
.dh-overlay{position:absolute;inset:0;background:rgba(5,5,8,.74);backdrop-filter:blur(4px);display:grid;place-items:center;padding:1rem;z-index:10}
.dh-overlay[hidden]{display:none}
.dh-dialog{width:min(760px,100%);background:linear-gradient(180deg,rgba(20,20,28,.96),rgba(10,10,15,.98));border:1px solid rgba(255,255,255,.1);border-radius:28px;padding:1.2rem 1.2rem 1.1rem;box-shadow:0 30px 70px rgba(0,0,0,.45)}
.dh-dialog h2{margin:.35rem 0 .55rem;font-size:clamp(1.55rem,3vw,2.55rem);line-height:.95}.dh-dialog h2 em{font-style:normal;color:var(--dh-pink)}
.dh-dialog p{color:var(--dh-soft)}
.dh-narrative{display:grid;grid-template-columns:1.05fr .95fr;gap:1rem;align-items:start}
.dh-story-pages{display:grid;gap:.55rem;margin:.8rem 0}.dh-story-page{padding:.8rem .88rem;border-radius:18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06)}
.dh-story-page.active{background:linear-gradient(135deg,rgba(255,47,146,.12),rgba(255,211,107,.06));border-color:rgba(255,255,255,.12)}
.dh-story-page b{display:block;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dh-gold);margin-bottom:.28rem}.dh-story-page p{margin:0;font-size:.88rem}
.dh-dialog-actions{display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-top:1rem}
.dh-start-config{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);border-radius:22px;padding:1rem}
.dh-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.dh-kpi{background:rgba(0,0,0,.2);border-radius:16px;padding:.7rem .78rem;border:1px solid rgba(255,255,255,.06)}
.dh-kpi small{display:block;color:rgba(255,255,255,.54);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.dh-kpi strong{display:block;font-size:1.06rem;margin-top:.18rem}
.dh-tiny{font-size:.79rem;color:rgba(255,255,255,.52)}
@media (max-width:1100px){.dh-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.dh-layout,.dh-bottom,.dh-narrative{grid-template-columns:1fr}.dh-heading{grid-template-columns:1fr 120px}}
@media (max-width:740px){.dh-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dh-two-col,.dh-choice-grid,.dh-kpis{grid-template-columns:1fr}.dh-heading p{max-width:none}.dh-dialog{padding:1rem}.dh-story-blurb{align-items:flex-start}}
@media (max-width:520px){.dh-stats{grid-template-columns:1fr}.dh-stage,.dh-sidebar,.dh-chart-wrap{padding:.85rem;border-radius:24px}.dh-heading{grid-template-columns:1fr}.dh-brand-mark{display:none}.dh-hero{padding-top:1.2rem}.dh-actions{display:grid;grid-template-columns:1fr 1fr}.dh-btn{padding:.85rem .7rem;font-size:.82rem}}
/* DUSTHAVEN 2 */
.dh-slots{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center;justify-content:space-between;background:rgba(255,255,255,.035);border:1px solid var(--dh-line);padding:.85rem 1rem;border-radius:18px;margin-bottom:1rem}.dh-slots strong{display:block;font-size:.76rem;letter-spacing:.1em}.dh-slots small{display:block;color:var(--dh-soft);font-size:.73rem}.dh-slot-buttons{display:flex;gap:.35rem;flex-wrap:wrap}.dh-slot-buttons button{font-size:.77rem;padding:.55rem .7rem;background:rgba(255,255,255,.045);border:1px solid var(--dh-line);border-radius:10px;color:white;cursor:pointer}.dh-slot-buttons button.active{background:rgba(255,47,146,.21);border-color:var(--dh-pink)}
.dh-event-overlay{position:fixed;inset:0;z-index:9999;background:rgba(5,5,8,.83);backdrop-filter:blur(10px);display:grid;place-items:center;padding:1rem}.dh-event-overlay[hidden]{display:none}.dh-event-dialog{width:min(660px,100%);padding:2rem;border-radius:26px;background:linear-gradient(135deg,#20141b,#101116);border:1px solid rgba(255,255,255,.15);box-shadow:0 30px 100px #000a}.dh-event-dialog h2{font-size:clamp(1.5rem,3vw,2.4rem);line-height:1.08;margin:.7rem 0}.dh-event-dialog p{color:var(--dh-soft);margin:0 0 1rem}.dh-event-choices{display:grid;gap:.7rem}.dh-event-choices button{width:100%;text-align:left;border:1px solid var(--dh-line);background:rgba(255,255,255,.05);border-radius:15px;padding:1rem;color:white;cursor:pointer}.dh-event-choices button:hover{border-color:var(--dh-pink);background:rgba(255,47,146,.09)}.dh-event-choices b{display:block;margin-bottom:.25rem;font-size:.96rem}.dh-event-choices small{color:var(--dh-soft)}
.dh-ledger{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-bottom:.8rem}.dh-ledger-item{border:1px solid rgba(255,255,255,.08);padding:.65rem;border-radius:12px;background:rgba(255,255,255,.025)}.dh-ledger-item small{color:var(--dh-soft);font-size:.67rem;display:block;text-transform:uppercase;letter-spacing:.05em}.dh-ledger-item b{font-size:.88rem;display:block;margin-top:.2rem}.dh-sector-list{display:grid;gap:.8rem}.dh-sector-head{display:flex;justify-content:space-between;gap:.8rem;font-size:.81rem}.dh-sector-head span{color:var(--dh-soft)}.dh-sector-track{background:rgba(255,255,255,.1);border-radius:99px;height:7px;margin-top:.3rem;overflow:hidden}.dh-sector-track i{display:block;height:100%;background:linear-gradient(90deg,#ff2f92,#ffd36b);border-radius:99px}.dh-sector-head strong{font-size:.76rem;color:white}
.dh-graph-picker{display:flex;gap:.35rem;flex-wrap:wrap;margin:.5rem 0 .8rem}.dh-graph-picker button{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);color:var(--dh-soft);border-radius:8px;padding:.5rem .75rem;cursor:pointer;font-size:.77rem}.dh-graph-picker button.active{background:rgba(255,47,146,.2);border-color:var(--dh-pink);color:white}
.dh-rank-top{display:flex;justify-content:space-between;gap:.6rem;align-items:center}.dh-rank-top span{font-size:.7rem;letter-spacing:.12em;color:var(--dh-soft)}.dh-rank-rows{margin:.65rem 0;display:grid;gap:.4rem}.dh-rank-row{display:grid;grid-template-columns:25px 1fr auto;gap:.5rem;align-items:center;padding:.6rem;border:1px solid rgba(255,255,255,.07);border-radius:10px;font-size:.8rem;background:rgba(255,255,255,.03)}.dh-rank-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dh-rank-row small{color:var(--dh-gold)}.dh-rank-actions{display:grid;gap:.45rem}.dh-rank-actions .dh-btn{font-size:.8rem}.dh-rank-actions span{font-size:.75rem;color:var(--dh-soft)}
.dh-panel .dh-mini-btn{font-size:.73rem;padding:.65rem .7rem}.dh-stat strong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.dh-choice-grid{grid-template-columns:1fr 1fr}
@media(min-width:1200px){.dh-layout{grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr)}}
@media(max-width:650px){.dh-slots{align-items:stretch}.dh-slot-buttons{order:2;width:100%}.dh-slot-buttons button{flex:1}.dh-event-dialog{padding:1.1rem}.dh-choice-grid{grid-template-columns:1fr 1fr}.dh-stage-head{align-items:flex-start}}

/* Correção de navegação: o prólogo não pode ficar cortado dentro do canvas em telas pequenas. */
#dhIntroOverlay{position:fixed;inset:0;z-index:9998;overflow-y:auto;overscroll-behavior:contain;align-items:safe center;justify-items:center;background:rgba(5,5,8,.87);padding:12px}
#dhIntroOverlay .dh-dialog{max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
@media(max-width:650px){#dhIntroOverlay .dh-dialog{width:100%;padding:1rem;border-radius:20px}#dhIntroOverlay .dh-dialog h2{font-size:clamp(1.25rem,6vw,2rem)}#dhIntroOverlay .dh-story-page p{font-size:.82rem}}

/* Prólogo: só uma etapa narrativa visível por vez; os botões ficam disponíveis mesmo em celulares menores. */
#dhIntroOverlay .dh-story-page:not(.active){display:none}
#dhIntroOverlay .dh-dialog-actions{position:sticky;bottom:0;z-index:2;background:linear-gradient(180deg,rgba(11,11,16,.15),#101015 20%);padding:.85rem 0 .3rem;margin-bottom:-.3rem}
#dhIntroOverlay .dh-dialog-actions button{min-height:42px}
@media(max-width:650px){
 #dhIntroOverlay .dh-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;padding-top:.75rem}
 #dhIntroOverlay .dh-dialog-actions>div{display:contents!important}
 #dhIntroOverlay .dh-dialog-actions button{padding:.68rem .5rem;min-width:0;font-size:.82rem}
 #dhIntroStart{grid-column:1 / -1}
}

/* DUSTHAVEN ORIGINS: início cinematográfico da campanha */
#dhIntroOverlay.dh-cinema-overlay{position:fixed;inset:0;z-index:10050;padding:clamp(9px,2.1vw,28px);display:grid;place-items:center;background:rgba(5,5,10,.91);backdrop-filter:blur(12px);overflow-y:auto}
#dhIntroOverlay.dh-cinema-overlay[hidden]{display:none}
.dh-cinema{width:min(1140px,100%);background:#101014;color:#fff;border:1px solid #4b333f;border-radius:24px;overflow:hidden;box-shadow:0 32px 120px #000e}
.dh-cinema-top{display:flex;align-items:center;justify-content:space-between;padding:17px 25px;background:#09090e;border-bottom:1px solid #37252e;font-size:11px;font-weight:900;letter-spacing:.15em;color:#bab7bf}
.dh-cinema-brand{color:#fff;font-size:14px;letter-spacing:.17em}.dh-cinema-brand i{color:#ff399a;font-style:normal}
.dh-cinema-progress{height:3px;display:flex;background:#24171c;gap:3px}
.dh-cinema-progress span{height:100%;flex:1;background:#2b2930;transition:background .25s ease}
.dh-cinema-progress span.is-past{background:#ff2f92}.dh-cinema-progress span.is-current{background:#ffd36b}
.dh-cinema-layout{display:grid;grid-template-columns:43% 57%;min-height:580px}
.dh-cinema-scene{position:relative;overflow:hidden;min-height:565px;background:linear-gradient(180deg,#170e13 5%,#522934 42%,#e48250 73%,#4a2b25 100%)}
.dh-cinema-grain{position:absolute;inset:0;opacity:.22;background-image:repeating-linear-gradient(90deg,transparent,transparent 3px,rgba(255,255,255,.035) 4px),repeating-linear-gradient(0deg,transparent,transparent 5px,rgba(0,0,0,.07) 6px);mix-blend-mode:overlay;z-index:5}
.dh-cinema-sun{position:absolute;top:19%;left:44%;width:155px;height:155px;border-radius:50%;background:#ffc28a;box-shadow:0 0 70px 22px #e98b5f80,0 0 180px 90px #ff7b543c;animation:dh-breathe 7s ease-in-out infinite alternate}
@keyframes dh-breathe{from{filter:brightness(.85)}to{filter:brightness(1.14)}}
.dh-cinema-dune{position:absolute;left:-20%;bottom:0;width:150%;height:47%;background:#442926;clip-path:polygon(0 55%,12% 52%,35% 39%,50% 46%,73% 22%,88% 30%,100% 36%,100% 100%,0 100%)}
.dh-cinema-dune.two{height:32%;background:#211d21;clip-path:polygon(0 35%,26% 58%,40% 43%,55% 51%,73% 24%,100% 51%,100% 100%,0 100%)}
.dh-cinema-tower{position:absolute;width:56px;height:170px;bottom:23%;left:25%;background:#242125;clip-path:polygon(15% 100%,25% 0,75% 0,85% 100%);filter:drop-shadow(10px 5px 0 #0b0c0c)}
.dh-cinema-tower:before{content:"";position:absolute;left:-22px;top:18px;width:100px;height:15px;background:#29252a}
.dh-cinema-antenna{position:absolute;width:3px;height:150px;bottom:52%;left:67%;background:#231c22;transform:rotate(-6deg)}
.dh-cinema-antenna:after{content:"";position:absolute;top:12px;left:-35px;width:76px;height:2px;background:#231c22}
.dh-cinema-caption{position:absolute;bottom:32px;left:30px;right:30px;z-index:6;text-shadow:0 4px 14px #000a}
.dh-cinema-caption span{font-size:10px;letter-spacing:.22em;font-weight:900;color:#ffda9c;display:block;margin-bottom:12px}
.dh-cinema-caption strong{font-size:clamp(20px,2.5vw,33px);line-height:1.13;letter-spacing:-.045em;display:block;max-width:380px}
.dh-cinema-writing{padding:clamp(18px,3vw,39px);display:flex;flex-direction:column;min-width:0;min-height:0}
.dh-cinema-scroll{flex:1;max-height:min(70vh,520px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:3px}
.dh-cinema-label{display:block;color:#f7b76e;font-size:11px;font-weight:900;letter-spacing:.17em;text-transform:uppercase;margin-bottom:13px}
.dh-cinema-scroll h2{font-size:clamp(28px,3.1vw,45px);letter-spacing:-.065em;line-height:1.03;margin:0 0 18px;font-weight:950;color:#fff}
.dh-cinema-scroll h2 em{font-style:normal;color:#ff449e}
.dh-cinema-text{color:#c8c4cb;font-size:15px;line-height:1.65;margin:0 0 19px}
.dh-cinema-speech{padding:16px 18px;border-left:3px solid #ff4b9f;background:#ff2f9211;color:#fff;border-radius:0 12px 12px 0;margin-bottom:18px;font-weight:700}
.dh-cinema-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.dh-cinema-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.dh-cinema-field.full{grid-column:1/-1}
.dh-cinema-field label{font-size:10px;text-transform:uppercase;letter-spacing:.14em;font-weight:800;color:#b9b1bc}
.dh-cinema-field input,.dh-cinema-field select{min-height:43px;background:#0a0a10;color:#fff;border:1px solid #4a3b47;border-radius:11px;padding:9px 12px;font-size:13px;width:100%;min-width:0}
.dh-cinema-field input:focus,.dh-cinema-field select:focus{outline:2px solid #ff2f9288;outline-offset:1px}
.dh-cinema-field small{color:#aba4ad;font-size:11px}
.dh-cinema-separator{margin:20px 0 14px;font-size:10px;letter-spacing:.18em;color:#f2bc88;font-weight:900;text-transform:uppercase}
.dh-cinema-choices{display:grid;gap:10px}
.dh-cinema-option{display:flex;gap:14px;text-align:left;width:100%;border:1px solid #40343d;background:linear-gradient(90deg,#1c171f,#15151b);border-radius:15px;padding:13px 14px;color:#fff;cursor:pointer;align-items:flex-start;transition:background .18s,border-color .18s,transform .18s}
.dh-cinema-option:hover{background:#281b27;border-color:#ff2f9299;transform:translateX(3px)}
.dh-cinema-option[aria-pressed="true"]{background:#392036;border-color:#ff59ad;box-shadow:inset 0 0 0 1px #ff2f9260}
.dh-cinema-option-icon{border-radius:9px;background:#0e0c10;color:#f0bd85;display:grid;place-items:center;min-width:30px;min-height:30px;font-size:13px;font-weight:900}
.dh-cinema-option b{font-size:14px;display:block;margin-bottom:4px}.dh-cinema-option small{color:#c5b8c5;display:block;font-size:12px;line-height:1.5}
.dh-cinema-controls{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:18px;padding-top:17px;border-top:1px solid #ffffff19}
.dh-cinema-controls>span{font-size:10px;letter-spacing:.14em;color:#99919b;text-align:center}
.dh-cinema-controls button{cursor:pointer;border:1px solid #4e424e;border-radius:11px;padding:12px 14px;font-size:11px;font-weight:900;letter-spacing:.06em;color:#fff;background:#23202a;white-space:nowrap}
.dh-cinema-controls button:disabled{opacity:.3;cursor:not-allowed}
.dh-cinema-controls button.dh-cinema-next{border:0;background:#ff2f92;color:#16070e}
.dh-cinema-controls button[hidden]{display:none}
.dh-cinema-error{color:#ff8ca8!important;min-height:17px;margin:8px 0 0;font-size:12px}
.dh-cinema-foot{border-top:1px solid #ffffff12;padding:14px 25px;display:flex;justify-content:space-between;gap:16px;color:#918a93;font-size:9px;font-weight:900;letter-spacing:.13em}
.dh-cinema-dossier{display:flex;gap:16px;align-items:center;padding:14px;border:1px solid #604051;border-radius:16px;background:linear-gradient(125deg,#361a2b,#181419);margin-bottom:16px}
.dh-cinema-initial{height:68px;width:68px;border-radius:12px;flex-shrink:0;display:grid;place-items:center;font-size:32px;color:#ffd3e6;font-weight:950;background:linear-gradient(140deg,#ff358e66,#481e38)}
.dh-cinema-dossier b{font-size:20px;display:block;overflow-wrap:anywhere}.dh-cinema-dossier small{color:#c6afc2;font-size:12px}
.dh-cinema-tags{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 18px}.dh-cinema-tags span{font-size:11px;border:1px solid #71445e;background:#ff2f9214;border-radius:999px;padding:6px 10px;color:#ffd1e4}
.dh-cinema-timeline{display:grid;gap:10px;margin:13px 0}.dh-cinema-timeline p{border-left:2px solid #ff3e96;padding:2px 10px;color:#cfc6cf;font-size:12px;line-height:1.5;margin:0}
.dh-profile-modal{position:fixed;inset:0;z-index:10060;display:grid;place-items:center;padding:18px;background:#07060bdc;backdrop-filter:blur(8px)}
.dh-profile-modal[hidden]{display:none}.dh-profile-modal-inner{width:min(660px,100%);max-height:calc(100dvh - 36px);overflow-y:auto;position:relative;background:#14121a;border:1px solid #69465b;border-radius:20px;padding:28px;box-shadow:0 24px 80px #000a}
.dh-profile-close{position:absolute;right:14px;top:14px;background:#29202c;color:white;border:1px solid #5a4354;border-radius:50%;width:38px;height:38px;font-size:25px;cursor:pointer}
@media(max-width:850px){.dh-cinema-layout{grid-template-columns:1fr}.dh-cinema-scene{min-height:155px;height:155px}.dh-cinema-sun{width:100px;height:100px;top:8%;left:65%}.dh-cinema-caption{left:19px;bottom:18px;right:15px}.dh-cinema-caption strong{font-size:20px;max-width:320px}.dh-cinema-caption span{font-size:9px;margin-bottom:5px}.dh-cinema-tower{bottom:0;height:130px;left:24%}.dh-cinema-antenna{bottom:34%;left:70%;height:100px}.dh-cinema-writing{padding:18px 20px}.dh-cinema-scroll{max-height:min(54vh,450px)}.dh-cinema-foot{padding:10px 16px}}
@media(max-width:520px){#dhIntroOverlay.dh-cinema-overlay{padding:7px;align-items:start}.dh-cinema{border-radius:15px}.dh-cinema-top{padding:10px 14px;font-size:9px}.dh-cinema-brand{font-size:11px}.dh-cinema-scene{height:108px;min-height:108px}.dh-cinema-sun{width:80px;height:80px;top:-10%}.dh-cinema-caption{left:14px;bottom:12px}.dh-cinema-caption strong{font-size:16px}.dh-cinema-caption span{font-size:8px}.dh-cinema-writing{padding:15px;max-height:none}.dh-cinema-scroll{max-height:calc(100dvh - 325px);min-height:170px}.dh-cinema-scroll h2{font-size:clamp(24px,7vw,31px);margin-bottom:11px}.dh-cinema-text{font-size:13px;margin-bottom:11px;line-height:1.5}.dh-cinema-speech{font-size:12px;padding:10px 12px}.dh-cinema-form{gap:9px}.dh-cinema-field label{font-size:9px}.dh-cinema-field input,.dh-cinema-field select{font-size:12px;min-height:37px;padding:6px 9px}.dh-cinema-option{padding:10px;gap:9px}.dh-cinema-option b{font-size:12px}.dh-cinema-option small{font-size:11px}.dh-cinema-controls{margin-top:8px;padding-top:10px;gap:6px}.dh-cinema-controls button{padding:11px 9px;font-size:10px}.dh-cinema-controls>span{font-size:9px}.dh-cinema-foot{padding:8px 14px;font-size:8px}.dh-cinema-foot span:first-child{display:none}}
@media(prefers-reduced-motion:reduce){.dh-cinema-sun{animation:none}.dh-cinema-option{transition:none}}

.dh-cinema-scroll h2{font-family:system-ui,-apple-system,'Segoe UI',sans-serif!important}
.dh-cinema-local-note{margin:12px 0 0;color:#a99da8;font-size:11px;line-height:1.5}

.dh-cinema-top-actions{display:flex;align-items:center;gap:14px}
.dh-cinema-top-actions button{font-size:9px;font-weight:900;letter-spacing:.10em;color:#d6c5cf;background:#27202a;border:1px solid #604454;border-radius:7px;padding:7px 9px;cursor:pointer}
.dh-cinema-top-actions button:hover{color:white;border-color:#ff2f92}
@media(max-width:520px){.dh-cinema-top-actions{gap:6px}.dh-cinema-top-actions button{font-size:8px;letter-spacing:0;padding:7px 5px}.dh-cinema-brand{font-size:10px}}

/* Dusthaven: population, borders and district growth */
.dh-population-panel{margin:5px 0 22px;padding:22px 24px;border:1px solid rgba(255,255,255,.1);background:linear-gradient(115deg,#20131c,#101017 60%,#1c1514);border-radius:24px;box-shadow:0 18px 55px #0004}
.dh-population-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:17px}.dh-population-head h2{font-size:clamp(24px,2.8vw,37px);margin:8px 0 0;letter-spacing:-.05em}.dh-population-head p{max-width:440px;margin:0;color:#bbb6c0;font-size:13px;line-height:1.6}
.dh-social-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}
.dh-social-stat{padding:15px;border-radius:15px;background:#0d0d13;border:1px solid #ffffff13;min-width:0}
.dh-social-stat small{display:block;font-size:9px;font-weight:900;color:#c1b6c0;line-height:1.5;letter-spacing:.09em;min-height:26px}.dh-social-stat strong{display:block;font-size:clamp(19px,2vw,25px);line-height:1.2;margin:7px 0;color:#fff;overflow-wrap:anywhere}.dh-social-stat span{font-size:11px;color:#ffb6d5;line-height:1.3;display:block}
.dh-border-policy input[type=range],.dh-trade-panel input[type=range]{width:100%;accent-color:#ff2f92;margin:6px 0 14px}
.dh-border-policy .dh-select{width:100%;margin:8px 0 20px}.dh-border-policy .dh-policy-row,.dh-trade-panel .dh-policy-row{margin-top:7px}
.dh-migration-breakdown,.dh-trade-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0 12px}
.dh-migration-breakdown div,.dh-trade-breakdown div{background:#0a0b12;border-radius:10px;padding:9px 10px;border:1px solid #ffffff12;min-width:0}.dh-migration-breakdown small,.dh-trade-breakdown small{display:block;color:#a9a2ad;font-size:10px}.dh-migration-breakdown b,.dh-trade-breakdown b{display:block;color:#fff;font-size:14px;margin-top:2px;overflow-wrap:anywhere}
.dh-border-policy select:disabled,.dh-border-policy input:disabled,.dh-trade-panel input:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:1160px){.dh-social-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.dh-population-panel{padding:17px 14px}.dh-population-head{display:block}.dh-population-head p{margin-top:10px}.dh-social-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dh-social-stat{padding:11px}.dh-social-stat small{font-size:8px;min-height:26px}.dh-social-stat strong{font-size:20px}}

.dh-urban-fabric{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:8px}
.dh-urban-fabric>div{background:#0b0b12;border:1px solid #ffffff12;padding:10px 11px;border-radius:11px;min-width:0}
.dh-urban-fabric small{font-size:10px;color:#afa7b4;display:block}.dh-urban-fabric b{color:#f7e8f0;font-size:20px;display:block;margin-top:5px}
/* Dusthaven urban expansion, zoning and navigable world */
.dh-stage-canvas #dhCanvas{touch-action:none;cursor:grab;user-select:none;image-rendering:auto;}
.dh-stage-canvas #dhCanvas:active{cursor:grabbing}
.dh-map-actions{position:absolute;right:1rem;bottom:1rem;display:flex;gap:.35rem;z-index:3;filter:drop-shadow(0 9px 18px #0007)}
.dh-map-actions button{appearance:none;width:43px;height:42px;border:1px solid #ffffff40;border-radius:12px;background:#12121dd9;color:#fff;font-size:1.35rem;font-weight:850;cursor:pointer;backdrop-filter:blur(10px)}
.dh-map-actions button:hover{background:#ff2f92;color:#09090c}
.dh-map-status{margin:.75rem .4rem 0;font-size:.76rem;line-height:1.5;color:#e9c9dd;min-height:2em}
.dh-urban-panel{background:linear-gradient(145deg,#1d1823,#101218)}
.dh-urban-panel label{display:block;margin:.45rem 0 .35rem}
.dh-urban-panel .dh-select{margin-bottom:.65rem}
.dh-zoning-legend{display:flex;flex-wrap:wrap;gap:.35rem .6rem;margin:.25rem 0 .75rem;font-size:.74rem;color:#ddcbd9}
.dh-zoning-legend span{display:inline-flex;align-items:center;gap:.26rem}
.dh-zoning-legend span::first-letter{color:#f78bb9}
.dh-city-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.9rem}
.dh-city-stats span{padding:.55rem;border:1px solid #ffffff13;background:#09090f9a;border-radius:13px;min-width:0}
.dh-city-stats b{display:block;font-size:1.05rem;color:#fff}
.dh-city-stats small{display:block;font-size:.66rem;color:#bcb5c2;line-height:1.4}
@media(max-width:500px){.dh-map-actions{right:.6rem;bottom:.6rem}.dh-map-actions button{height:37px;width:37px}.dh-city-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.dh-city-stats b{font-size:.88rem}}

/* Reconstrução material coerente com a capacidade da comunidade */
.dh-rebuild-status{display:flex;align-items:flex-start;gap:12px;padding:14px 15px;background:linear-gradient(110deg,rgba(255,196,125,.12),rgba(255,47,146,.07));border:1px solid rgba(255,196,125,.19);border-radius:17px;margin:10px 0}.dh-rebuild-symbol{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;color:#e9b675;background:rgba(0,0,0,.2);font-size:22px}.dh-rebuild-status small{font-weight:900;display:block;letter-spacing:.12em;font-size:10px;color:#dbb98c}.dh-rebuild-status strong{display:block;color:#fff;font-weight:850;font-size:16px;margin-top:2px}.dh-rebuild-status p{margin:3px 0 0;font-size:12px;line-height:1.45;color:#d1c1b5}

/* Dusthaven 7 — financiamento público, serviços e segurança */
.dh-civic-head{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:space-between;align-items:center;margin-bottom:.45rem}
.dh-civic-head h3{margin:.3rem 0}.dh-civic-total{color:#ffd36b;border:1px solid #ffd36b44;background:#ffd36b10;border-radius:14px;padding:.55rem .75rem;font-weight:850;white-space:nowrap}
.dh-civic-grid,.dh-justice-law-list{display:grid;gap:.7rem}
.dh-civic-item{background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.095);border-radius:17px;padding:.83rem}
.dh-civic-row{display:flex;gap:.7rem;align-items:start;justify-content:space-between;flex-wrap:wrap}
.dh-civic-item h4{margin:0;font-size:.97rem;letter-spacing:-.015em}
.dh-civic-item p{font-size:.78rem;color:#b3aebb;margin:.25rem 0 .65rem}
.dh-civic-select,.dh-justice-select{border:1px solid #ffffff25;background:#12121c;color:white;padding:.5rem;border-radius:12px;max-width:100%;font:inherit;font-size:.82rem}
.dh-civic-range{display:flex;gap:.7rem;align-items:center;margin:.45rem 0}
.dh-civic-range input{flex:1;min-width:0;accent-color:#ff2f92}
.dh-civic-range output{font-size:.9rem;font-weight:900;min-width:43px;text-align:end;color:#ffd36b}
.dh-civic-meter{height:7px;background:rgba(255,255,255,.08);border-radius:999px;overflow:hidden;margin:.6rem 0 .2rem}
.dh-civic-meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,#ff2f92,#ffd36b);border-radius:999px;transition:width .3s}
.dh-civic-foot{font-size:.76rem;color:#c3bdc9;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.3rem}
.dh-civic-costs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin-top:.8rem}
.dh-civic-costs>div,.dh-justice-stats>div{border:1px solid #ffffff19;background:#0c0c12;border-radius:13px;padding:.64rem}
.dh-civic-costs small,.dh-justice-stats small{display:block;color:#aaa1b1;font-size:.69rem;line-height:1.2}
.dh-civic-costs b,.dh-justice-stats strong{color:#fff;font-size:.94rem;display:block;margin-top:.16rem}
.dh-justice-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:.9rem 0}
.dh-justice-law{display:grid;grid-template-columns:minmax(0,1fr) minmax(125px,.9fr);gap:.55rem;align-items:center;border-bottom:1px solid #ffffff15;padding:.48rem 0}
.dh-justice-law b{font-size:.85rem}.dh-justice-law small{display:block;color:#a9a5b0;font-size:.74rem;margin-top:.13rem}
.dh-civic-locked{background:#0d0d14;border:1px solid #ffffff1b;border-radius:15px;padding:.8rem;color:#bbb;font-size:.85rem}
@media(max-width:480px){.dh-justice-law{grid-template-columns:1fr}.dh-civic-costs{grid-template-columns:1fr 1fr}.dh-justice-stats{grid-template-columns:1fr 1fr}}

/* Dusthaven 8 — orçamento, avisos e encerramento de campanha */
.dh-political-panel{border:1px solid rgba(255,255,255,.11);background:linear-gradient(130deg,#18141b,#101013);border-radius:18px;padding:17px 18px;margin:15px 0 19px}
.dh-political-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.dh-political-header small{display:block;color:#b9aeba;font-size:10px;font-weight:900;letter-spacing:.15em}
.dh-political-header strong{display:block;font-size:20px;color:#fff;margin-top:5px}
.dh-political-header b{color:#fa86b9;font-size:13px}
.dh-political-track{height:8px;margin:14px 0 10px;background:#3d2d39;border-radius:999px;overflow:hidden}
.dh-political-track i{display:block;height:100%;width:0%;background:linear-gradient(90deg,#ffca67,#ff3b83);transition:width .25s}
.dh-political-panel p{margin:0;font-size:12px;color:#bbb4c0;line-height:1.55}
.dh-political-panel.is-warning{border-color:rgba(255,166,81,.48);background:linear-gradient(130deg,#31201b,#160f13)}
.dh-political-panel.is-critical{border-color:rgba(255,69,112,.8);background:linear-gradient(130deg,#4c1c29,#1b0b11);box-shadow:0 0 24px rgba(255,36,101,.12)}
.dh-political-panel.is-finished{border-color:rgba(255,55,100,.8)}
.dh-ending-overlay[hidden]{display:none!important}
.dh-ending-overlay{position:absolute;z-index:24;inset:0;display:flex;align-items:center;justify-content:center;overflow:auto;padding:20px;background:rgba(3,3,7,.91);backdrop-filter:blur(12px)}
.dh-ending-dialog{width:min(620px,100%);margin:auto;padding:30px;background:linear-gradient(165deg,#26111b,#101014 70%);border:1px solid rgba(255,255,255,.17);box-shadow:0 32px 90px rgba(0,0,0,.65);border-radius:24px}
.dh-ending-dialog h2{font-size:clamp(30px,4.5vw,55px);line-height:.99;font-weight:950;letter-spacing:-.06em;margin:18px 0;color:#fff}
.dh-ending-dialog>p{color:#d3c9d2;line-height:1.65;font-size:15px}
.dh-ending-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:20px 0}
.dh-ending-summary div{padding:12px 10px;background:#ffffff0c;border:1px solid #ffffff1e;border-radius:12px}
.dh-ending-summary small{display:block;color:#bcaeb8;font-size:10px;text-transform:uppercase;font-weight:800;letter-spacing:.09em}
.dh-ending-summary strong{display:block;margin-top:5px;font-size:17px;color:white}
.dh-ending-buttons{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}
.dh-policy-frozen{opacity:.65;pointer-events:none}
@media(max-width:560px){.dh-ending-overlay{padding:8px}.dh-ending-dialog{padding:17px;border-radius:15px}.dh-ending-summary{gap:5px}.dh-ending-summary div{padding:9px 7px}.dh-ending-summary strong{font-size:14px}}

.dh-civic-impact{margin:8px 0 0;color:#c3b6c0;font-size:11px;line-height:1.6;letter-spacing:0}

/* Dusthaven 9: social law code, four levels each */
.dh-social-laws{border-color:rgba(255,47,146,.22);background:linear-gradient(135deg,rgba(255,47,146,.055),rgba(11,11,18,.95))}
.dh-social-laws-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:17px 0 12px}
.dh-social-law-item{border:1px solid #ffffff17;border-radius:16px;background:#090c14d9;padding:13px 13px 12px;min-width:0}
.dh-social-law-item h4{font-size:14px;margin:0 0 4px;color:#fff;line-height:1.3}
.dh-social-law-item p{font-size:12px;margin:0 0 10px;color:#b6acb8;line-height:1.55}
.dh-social-law-item select{width:100%;background:#151724;color:#fff;border:1px solid #ff52954f;padding:10px;border-radius:12px;max-width:100%;font-size:12px;font-weight:650}
.dh-social-law-item small{display:block;color:#cdaebf;font-size:11px;line-height:1.5;margin-top:9px}
.dh-social-law-scale{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:9px}
.dh-social-law-scale i{height:5px;border-radius:5px;background:#42313f;transition:background .2s}
.dh-social-law-scale i.active{background:#ff2f92}
.dh-social-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.dh-social-metrics>div{padding:12px;border-radius:13px;border:1px solid #ffffff18;background:#0c0c15}
.dh-social-metrics small{display:block;font-size:10px;letter-spacing:.06em;color:#b8b0be}
.dh-social-metrics b{display:block;font-size:17px;color:#fff;margin-top:5px}
.dh-social-inactive{opacity:.62}
@media(max-width:750px){.dh-social-laws-grid{grid-template-columns:1fr}}
