.dungeon{--d-line:#405570;--d-soft:#20334d;--d-ink:#f0f5ff;--d-muted:#b5c4d8;color:var(--d-ink)}
.dungeon button{cursor:pointer}.dungeon button:disabled{opacity:.48;cursor:not-allowed}.dungeon .d-card{background:#17263b;border:1px solid var(--d-line);border-radius:16px;padding:17px;min-width:0;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.dungeon .d-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.dungeon h1,.dungeon h2,.dungeon h3{margin:0;color:var(--d-ink);line-height:1.12}.dungeon h1{font-size:29px}.dungeon h2{font-size:21px}.dungeon h3{font-size:16px}.dungeon p{color:var(--d-muted);margin:6px 0 0;line-height:1.45}.dungeon .d-kicker{color:#ffd282;text-transform:uppercase;font-size:10px;font-weight:900;letter-spacing:.1em;margin-bottom:5px}.dungeon .d-muted{color:var(--d-muted);font-size:12px}.dungeon .d-actions{display:flex;gap:8px;flex-wrap:wrap}.dungeon .d-actions button,.dungeon .d-small{border:1px solid #52657d;background:#294462;color:var(--d-ink);min-height:36px;padding:7px 12px;border-radius:9px;font-weight:800}.dungeon .d-actions .d-primary,.dungeon .d-primary{background:#2867b7;border:1px solid #4986d4;color:white;font-weight:900;padding:11px 15px;border-radius:10px;min-height:44px}.dungeon .d-primary:hover{background:#3479cf}.dungeon .d-actions button:hover,.dungeon .d-small:hover{background:#365777}.dungeon .d-danger{color:#ffb0ac!important}.dungeon .d-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,1fr);gap:13px}.dungeon .d-stack{display:grid;align-content:start;gap:13px}.dungeon .d-strip{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:9px;margin:15px 0}.dungeon .d-strip .d-card{padding:12px}.dungeon .d-strip strong{font-size:19px;display:block;margin:5px 0}.dungeon .d-hp{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;margin-top:5px}.dungeon .d-hp span{height:7px;border-radius:4px;background:#68d6a4}.dungeon .d-hp span.empty{background:#405570}.dungeon .d-encounter{display:grid;grid-template-columns:76px 1fr;gap:12px;align-items:center}.dungeon .d-art{display:grid;place-items:center;background:linear-gradient(140deg,#425c7b,#22354e);border:1px solid #6782a4;border-radius:12px;font-size:43px;height:82px}.dungeon .d-metrics{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.dungeon .d-metrics span{background:#263c58;border:1px solid #4b6281;border-radius:9px;padding:7px 10px;font-size:12px}.dungeon .d-metrics b{color:#fff;font-size:17px}.dungeon .d-ability{background:#302d3e;border:1px solid #69586d;border-radius:10px;padding:10px;margin-top:11px;color:#efdce6;font-size:12px}.dungeon .d-dice{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.dungeon .d-die{border:2px solid #b9cbe5;background:#eaf1fb;color:#152945;border-radius:12px;width:100%;height:83px;display:grid;place-content:center;gap:3px;text-align:center}.dungeon .d-die.held{border-color:#ffd282;background:#fff3d8}.dungeon .d-die strong{font-size:29px;line-height:1}.dungeon .d-die small{font-size:10px;font-weight:800}.dungeon .d-sticker-label{font-size:10px;color:#9ee7c5;text-align:center;min-height:27px;margin-top:5px;line-height:1.2}.dungeon .d-move{display:flex;gap:3px}.dungeon .d-move button{min-width:0;flex:1;border:1px solid #52657d;background:#294462;color:#fff;border-radius:7px;min-height:30px}.dungeon .d-power{display:flex;gap:9px;align-items:center;background:var(--d-soft);border:1px solid var(--d-line);border-radius:10px;padding:9px;margin-top:7px}.dungeon .d-power .icon{font-size:23px;width:28px}.dungeon .d-power .copy{flex:1;min-width:0;font-size:13px}.dungeon .d-power .copy small{display:block;color:var(--d-muted);font-size:11px}.dungeon .d-power .d-move button{min-width:32px;min-height:36px}.dungeon .d-preview{background:linear-gradient(145deg,#203756,#17263b);border-color:#5479a7}.dungeon .d-chain{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.dungeon .d-chain span{background:#2b4869;border-radius:8px;padding:7px;font-size:11px;font-weight:800}.dungeon .d-chain i{font-style:normal;color:#9ac4ff}.dungeon .d-total{display:flex;justify-content:space-between;align-items:flex-end;margin:15px 0}.dungeon .d-total strong{font-size:42px;line-height:1}.dungeon .d-clear{color:#74e0aa}.dungeon .d-miss{color:#ff9696}.dungeon .d-preview .d-primary{width:100%}.dungeon .d-loot{display:flex;gap:7px;flex-wrap:wrap}.dungeon .d-loot button{flex:1;min-width:125px;text-align:left}.dungeon .d-loot small{display:block;color:#b5c4d8}.dungeon .d-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.dungeon .d-choice{background:#213650;border:1px solid #526b8a;border-radius:12px;padding:13px;text-align:left;color:#fff;min-height:95px}.dungeon .d-choice:hover{border-color:#9ac4ff;background:#2c4868}.dungeon .d-choice strong,.dungeon .d-choice small{display:block}.dungeon .d-choice small{color:#b5c4d8;margin-top:4px}.dungeon .d-choice .d-cost{color:#ffd282;font-weight:900;margin-top:7px}.dungeon .d-form{display:flex;gap:10px;flex-wrap:wrap}.dungeon .d-form input,.dungeon .d-form select{background:#102035;color:#fff;border:1px solid #607794;border-radius:9px;padding:10px;min-height:44px;min-width:160px}.dungeon .d-run-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #405570;padding:11px 0}.dungeon .d-run-row:first-child{border-top:0}.dungeon .d-log{font-size:12px;color:#b5c4d8}.dungeon .d-log div{border-top:1px solid #405570;padding:7px 0}.dungeon .d-log div:first-child{border:0}.dungeon .d-message{margin:12px 0;padding:11px;background:#243d5b;border:1px solid #5479a7;border-radius:10px;color:#d9eaff}.dungeon .d-error{border-color:#d48686;background:#452c39}.dungeon .d-skip{margin-top:10px}
body:not(.theme-dark) .dungeon{color:#14233b}body:not(.theme-dark) .dungeon .d-card{background:#f7faff;color:#12213a;box-shadow:none}body:not(.theme-dark) .dungeon h1,body:not(.theme-dark) .dungeon h2,body:not(.theme-dark) .dungeon h3{color:#14233b}body:not(.theme-dark) .dungeon p,body:not(.theme-dark) .dungeon .d-muted{color:#415670}body:not(.theme-dark) .dungeon .d-kicker{color:#755019}body:not(.theme-dark) .dungeon .d-power,body:not(.theme-dark) .dungeon .d-metrics span{background:#e2ecf8;color:#14233b}body:not(.theme-dark) .dungeon .d-metrics b{color:#14233b}body:not(.theme-dark) .dungeon .d-preview{background:#e5f0ff}body:not(.theme-dark) .dungeon .d-chain span{color:#fff}body:not(.theme-dark) .dungeon .d-log{color:#415670}
@media(max-width:980px){.dungeon .d-grid{grid-template-columns:1fr}.dungeon .d-side{display:grid;grid-template-columns:1fr 1fr;gap:13px}.dungeon .d-preview{grid-column:1/-1;grid-row:1}}
@media(max-width:640px){.dungeon .d-heading{flex-direction:column}.dungeon h1{font-size:25px}.dungeon .d-card{padding:13px}.dungeon .d-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.dungeon .d-strip .d-card:first-child{grid-column:1/-1}.dungeon .d-strip strong{font-size:16px}.dungeon .d-side{display:grid;grid-template-columns:1fr}.dungeon .d-preview{grid-column:auto}.dungeon .d-dice{gap:4px}.dungeon .d-die{height:71px}.dungeon .d-die strong{font-size:24px}.dungeon .d-move button{min-height:34px}.dungeon .d-actions button{min-height:44px}.dungeon .d-art{width:65px;height:75px}.dungeon .d-encounter{grid-template-columns:65px 1fr}.dungeon .d-run-row{align-items:flex-start}.dungeon .d-choice{min-height:80px}}
.dungeon .d-landing-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0 0 12px}.dungeon .d-landing-stats strong{font-size:23px}.dungeon .d-gold{color:#ffd282}.dungeon .d-position{text-align:center;color:#b5c4d8;font-size:10px;font-weight:850;margin-bottom:5px}.dungeon .d-die.selected{border-color:#ffd282;background:#fff1cf;box-shadow:0 0 0 2px #8e7035 inset}.dungeon .d-die-wrap{min-width:0}.dungeon .d-die small{display:block}.dungeon .d-sticker-label{overflow-wrap:anywhere}.dungeon .d-inspectors{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px;margin-top:13px}.dungeon .d-face-inspector,.dungeon .d-breakdown{background:#20334d;border:1px solid #405570;border-radius:10px;padding:9px;margin-top:9px}.dungeon .d-face-inspector summary,.dungeon .d-breakdown summary{cursor:pointer;font-size:12px;font-weight:850;color:#d6e7ff}.dungeon .d-face-list{display:grid;gap:7px;margin-top:10px}.dungeon .d-face-row{border-top:1px solid #405570;padding:6px 0;display:grid;gap:2px;font-size:11px}.dungeon .d-face-row>b{font-size:12px}.dungeon .d-face-row>span{color:#b5c4d8}.dungeon .d-face-stickers{display:flex;gap:4px;flex-wrap:wrap}.dungeon .d-sticker-chip{display:inline-flex;gap:4px;align-items:center;background:#2b4869;border-radius:6px;padding:4px;color:#f0f5ff;font-size:10px}.dungeon .d-sticker-chip button{padding:2px 5px;min-height:24px;background:#365a7c;color:#fff}.dungeon .d-breakdown{margin-top:13px}.dungeon .d-breakdown-row{border-top:1px solid #405570;padding:9px 2px;font-size:12px;line-height:1.5;color:#d8e7fb}.dungeon .d-breakdown-row:first-of-type{margin-top:8px}.dungeon .d-breakdown-row b,.dungeon .d-breakdown-row strong{display:block;color:#fff}.dungeon .d-loot{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px}.dungeon .d-loot-item{display:grid;gap:6px;background:#213650;border:1px solid #526b8a;border-radius:10px;padding:10px;min-width:0}.dungeon .d-loot-item strong{font-size:12px}.dungeon .d-loot-item small{color:#b5c4d8;font-size:11px;line-height:1.3}.dungeon .d-loot-item select{min-width:0;width:100%;min-height:36px;background:#102035;color:#fff;border:1px solid #607794;border-radius:7px;padding:5px}.dungeon .d-loot-item button{min-height:38px}.dungeon .d-event-result{background:#2b4869;border:1px solid #6582a5;border-radius:10px;padding:15px;margin:14px 0;color:#fff;font-weight:900}.dungeon .d-run-row .d-muted{overflow-wrap:anywhere}
body:not(.theme-dark) .dungeon .d-face-inspector,body:not(.theme-dark) .dungeon .d-breakdown{background:#e6effa}body:not(.theme-dark) .dungeon .d-face-inspector summary,body:not(.theme-dark) .dungeon .d-breakdown summary,body:not(.theme-dark) .dungeon .d-breakdown-row,body:not(.theme-dark) .dungeon .d-breakdown-row b,body:not(.theme-dark) .dungeon .d-breakdown-row strong{color:#19324f}body:not(.theme-dark) .dungeon .d-position{color:#415670}body:not(.theme-dark) .dungeon .d-gold{color:#825314}
@media(max-width:640px){.dungeon .d-landing-stats{gap:5px}.dungeon .d-landing-stats .d-card{padding:9px}.dungeon .d-landing-stats strong{font-size:18px}.dungeon .d-position{font-size:9px}.dungeon .d-die small{font-size:9px}.dungeon .d-inspectors{grid-template-columns:1fr}}
.dungeon .d-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.dungeon .d-badges span{display:inline-flex;border:1px solid #8b713d;background:#3a3428;color:#ffe0a4;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:850}.dungeon .d-run-row>div:first-child{min-width:0;flex:1}
body:not(.theme-dark) .dungeon .d-badges span{background:#fff4da;color:#755019}
.dungeon .d-catalog-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:17px 0}.dungeon .d-catalog-tabs button.active{background:#35699f;border-color:#9ac4ff;color:#fff}.dungeon .d-catalog-tabs span{opacity:.78;margin-left:3px}.dungeon .d-catalog-group{margin:18px 0 24px}.dungeon .d-catalog-group h2{margin-bottom:10px}.dungeon .d-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:10px}.dungeon .d-catalog-card{min-width:0;background:#20334d;border:1px solid #405570;border-radius:13px;padding:14px}.dungeon .d-catalog-title{display:flex;align-items:center;gap:10px}.dungeon .d-catalog-title small{color:#b5c4d8;font-weight:750}.dungeon .d-catalog-icon{font-size:27px;display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:#2f4966;flex:none}.dungeon .d-catalog-card p{font-size:12px;margin:9px 0 0}.dungeon .d-catalog-card p b{color:#f0f5ff}.dungeon .d-catalog-metrics{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.dungeon .d-catalog-metrics span{background:#2b4869;border-radius:6px;padding:5px 7px;font-size:11px}.dungeon .d-catalog-foot{margin-top:11px;color:#ffd282;font-size:11px;font-weight:800}.dungeon .d-catalog-note{padding:10px 13px;border:1px solid #526b8a;border-radius:9px;background:#213650}.dungeon .d-catalog-card h3{font-size:16px}
body:not(.theme-dark) .dungeon .d-catalog-card{background:#f7faff}body:not(.theme-dark) .dungeon .d-catalog-title small{color:#415670}body:not(.theme-dark) .dungeon .d-catalog-icon,body:not(.theme-dark) .dungeon .d-catalog-metrics span,body:not(.theme-dark) .dungeon .d-catalog-note{background:#e2ecf8;color:#14233b}body:not(.theme-dark) .dungeon .d-catalog-card p b{color:#14233b}body:not(.theme-dark) .dungeon .d-catalog-foot{color:#755019}
@media(max-width:640px){.dungeon .d-catalog-grid{grid-template-columns:1fr}.dungeon .d-catalog-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.dungeon .d-catalog-tabs button{min-width:0}}
.dungeon .d-catalog-search{display:flex;align-items:center;gap:10px;margin:0 0 14px}.dungeon .d-catalog-search input{background:#102035;border:1px solid #607794;border-radius:9px;color:#fff;min-height:44px;padding:10px 12px;max-width:440px;width:100%}.dungeon .d-catalog-search span{color:var(--d-muted);white-space:nowrap;font-size:12px;font-weight:800}.dungeon .d-catalog-card[hidden],.dungeon .d-catalog-group[hidden]{display:none}
body:not(.theme-dark) .dungeon .d-catalog-search input{background:#fff;color:#14233b}

/* v9.4.2 Other Rooms: authored room cards, choices, risks, and d20 tables. */
.dungeon .d-room-card{position:relative;overflow:hidden;background:linear-gradient(145deg,#1b2d45,#152338)}
.dungeon .d-room-card::after{content:"";position:absolute;inset:0 0 auto;height:3px;background:#7c91ab}
.dungeon .d-room-card.d-room--rare::after{background:linear-gradient(90deg,#9a6a15,#ffe39b,#9a6a15)}
.dungeon .d-room-card.d-room--mythic::after{background:linear-gradient(90deg,#7d1e27,#ff8a87,#7d1e27)}
.dungeon .d-room-heading{display:flex;align-items:center;gap:13px;margin-bottom:12px}
.dungeon .d-room-icon{display:grid;place-items:center;width:62px;height:62px;flex:none;border:1px solid #607b9a;border-radius:15px;background:linear-gradient(145deg,#344f6e,#20354f);font-size:34px;box-shadow:0 8px 16px #050b1450}
.dungeon .d-room-type{display:inline-flex;margin-top:6px;padding:3px 8px;border:1px solid #526b88;border-radius:999px;color:#c9d8eb;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}
.dungeon .d-room-effect{margin:0 0 14px!important;padding:12px 13px;border:1px solid #4b607b;border-radius:11px;background:#203650;color:#e7f1ff!important;font-size:13px;font-weight:700}
.dungeon .d-room-main-action{width:100%;margin-top:13px}
.dungeon .d-room-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:9px;margin:12px 0}
.dungeon .d-room-choice{min-height:116px}
.dungeon .d-room-price{display:block;margin-top:7px;color:#ffd282;font-weight:900}
.dungeon .d-room-action-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:13px}
.dungeon .d-room-action-pair button{min-height:50px;border:1px solid #52657d;border-radius:10px;background:#294462;color:#fff;font-weight:850}
.dungeon .d-room-action-pair .d-danger{background:#5a2b38;border-color:#a75d69}
.dungeon .d-room-facedown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:13px}
.dungeon .d-room-facedown button{display:grid;place-items:center;gap:5px;min-height:116px;border:1px solid #896d39;border-radius:12px;background:linear-gradient(145deg,#3c3326,#201e22);color:#ffe4ac}
.dungeon .d-room-facedown span{display:grid;place-items:center;width:42px;height:42px;border:1px solid #d1a34d;border-radius:50%;font-size:24px;font-weight:950}
.dungeon .d-room-facedown b{font-size:11px}
.dungeon .d-room-wager{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:8px;align-items:center;margin-top:13px;padding:12px;border:1px solid #526b88;border-radius:11px;background:#203650}
.dungeon .d-room-wager label{color:#d9e8fa;font-size:12px}.dungeon .d-room-wager input{width:100%;min-height:43px;border:1px solid #6a819d;border-radius:8px;background:#102035;color:#fff;padding:8px;font-weight:900}
.dungeon .d-room-loot-option{display:flex;gap:10px;align-items:flex-start;cursor:pointer;min-height:100px}
.dungeon .d-room-loot-option input{width:20px;height:20px;flex:none;accent-color:#3d95e9}.dungeon .d-room-loot-option span{min-width:0}.dungeon .d-room-loot-option small{display:block;margin-top:4px;color:#b5c4d8}
.dungeon .d-room-power-list{display:grid;gap:8px;margin-top:13px}
.dungeon .d-room-power-option{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px;border:1px solid #526b88;border-radius:10px;background:#203650}
.dungeon .d-room-power-option>span{font-size:24px}.dungeon .d-room-power-option small{display:block;color:#b5c4d8;font-size:11px;line-height:1.35}.dungeon .d-room-power-option button{min-height:38px;border:1px solid #5e7794;border-radius:8px;background:#2d4a69;color:#fff;font-weight:850}
.dungeon .d-room-upgrade-actions{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.dungeon .d-room-chances{margin-top:10px}
.dungeon .d-power.is-room-locked{opacity:.58;filter:saturate(.45)}
body:not(.theme-dark) .dungeon .d-room-card{background:#f7faff}body:not(.theme-dark) .dungeon .d-room-icon,body:not(.theme-dark) .dungeon .d-room-effect,body:not(.theme-dark) .dungeon .d-room-wager,body:not(.theme-dark) .dungeon .d-room-power-option{background:#e5effa;color:#19324f}body:not(.theme-dark) .dungeon .d-room-effect{color:#19324f!important}body:not(.theme-dark) .dungeon .d-room-type{color:#415670}body:not(.theme-dark) .dungeon .d-room-power-option small,body:not(.theme-dark) .dungeon .d-room-loot-option small{color:#415670}
@media(max-width:640px){.dungeon .d-room-heading{gap:10px}.dungeon .d-room-icon{width:52px;height:52px;font-size:29px}.dungeon .d-room-action-pair{grid-template-columns:1fr}.dungeon .d-room-facedown button{min-height:96px}.dungeon .d-room-wager{grid-template-columns:1fr 78px}.dungeon .d-room-wager button{grid-column:1/-1}.dungeon .d-room-power-option{grid-template-columns:29px minmax(0,1fr)}.dungeon .d-room-power-option>button,.dungeon .d-room-upgrade-actions{grid-column:1/-1}.dungeon .d-room-upgrade-actions button{flex:1}.dungeon .d-room-choice-grid{grid-template-columns:1fr}.dungeon .d-mobile-main.is-other-phase .d-grid{display:block}.dungeon .d-mobile-main.is-other-phase .d-grid>aside{margin-top:10px}}
/* v9.4.3 Hearthlight: a single warm/carmine wash on Rare/Mythic room entry. */
.dungeon .d-room-stage{position:relative;isolation:isolate;overflow:hidden;border-radius:14px}
.dungeon .d-room-stage>.d-grid{position:relative;z-index:1}
.dungeon .d-room-entry-wash{position:absolute;z-index:0;inset:-35%;pointer-events:none;opacity:0;transform:scale(.72);background:radial-gradient(ellipse at 50% 42%,var(--room-wash-core),transparent 54%),linear-gradient(112deg,transparent 28%,var(--room-wash-sweep) 48%,transparent 68%)}
.dungeon .d-room-stage[data-rarity="Rare"]{--room-wash-core:#ffd36b70;--room-wash-sweep:#ffdf8c66;--room-card-glow:#ffc54b}
.dungeon .d-room-stage[data-rarity="Mythic"]{--room-wash-core:#ff4b565e;--room-wash-sweep:#ff536a6b;--room-card-glow:#ff4358}
.dungeon .d-room-stage.is-entering .d-room-entry-wash{animation:d-room-hearthlight-wash 1.25s ease-out both}
.dungeon .d-room-stage.is-entering .d-room-card{animation:d-room-hearthlight-card 1.25s ease-out both}
@keyframes d-room-hearthlight-wash{0%{opacity:0;transform:scale(.72) rotate(-4deg)}18%{opacity:.95}56%{opacity:.62;transform:scale(1.02) rotate(0)}100%{opacity:0;transform:scale(1.16)}}
@keyframes d-room-hearthlight-card{0%{filter:brightness(1);box-shadow:0 0 0 transparent}23%{filter:brightness(1.28);box-shadow:0 0 28px 4px color-mix(in srgb,var(--room-card-glow) 52%,transparent)}62%{filter:brightness(1.08);box-shadow:0 0 15px 1px color-mix(in srgb,var(--room-card-glow) 26%,transparent)}100%{filter:brightness(1);box-shadow:0 0 0 transparent}}
@media(prefers-reduced-motion:reduce){.dungeon .d-room-stage.is-entering .d-room-entry-wash,.dungeon .d-room-stage.is-entering .d-room-card{animation:none!important}}
.dungeon .d-power-row{display:flex;gap:8px;overflow-x:auto;padding:1px 1px 7px;scroll-snap-type:x proximity}.dungeon .d-power-row .d-power{flex:0 0 178px;min-width:0;margin-top:0;display:grid;grid-template-columns:27px minmax(0,1fr);align-content:start;scroll-snap-align:start}.dungeon .d-power-row .d-power .icon{grid-column:1}.dungeon .d-power-row .d-power .copy{grid-column:2}.dungeon .d-power-row .d-power .d-move{grid-column:1/-1;display:flex;margin-top:4px}.dungeon .d-power-row .d-power .d-move button{flex:1}
.dungeon .d-hp{align-items:center;gap:3px;margin:9px 0 7px}.dungeon .d-hp span{display:block;width:100%;height:9px;min-height:0;margin:0;border-radius:4px}.dungeon .d-hp span.is-filled{background:linear-gradient(180deg,#91e8bd,#52c994)}.dungeon .d-hp span.is-empty{background:#405570}
.dungeon .d-reward{background:#3a321f;border:1px solid #9d7b3c;border-radius:10px;padding:10px;margin-top:8px;color:#ffe2a8;font-size:12px}.dungeon .d-reward b{color:#fff0c6}
.dungeon .d-die-wrap{position:relative}.dungeon .d-sticker-rail{position:absolute;z-index:2;top:23px;left:4px;display:flex;flex-direction:column;gap:2px}.dungeon .d-sticker-icon{display:grid;place-items:center;width:18px;height:18px;background:#fff9e8;border:1px solid #b89651;border-radius:5px;color:#17263b;font-size:12px;line-height:1;cursor:help}.dungeon .d-sticker-icon:is(:hover,:focus-visible),.dungeon .d-sticker-chip [tabindex]:is(:hover,:focus-visible){outline:2px solid #ffd282;outline-offset:2px;cursor:help}.dungeon .d-sticker-chip [tabindex]{border-radius:3px}
body:not(.theme-dark) .dungeon .d-reward{background:#fff1cf;color:#664513;border-color:#bd9248}body:not(.theme-dark) .dungeon .d-reward b{color:#593a0c}
@media(max-width:640px){.dungeon .d-sticker-rail{top:18px;left:2px}.dungeon .d-sticker-icon{width:16px;height:16px;font-size:11px}}
/* Section 1: the dice themselves move; reroll selection has separate controls. */
.dungeon .d-roll-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.dungeon .d-roll-heading p{font-size:12px}
.dungeon .d-roll-score{display:flex;align-items:baseline;gap:7px;white-space:nowrap;padding:9px 12px;border:1px solid #496480;border-radius:12px;background:#213650}
.dungeon .d-roll-score strong{font-size:23px;line-height:1;color:#f6f9ff}
.dungeon .d-roll-score span{font-size:12px;color:#c7d7ec}
.dungeon .d-roll-score.is-winning{background:#184c46;border-color:#4ebc9b}
.dungeon .d-roll-instruction{display:flex;gap:8px;align-items:center;margin:0 0 12px!important;color:#d8e8fb!important;font-size:13px}
.dungeon .d-roll-card .d-dice{gap:8px}
.dungeon .d-roll-card .d-position{margin-bottom:7px;color:#a7bfd9;font-size:11px;letter-spacing:.04em;text-transform:uppercase}
.dungeon .d-roll-card .d-die{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:114px;gap:0;border:1px solid #6582a4;border-radius:15px;background:linear-gradient(145deg,#f8fbff,#dce9f9);color:#183151;box-shadow:0 5px 0 #7490af,0 11px 20px #050e1a44;cursor:grab;user-select:none;touch-action:manipulation;transition:transform .15s,box-shadow .15s,border-color .15s}
.dungeon .d-roll-card .d-die:hover{transform:translateY(-3px)}
.dungeon .d-roll-card .d-die:focus-visible,.dungeon .d-roll-card .d-reroll-choice:focus-visible,.dungeon .d-roll-card .d-face-inspector summary:focus-visible{outline:3px solid #f5d27e;outline-offset:3px}
.dungeon .d-roll-card .d-die.is-move-source{border:3px solid #e6ad48;box-shadow:0 0 0 4px #edbd6360,0 5px 0 #95703e;transform:translateY(-4px)}
.dungeon .d-roll-card .d-die-wrap.is-reroll-picked .d-die{border-color:#74c2ff;box-shadow:0 0 0 3px #4eaaff8c,0 5px 0 #5683a9}
.dungeon .d-roll-card .d-die-wrap.is-drop-target .d-die{outline:3px dashed #67dbbe;outline-offset:3px}
.dungeon .d-roll-card .d-die strong{font-size:45px;line-height:1.05}
.dungeon .d-roll-card .d-die small{font-size:11px;letter-spacing:.04em;text-transform:uppercase;opacity:.72}
.dungeon .d-roll-card .d-sticker-rail{top:28px;left:4px;gap:3px;pointer-events:none}
.dungeon .d-roll-card .d-sticker-icon{width:23px;height:23px;border-radius:6px;font-size:14px;background:#fff3cb;pointer-events:auto}
.dungeon .d-roll-card .d-reroll-choice{width:100%;min-height:39px;margin-top:12px;padding:5px 3px;border:1px solid #54708e;border-radius:9px;background:#203550;color:#bfd6f2;font-size:12px;font-weight:800;line-height:1.1}
.dungeon .d-roll-card .d-reroll-choice[aria-pressed="true"]{background:#266a9f;border-color:#84c9ff;color:#fff}
.dungeon .d-roll-card .d-reroll-choice{touch-action:manipulation}
.dungeon .d-reroll-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:12px 14px;border:1px solid #3b5878;border-radius:12px;background:#1b3049;color:#c8daf0;font-size:13px}
.dungeon .d-reroll-bar strong{color:#fff}
.dungeon .d-reroll-bar .d-actions button{min-height:44px;background:#3684d4;border:0;color:#fff;border-radius:10px;font-size:14px}
.dungeon .d-reroll-bar .d-actions button:disabled{background:#334b67;color:#a1b6cf;opacity:1}
.dungeon .d-inspect-title{margin:19px 0 9px;color:#dcecff;font-size:13px;font-weight:800}
.dungeon .d-roll-card .d-inspectors{display:grid;grid-template-columns:1fr;gap:7px;margin:0}
.dungeon .d-roll-card .d-face-inspector{margin:0;padding:0;overflow:hidden;background:#1b3049;border:1px solid #405b78;border-radius:10px}
.dungeon .d-roll-card .d-face-inspector[open]{border-color:#b68e51}
.dungeon .d-roll-card .d-face-inspector summary{display:flex;align-items:center;gap:9px;list-style:none;padding:11px 13px;color:#e9f3ff;font-size:13px}
.dungeon .d-roll-card .d-face-inspector summary::-webkit-details-marker{display:none}
.dungeon .d-inspect-arrow{color:#f1ca79;font-size:15px;transition:transform .15s}
.dungeon .d-face-inspector[open] .d-inspect-arrow{transform:rotate(90deg)}
.dungeon .d-inspect-meta{margin-left:auto;color:#a8c2df;font-size:11px;font-weight:600}
.dungeon .d-roll-card .d-face-list{gap:0;margin:0;padding:2px 13px 8px;border-top:1px solid #39536f}
.dungeon .d-roll-card .d-face-row{display:grid;grid-template-columns:64px 76px minmax(0,1fr);gap:8px;align-items:center;min-height:36px;padding:6px 0;border-top:0;border-bottom:1px solid #344c68;font-size:12px}
.dungeon .d-roll-card .d-face-row:last-child{border:0}
.dungeon .d-roll-card .d-face-row.is-rolled>b{color:#f9d48d}
.dungeon .d-roll-card .d-face-row>span{color:#a9c1dd}
.dungeon .d-roll-card .d-face-stickers{min-width:0;gap:5px}
.dungeon .d-roll-card .d-sticker-chip{gap:5px;padding:4px 6px;border:1px solid #6e8ba8;background:#314b69;font-size:11px}
.dungeon .d-roll-card .d-sticker-chip button{border-radius:4px;min-height:26px}
.dungeon .d-roll-card .d-face-stickers>small{color:#819bb6}
.dungeon .d-roll-note{font-size:11px!important;margin-top:12px!important}
body:not(.theme-dark) .dungeon .d-roll-score,body:not(.theme-dark) .dungeon .d-reroll-bar,body:not(.theme-dark) .dungeon .d-roll-card .d-face-inspector{background:#e7f0fa;border-color:#aebfd4;color:#19324f}
body:not(.theme-dark) .dungeon .d-roll-score strong,body:not(.theme-dark) .dungeon .d-reroll-bar strong{color:#17324c}
body:not(.theme-dark) .dungeon .d-roll-score span,body:not(.theme-dark) .dungeon .d-inspect-meta,body:not(.theme-dark) .dungeon .d-roll-instruction,body:not(.theme-dark) .dungeon .d-inspect-title{color:#415670!important}
body:not(.theme-dark) .dungeon .d-roll-score.is-winning{background:#d8f4e8;border-color:#57a985}
body:not(.theme-dark) .dungeon .d-roll-card .d-reroll-choice{background:#e0ecf8;color:#204666}
body:not(.theme-dark) .dungeon .d-roll-card .d-reroll-choice[aria-pressed="true"]{background:#266a9f;color:#fff}
body:not(.theme-dark) .dungeon .d-roll-card .d-face-inspector summary,body:not(.theme-dark) .dungeon .d-roll-card .d-face-row>b{color:#19324f}
body:not(.theme-dark) .dungeon .d-roll-card .d-face-row>span{color:#415670}
body:not(.theme-dark) .dungeon .d-roll-card .d-sticker-chip{background:#dceafd;color:#19324f}
body:not(.theme-dark) .dungeon .d-roll-card .d-face-row.is-rolled>b{color:#755019}
@media(max-width:640px){.dungeon .d-roll-card .d-dice{gap:5px}.dungeon .d-roll-card .d-position{font-size:9px}.dungeon .d-roll-card .d-die{height:87px;border-radius:10px}.dungeon .d-roll-card .d-die strong{font-size:34px}.dungeon .d-roll-card .d-die small{font-size:9px}.dungeon .d-roll-card .d-sticker-rail{top:21px;left:3px;gap:2px}.dungeon .d-roll-card .d-sticker-icon{width:16px;height:18px;font-size:11px}.dungeon .d-roll-card .d-reroll-choice{min-height:42px;margin-top:10px;font-size:11px}.dungeon .d-reroll-bar{padding:10px}.dungeon .d-reroll-bar .d-actions button{padding:8px 11px;font-size:12px}.dungeon .d-roll-card .d-face-row{grid-template-columns:47px 60px minmax(0,1fr);gap:4px;font-size:11px}.dungeon .d-roll-card .d-sticker-chip{font-size:10px}.dungeon .d-roll-score{padding:7px 10px}.dungeon .d-roll-score strong{font-size:19px}}
/* Fixed hero identities for the five physical dice. Art lives in static/hero-art on the NAS. */
.dungeon .d-roll-card .d-die{overflow:hidden}
.dungeon .d-roll-card .d-die strong{position:absolute;top:50%;left:0;right:0;z-index:1;transform:translateY(-50%);text-align:center;text-shadow:0 1px 0 #ffffffa6}
.dungeon .d-roll-card .d-die-hero-art{position:absolute;right:2px;bottom:3px;max-width:40%;height:32%;object-fit:contain;object-position:right bottom;pointer-events:none;user-select:none}
.dungeon .d-roll-card .d-sticker-rail{top:54px;gap:2px}
.dungeon .d-roll-card .d-sticker-icon{width:18px;height:18px;font-size:11px}
.dungeon .d-roll-card .d-die-name{display:block;min-height:17px;margin-top:9px;color:#e5effd;text-align:center;font-size:11px;font-weight:850;line-height:1.2;white-space:nowrap}
.dungeon .d-roll-card .d-reroll-choice{margin-top:6px}
.dungeon .d-roll-card .d-hero-die--sir-drankalot{background:linear-gradient(145deg,#fff4e9,#f7cfba);border-color:#cf8665;color:#71341d}
.dungeon .d-roll-card .d-hero-die--keggar{background:linear-gradient(145deg,#fff1ef,#f5c4c4);border-color:#c96a6a;color:#801f28}
.dungeon .d-roll-card .d-hero-die--intoxica{background:linear-gradient(145deg,#fff0f9,#f2c7e7);border-color:#c56fa7;color:#76244f}
.dungeon .d-roll-card .d-hero-die--merlo{background:linear-gradient(145deg,#fff8df,#f7e1a9);border-color:#c49a44;color:#6d4913}
.dungeon .d-roll-card .d-hero-die--maltilda{background:linear-gradient(145deg,#fff1e9,#eac9b9);border-color:#b97554;color:#713c28}
body:not(.theme-dark) .dungeon .d-roll-card .d-die-name{color:#304a67}
@media(max-width:640px){.dungeon .d-roll-card .d-die-hero-art{max-width:42%;height:29%}.dungeon .d-roll-card .d-die-name{font-size:9px;min-height:14px;margin-top:8px;letter-spacing:-.025em}.dungeon .d-roll-card .d-reroll-choice{margin-top:5px}.dungeon .d-roll-card .d-sticker-rail{top:33px;left:2px}.dungeon .d-roll-card .d-sticker-icon{width:14px;height:16px;font-size:10px}}

/* v9.1 mobile Dungeon: immersive combat viewport and contextual bottom panels. */
.dungeon .d-mobile-run{display:none}
@media(max-width:640px){
  body.dungeon-mobile-active{overflow:hidden}
  body.dungeon-mobile-active .mobile-nav,body.dungeon-mobile-active .mobile-more{display:none!important}
  body.dungeon-mobile-active .site-header{visibility:hidden}
  .dungeon .d-mobile-run{display:flex;position:fixed;inset:0;z-index:300;flex-direction:column;background:#0d1929;color:#eef5ff;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);height:100dvh;box-sizing:border-box}
  .dungeon .d-mobile-top{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:54px;padding:6px 15px;border-bottom:1px solid #34506c;background:#14253a}
  .dungeon .d-mobile-top small{display:block;color:#f4c978;font-size:9px;font-weight:900;letter-spacing:.08em;white-space:nowrap}
  .dungeon .d-mobile-top strong{display:block;margin-top:2px;font-size:17px;line-height:1.1;white-space:nowrap}
  .dungeon .d-mobile-top strong span{font-size:12px;color:#acc2dc}
  .dungeon .d-mobile-resources{display:flex;gap:5px;flex-shrink:0}
  .dungeon .d-mobile-resources span{padding:7px 8px;border-radius:9px;background:#213752;color:#ffcfdf;font-weight:900;font-size:12px;white-space:nowrap}
  .dungeon .d-mobile-resources span:last-child{color:#f4ca71}
  .dungeon .d-mobile-main{min-height:0;flex:1;padding:10px 11px 8px}
  .dungeon .d-mobile-main.is-combat{overflow:hidden}
  .dungeon .d-mobile-main.is-other-phase{overflow-y:auto;overscroll-behavior:contain}
  .dungeon .d-mobile-main.is-other-phase .d-grid{display:block}
  .dungeon .d-mobile-main.is-other-phase .d-grid>aside{display:none}
  .dungeon .d-mobile-main.is-other-phase .d-stack{gap:9px}
  .dungeon .d-mobile-combat{height:100%;min-height:0;display:flex;flex-direction:column;gap:8px}
  .dungeon .d-mobile-monster{flex:0 0 auto;padding:10px 11px;border:1px solid #49627f;border-radius:14px;background:linear-gradient(125deg,#203954,#162a42)}
  .dungeon .d-mobile-monster-top{display:flex;align-items:center;gap:9px;min-width:0}
  .dungeon .d-mobile-monster-art{display:grid;place-items:center;flex:0 0 43px;height:43px;border:1px solid #637d9c;border-radius:10px;background:#324b6b;font-size:26px}
  .dungeon .d-mobile-monster-title{min-width:0;flex:1}
  .dungeon .d-mobile-monster-title small{display:block;color:#f1cc83;text-transform:uppercase;letter-spacing:.06em;font-size:9px;font-weight:850}
  .dungeon .d-mobile-monster-title h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:19px;margin-top:3px}
  .dungeon .d-mobile-target{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;padding:5px 9px;border:1px solid #ca9f53;border-radius:9px;background:#4d402c;color:#ffdea1;font-size:10px;font-weight:800;text-transform:uppercase}
  .dungeon .d-mobile-target b{font-size:19px;color:#fff}
  .dungeon .d-mobile-monster-stats{display:flex;gap:7px;margin-top:8px;font-size:11px;font-weight:800;color:#dce9fb}
  .dungeon .d-mobile-monster-stats span{padding:4px 7px;background:#2a405d;border-radius:6px}
  .dungeon .d-mobile-monster-info{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px;font-size:10px;line-height:1.2}
  .dungeon .d-mobile-monster-info span{min-width:0;padding:6px 7px;border-radius:7px;background:#342d3e;color:#f1dfeb}
  .dungeon .d-mobile-monster-info b{display:block;color:#f9b9d5;text-transform:uppercase;font-size:9px;margin-bottom:2px}
  .dungeon .d-mobile-monster-info span:last-child{background:#433923;color:#ffe5a4}
  .dungeon .d-mobile-monster-info span:last-child b{color:#ffd06c}
  .dungeon .d-mobile-roll{min-height:0;flex:1;display:flex;flex-direction:column;justify-content:center;padding:10px 8px;border:1px solid #405d7b;border-radius:14px;background:#172b43}
  .dungeon .d-mobile-roll-head{display:flex;justify-content:space-between;align-items:end;gap:8px;margin-bottom:8px}
  .dungeon .d-mobile-roll-head small{font-size:9px;font-weight:900;letter-spacing:.09em;color:#f3ce80}
  .dungeon .d-mobile-roll-head h2{font-size:18px;margin-top:2px}
  .dungeon .d-mobile-roll-head>span{color:#a8bfd9;font-size:10px;text-align:right}
  .dungeon .d-mobile-roll .d-dice{gap:5px}
  .dungeon .d-mobile-roll .d-die-wrap{min-width:0;position:relative;text-align:center}
  .dungeon .d-mobile-roll .d-position{display:block;margin:0 0 5px;color:#a9bfd9;font-size:9px}
  .dungeon .d-mobile-roll .d-die{height:clamp(66px,12vh,96px);border-radius:10px}
  .dungeon .d-mobile-roll .d-die strong{font-size:34px}
  .dungeon .d-mobile-roll .d-sticker-rail{top:29px;left:2px}
  .dungeon .d-mobile-roll .d-die-name{margin-top:6px;font-size:9px;overflow:hidden;text-overflow:ellipsis}
  .dungeon .d-mobile-roll .d-reroll-choice{min-height:35px;margin-top:5px;padding:3px 0;font-size:10px}
  .dungeon .d-mobile-roll .d-reroll-choice:disabled{opacity:.55}
  .dungeon .d-mobile-roll-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:10px;color:#c7d9ed;font-size:11px}
  .dungeon .d-mobile-roll-actions>span{margin-right:auto;white-space:nowrap}
  .dungeon .d-mobile-roll-actions b{color:#fff}
  .dungeon .d-mobile-roll-actions button{min-height:36px;border:1px solid #71a9e9;border-radius:8px;background:#2867ac;color:#fff;padding:5px 9px;font-size:11px;font-weight:850}
  .dungeon .d-mobile-roll-actions button:disabled{background:#34475e;color:#a8b8cc;border-color:#4b6078;opacity:1}
  .dungeon .d-mobile-score{display:flex;justify-content:space-between;align-items:center;gap:10px;flex:0 0 auto;padding:8px 12px;border:1px solid #597fa8;border-radius:11px;background:#203a57}
  .dungeon .d-mobile-score small{display:block;color:#aac5e3;font-size:9px;letter-spacing:.08em;font-weight:900}
  .dungeon .d-mobile-score strong{display:block;font-size:25px;line-height:1.05}
  .dungeon .d-mobile-score>span{font-size:12px;font-weight:900}
  .dungeon .d-mobile-submit{flex:0 0 auto;width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid #80b9ff;border-radius:11px;background:#2773c8;color:white;font-size:17px;font-weight:950;box-shadow:0 4px 0 #154b88}
  .dungeon .d-mobile-submit span{font-size:21px}
  .dungeon .d-mobile-split,.dungeon .d-mobile-error{flex:0 0 auto;padding:6px 9px;border-radius:8px;background:#40364b;color:#ffe7f3;font-size:11px}
  .dungeon .d-mobile-split button{min-height:28px;margin-left:5px;border:1px solid #e5b2ce;border-radius:6px;background:#654c64;color:white}
  .dungeon .d-mobile-footer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));flex:0 0 auto;min-height:65px;background:#14253a;border-top:1px solid #425d7b}
  .dungeon .d-mobile-footer button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;border:0;border-radius:0;background:transparent;color:#b9cbe1}
  .dungeon .d-mobile-footer button[aria-pressed=true]{color:#fff;background:#294765}
  .dungeon .d-mobile-footer button>span{font-size:24px;line-height:1}
  .dungeon .d-mobile-footer button>b{font-size:10px;white-space:nowrap}
  .dungeon .d-mobile-footer em{position:absolute;top:5px;right:24%;border-radius:9px;background:#e5af60;color:#19263b;padding:1px 5px;font-size:9px;font-style:normal;font-weight:900}
  .dungeon .d-mobile-shade{position:fixed;inset:0;z-index:1;background:#030a15a9}
  .dungeon .d-mobile-sheet{position:absolute;left:0;right:0;bottom:calc(65px + env(safe-area-inset-bottom));z-index:2;display:flex;flex-direction:column;max-height:min(74dvh,650px);border:1px solid #5e7895;border-radius:18px 18px 0 0;background:#192e46;box-shadow:0 -12px 35px #050d1c99;overflow:hidden}
  .dungeon .d-mobile-footer{z-index:3}
  .dungeon .d-mobile-sheet-head{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;border-bottom:1px solid #405c78}
  .dungeon .d-mobile-sheet-head h2{font-size:19px}
  .dungeon .d-mobile-sheet-head button{min-width:36px;min-height:36px;border:1px solid #67819f;border-radius:8px;background:#2c4561;color:#fff}
  .dungeon .d-mobile-sheet-body{overflow-y:auto;min-height:0;padding:12px 13px 18px;overscroll-behavior:contain}
  .dungeon .d-mobile-sheet-body .d-card{box-shadow:none;padding:10px}
  .dungeon .d-mobile-die-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-bottom:11px}
  .dungeon .d-mobile-die-tabs button{min-width:0;overflow:hidden;text-overflow:ellipsis;padding:6px 1px;border:1px solid #53708f;border-radius:8px;background:#253c58;color:#d4e2f3;font-size:9px;font-weight:800}
  .dungeon .d-mobile-die-tabs button[aria-selected=true]{background:#355f89;border-color:#a5ccf5;color:#fff}
  .dungeon .d-mobile-die-tabs b{display:block;margin-top:2px;font-size:16px}
  .dungeon .d-mobile-face-panel .d-face-inspector{display:block}
  .dungeon .d-mobile-face-panel .d-face-inspector summary{list-style:none;padding:8px;color:#fff;font-weight:800}
  .dungeon .d-mobile-face-panel .d-face-inspector summary::-webkit-details-marker{display:none}
  .dungeon .d-mobile-face-panel .d-face-row{display:grid;grid-template-columns:50px 60px minmax(0,1fr);gap:4px;align-items:center;border-top:1px solid #405773;padding:7px 2px;font-size:11px}
  .dungeon .d-mobile-face-panel .d-face-row.is-rolled{background:#344d69}
  .dungeon .d-mobile-face-panel .d-face-stickers{min-width:0}
  .dungeon .d-mobile-face-panel .d-sticker-chip{display:inline-flex;align-items:center;flex-wrap:wrap;gap:2px;border-radius:6px;background:#3b5676;padding:3px;margin:2px;font-size:10px}
  .dungeon .d-mobile-face-panel .d-sticker-chip button{min-height:25px}
  .dungeon .d-mobile-help{margin:5px 0 12px;color:#bbcee6;font-size:12px}
  .dungeon .d-mobile-sheet .d-power-row{display:block}
  .dungeon .d-mobile-sheet .d-power{margin-top:6px}
  .dungeon .d-mobile-sheet .d-power .d-move button{min-width:36px}
  .dungeon .d-mobile-chain{margin-top:12px;padding:10px;border:1px solid #526d8a;border-radius:9px}
  .dungeon .d-mobile-chain>b{font-size:12px}
  .dungeon .d-mobile-chain .d-chain{margin-top:7px}
  .dungeon .d-mobile-exit-action,.dungeon .d-mobile-abandon{width:100%;margin-top:10px}
  .dungeon .d-mobile-abandon{min-height:44px;border:1px solid #c98288;border-radius:9px;background:#52313d;color:#ffced1;font-weight:800}
  .dungeon .d-mobile-sheet .d-loot{display:block}
  .dungeon .d-mobile-sheet .d-loot-item{margin-top:7px}
}
@media(max-width:640px) and (max-height:680px){
  .dungeon .d-mobile-top{min-height:42px;padding:4px 12px}
  .dungeon .d-mobile-main{padding:6px 9px}
  .dungeon .d-mobile-combat{gap:5px}
  .dungeon .d-mobile-monster{padding:6px 8px}
  .dungeon .d-mobile-monster-info{margin-top:5px}
  .dungeon .d-mobile-roll{padding:6px}
  .dungeon .d-mobile-roll-head{margin-bottom:3px}
  .dungeon .d-mobile-roll .d-die{height:clamp(54px,10vh,73px)}
  .dungeon .d-mobile-roll-actions{margin-top:5px}
  .dungeon .d-mobile-score{padding:5px 9px}
  .dungeon .d-mobile-submit{min-height:42px}
  .dungeon .d-mobile-footer{min-height:55px}
  .dungeon .d-mobile-sheet{bottom:calc(55px + env(safe-area-inset-bottom))}
}

/* v9.1.1 mobile refinements: health, square dice, and readable effects. */
@media(max-width:640px){
  .dungeon .d-mobile-top{display:block;min-height:0;padding:7px 12px 6px}
  .dungeon .d-mobile-topline{display:flex;align-items:center;justify-content:space-between;gap:8px}
  .dungeon .d-mobile-health{display:flex;align-items:center;gap:9px;margin-top:7px;padding:6px 7px;border:1px solid #435b7d;border-radius:7px;background:#223550;min-width:0}
  .dungeon .d-mobile-health b{flex:none;font-size:12px;color:#c8e1ff;white-space:nowrap}
  .dungeon .d-mobile-health b::first-letter{color:#8bdab0}
  .dungeon .d-mobile-health-track{min-width:20px;flex:1;height:10px;overflow:hidden;border-radius:999px;background:#42536d}
  .dungeon .d-mobile-health-track span{display:block;height:100%;border-radius:inherit;background:#87d6ac;transition:width .22s ease}
  .dungeon .d-mobile-health>span{flex:none;color:#bdcde1;font-size:11px;white-space:nowrap}
  .dungeon .d-mobile-roll .d-die{width:100%;height:auto;aspect-ratio:1 / 1;min-height:0;box-sizing:border-box;border-radius:10px}
  .dungeon .d-mobile-current-chain{margin-top:8px;padding-top:7px;border-top:1px solid #405b79;min-width:0}
  .dungeon .d-mobile-current-chain>b{display:block;margin-bottom:5px;color:#f4cc7e;font-size:10px;letter-spacing:.04em}
  .dungeon .d-mobile-current-chain .d-chain{flex-wrap:nowrap;gap:4px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding-bottom:3px}
  .dungeon .d-mobile-current-chain .d-chain span{flex:none;padding:4px 6px;font-size:10px;white-space:nowrap}
  .dungeon .d-mobile-face-panel .d-mobile-inspect-open h3{margin:0 0 8px;font-size:14px}
  .dungeon .d-mobile-face-panel .d-sticker-chip .d-mobile-sticker-info{min-height:30px;border:1px solid #82afd5;background:#345a7e;color:#fff;padding:4px 6px;font-size:10px;font-weight:800}
  .dungeon .d-mobile-sticker-shade{position:fixed;inset:0;z-index:5;background:#020816c7}
  .dungeon .d-mobile-sticker-window{position:absolute;top:50%;left:18px;right:18px;z-index:6;transform:translateY(-50%);padding:24px 20px 22px;border:1px solid #a9c5e4;border-radius:18px;background:linear-gradient(155deg,#284360,#192b43);box-shadow:0 20px 45px #020816ba;text-align:center}
  .dungeon .d-mobile-sticker-close{position:absolute;top:10px;right:10px;min-width:36px;min-height:36px;border:1px solid #667f9c;border-radius:8px;background:#304d6d;color:#fff}
  .dungeon .d-mobile-sticker-art{display:grid;place-items:center;width:60px;height:60px;margin:0 auto 10px;border:1px solid #ddbd7c;border-radius:15px;background:#4a3d34;font-size:33px}
  .dungeon .d-mobile-sticker-window small{color:#f7d995;font-weight:900;letter-spacing:.08em}
  .dungeon .d-mobile-sticker-window h2{margin:5px 0 10px;font-size:23px}
  .dungeon .d-mobile-sticker-window p{font-size:15px;color:#eef5ff;line-height:1.5}
}
@media(max-width:640px) and (max-height:680px){
  .dungeon .d-mobile-top{padding:4px 10px}
  .dungeon .d-mobile-health{margin-top:4px;padding:4px 6px}
  .dungeon .d-mobile-current-chain{margin-top:5px;padding-top:4px}
  .dungeon .d-mobile-roll .d-die{height:auto}
}

/* v9.1.2 mobile Sticker placement and compact combat controls. */
@media(max-width:640px){
  .dungeon .d-mobile-top{padding:8px 12px 7px}
  .dungeon .d-mobile-health{flex:0 0 auto;margin:7px 11px 0;padding:8px 10px;border:1px solid #435b7d;border-radius:9px;background:#223550}
  .dungeon .d-mobile-health>span:empty{display:none}
  .dungeon .d-mobile-main{padding-top:8px}
  .dungeon .d-mobile-combat-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;flex:0 0 auto}
  .dungeon .d-mobile-reroll-main,.dungeon .d-mobile-combat-actions .d-mobile-submit{width:100%;min-width:0;min-height:47px;box-sizing:border-box;margin:0;border-radius:10px;font-size:15px;font-weight:900}
  .dungeon .d-mobile-reroll-main{border:1px solid #84b6e9;background:#2e5f91;color:#fff;box-shadow:0 4px 0 #1d426a}
  .dungeon .d-mobile-reroll-main small{display:block;font-size:10px;color:#d0e2f6;font-weight:650}
  .dungeon .d-mobile-reroll-main:disabled{background:#304158;border-color:#536880;color:#a9bed4;box-shadow:none;opacity:1}
  .dungeon .d-mobile-combat-actions .d-mobile-submit{gap:5px;white-space:nowrap}
  .dungeon .d-mobile-combat-actions .d-mobile-submit span{font-size:18px}
  .dungeon .d-mobile-score-value{display:flex;align-items:baseline;gap:4px;white-space:nowrap}
  .dungeon .d-mobile-score-value strong{font-size:25px;line-height:1.05}
  .dungeon .d-mobile-score-value span{color:#bfd3eb;font-size:13px;font-weight:500}
  .dungeon .d-mobile-die-tabs small{display:block;margin-top:3px;color:#e9cf8c;font-size:10px}
  .dungeon .d-mobile-placement{display:flex;flex-direction:column;gap:9px;min-height:100%;padding-bottom:3px}
  .dungeon .d-placement-title h2{font-size:22px}
  .dungeon .d-placement-title p{font-size:12px}
  .dungeon .d-placement-card{display:flex;align-items:center;gap:9px;padding:9px;border:1px solid #826d55;border-radius:11px;background:linear-gradient(115deg,#3b3441,#26374d)}
  .dungeon .d-placement-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:9px;background:#594635;font-size:22px}
  .dungeon .d-placement-card strong{color:#ffe1a5;font-size:14px}
  .dungeon .d-placement-card strong small{color:#ead6bd;font-size:10px;font-weight:700}
  .dungeon .d-placement-card p{margin-top:2px;color:#e8dfe1;font-size:11px}
  .dungeon .d-placement-label{display:flex;align-items:center;justify-content:space-between;gap:5px;color:#b7cce4;font-size:10px;text-transform:uppercase;letter-spacing:.04em}
  .dungeon .d-placement-label span{font-size:10px;text-transform:none;letter-spacing:0;color:#e7cb91}
  .dungeon .d-placement-heroes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}
  .dungeon .d-placement-heroes button{display:grid;place-items:center;gap:2px;min-width:0;min-height:53px;padding:4px 1px;border:1px solid #577494;border-radius:9px;background:#243d59;color:#e1edfb}
  .dungeon .d-placement-heroes button[aria-selected=true]{border-color:#f3d18e;background:#3d5d79;box-shadow:0 0 0 1px #f3d18e}
  .dungeon .d-placement-heroes b{font-size:22px;color:#f3cba9;line-height:1}
  .dungeon .d-placement-heroes span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:800}
  .dungeon .d-placement-faces{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .dungeon .d-placement-face{position:relative;min-width:0;min-height:94px;border:1px solid #54708d;border-radius:10px;background:#223a54;overflow:hidden}
  .dungeon .d-placement-face.is-selected{border-color:#f6d48d;box-shadow:inset 0 0 0 1px #f6d48d;background:#315275}
  .dungeon .d-placement-face.is-full{opacity:.72}
  .dungeon .d-placement-face-choice{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;width:100%;min-height:94px;padding:7px 25px 7px 8px;border:0;background:transparent;color:#eff6ff;text-align:left}
  .dungeon .d-placement-face-choice b{font-size:27px;line-height:1}
  .dungeon .d-placement-face-choice small{font-size:9px;color:#cbdbee;white-space:nowrap}
  .dungeon .d-placement-face-choice span{margin-top:6px;font-size:9px;color:#e0d2b7;white-space:nowrap}
  .dungeon .d-placement-stickers{position:absolute;right:3px;top:4px;bottom:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;pointer-events:none}
  .dungeon .d-placement-stickers button{pointer-events:auto;display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid #d4b976;border-radius:6px;background:#5b4b38;color:#fff;font-size:14px}
  .dungeon .d-placement-apply{position:sticky;bottom:-8px;margin-top:auto;padding:9px 5px 4px;background:#0d1929;box-shadow:0 -8px 16px #0d1929}
  .dungeon .d-placement-apply small{display:block;margin-bottom:6px;color:#bcd1e9;font-size:11px}
  .dungeon .d-placement-apply button{width:100%;min-height:44px;border:1px solid #80b8f5;border-radius:9px;background:#286fbd;color:#fff;font-size:14px;font-weight:900}
  .dungeon .d-placement-apply button:disabled{background:#33485f;color:#bdc7d2}
}
@media(max-width:640px) and (max-height:680px){
  .dungeon .d-mobile-health{margin-top:4px;padding:5px 8px}
  .dungeon .d-mobile-combat-actions .d-mobile-submit,.dungeon .d-mobile-reroll-main{min-height:42px}
  .dungeon .d-placement-face,.dungeon .d-placement-face-choice{min-height:80px}
  .dungeon .d-placement-stickers button{width:21px;height:21px;font-size:12px}
}
@media(max-width:640px){.dungeon .d-placement-stickers{justify-content:flex-start;top:5px}}

/* v9.1.3 mobile resolution animations and readable scoring chain. */
@media(max-width:640px){
  .dungeon .d-mobile-current-chain{min-height:0;max-height:104px;overflow-y:auto;overscroll-behavior-y:contain}
  .dungeon .d-mobile-current-chain .d-chain,.dungeon .d-mobile-chain .d-chain{display:flex;flex-wrap:wrap;gap:5px;overflow:visible;padding:0}
  .dungeon .d-mobile-current-chain .d-chain i,.dungeon .d-mobile-chain .d-chain i{display:none}
  .dungeon .d-mobile-chain-pill{min-height:28px;max-width:100%;padding:5px 7px;border:1px solid #597c9e;border-radius:7px;background:#2b4969;color:#eef6ff;font-size:10px;font-weight:750;line-height:1.2;text-align:left;white-space:normal}
  .dungeon .d-mobile-chain-pill b{margin-left:3px;color:#ffe0a3;font-size:11px}
  .dungeon .d-mobile-chain-pill:focus-visible{outline:2px solid #f6d48d;outline-offset:2px}
  .dungeon .d-mobile-chain-window{position:absolute;top:50%;left:18px;right:18px;z-index:6;transform:translateY(-50%);padding:24px 20px 20px;border:1px solid #a9c5e4;border-radius:18px;background:linear-gradient(155deg,#284360,#192b43);box-shadow:0 20px 45px #020816ba;text-align:center}
  .dungeon .d-mobile-chain-window small{color:#f5d491;font-size:10px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
  .dungeon .d-mobile-chain-window h2{margin:5px 0 10px;font-size:22px}
  .dungeon .d-mobile-chain-window p{color:#e9f3ff;font-size:14px;line-height:1.5}
  .dungeon .d-mobile-chain-dice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:12px 0;text-align:left}
  .dungeon .d-mobile-chain-dice span{display:flex;justify-content:space-between;gap:5px;padding:6px;border-radius:7px;background:#304d6b;color:#dcecfb;font-size:11px}
  .dungeon .d-mobile-chain-change{margin-top:12px;padding:9px;border-radius:8px;background:#345370;color:#deebfc;font-size:12px}
  .dungeon .d-mobile-chain-change strong{margin-left:5px;color:#fff;font-size:19px}
  .dungeon .d-mobile-chain-change span{display:block;margin-top:5px;color:#ffdda4}
  .dungeon .d-mobile-run.is-resolving .d-mobile-main,.dungeon .d-mobile-run.is-resolving .d-mobile-footer{pointer-events:none}
  .dungeon .d-mobile-run.is-processing .d-mobile-main,.dungeon .d-mobile-run.is-processing .d-mobile-footer{pointer-events:none}
  .dungeon .d-mobile-run.is-processing .d-mobile-combat-actions{filter:brightness(.82)}
  .dungeon .d-mobile-top .d-processing-spinner{display:inline-block;color:#ffe09e;transform-origin:50% 50%;animation:dungeon-processing-turn .8s linear infinite}
  @keyframes dungeon-processing-turn{to{transform:rotate(360deg)}}
  .dungeon .d-mobile-health{position:relative}
  .dungeon .d-mobile-health-track span{transition:width .65s cubic-bezier(.22,.7,.2,1),background-color .25s}
  .dungeon .d-mobile-health.is-damage{animation:dungeon-health-hit .58s ease-out}
  .dungeon .d-mobile-health.is-damage .d-mobile-health-track span{background:#ee8c96}
  .dungeon .d-mobile-health.is-heal{animation:dungeon-health-bloom .75s ease-out}
  .dungeon .d-mobile-hp-float{position:absolute;right:24px;bottom:26px;z-index:4;color:#a6f0c4;font-size:17px;font-weight:950;text-shadow:0 2px 8px #091728;pointer-events:none;animation:dungeon-hp-float .9s ease-out both}
  .dungeon .d-mobile-health.is-damage .d-mobile-hp-float{color:#ffb3b9}
  .dungeon .d-mobile-roll .d-die-wrap.is-rolling .d-die{outline:2px solid #81bfff;outline-offset:2px;box-shadow:0 0 0 4px #4584c55c,0 5px 0 #50789f;animation:dungeon-die-tumble .45s ease-in-out infinite}
  .dungeon .d-mobile-score.d-score-settle{animation:dungeon-score-settle .55s ease-out}
}
@keyframes dungeon-health-hit{0%,100%{transform:translateX(0)}15%,45%{transform:translateX(-4px)}30%,60%{transform:translateX(4px)}}
@keyframes dungeon-health-bloom{0%{box-shadow:0 0 0 0 #75e9a900}45%{box-shadow:0 0 0 7px #75e9a96b}100%{box-shadow:0 0 0 0 #75e9a900}}
@keyframes dungeon-hp-float{0%{opacity:0;transform:translateY(10px) scale(.85)}24%{opacity:1;transform:translateY(0) scale(1.12)}100%{opacity:0;transform:translateY(-35px)}}
@keyframes dungeon-die-tumble{0%,100%{transform:rotate(0) scale(1)}25%{transform:rotate(-14deg) scale(.91)}55%{transform:rotate(13deg) scale(1.06)}80%{transform:rotate(-6deg) scale(.96)}}
@keyframes dungeon-score-settle{0%,100%{transform:scale(1)}45%{transform:scale(1.025);border-color:#8bd2ff}}
@media(prefers-reduced-motion:reduce){
  .dungeon .d-mobile-health.is-damage,.dungeon .d-mobile-health.is-heal,.dungeon .d-mobile-hp-float,.dungeon .d-mobile-roll .d-die-wrap.is-rolling .d-die,.dungeon .d-mobile-score.d-score-settle{animation-duration:.01ms!important}
  .dungeon .d-processing-spinner{animation:none!important}
  .dungeon .d-mobile-health-track span{transition-duration:.01ms!important}
}

/* v9.1.4 mobile Dungeon victory and Sticker presentation. */
@media(max-width:640px){
  .dungeon .d-mobile-roll .d-sticker-icon{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:0;text-shadow:0 1px 3px #142239}
  .dungeon .d-mobile-roll .d-die-wrap.is-rolling .d-sticker-rail{visibility:hidden}
  .dungeon .d-placement-stickers button,.dungeon .d-placement-reveal{pointer-events:auto;display:grid;place-items:center;width:26px;height:25px;padding:0;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;color:#fff;font-size:16px;text-shadow:0 1px 4px #0b1728}
  .dungeon .d-placement-reveal{pointer-events:none;animation:dungeon-sticker-reveal .35s ease-out both}
  .dungeon .d-placement-heroes button{min-height:80px;padding:5px 1px;align-content:center;gap:3px}
  .dungeon .d-placement-heroes img{display:block;max-width:92%;width:auto;height:46px;object-fit:contain;object-position:center bottom;pointer-events:none}
  .dungeon .d-placement-heroes span{display:block;max-width:100%;min-height:21px;overflow-wrap:anywhere;overflow:visible;white-space:normal;text-align:center;font-size:9px;line-height:1.05;font-weight:850}
  .dungeon .d-mobile-victory-compare{position:absolute;left:50%;top:40%;z-index:8;transform:translate(-50%,-50%) scale(.7);padding:11px 18px;border:1px solid #f3d58c;border-radius:13px;background:#3b4b50f2;color:#ffe6a7;font-size:26px;font-weight:950;white-space:nowrap;box-shadow:0 13px 30px #0b1628aa;opacity:0;pointer-events:none}
  .dungeon .d-mobile-victory-compare small{display:block;margin-top:3px;color:#b8f1ca;font-size:11px;font-weight:900;text-align:center;letter-spacing:.06em}
  .dungeon .d-mobile-victory-compare.show{animation:dungeon-compare-pop .8s ease-out both}
  .dungeon .d-mobile-run.is-victory-checking .d-mobile-score{animation:dungeon-victory-score .8s ease-out}
  .dungeon .d-mobile-run.is-victory-checking .d-mobile-target{animation:dungeon-victory-target .8s ease-out}
  .dungeon .d-mobile-monster.is-defeating{animation:dungeon-monster-shudder .58s ease-in-out}
  .dungeon .d-mobile-monster.is-defeated{filter:saturate(.65);border-color:#cba561;background:#2a3f4e}
  .dungeon .d-mobile-monster.is-defeated .d-mobile-monster-top,.dungeon .d-mobile-monster.is-defeated .d-mobile-monster-stats,.dungeon .d-mobile-monster.is-defeated .d-mobile-monster-info{opacity:.5}
  .dungeon .d-mobile-defeat-stamp{position:absolute;inset:0;display:grid;place-items:center;color:#ffe4a9;font-size:21px;font-weight:950;letter-spacing:.1em;text-shadow:0 2px 10px #0c1929;animation:dungeon-defeat-stamp .4s cubic-bezier(.15,1.4,.3,1) both}
  .dungeon .d-mobile-monster{position:relative;overflow:hidden}
  .dungeon .d-mobile-victory-burst{position:absolute;left:50%;top:21%;z-index:7;width:0;height:0;pointer-events:none}
  .dungeon .d-mobile-victory-burst span{position:absolute;width:7px;height:12px;border-radius:2px;background:#f6ce75;opacity:0}
  .dungeon .d-mobile-victory-burst span:nth-child(2n){background:#8bdcb0}
  .dungeon .d-mobile-victory-burst span:nth-child(3n){background:#b7d9ff}
  .dungeon .d-mobile-victory-burst.show span{animation:dungeon-victory-particle .85s ease-out both}
  .dungeon .d-mobile-victory-burst span:nth-child(1){--particle-x:-105px;--particle-y:-70px}.dungeon .d-mobile-victory-burst span:nth-child(2){--particle-x:-68px;--particle-y:-110px}.dungeon .d-mobile-victory-burst span:nth-child(3){--particle-x:-14px;--particle-y:-105px}.dungeon .d-mobile-victory-burst span:nth-child(4){--particle-x:42px;--particle-y:-90px}.dungeon .d-mobile-victory-burst span:nth-child(5){--particle-x:97px;--particle-y:-60px}.dungeon .d-mobile-victory-burst span:nth-child(6){--particle-x:105px;--particle-y:8px}.dungeon .d-mobile-victory-burst span:nth-child(7){--particle-x:70px;--particle-y:75px}.dungeon .d-mobile-victory-burst span:nth-child(8){--particle-x:8px;--particle-y:95px}.dungeon .d-mobile-victory-burst span:nth-child(9){--particle-x:-65px;--particle-y:80px}.dungeon .d-mobile-victory-burst span:nth-child(10){--particle-x:-108px;--particle-y:22px}
  .dungeon .d-mobile-resources>span{position:relative}
  .dungeon .d-mobile-resources .d-mobile-gold-float{position:absolute;right:0;top:22px;z-index:9;width:max-content;padding:0;border:0;background:transparent;color:#ffe5a2;font-size:15px;font-weight:950;pointer-events:none;animation:dungeon-gold-rise .8s ease-out both}
  .dungeon .d-mobile-run.is-victory-arrival .d-mobile-main{animation:dungeon-reward-arrive .45s ease-out both}
  .dungeon .d-mobile-run.is-applying-sticker .d-placement-icon{animation:dungeon-sticker-source .65s ease-out}
  .dungeon .d-mobile-sticker-flight{position:absolute;z-index:8;display:grid;place-items:center;width:28px;height:28px;color:#fff;font-size:23px;text-shadow:0 2px 8px #101b2d;pointer-events:none;animation:dungeon-sticker-flight .65s cubic-bezier(.2,.75,.3,1) both}
}
@keyframes dungeon-victory-score{0%,100%{transform:scale(1)}45%{transform:scale(1.045);border-color:#a1d3ff;box-shadow:0 0 22px #6baaf27a}}
@keyframes dungeon-victory-target{0%,100%{box-shadow:0 0 0 #f9d77c00}45%{box-shadow:0 0 0 6px #f9d77c77,0 0 20px #f9d77c99}}
@keyframes dungeon-compare-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.65)}28%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}55%,85%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-60%) scale(1.02)}}
@keyframes dungeon-monster-shudder{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
@keyframes dungeon-defeat-stamp{0%{opacity:0;transform:scale(1.7) rotate(-9deg)}70%{opacity:1;transform:scale(.94) rotate(-9deg)}100%{opacity:1;transform:scale(1) rotate(-9deg)}}
@keyframes dungeon-victory-particle{0%{opacity:0;transform:translate(0,0) rotate(0)}15%{opacity:1}100%{opacity:0;transform:translate(var(--particle-x),var(--particle-y)) rotate(420deg)}}
@keyframes dungeon-gold-rise{0%{opacity:0;transform:translateY(12px) scale(.8)}25%{opacity:1;transform:translateY(0) scale(1.1)}100%{opacity:0;transform:translateY(-32px)}}
@keyframes dungeon-reward-arrive{0%{opacity:0;transform:translateY(18px)}100%{opacity:1;transform:translateY(0)}}
@keyframes dungeon-sticker-source{0%,100%{transform:scale(1)}45%{transform:scale(1.25)}}
@keyframes dungeon-sticker-flight{0%{opacity:1;transform:translate(0,0) scale(1)}70%{opacity:1}100%{opacity:0;transform:translate(var(--sticker-x),var(--sticker-y)) scale(.7)}}
@keyframes dungeon-sticker-reveal{0%{opacity:0;transform:scale(.4)}65%{opacity:1;transform:scale(1.2)}100%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.dungeon .d-mobile-victory-compare.show,.dungeon .d-mobile-run.is-victory-checking .d-mobile-score,.dungeon .d-mobile-run.is-victory-checking .d-mobile-target,.dungeon .d-mobile-monster.is-defeating,.dungeon .d-mobile-defeat-stamp,.dungeon .d-mobile-victory-burst.show span,.dungeon .d-mobile-gold-float,.dungeon .d-mobile-run.is-victory-arrival .d-mobile-main,.dungeon .d-mobile-sticker-flight,.dungeon .d-placement-reveal{animation-duration:.01ms!important}}

/* v9.1.5: whole mobile screen HP feedback and three readable Stickers per face. */
@media(max-width:640px){
  .dungeon .d-mobile-hp-flash{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:0;animation:dungeon-hp-screen-flash .58s ease-out both}
  .dungeon .d-mobile-hp-flash.is-damage{background:#e94f60}
  .dungeon .d-mobile-hp-flash.is-heal{background:#43c985}
  .dungeon .d-mobile-face-panel .d-sticker-chip{border:0}
  .dungeon .d-mobile-advance{position:fixed;inset:0;z-index:9998;display:grid;place-items:center;padding:22px;background:#091321f5;backdrop-filter:blur(5px);animation:d-mobile-advance-in .24s ease-out both}
  .dungeon .d-mobile-advance.is-leaving{animation:d-mobile-advance-out .26s ease-in both}
  .dungeon .d-mobile-advance-card{width:min(100%,360px);padding:27px 23px 23px;border:1px solid #6683a5;border-radius:22px;background:linear-gradient(160deg,#203c5b,#14263d);box-shadow:0 22px 70px #020711c9;text-align:center;color:#f6f8fb}
  .dungeon .d-mobile-advance-check{display:grid;place-items:center;width:45px;height:45px;margin:0 auto 14px;border:1px solid #85d5b0;border-radius:50%;background:#275642;color:#bcf2d3;font-size:26px;font-weight:950;box-shadow:0 0 25px #61d69b40}
  .dungeon .d-mobile-advance-card>small{color:#f4d18b;font-size:10px;font-weight:950;letter-spacing:.12em}
  .dungeon .d-mobile-advance-card h2{margin:8px 0 4px;font-size:23px}
  .dungeon .d-mobile-advance-card p{margin:0;color:#c6d7eb;font-size:13px}
  .dungeon .d-mobile-advance-count{display:flex;align-items:baseline;justify-content:center;gap:5px;margin:13px 0 12px}
  .dungeon .d-mobile-advance-count b{font-size:64px;line-height:1;color:#fff;text-shadow:0 0 26px #7db9f277}
  .dungeon .d-mobile-advance-count span{color:#a9bfd9;font-size:24px;font-weight:800}
  .dungeon .d-mobile-advance-track{display:flex;justify-content:center;gap:5px;flex-wrap:wrap;margin:0 auto 11px;max-width:280px}
  .dungeon .d-mobile-advance-track i{width:11px;height:6px;border-radius:9px;background:#405873}
  .dungeon .d-mobile-advance-track i.done{background:#78d4a5}
  .dungeon .d-mobile-advance-track i.current{width:20px;background:#f0ca79;box-shadow:0 0 12px #f0ca7980}
  .dungeon .d-mobile-advance-caption{color:#cbd9e9;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
  .dungeon .d-mobile-advance-continue{display:block;width:100%;min-height:48px;margin-top:19px;border:1px solid #a4cdf5;border-radius:11px;background:#286fba;color:#fff;font-size:15px;font-weight:900;box-shadow:0 4px 0 #174979}
  .dungeon .d-mobile-advance-continue:focus-visible,#dungeonEventRollOverlay .d-event-roll-continue:focus-visible{outline:3px solid #ffe09e;outline-offset:3px}
  @keyframes d-mobile-advance-in{from{opacity:0}to{opacity:1}}
  @keyframes d-mobile-advance-out{to{opacity:0;transform:scale(1.025)}}
  .dungeon .d-placement-stickers{top:3px;right:3px;bottom:3px;justify-content:center;gap:1px}
  .dungeon .d-placement-stickers button{width:24px;height:24px;flex:0 0 24px;font-size:15px;line-height:1}
  .dungeon .d-placement-face,.dungeon .d-placement-face-choice{min-height:94px}
  .dungeon .d-placement-face-choice{padding-right:29px}
}
@keyframes dungeon-hp-screen-flash{0%{opacity:0}18%{opacity:.43}42%{opacity:.31}100%{opacity:0}}
@media(max-width:640px) and (max-height:680px){
  .dungeon .d-placement-face,.dungeon .d-placement-face-choice{min-height:80px}
  .dungeon .d-placement-stickers button{width:21px;height:21px;flex-basis:21px;font-size:13px}
}
@media(prefers-reduced-motion:reduce){.dungeon .d-mobile-hp-flash{animation:none!important;opacity:0}}
@media(prefers-reduced-motion:reduce){.dungeon .d-mobile-advance,.dungeon .d-mobile-advance.is-leaving{animation:none!important}}

/* Mobile hero dice are numbered steps in the same cumulative scoring chain as Power-Ups. */
@media(max-width:640px){
  .dungeon .d-mobile-chain-hero{background:#294865}
  .dungeon .d-mobile-die-score-window{max-height:min(78dvh,610px);overflow-y:auto;text-align:left}
  .dungeon .d-mobile-die-score-window h2{text-align:center}
  .dungeon .d-mobile-die-score-window>small{display:block;padding-right:26px;text-align:center}
  .dungeon .d-mobile-die-score-start{margin:12px 0;padding:9px;border-radius:8px;background:#304d6b;color:#dcecfb;font-size:12px}
  .dungeon .d-mobile-die-score-start b{color:#fff}
  .dungeon .d-mobile-die-score-stickers{display:grid;gap:6px}
  .dungeon .d-mobile-die-score-stickers>div{padding:9px;border-radius:8px;background:#304d6b}
  .dungeon .d-mobile-die-score-stickers b{color:#ffe0a3;font-size:13px}
  .dungeon .d-mobile-die-score-stickers p{margin:4px 0 0;color:#e8f2ff;font-size:12px;line-height:1.35}
  .dungeon .d-mobile-die-score-stickers>p{margin:2px 0;color:#c8d9ed;font-size:12px}
  .dungeon .d-mobile-die-score-steps{display:grid;gap:5px;margin-top:12px;padding-top:10px;border-top:1px solid #59718e;font-size:12px}
  .dungeon .d-mobile-die-score-steps>b{color:#f5d491}
  .dungeon .d-mobile-die-score-steps span{display:flex;justify-content:space-between;gap:8px;color:#dcecfb}
  .dungeon .d-mobile-die-score-steps strong{color:#fff;white-space:nowrap}
}

/* v9.1.9 mobile round transitions, chain anchoring, and roomy Sticker faces. */
@media(max-width:640px){
  .dungeon .d-mobile-roll{justify-content:flex-start}
  .dungeon .d-mobile-current-chain{margin-top:auto;max-height:min(26dvh,190px);overflow-y:auto;flex:0 1 auto}
  .dungeon .d-mobile-roll .d-die:disabled{opacity:1}
  .dungeon .d-mobile-roll .d-die:disabled strong{color:transparent}
  .dungeon .d-mobile-run.is-initial-rolling .d-mobile-score,.dungeon .d-mobile-run.is-initial-rolling .d-mobile-current-chain{visibility:hidden}
  .dungeon .d-mobile-run.is-initial-rolling .d-sticker-rail{visibility:hidden}
  .dungeon .d-mobile-submit:disabled{background:#304158;border-color:#536880;color:#a9bed4;box-shadow:none}
  .dungeon .d-mobile-monster.is-attacking{animation:dungeon-monster-lunge .55s ease-out}
  .dungeon .d-mobile-roll.is-recoiling{animation:dungeon-board-recoil .55s ease-out}
  .dungeon .d-mobile-roll.is-dice-clearing .d-die{animation:dungeon-dice-clear .3s ease-out}
  .dungeon .d-mobile-victory-compare.d-mobile-failure-impact{z-index:21;border-color:#f1a4aa;background:#513842f2;color:#ffe2e4}
  .dungeon .d-mobile-victory-compare.d-mobile-failure-impact small{color:#ffc6ca}
  .dungeon .d-placement-face,.dungeon .d-placement-face-choice{min-height:114px}
  .dungeon .d-placement-stickers{justify-content:center;gap:4px}
  .dungeon .d-placement-stickers button{width:27px;height:27px;flex-basis:27px;font-size:17px}
}
@media(max-width:640px) and (max-height:680px){
  .dungeon .d-placement-face,.dungeon .d-placement-face-choice{min-height:102px}
  .dungeon .d-placement-stickers{gap:2px}
  .dungeon .d-placement-stickers button{width:25px;height:25px;flex-basis:25px;font-size:15px}
}
@keyframes dungeon-monster-lunge{0%,100%{transform:none}38%{transform:translateY(7px) scale(1.025)}}
@keyframes dungeon-board-recoil{0%,100%{transform:none}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
@keyframes dungeon-dice-clear{0%{opacity:1;transform:none}100%{opacity:.5;transform:rotate(-10deg) translateY(6px)}}
.dungeon .d-event-chance-card{padding:15px}
.dungeon .d-event-chance-heading{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.dungeon .d-event-chance-heading h2{margin-top:2px}
.dungeon .d-event-chance-icon{display:grid;place-items:center;flex:0 0 52px;height:52px;border:1px solid #6b7b9d;border-radius:12px;background:#294463;font-size:28px}
.dungeon .d-event-chance-caption{margin:0 0 7px;color:#bfd0e5;font-size:12px}
.dungeon .d-event-chance-row{padding:8px 0;border-bottom:1px solid #405570;color:#e9f3ff;font-size:13px}
.dungeon .d-event-chance-row:last-child{border-bottom:0}
.dungeon .d-event-chance-copy{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.dungeon .d-event-chance-copy strong{color:#fff}
.dungeon .d-event-chance-copy b{color:#f0f5ff;font-size:12px}
.dungeon .d-event-chance-track{height:5px;margin-top:7px;border-radius:5px;background:#314a66;overflow:hidden}
.dungeon .d-event-chance-track span{display:block;height:100%;border-radius:inherit;background:#a5b9d2}
.dungeon .d-event-chance--damage .d-event-chance-track span{background:#f09a9e}
.dungeon .d-event-chance--heal .d-event-chance-track span{background:#82d6ad}
.dungeon .d-event-chance--gold .d-event-chance-track span,.dungeon .d-event-chance--loot .d-event-chance-track span{background:#f2cf82}
.dungeon .d-event-chance--sticker .d-event-chance-track span,.dungeon .d-event-chance--power .d-event-chance-track span{background:#c6a9f6}
.dungeon .d-event-chance-roll{width:100%;margin-top:14px}
body:not(.theme-dark) .dungeon .d-event-chance-caption{color:#415670}
body:not(.theme-dark) .dungeon .d-event-chance-row{color:#19324f;border-color:#b8c8da}
body:not(.theme-dark) .dungeon .d-event-chance-copy strong,body:not(.theme-dark) .dungeon .d-event-chance-copy b{color:#14233b}
body:not(.theme-dark) .dungeon .d-event-chance-icon{background:#e2ecf8}
body:not(.theme-dark) .dungeon .d-event-chance-track{background:#d6e1ed}
#dungeonEventRollOverlay{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;background:#020816cc;color:#eef5ff;font-family:inherit}
#dungeonEventRollOverlay .d-event-roll-window{width:min(100%,330px);box-sizing:border-box;padding:24px;border:1px solid #8eacd0;border-radius:18px;background:linear-gradient(150deg,#294a6b,#17283e);box-shadow:0 20px 55px #020816cc;text-align:center}
#dungeonEventRollOverlay .d-event-roll-window>small{color:#f2cf82;font-weight:900;letter-spacing:.08em}
#dungeonEventRollOverlay h2{margin:8px 0 14px;color:#fff;font-size:21px}
#dungeonEventRollOverlay .d-event-d20-stage{min-height:125px;display:flex;flex-direction:column;align-items:center;justify-content:center}
#dungeonEventRollOverlay .d-event-roll-die{display:grid;place-items:center;width:108px;height:108px;clip-path:polygon(30% 0,70% 0,100% 30%,100% 70%,70% 100%,30% 100%,0 70%,0 30%);background:linear-gradient(145deg,#c6e4ff,#527aa2 45%,#f7ce83 85%);filter:drop-shadow(0 10px 13px #0008)}
#dungeonEventRollOverlay .d-event-roll-face{position:relative;display:grid;place-items:center;width:100px;height:100px;clip-path:inherit;background:linear-gradient(155deg,#f4f8ff,#cadcf1 58%,#a4bfdc);color:#143553}
#dungeonEventRollOverlay .d-event-roll-value{font-size:43px;font-weight:950;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 1px #fff}
#dungeonEventRollOverlay .d-event-roll-face small{position:absolute;bottom:13px;left:0;right:0;color:#345675;font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:900}
#dungeonEventRollOverlay .d-event-roll-shadow{width:72px;height:8px;margin-top:7px;border-radius:50%;background:#06111fc2;filter:blur(3px)}
#dungeonEventRollOverlay .d-event-roll-continue{display:none;min-width:150px;min-height:46px;margin-top:14px;padding:8px 20px;border:1px solid #a4cdf5;border-radius:10px;background:#286fba;color:#fff;font:inherit;font-weight:900;box-shadow:0 4px 0 #174979}
#dungeonEventRollOverlay.is-revealed .d-event-roll-continue{display:inline-flex;align-items:center;justify-content:center}
#dungeonEventRollOverlay.is-rolling .d-event-roll-die{animation:dungeon-d20-tumble .76s cubic-bezier(.2,.7,.3,1) both}
#dungeonEventRollOverlay.is-rolling .d-event-roll-shadow{animation:dungeon-d20-shadow .76s ease-out both}
#dungeonEventRollOverlay.is-revealed .d-event-roll-die{animation:dungeon-d20-settle .35s ease-out both}
#dungeonEventRollOverlay p{min-height:36px;margin:14px 0 0;color:#dfebfb;font-size:14px;line-height:1.4}
@keyframes dungeon-d20-tumble{0%{transform:translate(-70px,-12px) rotate(-75deg) scale(.82)}38%{transform:translate(18px,-36px) rotate(135deg) scale(1.09)}70%{transform:translate(5px,2px) rotate(334deg) scale(.92)}87%{transform:translate(0,-10px) rotate(363deg)}100%{transform:rotate(360deg)}}
@keyframes dungeon-d20-shadow{0%{transform:translateX(-38px) scaleX(.65);opacity:.45}40%{transform:translateX(10px) scaleX(.85);opacity:.55}100%{transform:none;opacity:1}}
@keyframes dungeon-d20-settle{0%{transform:rotate(12deg) scale(1.07)}70%{transform:rotate(-4deg) scale(.97)}100%{transform:none}}
@media(prefers-reduced-motion:reduce){.dungeon .d-mobile-monster.is-attacking,.dungeon .d-mobile-roll.is-recoiling,.dungeon .d-mobile-roll.is-dice-clearing,.dungeon .d-mobile-failure-impact,.dungeon .d-mobile-run.is-initial-rolling .d-mobile-roll .d-die,#dungeonEventRollOverlay .d-event-roll-die,#dungeonEventRollOverlay .d-event-roll-shadow{animation-duration:.01ms!important}}

/* v9.2.0: optional face effects and next-encounter die penalty. */
.dungeon .d-sticker-activations{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0;padding:10px;border:1px solid #56708c;border-radius:12px;background:#172e48}
.dungeon .d-sticker-activations button{flex:1 1 160px;min-height:44px;border:1px solid #8bafce;border-radius:9px;background:#294766;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.dungeon .d-sticker-activations button[aria-pressed="true"]{border-color:#e4bf78;background:#5a492e;color:#fff3d1}
.dungeon .d-sticker-activations small{display:block;margin-top:2px;font-size:11px;font-weight:600;color:#d2e3f2}
.dungeon .is-disabled-die .d-die{filter:grayscale(.75);opacity:.62}
.dungeon .is-disabled-die .d-die-name{color:#b9c5d2}
@media(max-width:640px){.dungeon .d-mobile-current-chain .d-sticker-activations{margin:0 0 8px;padding:6px;gap:5px}.dungeon .d-mobile-current-chain .d-sticker-activations button{flex-basis:130px;min-height:38px;font-size:11px}.dungeon .d-mobile-current-chain .d-sticker-activations small{font-size:10px}}

/* v9.2.1: one-time rarity reveal adapted from the full-card mockup. */
.dungeon .d-rarity{font-weight:900;letter-spacing:.025em}
.dungeon .d-rarity--rare,.dungeon .d-catalog-group h2.d-rarity--rare{color:#f0bf4c}
.dungeon .d-rarity--mythic,.dungeon .d-catalog-group h2.d-rarity--mythic{color:#ff777b}
.dungeon .d-choice.d-rarity-card--rare{border-color:#ac8436}
.dungeon .d-choice.d-rarity-card--mythic{border-color:#bd5057}
.dungeon .d-choice.d-rarity-card--rare:hover{border-color:#ffe293}
.dungeon .d-choice.d-rarity-card--mythic:hover{border-color:#ff989c}
.dungeon .d-choice.d-rarity-card--rare:focus-visible,.dungeon .d-choice.d-rarity-card--mythic:focus-visible{outline:3px solid #9bcfff;outline-offset:3px}
.dungeon .d-choice.d-rarity-card--rare,.dungeon .d-choice.d-rarity-card--mythic{position:relative;isolation:isolate;overflow:hidden}
.dungeon .d-choice.d-rarity-card--rare>*,.dungeon .d-choice.d-rarity-card--mythic>*{position:relative;z-index:1}
.dungeon .d-choice.d-rarity-card--rare::before,.dungeon .d-choice.d-rarity-card--mythic::before,.dungeon .d-choice.d-rarity-card--rare::after,.dungeon .d-choice.d-rarity-card--mythic::after{content:"";position:absolute;pointer-events:none;opacity:0;z-index:0}
.dungeon .d-choice.d-reveal-rare{animation:dungeon-rare-flash 1.55s cubic-bezier(.2,.75,.25,1) both}
.dungeon .d-choice.d-reveal-mythic{animation:dungeon-mythic-flash 1.55s cubic-bezier(.2,.75,.25,1) both}
.dungeon .d-choice.d-reveal-rare::before,.dungeon .d-choice.d-reveal-mythic::before{inset:-45%;animation:dungeon-rarity-sweep 1.55s cubic-bezier(.22,.75,.25,1) both}
.dungeon .d-choice.d-reveal-rare::before{background:linear-gradient(90deg,transparent 36%,#ffe6910d 43%,#ffe69175 49%,#f0bf4c30 54%,transparent 62%)}
.dungeon .d-choice.d-reveal-mythic::before{background:linear-gradient(90deg,transparent 34%,#ff5a5f12 42%,#ff969980 49%,#ff5a5f40 55%,transparent 64%)}
.dungeon .d-choice.d-reveal-rare::after,.dungeon .d-choice.d-reveal-mythic::after{inset:0;border-radius:inherit;animation:dungeon-rarity-bloom 1.55s ease-out both}
.dungeon .d-choice.d-reveal-rare::after{background:radial-gradient(circle at 50% 48%,#ffda6873,transparent 32%),radial-gradient(circle at 18% 20%,#f0bf4c40,transparent 22%)}
.dungeon .d-choice.d-reveal-mythic::after{background:radial-gradient(circle at 50% 48%,#ff5a5f80,transparent 33%),radial-gradient(circle at 83% 75%,#ff5a5f4d,transparent 24%)}
.dungeon .d-choice.d-reveal-rare .d-rarity,.dungeon .d-choice.d-reveal-mythic .d-rarity{display:inline-block;animation:dungeon-rarity-pop 1.55s ease both}
@keyframes dungeon-rare-flash{0%{border-color:#526b8a;box-shadow:none;transform:scale(.985)}18%{border-color:#ffe293;box-shadow:0 0 0 2px #ffe29380,0 0 20px 5px #f0bf4c80,inset 0 0 25px #f0bf4c36;transform:scale(1.012)}40%{border-color:#f0bf4c;box-shadow:0 0 6px #f0bf4c40;transform:scale(1)}57%{border-color:#ffe293;box-shadow:0 0 0 2px #ffe29370,0 0 23px 7px #f0bf4c70,inset 0 0 22px #f0bf4c30}100%{border-color:#ac8436;box-shadow:none;transform:scale(1)}}
@keyframes dungeon-mythic-flash{0%{border-color:#526b8a;box-shadow:none;transform:scale(.985)}16%{border-color:#ff989c;box-shadow:0 0 0 2px #ff989c88,0 0 22px 7px #ff5a5fb0,inset 0 0 30px #ff5a5f45;transform:scale(1.016)}36%{border-color:#ff5a5f;box-shadow:0 0 8px #ff5a5f50;transform:scale(1)}54%{border-color:#ff898e;box-shadow:0 0 0 3px #ff5a5f60,0 0 29px 9px #ff5a5f90,inset 0 0 28px #ff5a5f40}84%{border-color:#ff989c;box-shadow:0 0 22px 6px #ff5a5f60}100%{border-color:#bd5057;box-shadow:none;transform:scale(1)}}
@keyframes dungeon-rarity-sweep{0%{opacity:0;transform:translateX(-66%) rotate(18deg)}12%{opacity:.15}28%{opacity:1}68%{opacity:.95}100%{opacity:0;transform:translateX(66%) rotate(18deg)}}
@keyframes dungeon-rarity-bloom{0%{opacity:0;transform:scale(.92)}20%{opacity:.9;transform:scale(1)}48%{opacity:.35}72%{opacity:.65}100%{opacity:0;transform:scale(1.03)}}
@keyframes dungeon-rarity-pop{0%,8%{transform:scale(.82);opacity:.15}22%{transform:scale(1.12);opacity:1;text-shadow:0 0 14px currentColor}48%{transform:scale(1);text-shadow:0 0 5px currentColor}100%{transform:scale(1);opacity:1;text-shadow:none}}
body:not(.theme-dark) .dungeon .d-rarity--rare,body:not(.theme-dark) .dungeon .d-catalog-group h2.d-rarity--rare{color:#865700}
body:not(.theme-dark) .dungeon .d-rarity--mythic,body:not(.theme-dark) .dungeon .d-catalog-group h2.d-rarity--mythic{color:#b52335}
body:not(.theme-dark) .dungeon .d-choice .d-rarity--rare{color:#ffd466}
body:not(.theme-dark) .dungeon .d-choice .d-rarity--mythic{color:#ff858b}
@media(prefers-reduced-motion:reduce){.dungeon .d-choice.d-reveal-rare,.dungeon .d-choice.d-reveal-mythic,.dungeon .d-choice.d-reveal-rare::before,.dungeon .d-choice.d-reveal-mythic::before,.dungeon .d-choice.d-reveal-rare::after,.dungeon .d-choice.d-reveal-mythic::after,.dungeon .d-choice.d-reveal-rare .d-rarity,.dungeon .d-choice.d-reveal-mythic .d-rarity{animation:none!important}}
.dungeon .d-choice .d-rarity-line{position:absolute;z-index:1;left:12px;right:12px;bottom:4px;height:2px;opacity:0;pointer-events:none;transform-origin:left}
.dungeon .d-choice.d-reveal-rare .d-rarity-line,.dungeon .d-choice.d-reveal-mythic .d-rarity-line{animation:dungeon-rarity-line 1.3s ease-out both}
.dungeon .d-choice.d-reveal-rare .d-rarity-line{background:linear-gradient(90deg,transparent,#f0bf4c,transparent)}
.dungeon .d-choice.d-reveal-mythic .d-rarity-line{background:linear-gradient(90deg,transparent,#ff777b,transparent)}
@keyframes dungeon-rarity-line{0%{opacity:0;transform:scaleX(0)}28%{opacity:1;transform:scaleX(1)}72%{opacity:.75}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.dungeon .d-choice.d-reveal-rare .d-rarity-line,.dungeon .d-choice.d-reveal-mythic .d-rarity-line{animation:none!important}}

/* v9.2.2: encounter abilities and named reward choices. */
.dungeon .d-ability-roll{display:inline-block;margin-left:4px;padding:3px 7px;border:1px solid #a9bddd;border-radius:6px;background:#1e3754;color:#fff;font-size:11px;white-space:nowrap}
.dungeon .d-featured-drop{display:block;margin-top:5px;color:#ffe1a5;font-size:11px;font-weight:800;line-height:1.4}
.dungeon .d-featured-note{padding:9px 11px;border:1px solid #9b7a46;border-radius:9px;background:#3c352b;color:#f6e3bb}
.dungeon .d-catalog-featured{padding:7px 9px;border:1px solid #8b724f;border-radius:8px;background:#3c352b;color:#ffe1a5}
.dungeon .d-choice.d-featured-choice{outline:2px solid #d3a75a;outline-offset:2px}
.dungeon .d-choice .d-featured-badge{display:inline-block;margin-top:8px;padding:4px 7px;border-radius:6px;background:#62502d;color:#ffdf9b;font-size:10px;font-weight:900}
.dungeon .d-condition-miss{margin:0 0 10px;padding:8px;border:1px solid #d48989;border-radius:8px;background:#4d2d39;color:#ffe3e3}
@media(max-width:640px){.dungeon .d-mobile-monster-info .d-featured-drop{margin-top:3px}.dungeon .d-mobile-score>span{max-width:50%;text-align:right;font-size:11px;line-height:1.25}}
body:not(.theme-dark) .dungeon .d-featured-note,body:not(.theme-dark) .dungeon .d-catalog-featured{background:#fff6e5;color:#674515}
body:not(.theme-dark) .dungeon .d-condition-miss{background:#fff0f0;color:#852b37}
@media(max-width:640px){
 .dungeon .d-mobile-monster-info .d-mobile-ability-button{min-width:0;padding:6px 7px;border:0;border-radius:7px;background:#342d3e;color:#f1dfeb;text-align:left;font:inherit;line-height:1.2}
 .dungeon .d-mobile-monster-info .d-mobile-ability-button b{display:block;color:#f9b9d5;text-transform:uppercase;font-size:9px;margin-bottom:2px}
 .dungeon .d-mobile-monster-info .d-ability-roll{margin:3px 0 0;padding:1px 4px;font-size:9px}
}

/* Seal Break: one entrance per newly encountered Elite Monster or Boss. */
.dungeon .d-encounter-revealing{position:relative;isolation:isolate;overflow:hidden;animation:dungeon-seal-card .9s ease-out both}
.dungeon .d-encounter-seal{position:absolute;z-index:5;inset:0;border-radius:inherit;pointer-events:none;animation:dungeon-seal-clear 1s ease-out both}
.dungeon .d-encounter-seal::before,.dungeon .d-encounter-seal::after{content:"";position:absolute;top:0;bottom:0;width:50%;background:linear-gradient(130deg,#4c3b32,#89623a);border:1px solid #f2ca7e;box-shadow:inset 0 0 22px #f2ca7e3d,0 0 17px #e6af6073}
.dungeon .d-encounter-seal::before{left:0;border-radius:inherit;border-top-right-radius:0;border-bottom-right-radius:0;animation:dungeon-seal-left .68s .25s ease-in-out both}
.dungeon .d-encounter-seal::after{right:0;border-radius:inherit;border-top-left-radius:0;border-bottom-left-radius:0;animation:dungeon-seal-right .68s .25s ease-in-out both}
.dungeon .d-encounter-seal--boss .d-encounter-seal::before,.dungeon .d-encounter-seal--boss .d-encounter-seal::after{background:linear-gradient(130deg,#372336,#793540);border-color:#f08280;box-shadow:inset 0 0 22px #e965694d,0 0 17px #e965696d}
.dungeon .d-seal-mark{position:absolute;z-index:1;top:50%;left:50%;display:grid;place-items:center;gap:1px;color:#ffe9b5;font-size:32px;font-weight:900;line-height:1;text-shadow:0 0 18px currentColor;animation:dungeon-seal-mark .6s .1s ease-out both}
.dungeon .d-seal-mark small{font-size:9px;letter-spacing:.16em}
.dungeon .d-encounter-seal--boss .d-seal-mark{color:#ffb5ad}
@keyframes dungeon-seal-card{0%,35%{filter:brightness(.35)}70%{filter:brightness(1.22)}100%{filter:none}}
@keyframes dungeon-seal-clear{0%,20%{opacity:1}90%{opacity:1}100%{opacity:0;visibility:hidden}}
@keyframes dungeon-seal-left{0%,22%{transform:none}100%{transform:translateX(-112%) rotate(-5deg)}}
@keyframes dungeon-seal-right{0%,22%{transform:none}100%{transform:translateX(112%) rotate(5deg)}}
@keyframes dungeon-seal-mark{0%,22%{opacity:1;transform:translate(-50%,-50%) scale(1)}70%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.8)}}
@media(prefers-reduced-motion:reduce){.dungeon .d-encounter-revealing{animation:none!important}.dungeon .d-encounter-seal{display:none!important}}

/* v9.3: compact mobile scoring icons and usable optional Power-Ups. */
.dungeon .d-power-action{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding-top:7px;border-top:1px solid #48617d}
.dungeon .d-power-action select{min-width:80px;max-width:100%;min-height:34px;flex:1;padding:5px;border:1px solid #6c87a5;border-radius:7px;background:#172c45;color:#f5f9ff;font:inherit;font-size:12px}
.dungeon .d-power-action button{min-height:34px;padding:6px 9px;border:1px solid #bd9c5a;border-radius:7px;background:#4a3d2f;color:#ffe6aa;font:inherit;font-size:11px;font-weight:800}
.dungeon .d-power-action button:disabled{opacity:.45}
@media(max-width:640px){
 .dungeon .d-mobile-equipped-icons{display:flex;justify-content:flex-end;align-items:center;gap:2px;min-height:28px;max-width:52%;flex-wrap:nowrap}
 .dungeon .d-mobile-equipped-icons button{display:grid;place-items:center;flex:0 1 29px;min-width:23px;height:28px;padding:0;border:0;background:none;color:#ffe0a4;font-size:19px;line-height:1}
 .dungeon .d-mobile-chain-pill{display:inline-flex;align-items:center;gap:3px;white-space:nowrap;padding:5px 6px}
 .dungeon .d-mobile-chain-pill img{width:17px;height:17px;object-fit:contain;flex:none}
 .dungeon .d-mobile-chain-pill .d-chain-effect-icon{font-size:16px;line-height:1}
 .dungeon .d-mobile-chain-pill span:not(.d-chain-effect-icon){font-size:10px;color:#d9e7f8}
 .dungeon .d-mobile-chain-pill b{font-size:11px;margin-left:1px}
 .dungeon .d-mobile-sheet .d-power-action{margin-top:6px}
}


/* Mobile score submission: Running Receipt resolves before combat outcomes. */
@media(max-width:640px){
 .dungeon .d-running-receipt-overlay{position:absolute;inset:0;z-index:30;background:#081323ad;pointer-events:none}
 .dungeon .is-score-receipting .d-mobile-current-chain{position:relative;z-index:31;overflow-y:auto;background:#192e44}
 .dungeon .d-running-receipt{position:absolute;left:50%;transform:translateX(-50%);width:min(calc(100% - 36px),330px);box-sizing:border-box;padding:14px 15px;background:#142b43;border:1px solid #7395b7;border-radius:16px;box-shadow:0 16px 42px #0006;color:#eef5ff;display:flex;flex-direction:column;overflow:hidden;animation:dungeon-receipt-arrive .2s ease-out}
 .dungeon .d-running-receipt>small{text-align:center;color:#ecd084;font-size:10px;font-weight:900;letter-spacing:.12em}
 .dungeon .d-receipt-total{display:block;text-align:center;font-size:clamp(38px,12vw,62px);line-height:1.1;font-weight:950;font-variant-numeric:tabular-nums;padding:6px 0 9px;border-bottom:1px solid #47627e;overflow-wrap:anywhere}
 .dungeon .d-receipt-total.is-ticking{animation:dungeon-receipt-tick .2s ease-out}
 .dungeon .d-receipt-rows{min-height:0;overflow:hidden;margin-top:5px;flex:1 1 auto}
 .dungeon .d-receipt-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;font-size:11px;color:#b0c5dd;animation:dungeon-receipt-row-in .2s ease-out}
 .dungeon .d-receipt-row:last-child{color:#ffe1a0}
 .dungeon .d-receipt-name{display:flex;align-items:center;gap:5px;min-width:0;overflow-wrap:anywhere}
 .dungeon .d-receipt-name img{width:17px;height:20px;object-fit:contain;flex:none}
 .dungeon .d-receipt-math{white-space:nowrap;font-variant-numeric:tabular-nums;flex:none}
 .dungeon .d-receipt-math i{font-style:normal;color:#91a9c4;margin:0 3px}
 .dungeon .d-receipt-progress{text-align:center;color:#b0c5dd;font-size:10px;padding-top:7px;flex:none}
 .dungeon .d-receipt-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .dungeon .d-running-receipt.is-compact{padding:9px 12px}
 .dungeon .d-running-receipt.is-compact .d-receipt-total{font-size:36px;padding:3px 0 5px}
 .dungeon .d-running-receipt.is-compact .d-receipt-progress{padding-top:3px}
 .dungeon .d-mobile-chain-pill.is-receipt-active{background:#3c5a75;border-color:#f1d185;box-shadow:0 0 0 2px #f1d18555,0 0 20px #f1d18533;transform:translateY(-1px)}
 .dungeon .d-mobile-chain-pill.is-receipt-complete{border-bottom-color:#f1d185}
}
@keyframes dungeon-receipt-arrive{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes dungeon-receipt-tick{from{transform:scale(.97)}to{transform:scale(1)}}
@keyframes dungeon-receipt-row-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.dungeon .d-running-receipt,.dungeon .d-receipt-total.is-ticking,.dungeon .d-receipt-row{animation:none}}
