/* Hearth & brass: one shared interaction language across the expedition. */
.champion-showcase>.combat-sprite{position:absolute!important;bottom:120px;left:50%;translate:-50% 0;max-height:calc(100% - 120px)}
body.is-dragging .offer-tooltip{display:none!important}
@font-face{font-family:Cinzel;src:url('/assets/fonts/Cinzel.ttf') format('truetype');font-weight:400 900;font-display:swap}
@font-face{font-family:Alegreya;src:url('/assets/fonts/Alegreya.ttf') format('truetype');font-weight:400 900;font-display:swap}
:root{--hearth-gold:#edc778;--hearth-amber:#c78246;--hearth-ink:#16291e;--hearth-cream:#fff0ce;--hearth-muted:#d0bd96}
body{font-family:Alegreya,Georgia,serif;color:var(--hearth-cream);background:#18251d}
body button,body input,body select,body #game :is(p,small,span,label,b,strong,em,li,div){font-family:Alegreya,Georgia,serif!important}
body #game :is(h1,h2,h3,.quest-title,.gold,.tavern-kicker,.creation-heading>span,.field-label),body>header{font-family:Cinzel,Georgia,serif!important}
body button{cursor:pointer;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,filter .14s ease,transform .14s ease;color:#f9e6bc;border-radius:6px;border:1px solid #9e7b43;background:linear-gradient(#394435,#253126);box-shadow:inset 0 1px #ffffff13,0 3px 0 #10180f;font-size:14px}
body button:not(:disabled):hover{border-color:#ffdc8b;filter:brightness(1.16);box-shadow:inset 0 1px #fff7cc35,0 0 0 1px #c9974c66,0 0 16px #e5a94a35,0 3px 0 #10180f;transform:translateY(-1px)}
body button:not(:disabled):active{transform:translateY(2px);box-shadow:inset 0 2px 4px #0006,0 1px 0 #10180f;filter:brightness(.98)}
body :is(button,input,select):focus-visible{outline:3px solid #ffe2a2;outline-offset:3px;box-shadow:0 0 16px #f7bd6855}
body button:disabled{cursor:not-allowed;filter:saturate(.45);opacity:.48;box-shadow:none}
body .gold{background:linear-gradient(#e8c47b,#c39445 55%,#a96f30);color:#271b0b;text-shadow:0 1px #ffe6b866;border-color:#f6d18e;box-shadow:inset 0 1px #ffecc4,0 4px 0 #624221,0 5px 12px #0005;font-weight:800;font-size:14px;letter-spacing:.2px}
body .gold:not(:disabled):hover{background:linear-gradient(#ffe3a0,#e7b95f 60%,#cc8e3f);color:#241a0e;box-shadow:inset 0 1px #fff5d7,0 4px 0 #795025,0 0 24px #f4b34750}
body>header{background:linear-gradient(#233025,#101c16);border-bottom:1px solid #9e7740}body>header b{color:#f5d28a}.playtest-tools{background:#122019;border-bottom-color:#6d5838}.playtest-tools button{font-size:12px;box-shadow:none;padding:2px 10px}
/* The creator is an inn-side character screen, not a form. */
body[data-screen=menu] #game{display:grid;grid-template-columns:minmax(0,1fr) minmax(490px,570px);grid-template-rows:minmax(0,1fr);gap:32px;padding:24px 5%;background:linear-gradient(90deg,#132119b0,#15261ac9),url('/assets/art/elwynn-scenes-v1.png');background-size:auto,200% 200%;background-position:center,0 0;overflow:visible}
body[data-screen=menu] .hero-welcome{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:0;justify-content:flex-start;padding-top:8px}
.tavern-kicker{color:#e7be75;letter-spacing:2.8px;font-size:11px}.hero-welcome h1{font-size:clamp(27px,3vw,44px)!important;line-height:1.12;margin:12px 0;color:#fff0cc;text-shadow:0 3px 0 #17271c,0 0 30px #d29e5244}.hero-welcome>p{font-size:18px!important;line-height:1.4;color:#ddcba4;margin:0}
.champion-showcase{position:relative;flex:1;width:100%;min-height:200px;display:flex;align-items:center;justify-content:center;padding-bottom:62px}.champion-showcase>.combat-sprite{position:relative;width:240px!important;height:270px!important;filter:drop-shadow(0 10px 10px #0008);z-index:1;animation:champion-enter .28s ease-out}.showcase-ring{position:absolute;bottom:66px;left:calc(50% - 100px);width:200px;height:35px;border:2px solid #ceaa6955;border-radius:50%;background:radial-gradient(ellipse,#efd18b55,transparent 65%);box-shadow:0 0 45px #eab35c22}.showcase-plaque{position:absolute;bottom:2px;display:grid;gap:3px;justify-items:center;min-width:250px;padding:10px 30px;border-top:1px solid #a9874d;border-bottom:1px solid #826338;background:linear-gradient(90deg,transparent,#14241be8 15%,#14241be8 85%,transparent)}.showcase-plaque>b{font-size:23px;color:#ffe0a0}.showcase-plaque>span{font-size:14px;color:#dcc9a2}.showcase-plaque em{font-style:normal;font-size:11px;padding:2px 12px}.continue-adventure{margin:10px 0 6px;padding:8px 25px}.welcome-route{font-size:10px!important;letter-spacing:1.3px;color:#d0b987;margin-top:8px}
body[data-screen=menu] .champion-creation{display:flex;flex-direction:column;min-height:0;align-self:stretch;padding:20px 26px!important;border:2px solid #a9834b;border-radius:12px;background:linear-gradient(125deg,#354231f5,#1c3027f5 55%,#283428f5);box-shadow:inset 0 0 0 4px #111e1644,inset 0 0 40px #e4a65a09,0 16px 45px #0007;position:relative;gap:0}.creation-heading{padding-bottom:10px;border-bottom:1px solid #a482494f;margin-bottom:8px}.creation-heading>span{font-size:10px;letter-spacing:2px;color:#d2ae73}.creation-heading h2{font-size:25px!important;margin:4px 0!important;text-transform:none!important;color:#ffe4ae}
body .game-builder{display:block!important;padding:0!important;position:relative;min-height:0}.choice-heading{display:flex;align-items:center;gap:9px;margin:9px 0 7px}.choice-heading>span{font-size:12px;color:#f0d295;border:1px solid #8f764c;border-radius:50%;width:23px;height:23px;text-align:center;line-height:22px;background:#16271c}.choice-heading h3{font-size:13px;margin:0;color:#e7d6b2}.class-choices{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.class-choices button{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;font-size:12px;line-height:1.15;background:linear-gradient(#3c4c39,#24372b);border-color:#68734c}.class-choices .icon{width:31px;height:31px;border-radius:6px}.class-choices button[aria-pressed=true],.spec-choices button[aria-pressed=true]{border:1px solid #f4cc7c;background:linear-gradient(#715334,#443b25);box-shadow:inset 0 0 0 1px #dbad6144,0 0 14px #f1b95122}.class-choices button[aria-pressed=true]:after{content:'✓';position:absolute;right:4px;top:1px;color:#ffe7ad;font-size:12px}.spec-choices{display:flex;gap:8px}.spec-choices button{flex:1;padding:8px 3px;display:flex;flex-direction:column;gap:2px;min-width:0}.spec-choices b{font-size:15px}.spec-choices small{font-size:11px;line-height:1.1;color:#d8c7a4}.calling-ability{font-size:13px!important;line-height:1.25;margin:9px 0;color:#e8d8b9;min-height:32px}.identity-fields{display:grid;grid-template-columns:1fr 1.1fr;gap:12px;margin-top:10px}.field-label,.name-field{display:block;font-size:12px;color:#ead2a3}.name-field input{width:100%;height:48px;margin-top:5px;padding:9px 11px;border:1px solid #a48655;background:#101f18;box-shadow:inset 0 2px 6px #0006;color:#fff0cd;border-radius:5px;font-size:15px}.name-field input::placeholder{color:#b7ad93;font-size:12px}.race-picker{position:relative}.race-trigger{display:flex;align-items:center;gap:6px;width:100%;height:48px;margin-top:5px;text-align:left;padding:4px 8px}.race-trigger>#race-value{flex:1;font-size:14px;line-height:1.1}.race-mini{display:block;width:34px;height:37px;flex-shrink:0;overflow:hidden;border-radius:4px;background:#17271c}.race-mini .combat-sprite{display:block;width:40px!important;height:48px!important;margin-left:-3px}.race-options{position:absolute;bottom:calc(100% + 7px);left:0;width:min(410px,80vw);z-index:120;padding:6px;background:#13241bf9;border:2px solid #d0a563;border-radius:7px;box-shadow:0 12px 45px #000c;max-height:340px;overflow:auto}.race-options button{display:flex;gap:10px;align-items:center;text-align:left;width:100%;padding:7px;margin:3px 0;background:#263b2d;box-shadow:none;border-color:#526341}.race-options button>span:nth-child(2){display:grid;gap:2px;flex:1}.race-options b{font-size:15px}.race-options small{font-size:12px;line-height:1.2;color:#d1c5a5}.race-options [aria-selected=true]{background:#594728;border-color:#dfba71}.race-options i{font-style:normal;color:#ffdc84}.racial-summary{font-size:12px!important;line-height:1.2;color:#c6b795;margin:8px 0}.champion-creation .embark{margin-top:auto;display:block!important;padding-top:10px;border-top:1px solid #b18c4b44;grid-column:auto}.champion-creation .embark .gold{width:100%;font-size:16px;padding:13px 10px;display:flex;justify-content:center;gap:24px}.champion-creation .embark small{display:block;font-size:11px;margin-top:7px;text-align:center;color:#c3b499}
/* Warm wood, cloth, and polished brass, with quiet surfaces behind text. */
.camp-hud{background:linear-gradient(#34432d,#1b2c20);border-bottom:2px solid #ad8a4b}.camp-hud h1{color:#ffe7b0;font-size:24px}.camp-hud small{font-size:11px;letter-spacing:1px}.party-readiness>span{font-size:12px;background:#14241c;border:1px solid #526641;border-radius:5px}.party-readiness .ready{border-color:#91a869;color:#d0e7ad}.camp-lives{color:#ef927b}.camp-dock{border-top:3px ridge #b88c4b;background:#283224}.camp-tabs{background:linear-gradient(#5d4931,#362f24);border-bottom:1px solid #a4834a;padding:4px 8px;gap:5px}.camp-tabs button{font-size:13px;box-shadow:none;background:#1e3024;border:1px solid #8c7549;border-radius:5px}.camp-tabs button[aria-pressed=true]{background:linear-gradient(#a47c3e,#624b2b);border-color:#edc77e;color:#fff1cd}.supply-dock{background:radial-gradient(ellipse at 50% 100%,#5e482d40,transparent 80%),#202e23}.draft-character{background:linear-gradient(125deg,#3b4530,#203126);border-left:2px solid #977747}.draft-character h2{font-size:21px;color:#f8d598}.character-title small{font-size:12px;color:#d2c4a2}.purse{font-size:21px;color:#f0ca6f}.character-details{font-size:12px!important;padding:5px}.shop-toolbar h2{color:#f3d69d;font-size:21px}.shop-toolbar small{font-size:12px}.shop-toolbar button{font-size:13px}.draft-item{border:2px solid #ac864e;border-radius:9px;background:linear-gradient(140deg,#705333,#3e3524);box-shadow:inset 0 1px #e6c98b44,0 4px 0 #111b13}.draft-item b{font-size:14px!important;line-height:1.1;color:#ffedc4}.draft-item .icon{border:2px solid #c59a54;box-shadow:0 3px 8px #0008;border-radius:7px}.price{font-size:14px!important;color:#ffe19a}.draft-offer>.freeze{font-size:12px;box-shadow:none;border-color:transparent;background:transparent;color:#ccb993}.draft-offer>.freeze[aria-pressed=true]{background:#284859;color:#c1e9ef;border-color:#6dabb5}.shop-instruction{font-size:11px;color:#d0c2a0}.gear-slots .gear-hover{border-radius:5px}.gear-slots .gear-hover:hover{filter:brightness(1.25);outline:1px solid #e9c47f}.gear-slots .empty-gear{border:1px solid #8b7c54;border-radius:5px;background:#17251c;color:#a99a72}.gear-slots small{font-size:10px!important;color:#d1c09a}.offer-tooltip,.gear-tooltip{background:#10251af7!important;border:2px solid #be9856!important;border-radius:6px;color:#f7e7c2!important;font-size:13px!important;box-shadow:0 8px 30px #000a!important}.journey-bar{background:linear-gradient(#263626,#16271d);border-top:2px solid #8b7142}.journey-bar small{font-size:13px;color:#dfcfaa}.journey-bar .gold{font-size:14px;padding:10px 22px}.draft-ally-select{box-shadow:none!important;border:0!important;border-radius:0!important;background:transparent!important}.draft-ally-select:hover{transform:none!important;filter:none!important}.draft-ally .draft-portrait{transition:filter .16s,translate .16s}.draft-ally:hover .draft-portrait{filter:drop-shadow(0 0 10px #ffe5a766);translate:0 -5px}.draft-ally.chosen .draft-portrait{filter:drop-shadow(0 0 8px #ffdd8f88)}.draft-ally strong{font-size:17px;color:#ffebbd}.draft-ally small{font-size:11px}.draft-stats{font-size:13px}.draft-ally .formation-number{background:#263727;border:1px solid #ac9157;border-radius:12px;color:#f6e2ac;font-size:10px}.formation-arrows button{border-radius:50%;width:26px;height:26px;font-size:15px;padding:0}.stage-hint{font-size:11px;color:#ffedc5;text-shadow:0 1px 3px #000}
.game-modal{background:linear-gradient(125deg,#36442e,#1c3025);border:3px ridge #c29a58;border-radius:10px}.game-modal .quest-title{background:linear-gradient(#5a442b,#3d3325)!important;color:#ffe1a5!important}.quest-pages aside button{font-size:13px!important;background:#293d2c!important;border-color:#74815a!important}.quest-pages aside button.active{background:#5c4c2f!important;border-color:#e4bd70!important}.quest-pages .parchment{background:radial-gradient(ellipse at top,#f3e4be,#d9be87)!important;color:#382714}.quest-pages .parchment p{font-size:16px}.quest-pages .parchment h2{font-size:24px}.quest-pages .parchment li{font-size:15px}.modal-back{font-size:15px}.character-sheet p{font-size:16px!important;color:#e3d6b9}.story-screen .parchment{border:2px solid #c2a065;background:linear-gradient(120deg,#35412ef2,#182b22f5);border-radius:8px;box-shadow:0 8px 24px #0006}.story-screen .parchment p{font-size:17px;line-height:1.4;color:#efdfbe}.story-screen .parchment h1{color:#ffe4aa}.recruit-option{border-radius:9px!important;border:2px solid #aa8c50!important;background:linear-gradient(#34482f,#1c3025)!important;color:#f6e5bd!important}.recruit-option p{font-size:14px!important;color:#ddcdac!important}.recruit-option h3{color:#ffdc93!important}.recruit-option button{font-size:14px!important}.city-panel{background:linear-gradient(120deg,#263c2cf5,#182d23ed);border:2px solid #997c49;border-radius:10px}.city-panel h2{color:#ffe0a1}.city-panel>p{font-size:15px}.auction-card{border-radius:6px;border-color:#87724a;background:#433e2977}.auction-card p{font-size:14px}.profession-training button{border-radius:6px;background:linear-gradient(#3a4d36,#263a2c)}.discovery-screen h1{color:#ffe2a3}.upgrade-choices button{border-radius:10px;border:2px solid #a68a51;background:linear-gradient(135deg,#405137,#263b2e);box-shadow:inset 0 1px #ead7a329,0 5px 0 #132016}.upgrade-choices span{font-size:15px;color:#e0d1af}.combat-recap{border:1px solid #8e784c;border-radius:6px;background:#183022}.recap-row{font-size:13px}.health-number{font-size:12px!important;font-weight:700;text-shadow:0 1px 2px #000}.fighter-label strong{font-size:13px!important}#notice:not(:empty){background:linear-gradient(#38462c,#1e3122);border:2px solid #ceaa66;color:#ffe7b4;border-radius:8px;font:16px Alegreya,Georgia,serif;box-shadow:0 8px 30px #0008;padding:12px 22px}
/* Pick up the actual adventurer. Placement is previewed before committing. */
[draggable=true]{touch-action:none;user-select:none;cursor:grab}.draft-ally [data-select]{cursor:grab}body.is-dragging,body.is-dragging *{cursor:grabbing!important}body.is-dragging .draft-ally{transition:translate .16s ease}.draft-ally.dragging{opacity:.2!important}.drag-ghost{position:fixed;pointer-events:none!important;z-index:9999!important;width:150px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-75%) rotate(-3deg);filter:drop-shadow(0 12px 7px #0008);will-change:left,top}.drag-ghost .combat-sprite{display:block;width:132px!important;height:160px!important}.drag-ghost>.icon{width:58px!important;height:58px!important;border:2px solid #f1cc7f;border-radius:8px}.drag-ghost>b{background:#172b20f5;color:#ffe1a0;border:1px solid #e2b76e;padding:4px 10px;border-radius:6px;font-size:15px;white-space:nowrap}.drop-eligible{outline:1px dashed #c3d59488;outline-offset:4px}.drop-ready{outline:3px solid #f7d38b!important;outline-offset:4px;box-shadow:0 0 25px #f8c35f50!important;border-radius:8px}.drop-invalid{outline:2px dashed #df8875!important;outline-offset:4px}.drop-ready:after{content:attr(data-drop-hint);position:absolute;bottom:-17px;left:50%;translate:-50% 0;white-space:nowrap;z-index:50;background:#213e27;color:#ffe8ae;border:1px solid #dfbb74;border-radius:5px;padding:3px 10px;font:13px Alegreya,serif}.drop-invalid:after{content:attr(data-drop-hint);position:absolute;bottom:0;left:50%;translate:-50% 0;white-space:nowrap;background:#512c25;color:#ffe6bf;border:1px solid #ca8771;border-radius:5px;padding:4px 9px;z-index:50}.just-placed{animation:placement-settle .35s ease-out}.drag-ghost.returning{transition:left .2s ease,top .2s ease,opacity .2s;opacity:0}.draft-ally.drop-ready .draft-portrait{filter:drop-shadow(0 0 15px #ffdc89)}
@keyframes placement-settle{0%{scale:1.08;filter:brightness(1.4)}60%{scale:.98}100%{scale:1;filter:none}}@keyframes champion-enter{from{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-height:760px) and (min-width:850px){body[data-screen=menu] #game{padding:15px 4%;gap:24px}.champion-creation{padding:12px 22px!important}.creation-heading h2{font-size:22px!important}.creation-heading{padding-bottom:6px;margin-bottom:3px}.choice-heading{margin:6px 0}.class-choices button{padding:4px 2px}.class-choices .icon{width:26px;height:26px}.calling-ability{margin:6px 0;min-height:28px}.identity-fields{margin-top:5px}.hero-welcome h1{font-size:34px!important}.hero-welcome>p{font-size:16px!important}.champion-showcase>.combat-sprite{width:200px!important;height:230px!important}.champion-creation .embark .gold{padding:10px}.racial-summary{margin:5px 0}.draft-item b{font-size:12px!important}.shop-toolbar h2{font-size:18px}.city-panel>p{font-size:13px}}
@media(max-width:1000px){body[data-screen=menu] #game{grid-template-columns:minmax(0,1fr) minmax(430px,1.1fr);gap:16px;padding:18px}.hero-welcome h1{font-size:31px!important}.camp-tabs button{font-size:11px}.journey-bar small{font-size:12px}.character-title small{font-size:10px}.race-options{width:340px}.class-choices button{font-size:11px}}
@media(max-width:750px){body[data-screen=menu] #game{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:10px;padding:12px;overflow:auto}.hero-welcome{padding:0!important;align-items:start!important;text-align:left!important}.hero-welcome h1{font-size:23px!important;margin:4px 0}.hero-welcome h1 br{display:none}.hero-welcome>p,.welcome-route,.champion-showcase{display:none!important}.tavern-kicker{font-size:9px}.continue-adventure{position:absolute;right:0;top:2px;font-size:11px;padding:6px;max-width:130px}.hero-welcome:has(.continue-adventure) h1{max-width:65%}.champion-creation{padding:12px 16px!important;min-height:545px!important}.creation-heading h2{font-size:22px!important}.class-choices{gap:5px}.class-choices .icon{width:27px;height:27px}.class-choices button{padding:4px;font-size:11px}.spec-choices b{font-size:14px}.spec-choices small{font-size:10px}.race-options{width:min(340px,85vw)}.camp-tabs button{font-size:10px}.draft-item b{font-size:11px!important}.draft-ally strong{font-size:11px}.draft-ally small{font-size:9px}.draft-stats{font-size:10px}.camp-hud h1{font-size:18px}.character-title h2{font-size:15px}.character-title small{font-size:9px}.gear-slots small{font-size:8px!important}.journey-bar small{font-size:11px}.journey-bar .gold{font-size:11px;padding:8px 11px}.quest-pages .parchment p,.quest-pages .parchment li{font-size:13px}.quest-pages aside button{font-size:11px!important}.story-screen .parchment p{font-size:14px}.shop-toolbar small{font-size:10px}.character-details{font-size:10px!important}.draft-offer>.freeze{font-size:10px}.shop-instruction{display:none}.city-panel>p{font-size:13px}}
@media(prefers-reduced-motion:reduce){body button,.draft-portrait,body.is-dragging .draft-ally,.drag-ghost.returning{transition:none!important}.champion-showcase>.combat-sprite,.just-placed{animation:none!important}body button:hover,body button:active{transform:none!important}}

/* Reserve the complete supply panel so it cannot cover the journey controls. */
.game-camp{--dock:274px}.journey-bar{position:relative;z-index:4}.camp-dock{height:var(--dock)}

body[data-screen=menu] .hero-welcome{align-self:stretch!important}.champion-showcase>.combat-sprite{max-height:none}

*{scrollbar-width:thin;scrollbar-color:#a5854e #1c2b21}@media(max-height:760px){.auction-card{padding:7px}.auction-card p{margin:3px 0}.city-panel>p{margin:8px 0}.auction-items{gap:5px}}
/* 0.6: a board first, with details on demand. */
body{grid-template-rows:0 34px minmax(0,1fr)}body>header{display:none}.playtest-tools{height:34px;padding:3px 14px;background:#12251e}.playtest-tools:before{content:'FEUD & FELLOWSHIP';color:#eccb86;font:700 12px Cinzel;letter-spacing:1px;margin-right:auto}.playtest-tools>span{display:none}.playtest-tools button{border:0;background:transparent;font-size:11px;color:#b9b69c}
body button{border:2px solid #9e864e;box-shadow:0 4px 0 #0a1b16;border-radius:12px}body button:hover{transition-duration:90ms}body .gold{border-radius:14px;box-shadow:0 5px 0 #6d4d25;font-size:16px}
.game-icon-button{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none!important;width:58px;height:58px;padding:7px!important;background:#254a39!important;border:2px solid #b59a61!important;border-radius:14px!important;box-shadow:0 4px 0 #10261c!important;overflow:visible}.game-icon-button>svg,.game-icon-button>img{width:100%;height:100%;object-fit:contain;pointer-events:none}.game-icon-button>img{border-radius:7px}.game-icon-button[aria-pressed=true]{background:#7b6534!important;border-color:#ffe2a1!important;box-shadow:0 0 0 3px #263d2b,0 0 0 5px #dec688!important}.game-icon-button[data-count]:not([data-count="0"]):after{content:attr(data-count);position:absolute;right:-7px;top:-7px;min-width:20px;height:20px;border-radius:20px;background:#d8943c;color:#201b12;font:bold 13px Alegreya;border:2px solid #f9d894}
[data-tip]{position:relative}[data-tip]:hover:before,[data-tip]:focus-visible:before{content:attr(data-tip);position:absolute;z-index:100;bottom:calc(100% + 12px);left:50%;translate:-50% 0;white-space:nowrap;padding:7px 12px;color:#fff0c9;background:#10231ff5;border:2px solid #baa062;border-radius:8px;box-shadow:0 4px 12px #0007;font:600 14px Alegreya;pointer-events:none}.camp-hud [data-tip]:hover:before{bottom:auto;top:calc(100% + 10px)}.class-emblem{width:54px;height:54px;border-radius:50%;border:2px solid #d1b270;object-fit:cover;pointer-events:none}
/* Creator: hero centre-stage, a compact class rail and a single action. */
body[data-screen=menu] #game{grid-template-columns:minmax(0,1fr) 420px;padding:24px 5%;gap:34px;background-image:linear-gradient(90deg,#10221922,#10221977),url('/assets/art/elwynn-scenes-v1.png');background-size:auto,200% 200%}
.hero-welcome>.tavern-kicker,.hero-welcome>h1,.hero-welcome>p,.welcome-route{display:none!important}.hero-welcome{justify-content:center!important}.champion-showcase{min-height:0;flex:1}.champion-showcase>.combat-sprite{bottom:145px;width:330px!important;height:365px!important}.showcase-plaque{bottom:20px;background:#142c23df;border:2px solid #b99b5d;border-radius:15px;min-width:290px;padding:10px 25px;box-shadow:0 5px 0 #0f2019}.showcase-ring{bottom:140px;width:260px;left:calc(50% - 130px)}.hero-welcome>.game-icon-button{position:absolute;left:0;top:5px;width:72px;height:72px}.hero-welcome>.game-icon-button:before{bottom:auto;top:100%;left:0;translate:0 0}
.champion-creation{align-self:center!important;border:0!important;background:#16352be8!important;border-radius:24px!important;box-shadow:0 8px 0 #10231bcc!important;padding:22px!important;max-height:100%}.creation-heading{border:0;margin:0 0 12px;padding:0}.creation-heading h2{font-size:22px!important;text-align:center}.game-builder{border:0!important;background:transparent!important;padding:0!important}.choice-heading{display:none!important}.class-choices{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.class-choices button{border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;min-width:0;height:61px;border-radius:50%}.class-choices button>span{display:none}.class-choices button:after{display:none!important}.class-choices .class-emblem{width:54px;height:54px;filter:saturate(.8)}.class-choices [aria-pressed=true] .class-emblem{border:3px solid #ffe09b;box-shadow:0 0 0 3px #a97930,0 0 18px #ffd56c66;filter:none}.class-choices button:hover .class-emblem{filter:brightness(1.3);scale:1.08}
.spec-choices{gap:7px;margin-top:18px}.spec-choices button{padding:10px 4px;background:#294b3b!important;border-radius:10px}.spec-choices button[aria-pressed=true]{background:#8c6b35!important}.spec-choices small{display:none}.spec-choices b{font-size:16px}.calling-ability{font-size:13px!important;line-height:1.3;min-height:34px;margin:10px 0;color:#d6d4bb}.identity-fields{grid-template-columns:1fr!important;gap:10px;margin-top:10px}.field-label,.name-field{font-size:0!important}.name-field input{font-size:16px!important}.race-trigger{height:52px;border-radius:12px!important}.racial-summary{display:none}.champion-creation .embark{border:0!important;margin-top:18px;padding-top:0;display:flex;flex-direction:column}.embark .gold{display:flex;align-items:center;justify-content:center;gap:20px;width:100%;padding:12px!important}.embark .gold svg{width:26px;height:26px}.embark small{font-size:10px!important;margin-top:12px!important;text-align:center;line-height:1.3}.race-options{bottom:calc(100% + 8px);top:auto;width:100%;max-height:300px;overflow:auto}
/* Camp board: floating controls, larger characters, compact shop objects. */
.game-camp{--dock:218px;grid-template-rows:64px minmax(180px,1fr) var(--dock) 64px}.camp-hud{padding:5px 22px;gap:12px;background:#18362b;border-bottom:0}.camp-hud h1{font-size:23px;margin:0}.camp-hud small{font-size:11px}.camp-hud .game-icon-button{width:44px;height:44px;border-radius:12px!important;padding:6px!important}.party-readiness>span{border:0;border-radius:10px;padding:6px 10px;background:#294c3b}.camp-location{top:12px}.camp-location small,.stage-hint,.mini-equipment,.range-badge{display:none!important}.draft-party{inset:30px 5% 16px;gap:24px}.draft-ally{max-height:360px}.draft-portrait,.draft-ally .draft-portrait .combat-sprite{width:clamp(110px,14vw,205px)!important;height:clamp(145px,25vh,245px)!important}.draft-ally strong{border-radius:12px 12px 0 0;font-size:19px;padding:6px;background:#16362be8}.draft-ally-select>small{display:none}.draft-stats{padding:6px 8px;border-radius:0 0 12px 12px;background:#16362bf2;border:0;font-size:17px;gap:8px;justify-content:center}.draft-stats>span{background:#2e513c;padding:1px 8px;border-radius:7px}.draft-stats>span:nth-child(2){color:#ffceac;background:#663d30}.draft-stats>span:last-child{color:#ffe298}.formation-number{font-size:10px!important;padding:3px 8px!important;top:0!important;bottom:auto!important}.ally-class{position:absolute;right:4px;bottom:39px}.ally-class .class-emblem{width:28px;height:28px}.camp-dock{background:#173429;border:0;grid-template-columns:minmax(0,1fr) 320px;gap:12px;padding:0 22px}.supply-dock{position:relative;background:#234635;border:0;border-radius:18px;grid-template-columns:70px minmax(0,1fr);grid-template-rows:minmax(0,1fr);overflow:visible}.camp-tabs{display:flex;flex-direction:column;justify-content:center;gap:7px;padding:8px;background:#142f26;border:0;border-radius:18px 0 0 18px;overflow:visible}.camp-tabs .game-icon-button{width:42px;height:34px;margin:auto;border-radius:9px!important;padding:3px!important}.camp-tabs [data-tip]:before{left:calc(100% + 12px);bottom:auto;top:0;translate:0 0}.dock-content{padding:10px 14px}.shop-toolbar{height:30px}.shop-toolbar h2{display:none}.shop-toolbar small{font-size:15px;color:#efdfac}.shop-toolbar button{font-size:25px;padding:0 10px;height:34px}.shop-toolbar button small{font-size:14px}.draft-shop{margin:10px auto 0;gap:25px;max-width:550px}.draft-offer{max-width:140px}.draft-item{height:108px;border-radius:17px;border:0;background:#365a3e;box-shadow:0 5px 0 #132e24;padding:8px;position:relative}.draft-item>.icon{width:68px;height:68px;border-radius:12px;border:2px solid #b79b5d}.draft-item>b{display:none}.price{top:auto;bottom:-7px;right:-5px;background:#d8ad50;border:2px solid #ffe6a3;color:#282416!important;border-radius:15px;font-size:17px!important;padding:2px 8px;box-shadow:0 3px 0 #665126}.draft-offer>.freeze{width:30px;height:27px;padding:0;border-radius:8px;margin-top:11px;font-size:20px;background:#173329;border:0;color:#8bb8bb}.draft-offer.frozen .draft-item{outline:3px solid #8cd1de;background:#315c67}.offer-tooltip{left:50%;right:auto;translate:-50% 0;width:230px}.offer-tooltip b{display:block;margin-bottom:5px;color:#ffe2a0;font-size:16px!important}.shop-instruction{display:none}.draft-character{border:0;background:#234635;border-radius:18px;padding:10px 14px;position:relative}.character-title h2{font-size:20px}.character-title small{display:none}.character-title{padding-right:36px}.draft-character>.game-icon-button{position:absolute;top:9px;right:9px;width:29px;height:29px;padding:2px!important;border:0!important}.gear-slots{gap:8px;margin:10px 0 0}.gear-slots small{display:none}.gear-slots .icon,.gear-slots .empty-gear{width:38px;height:38px}.gear-slots .empty-gear{background:#18382c;border:2px solid #59724e}.journey-bar{background:#173429;border:0;padding:10px 22px;gap:20px}.journey-bar>div>small{display:none}.journey-bar .gold{min-width:210px}.journey-bar:before{content:'Drag to arrange · Hover to inspect';font-size:13px;color:#b1bfa0}.journey-bar>div{margin-left:auto}.draft-satchel h2,.draft-satchel>small{display:none}.satchel-items{margin:15px 0;gap:12px}.satchel-items .draft-item{width:110px}.satchel-items .draft-item>small,.satchel-items .draft-item>em{display:none}.game-modal>.game-icon-button{display:flex;margin:12px auto 0;width:48px;height:48px}.game-modal{border-radius:20px}.modal-close{border-radius:50%}
@media(max-height:760px) and (min-width:751px){body[data-screen=menu] #game{padding:15px 5%}.champion-creation{padding:16px 22px!important}.champion-showcase>.combat-sprite{width:280px!important;height:310px!important;bottom:130px}.class-choices button{height:52px}.class-choices .class-emblem{width:46px;height:46px}.spec-choices{margin-top:12px}.creation-heading h2{font-size:20px!important}.calling-ability{margin:7px 0}.embark small{font-size:9px!important}.game-camp{--dock:206px}.draft-portrait,.draft-ally .draft-portrait .combat-sprite{height:clamp(145px,24vh,200px)!important}.draft-item{height:94px}.draft-item>.icon{width:60px;height:60px}.camp-tabs{gap:5px}.camp-tabs .game-icon-button{height:32px}.draft-stats{font-size:15px}}
@media(max-width:900px){.camp-dock{grid-template-columns:minmax(0,1fr) 240px;padding:0 10px}.draft-party{gap:10px;inset-inline:3%}.draft-stats{font-size:13px;padding:4px 1px;gap:3px}.draft-stats>span{padding:2px 4px}.draft-shop{gap:12px}.party-readiness{gap:3px}.party-readiness>span{padding:5px}.draft-ally strong{font-size:15px}.playtest-tools:before{font-size:10px}.gear-slots .icon,.gear-slots .empty-gear{width:30px;height:30px}}
@media(max-width:750px){body[data-screen=menu] #game{grid-template-columns:1fr;grid-template-rows:70px minmax(0,1fr);padding:12px;gap:8px}.hero-welcome>.game-icon-button{top:0;left:0;width:58px;height:58px}.hero-welcome:after{content:'Choose your adventurer';font:700 21px Cinzel;color:#ffe3a0;position:absolute;left:80px;top:15px}.champion-creation{min-height:0!important;width:100%;align-self:stretch!important;padding:18px!important}.class-choices{grid-template-columns:repeat(5,1fr)}.identity-fields{grid-template-columns:1fr!important}.calling-ability{font-size:13px!important}.playtest-tools:before{display:none}.playtest-tools button{font-size:10px}.camp-hud h1{font-size:18px}.camp-hud{gap:6px;padding:5px 10px}.camp-hud .game-icon-button{width:32px;height:32px}.party-readiness>span{font-size:10px}.camp-dock{grid-template-columns:minmax(0,1fr) 180px;gap:5px;padding:0 5px}.supply-dock{grid-template-columns:45px minmax(0,1fr)}.camp-tabs{padding:4px;gap:5px}.camp-tabs .game-icon-button{width:32px;height:32px}.dock-content{padding:8px}.draft-item>.icon{width:44px;height:44px}.draft-item{height:80px;padding:3px}.draft-shop{gap:10px}.shop-toolbar small{font-size:12px}.shop-toolbar button{font-size:19px;padding:0 4px}.draft-character{padding:8px}.character-title h2{font-size:15px}.gear-slots{grid-template-columns:repeat(3,1fr);gap:5px}.draft-stats{font-size:11px;flex-wrap:wrap}.ally-class{display:none}.formation-number{font-size:8px!important}.journey-bar:before{display:none}.journey-bar .gold{min-width:150px}.draft-portrait,.draft-ally .draft-portrait .combat-sprite{width:85px!important;height:120px!important}.draft-ally strong{font-size:12px}.camp-location{display:none}.game-camp{--dock:218px}.draft-party{inset-top:15px}}

body{grid-template-rows:34px minmax(0,1fr)}

.satchel-items .draft-item>.offer-tooltip{display:none}.satchel-items .draft-item:hover>.offer-tooltip,.satchel-items .draft-item:focus-visible>.offer-tooltip{display:block}.draft-ally-select:focus-visible{outline:3px solid #ffe19b!important;outline-offset:4px!important}

/* 0.8: recipient guidance and a battle-facing camp formation. */
.item-eligible .draft-portrait{filter:drop-shadow(0 0 9px #82dca5)}.item-recommended .draft-portrait{filter:drop-shadow(0 0 14px #ffd573)}.item-ineligible{opacity:.38}.item-recommended:after{content:'★ ROLE MATCH';position:absolute;bottom:2px;left:0;right:0;text-align:center;color:#ffe49a;font:700 11px Cinzel;text-shadow:0 2px 3px #000}.item-eligible:after{content:'CAN USE';position:absolute;bottom:2px;left:0;right:0;text-align:center;color:#b6f0c1;font:700 10px Cinzel;text-shadow:0 2px 3px #000}.draft-ally{transition:opacity .15s,filter .15s}.draft-portrait{transition:filter .16s}.formation-arrows{flex-direction:row-reverse}.draft-item{transition:translate .14s,border-color .14s,box-shadow .14s}.draft-item:hover{translate:0 -3px;box-shadow:0 5px 18px #0008}.draft-item:active{translate:0 1px}.draft-item:focus-visible{outline:3px solid #fff1be;outline-offset:3px}.offer-tooltip{pointer-events:none!important}.profession-roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:16px 0}.profession-roster article{background:#253327;border:1px solid #76613b;border-radius:8px;padding:12px;color:#f6e7c5}.profession-roster strong,.profession-roster small{display:block;margin-top:6px}.profession-roster strong{color:#ffd786}.profession-roster small{line-height:1.4}.talent-card{position:relative;border:2px solid var(--rarity)!important;background:linear-gradient(150deg,#26342b,#171a15)!important;box-shadow:0 5px 0 #090d09!important;color:#f1e4c8!important;transition:translate .16s,box-shadow .16s!important}.talent-card:hover{translate:0 -6px;box-shadow:0 8px 26px color-mix(in srgb,var(--rarity),transparent 65%)!important}.rarity-common{--rarity:#d1c7af}.rarity-uncommon{--rarity:#70bf75}.rarity-rare{--rarity:#649fe8}.rarity-epic{--rarity:#bc83ec}.talent-card .rarity-label{color:var(--rarity)!important;text-transform:uppercase;letter-spacing:2px;margin-bottom:14px}.talent-card b{color:var(--rarity)!important}.talent-card span{line-height:1.5}.upgrade-choices{gap:20px}.profession-training{max-height:38vh;overflow:auto;scrollbar-color:#b99a59 #202a22}.profession-training button small{line-height:1.35}.stage-hint{pointer-events:none}
@media(prefers-reduced-motion:reduce){.draft-item,.draft-ally,.draft-portrait,.talent-card{transition:none!important}.talent-card:hover,.draft-item:hover{translate:none}}

/* Compact addon-style meter, independent of the victory banner. */
#battle-outcome{grid-template-columns:minmax(180px,1fr) minmax(290px,420px) auto!important;gap:20px!important;padding:14px 18px!important;align-items:center!important;background:linear-gradient(110deg,#25251c,#131b17)!important;border:1px solid #806842!important}#battle-outcome>div:first-child{max-width:440px}#battle-outcome h2{font-size:25px!important}#battle-outcome p{font:16px/1.35 Alegreya,Georgia!important;color:#dfd1b7!important}#battle-outcome>.gold{justify-self:end}.details-meter{width:100%;min-width:0;max-width:420px;justify-self:end;background:#151413f5!important;border:2px ridge #7b725f!important;border-radius:3px!important;box-shadow:0 3px 14px #0008;font:14px/1.2 Alegreya,Georgia!important;overflow:visible}.details-meter header{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(#514838,#29261f);padding:6px 9px;color:#eadbb8;text-shadow:0 1px #000}.details-meter header b{font:700 14px Cinzel}.details-meter nav{display:flex;gap:2px;padding:4px;background:#151413}.details-meter nav button{flex:1;border:1px solid #494236;border-radius:2px;padding:4px!important;font:13px Alegreya!important;background:#27251f;color:#a89c84}.details-meter nav button[aria-pressed=true]{color:#ffe2a0;border-color:#aa8f50;background:#4c412b}.meter-bars{padding:0 4px}.meter-bar{height:27px;position:relative;display:flex;gap:5px;align-items:center;background:#22221e;margin:2px 0;padding:0 6px;color:#fff;text-shadow:0 1px 2px #000;isolation:isolate}.meter-bar>i{position:absolute;inset:0 auto 0 0;width:var(--fill);background:linear-gradient(180deg,color-mix(in srgb,var(--class-color),#111 35%),color-mix(in srgb,var(--class-color),#111 65%));border-top:1px solid color-mix(in srgb,var(--class-color),#fff 15%);z-index:-1}.meter-bar>.class-icon,.meter-bar>img{width:21px;height:21px;flex:none;object-fit:cover}.meter-bar strong{font:700 14px Alegreya;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meter-rank{font-size:12px;opacity:.8}.meter-value{margin-left:auto;white-space:nowrap;font-weight:700;font-variant-numeric:tabular-nums}.meter-value small{font:12px Alegreya;color:#e8e2d7}.details-meter footer{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;font:11px Alegreya;letter-spacing:0;color:#bfb097}.meter-tooltip{display:none;position:absolute;right:0;bottom:100%;padding:9px 12px;background:#0c1015f7;border:1px solid #9b8152;border-radius:3px;font:13px/1.5 Alegreya;z-index:50;min-width:180px;color:#f4e6c5;pointer-events:none;box-shadow:0 4px 14px #0009}.meter-bar:hover .meter-tooltip,.meter-bar:focus-visible .meter-tooltip{display:block}.meter-bar:hover{outline:1px solid #d1b97c}.details-meter .class-icon img{width:21px;height:21px}.details-meter .class-icon{display:inline-flex;width:21px;height:21px}
@media(max-width:850px){#battle-outcome{grid-template-columns:minmax(0,1fr) minmax(260px,360px)!important;gap:8px!important;padding:9px!important}.details-meter{grid-column:2;grid-row:1/3}#battle-outcome>.gold{grid-column:1;justify-self:start}#battle-outcome h2{font-size:20px!important}#battle-outcome p{font-size:13px!important}}

.wow-item-tooltip{position:fixed;z-index:10050;pointer-events:none;width:280px;max-width:calc(100vw - 16px);padding:13px 15px;background:linear-gradient(135deg,#080e20fa,#111425fa);border:2px solid #a69773;border-radius:5px;box-shadow:inset 0 0 0 1px #272b3f,0 7px 22px #0009;color:#f1ece2;font:16px/1.45 Alegreya,Georgia,serif;text-align:left;text-shadow:0 1px #000}.wow-item-tooltip>strong{display:block;font-size:19px;line-height:1.2;margin-bottom:6px}.wow-item-tooltip>span{display:block}.tooltip-type{color:#dedbd3;margin-bottom:8px}.tooltip-type em{float:right;font-style:normal;color:#aaa99b;font-size:13px}.tooltip-stat,.tooltip-effect{color:#6ce578}.tooltip-duration{color:#c2bdab;font-size:13px;margin-top:7px}.tooltip-source{color:#e8ca80;font-style:italic;border-top:1px solid #80795c55;padding-top:8px;margin-top:10px;font-size:14px}.quality-common{color:#eee!important}.quality-uncommon{color:#5dde65!important}.quality-rare{color:#64a7ff!important}.quality-epic{color:#bf80f2!important}.quality-legendary{color:#ffab45!important}[data-item-key] .offer-tooltip,[data-item-key]>.gear-tooltip{display:none!important}.reward-options button{position:relative;text-align:left;padding:10px 14px!important;background:linear-gradient(#35452e,#202d24)!important;transition:translate .15s,border-color .15s;min-height:62px}.reward-options button:hover{translate:0 -3px;border-color:#e9cb85!important;box-shadow:0 5px 16px #0007}.reward-options button:focus-visible{outline:3px solid #ffe6a0;outline-offset:3px}.reward-options button small{color:#c0baa7!important}.reward-options button .icon{width:40px;height:40px}.reward-options{gap:12px!important}

.sheet-party{display:flex;gap:8px;flex-wrap:wrap;margin:5px 0 18px}.sheet-party button{display:flex;align-items:center;gap:7px;background:#17271f;padding:7px 10px;border:1px solid #807049}.sheet-party button[aria-pressed=true]{background:#51452c;border-color:#e2bd6c}.sheet-party img{width:27px;height:27px}.inspector-stats{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;font:13px Alegreya;color:#c9c5ae;margin:6px 0}.inspector-stats b{color:#f5df9f}.draft-character .gear-slots{margin-top:5px!important}.draft-character .character-title h2{font-size:19px}.character-sheet .gear-slots{max-width:470px}.character-sheet .inspector-stats{font-size:16px}.draft-character .character-title small{display:block!important;font:11px Alegreya!important;color:#d1c4a6}.draft-ally-select{cursor:pointer}.draft-ally.dragging .draft-ally-select{cursor:grabbing}

.formation-column-1{grid-column:1;grid-row:1}.formation-column-2{grid-column:2;grid-row:1}.formation-column-3{grid-column:3;grid-row:1}.formation-column-4{grid-column:4;grid-row:1}.formation-column-5{grid-column:5;grid-row:1}
.meter-fill-0{--fill:0%}.meter-fill-1{--fill:1%}.meter-fill-2{--fill:2%}.meter-fill-3{--fill:3%}.meter-fill-4{--fill:4%}.meter-fill-5{--fill:5%}.meter-fill-6{--fill:6%}.meter-fill-7{--fill:7%}.meter-fill-8{--fill:8%}.meter-fill-9{--fill:9%}.meter-fill-10{--fill:10%}.meter-fill-11{--fill:11%}.meter-fill-12{--fill:12%}.meter-fill-13{--fill:13%}.meter-fill-14{--fill:14%}.meter-fill-15{--fill:15%}.meter-fill-16{--fill:16%}.meter-fill-17{--fill:17%}.meter-fill-18{--fill:18%}.meter-fill-19{--fill:19%}.meter-fill-20{--fill:20%}.meter-fill-21{--fill:21%}.meter-fill-22{--fill:22%}.meter-fill-23{--fill:23%}.meter-fill-24{--fill:24%}.meter-fill-25{--fill:25%}.meter-fill-26{--fill:26%}.meter-fill-27{--fill:27%}.meter-fill-28{--fill:28%}.meter-fill-29{--fill:29%}.meter-fill-30{--fill:30%}.meter-fill-31{--fill:31%}.meter-fill-32{--fill:32%}.meter-fill-33{--fill:33%}.meter-fill-34{--fill:34%}.meter-fill-35{--fill:35%}.meter-fill-36{--fill:36%}.meter-fill-37{--fill:37%}.meter-fill-38{--fill:38%}.meter-fill-39{--fill:39%}.meter-fill-40{--fill:40%}.meter-fill-41{--fill:41%}.meter-fill-42{--fill:42%}.meter-fill-43{--fill:43%}.meter-fill-44{--fill:44%}.meter-fill-45{--fill:45%}.meter-fill-46{--fill:46%}.meter-fill-47{--fill:47%}.meter-fill-48{--fill:48%}.meter-fill-49{--fill:49%}.meter-fill-50{--fill:50%}.meter-fill-51{--fill:51%}.meter-fill-52{--fill:52%}.meter-fill-53{--fill:53%}.meter-fill-54{--fill:54%}.meter-fill-55{--fill:55%}.meter-fill-56{--fill:56%}.meter-fill-57{--fill:57%}.meter-fill-58{--fill:58%}.meter-fill-59{--fill:59%}.meter-fill-60{--fill:60%}.meter-fill-61{--fill:61%}.meter-fill-62{--fill:62%}.meter-fill-63{--fill:63%}.meter-fill-64{--fill:64%}.meter-fill-65{--fill:65%}.meter-fill-66{--fill:66%}.meter-fill-67{--fill:67%}.meter-fill-68{--fill:68%}.meter-fill-69{--fill:69%}.meter-fill-70{--fill:70%}.meter-fill-71{--fill:71%}.meter-fill-72{--fill:72%}.meter-fill-73{--fill:73%}.meter-fill-74{--fill:74%}.meter-fill-75{--fill:75%}.meter-fill-76{--fill:76%}.meter-fill-77{--fill:77%}.meter-fill-78{--fill:78%}.meter-fill-79{--fill:79%}.meter-fill-80{--fill:80%}.meter-fill-81{--fill:81%}.meter-fill-82{--fill:82%}.meter-fill-83{--fill:83%}.meter-fill-84{--fill:84%}.meter-fill-85{--fill:85%}.meter-fill-86{--fill:86%}.meter-fill-87{--fill:87%}.meter-fill-88{--fill:88%}.meter-fill-89{--fill:89%}.meter-fill-90{--fill:90%}.meter-fill-91{--fill:91%}.meter-fill-92{--fill:92%}.meter-fill-93{--fill:93%}.meter-fill-94{--fill:94%}.meter-fill-95{--fill:95%}.meter-fill-96{--fill:96%}.meter-fill-97{--fill:97%}.meter-fill-98{--fill:98%}.meter-fill-99{--fill:99%}.meter-fill-100{--fill:100%}
.meter-class-Warrior{--class-color:#c79c6e}.meter-class-Paladin{--class-color:#f58cba}.meter-class-Hunter{--class-color:#abd473}.meter-class-Rogue{--class-color:#fff569}.meter-class-Priest{--class-color:#eeeeee}.meter-class-Shaman{--class-color:#5195ff}.meter-class-Mage{--class-color:#69ccf0}.meter-class-Warlock{--class-color:#b099e1}.meter-class-Druid{--class-color:#ff9b39}
.item-eligible:after,.item-recommended:after{bottom:auto;top:25px;left:12%;right:12%;padding:4px;background:#10261fe6;border:1px solid #6c9b6c;border-radius:12px;font-size:10px}.item-recommended:after{background:#493c16e8;border-color:#d2aa55}.sheet-satchel{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.sheet-satchel button{padding:4px}.sheet-satchel .icon{width:38px;height:38px}.auction-city>header{align-items:center;gap:20px}.auction-city .city-roster{display:flex;gap:7px;flex-wrap:wrap;margin:0}.auction-city .city-roster button{display:flex;align-items:center;gap:7px;padding:7px 10px}.city-roster .class-emblem{width:28px;height:28px}.city-roster small{display:block;color:#f4cf72}.auction-city .city-panels{grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:18px}.auction-heading{display:flex;align-items:center;justify-content:space-between}.auction-heading>b{font-size:23px;color:#ffd773}.auction-loadout{display:flex;align-items:center;gap:15px;background:#111e18b3;padding:10px;border:1px solid #6b6044;border-radius:7px;margin:8px 0}.auction-loadout>div:first-child{min-width:140px}.auction-loadout strong{display:block;font-size:18px;color:#ffdfa0}.auction-loadout small,.auction-loadout span{display:block;font-size:12px;color:#c5b898}.auction-loadout .gear-slots{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:4px;flex:1;margin:0}.auction-loadout .gear-hover{min-width:0}.auction-loadout .icon,.auction-loadout .empty-gear{width:31px;height:31px;margin:0}.auction-loadout .gear-hover>small{display:none}.auction-column-labels,.auction-main .auction-card{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(90px,1fr) 80px;gap:12px;align-items:center}.auction-column-labels{padding:7px 12px;color:#ac9d7e;font-size:12px}.auction-main .auction-card{padding:12px;margin:0;min-height:80px;background:linear-gradient(100deg,#26392e,#16251f);border:1px solid #776442}.auction-main .auction-items{display:grid;gap:8px}.auction-offered{display:flex;align-items:center;gap:12px;min-width:0}.auction-offered .icon{width:44px;height:44px;flex:none;margin:0;border:1px solid #a89a6e;border-radius:4px}.auction-offered b{font:700 17px Alegreya;line-height:1.2}.auction-offered small{display:block;font:13px Alegreya;color:#bcbaaa}.auction-current{display:flex;align-items:center;gap:7px;min-width:0;opacity:.85}.auction-current .icon{width:30px;height:30px;flex:none;margin:0}.auction-current small{font:12px/1.2 Alegreya;color:#d2c6a7}.auction-card button{padding:9px 5px!important;font:700 15px Alegreya!important}.auction-card.unusable .auction-offered{opacity:.5}.auction-pages{display:flex;justify-content:center;align-items:center;gap:20px;margin:12px 0 0}.auction-pages button{padding:4px 15px}.auction-main .sell-card{grid-template-columns:minmax(0,1fr) 90px}.trainer-panel .profession-training{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:none;overflow:visible}.trainer-panel .profession-training button{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:43px;padding:8px 10px;font-size:14px}.trainer-panel .profession-training button span{color:#f0c96c;font-size:12px}.trained-effect{display:block;margin:14px 0;color:#d3c6a5;line-height:1.4}.auction-offered:focus-visible,.auction-current:focus-visible{outline:2px solid #f1ce83;outline-offset:4px}
@media(max-width:1000px){.auction-loadout{display:block}.auction-loadout .gear-slots{margin-top:8px}.auction-city .city-panels{grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr)}.auction-city .city-roster button{padding:4px 6px}.auction-city .city-roster .class-emblem{width:23px;height:23px}.auction-main .auction-card{gap:7px;padding:8px}.auction-offered b{font-size:15px}.auction-offered .icon{width:34px;height:34px}.trainer-panel .profession-training{grid-template-columns:1fr}}

.inspector-stats{font-size:12px;margin:3px 0}.draft-character .gear-slots{gap:4px!important}.draft-character .character-title h2{font-size:17px}.draft-character .gear-slots .icon,.draft-character .gear-slots .empty-gear{width:30px;height:30px}

.details-meter header{height:30px!important;min-height:0!important;padding:5px 8px!important;letter-spacing:0}.details-meter footer{display:flex!important;height:25px;align-items:center;justify-content:space-between!important;text-align:left!important;padding:4px 8px!important;white-space:nowrap}.details-meter footer span{margin:0}.details-meter footer b{margin-left:auto}.details-meter header span{font:12px Alegreya}.details-meter{align-self:center}


.auction-main{padding:12px!important}.auction-heading{height:32px}.auction-heading h2{margin:0}.auction-loadout{padding:8px;margin:7px 0;min-height:62px}.auction-loadout .gear-slots{margin-top:0!important}.auction-main .auction-items{margin:0!important;gap:7px}.auction-main .auction-card{min-height:68px;padding:8px 10px}.auction-column-labels{height:25px;padding:4px 10px}.auction-pages{margin-top:8px}.auction-main .auction-card button{max-height:46px}.auction-loadout .gear-slots .gear-hover{padding:0}.auction-city .city-panel{scrollbar-gutter:stable}.auction-main .gear-slots{gap:4px!important}.auction-current .icon{border:1px solid #88744b}.auction-main .auction-items .auction-card{border-radius:5px}

.discovery-screen{justify-content:center!important;gap:7px}.discovery-screen .ding-portrait,.discovery-screen .ding-portrait .combat-sprite{width:155px!important;height:155px!important;flex:none;margin:0 auto 5px!important}.discovery-screen h1{margin:3px 0!important}.discovery-screen p{margin:3px 0!important}.discovery-screen .upgrade-choices{margin:12px 0!important;flex:none}.discovery-screen>.icon{width:66px;height:66px}.discovery-loot-icon{padding:8px;border:2px solid #bca05b;border-radius:6px;background:#111d18}.discovery-loot-icon .icon{width:60px;height:60px;margin:0}

/* ── 0.10: zone map, events, counters, Ashgrove tint ── */
.zone-tint{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,#2c2a7a,#123e52);mix-blend-mode:color;opacity:.55}
.tint-ashgrove .foes .combat-sprite:not(.foe-mirror){filter:hue-rotate(150deg) saturate(1.15) drop-shadow(0 4px 2px #0006)}
.foe-mirror{transform:scaleX(-1)}
.fighter.boss-fighter .sprite-ground{transform:scale(1.22);transform-origin:50% 100%}
.game-modal.map-modal{width:min(1180px,96vw);max-height:94vh}
.zone-map-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr);grid-template-rows:auto minmax(0,1fr);gap:10px 22px;min-height:0}
.zone-map-head{grid-column:1/-1}.zone-map-head h2{margin:2px 0}.zone-map-head p{margin:0;color:#d9c8a3;font-size:14px}
.zone-map-head .contested{color:#ff9b7a;letter-spacing:1px}
.zone-map{position:relative;height:min(68vh,calc(var(--rows)*52px));min-height:380px;border-radius:12px;background:radial-gradient(ellipse at 50% 0%,#3d3a2a,#1d2420 70%),#1d2420;border:2px solid #6f5a33;box-shadow:inset 0 0 40px #000a}
.map-lines{position:absolute;inset:0;width:100%;height:100%}
.map-lines line{stroke:#c9b98a55;stroke-width:.45;stroke-dasharray:1.2 1.1;vector-effect:non-scaling-stroke;stroke-width:2}
.map-lines line.walked{stroke:#f2c96b;stroke-dasharray:none;stroke-width:3}
.map-node{position:absolute;translate:-50% -50%;width:40px;height:40px;padding:7px;border-radius:50%;border:2px solid #8d7a52;background:#16201c;color:#efe3c4;cursor:pointer;box-shadow:0 3px 0 #0008;transition:transform .15s}
.map-node svg{width:100%;height:100%;display:block}
.map-node:disabled{cursor:default;opacity:.62}
.map-node.reachable{opacity:1;border-color:#f6d27a;color:#fff3cf;animation:node-pulse 1.4s ease-in-out infinite}
.map-node.reachable:hover,.map-node.reachable:focus-visible{transform:scale(1.18)}
.map-node.visited{opacity:.9;background:#3c4b33;border-color:#a8c27e}
.map-node.current,.map-node.pending{opacity:1;border-color:#ffe08a;background:#5b4520;box-shadow:0 0 0 4px #ffe08a44,0 3px 0 #0008}
.map-node.type-elite{color:#ff8e72}.map-node.type-quest{color:#ffd65a}.map-node.type-camp{color:#ffb15c}.map-node.type-treasure{color:#ffe08a}.map-node.type-event{color:#b9d4ff}
.map-node.type-dungeon{width:64px;height:64px;padding:10px;border-width:3px;color:#ffd7a0;background:#2b1b1b}
@keyframes node-pulse{0%,100%{box-shadow:0 0 0 0 #f6d27a88,0 3px 0 #0008}50%{box-shadow:0 0 0 7px #f6d27a00,0 3px 0 #0008}}
@media (prefers-reduced-motion:reduce){.map-node.reachable{animation:none}}
.map-side{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto}
.dungeon-quest{position:relative;background:#e9d9b0;color:#2a1d10;border-radius:10px;padding:14px 16px;border:2px solid #9c7a3f}
.dungeon-quest small{letter-spacing:2px;color:#7a5520}.dungeon-quest h3{margin:2px 0 4px}.dungeon-quest p{font-size:14px;margin:6px 0}
.dungeon-quest .quest-mark{position:absolute;right:12px;top:8px;font-size:26px}
.dq-rewards{display:flex;gap:6px;flex-wrap:wrap}.dq-rewards .icon{width:40px;height:40px;border-radius:6px;border:2px solid #7a5520}
.map-legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:13px;color:#e3d4b2}
.map-legend li{display:flex;align-items:center;gap:6px}.map-legend svg{width:22px;height:22px;padding:3px;border-radius:50%;background:#16201c;border:1px solid #8d7a52;color:#efe3c4}
.game-modal.map-event{width:min(480px,92vw);text-align:center;padding:26px}
.game-modal.map-event p{font-size:16px;line-height:1.45}
.counter-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.counter-chips em{font-style:normal;font-size:11.5px;padding:2px 8px;border-radius:999px;border:1px solid}
.counter-chips .favors{color:#bfe8a6;border-color:#6d9b52;background:#21361c}
.counter-chips .struggles{color:#ffb4a2;border-color:#a3533f;background:#3a1d17}
.story-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:8px}
.story-actions button{position:static!important;margin:0!important}
.revive-reason{display:block;margin-top:6px;color:#6b3a1f;font-style:italic}
.continue-adventure{position:absolute;left:0;top:5px;display:flex;align-items:center;gap:10px;padding:8px 16px 8px 10px;text-align:left;z-index:2}
.continue-adventure svg{width:34px;height:34px}.continue-adventure span{display:flex;flex-direction:column;font-weight:700}.continue-adventure small{font-weight:400;font-size:11px;opacity:.85}
@media(max-width:900px){.zone-map-layout{grid-template-columns:1fr}.zone-map{height:min(60vh,calc(var(--rows)*44px))}.map-node{width:34px;height:34px;padding:6px}.map-node.type-dungeon{width:52px;height:52px}}
.dungeon-quest h3{color:#3a2410!important}.dungeon-quest h4{color:#5a3a16;margin:8px 0 4px}.dungeon-quest .quest-giver{color:#6b4a22;font-size:13px}
.item-icon{display:inline-block;width:56px;height:56px;line-height:0;flex:none;border-radius:10px}
.item-icon svg,.game-icon-button svg.item-art{width:100%;height:100%;display:block}

/* ── 0.11 interaction layer ── */
.company-stage{position:relative}
.intel-panel{position:absolute;right:14px;top:12px;z-index:4;width:min(470px,46%);display:grid;grid-template-columns:1fr;gap:6px;padding:10px 12px;border-radius:12px;background:linear-gradient(180deg,#1b1310ee,#24160fe6);border:2px solid #a9733e;box-shadow:0 6px 0 #0007,0 0 0 1px #0006 inset;color:#f3e2c0}
.intel-panel header{display:flex;align-items:baseline;gap:10px}.intel-panel header small{color:#ff9b7a;letter-spacing:2px;font-size:10.5px}.intel-panel header b{font:700 15px Cinzel;color:#ffe1a8}
.intel-foes{display:flex;gap:6px;flex-wrap:wrap}
.intel-foe{display:flex;align-items:center;gap:6px;padding:3px 8px 3px 3px;border-radius:9px;border:1px solid #6d4a2b;background:#2e1d14;color:inherit;cursor:help;text-align:left}
.intel-foe.is-boss{border-color:#e0874c;background:#3b2016}
.intel-sprite{position:relative;width:38px;height:38px;overflow:hidden;border-radius:7px;background:#120c09;flex:none}
.intel-sprite .combat-sprite{position:absolute!important;inset:auto!important;left:50%!important;bottom:-4px!important;width:58px!important;height:64px!important;transform:translateX(-50%);animation:none!important}
.intel-sprite .foe-mirror{transform:translateX(-50%) scaleX(-1)}
.intel-stats{display:flex;flex-direction:column;line-height:1.1}.intel-stats b{font-size:12px}.intel-stats em{font-style:normal;font-size:11px;color:#d7b98e}
.intel-intent{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:13px;line-height:1.3;color:#ffe9c4}
.intel-intent i{flex:none;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#c2452d;color:#fff;font:700 13px Cinzel;font-style:normal;box-shadow:0 0 0 2px #2a1510}
.forecast{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 10px;align-items:center;padding:7px 9px;border-radius:9px;background:#120d0a;border:1px solid #5a3d24}
.forecast-label{font-size:10.5px;letter-spacing:1.6px;color:#c7a77c;text-transform:uppercase}
.forecast-meter{height:9px;border-radius:9px;background:#3a2a1e;overflow:hidden}.forecast-meter span{display:block;height:100%;width:4%;border-radius:9px;background:#888;transition:width .45s ease,background .3s}
.forecast b{grid-column:1/-1;font-size:15px}.forecast small{grid-column:1/-1;font-size:11.5px;color:#cdb38d}
.forecast[data-state=favored] .forecast-meter span{background:linear-gradient(90deg,#4fb05c,#9fe27a)}.forecast[data-state=favored] b{color:#a9ec8c}
.forecast[data-state=good-odds] .forecast-meter span{background:linear-gradient(90deg,#7bb04f,#d5e27a)}.forecast[data-state=good-odds] b{color:#d6ee8f}
.forecast[data-state=even-fight] .forecast-meter span{background:linear-gradient(90deg,#c9a33c,#f2d06c)}.forecast[data-state=even-fight] b{color:#f6d77a}
.forecast[data-state=risky] .forecast-meter span{background:linear-gradient(90deg,#c8642f,#f0994f)}.forecast[data-state=risky] b{color:#ffad6e}
.forecast[data-state=deadly] .forecast-meter span{background:linear-gradient(90deg,#9c2a22,#e05242)}.forecast[data-state=deadly] b{color:#ff8a7a}
.forecast[data-state=pending] b{color:#bba68a;font-weight:400;font-style:italic}
.float-text{position:absolute;left:50%;top:0;z-index:30;pointer-events:none;font:700 16px Cinzel;text-shadow:0 2px 0 #000a;white-space:nowrap}
.float-gold{color:#ffd96b}.float-good{color:#a9ec8c}.float-bad{color:#ff8f7c}
.draft-character,.camp-hud{position:relative}
/* map routes + tooltips */
.map-lines line.route{stroke:#ffe08a;stroke-dasharray:none;stroke-width:3.4;filter:drop-shadow(0 0 3px #ffd36e)}
.map-node.on-route{opacity:1!important;border-color:#ffe08a;box-shadow:0 0 0 3px #ffe08a55,0 3px 0 #0008}
.map-tip{position:absolute;z-index:10;width:230px;transform:translate(26px,-50%);padding:10px 12px;border-radius:10px;background:#f1e2bd;color:#2a1d10;border:2px solid #8a6630;box-shadow:0 6px 18px #000a;pointer-events:none}
.map-tip.tip-left{transform:translate(calc(-100% - 26px),-50%)}.map-tip.tip-below{transform:translate(26px,0)}.map-tip.tip-left.tip-below{transform:translate(calc(-100% - 26px),0)}
.map-tip b{display:block;font:700 14px Cinzel}.map-tip p{margin:4px 0;font-size:13px;line-height:1.3}.map-tip small{display:block;font-size:11.5px;color:#6b4a22}.map-tip .tip-warn{color:#a8331f;font-weight:700}
/* battle */
.battle-callout{position:absolute;left:50%;top:18%;z-index:20;padding:8px 18px;border-radius:999px;font:700 clamp(15px,2vw,22px) Cinzel;letter-spacing:.5px;white-space:nowrap;pointer-events:none;box-shadow:0 6px 0 #0008}
.callout-threat{background:#5a1610ee;color:#ffd7c9;border:2px solid #ff8a6a}.callout-counter{background:#173a1fee;color:#d9ffcf;border:2px solid #8fe27a;top:28%}
.confetti{position:absolute;top:0;width:8px;height:12px;border-radius:2px;z-index:15;pointer-events:none}
.so-close{margin-top:8px;padding:8px 10px;border-radius:8px;background:#4a2a12;color:#ffd38a;font-weight:700}
.fighter{cursor:pointer}
.fighter-inspect{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);z-index:40;width:250px;padding:10px 12px;border-radius:10px;background:#f1e2bd;color:#2a1d10;border:2px solid #8a6630;box-shadow:0 8px 22px #000b;text-align:left;cursor:default}
.fighter-inspect header{display:flex;justify-content:space-between;align-items:baseline}.fighter-inspect header b{font:700 14px Cinzel}.fighter-inspect header small{font-size:11px;color:#7a5520}
.insp-stats{display:flex;gap:8px;flex-wrap:wrap;margin:5px 0;font-size:12.5px;font-weight:700}
.fighter-inspect p{margin:4px 0;font-size:12.5px;line-height:1.3}.fighter-inspect ul{margin:4px 0;padding-left:18px;font-size:12.5px}.fighter-inspect .intel-intent{color:#3a1d10}
.insp-talents{color:#5a3a16;font-style:italic}
.fighter.chilled .sprite-ground::after,.fighter.burning .sprite-ground::before{position:absolute;top:-6px;z-index:5;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:13px;box-shadow:0 2px 0 #0008}
.fighter.chilled .sprite-ground::after{content:'❄';right:6px;background:#2b6fa8;color:#e7f6ff;border:2px solid #b9e2ff}
.fighter.burning .sprite-ground::before{content:'✹';left:6px;background:#a8421c;color:#ffe2b0;border:2px solid #ffb36b}
.sprite-ground{position:relative}
/* hotkeys + tips */
.hotkey-help{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:200;width:min(420px,92vw);padding:20px 24px;border-radius:14px;background:#1d2a24;color:#efe3c4;border:2px solid #b99b5d;box-shadow:0 20px 60px #000c}
.hotkey-help h2{margin:0 0 10px;font-family:Cinzel}.hotkey-help dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 14px}.hotkey-help dt{font-weight:700;color:#ffd98a;font-family:Cinzel}.hotkey-help dd{margin:0}
.coach-card{position:fixed;left:18px;bottom:96px;z-index:60;width:min(340px,86vw);padding:12px 14px;border-radius:12px;background:#f1e2bd;color:#2a1d10;border:2px solid #8a6630;box-shadow:0 10px 30px #000a;animation:coach-in .35s ease-out}
.coach-card small{letter-spacing:2px;color:#7a5520;font-size:10.5px}.coach-card b{display:block;font:700 16px Cinzel;margin:2px 0 4px}.coach-card p{margin:0 0 10px;font-size:14px;line-height:1.35}
.coach-card div{display:flex;justify-content:flex-end;gap:8px}.coach-card button:not(.gold){background:none;border:none;color:#6b4a22;text-decoration:underline;cursor:pointer}
@keyframes coach-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.coach-card{animation:none}.forecast-meter span{transition:none}}
#sound-toggle[aria-pressed=false]{opacity:.6}
@media(max-width:900px){.intel-panel{position:static;width:auto;margin:8px}.map-tip{width:190px}}
.intel-panel header,.fighter-inspect header{position:static!important;display:flex!important;height:auto!important;min-height:0!important;padding:0!important;margin:0!important;background:none!important;border:0!important;box-shadow:none!important;grid-template-columns:none!important}
.intel-panel header{justify-content:flex-start}.fighter-inspect header{justify-content:space-between}
/* tactile hover on every choice */
.recruit-option,[data-augment],[data-reward],.draft-offer,.intel-foe,[data-tame],[data-assign-discovery],.casualty button{transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}
.recruit-option:hover,[data-augment]:hover,[data-reward]:hover,.draft-offer:hover,[data-tame]:hover,[data-assign-discovery]:hover{transform:translateY(-4px);box-shadow:0 10px 22px #0007;filter:brightness(1.06)}
[data-augment]:active,[data-reward]:active,.draft-offer:active{transform:translateY(-1px) scale(.98)}
button.gold{transition:transform .12s ease,filter .12s ease}button.gold:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.08)}button.gold:active:not(:disabled){transform:translateY(1px) scale(.98)}
@media (prefers-reduced-motion:reduce){.recruit-option,[data-augment],[data-reward],.draft-offer,button.gold{transition:none}.recruit-option:hover,[data-augment]:hover,[data-reward]:hover,.draft-offer:hover,button.gold:hover{transform:none}}
/* 0.11: the camp rail holds up to seven actions; lay them out two-wide so none hide under the journey bar */
.supply-dock{grid-template-columns:104px minmax(0,1fr)!important}
.camp-tabs{display:grid!important;grid-template-columns:repeat(2,42px);grid-auto-rows:40px;justify-content:center;align-content:center;gap:6px!important;padding:8px 6px!important;overflow:visible}
.camp-tabs>*{width:42px!important;height:40px!important;margin:0!important}
@media(max-width:750px){.supply-dock{grid-template-columns:84px minmax(0,1fr)!important}.camp-tabs{grid-template-columns:repeat(2,34px);grid-auto-rows:32px}.camp-tabs>*{width:34px!important;height:32px!important}}
.replacement-board h2{margin-bottom:4px}.repl-role{margin:14px 0 6px;font:700 14px Cinzel;letter-spacing:1px;color:#e7cf9c}.repl-role.needed{color:#ffb36b}
.repl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.repl-card{position:relative;display:flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border-radius:12px;border:1px solid #8c7549;background:#1e3024;color:#efe3c4;text-align:left;cursor:pointer;transition:transform .14s,box-shadow .14s}
.repl-card:hover,.repl-card:focus-visible{transform:translateY(-3px);box-shadow:0 8px 18px #0008;border-color:#f6d27a}
.repl-portrait{position:relative;width:52px;height:56px;flex:none;overflow:hidden;border-radius:9px;background:#13211a}
.repl-portrait .combat-sprite{position:absolute!important;left:50%!important;bottom:-6px!important;width:74px!important;height:84px!important;transform:translateX(-50%);animation:none!important}
.repl-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}.repl-text b{font-size:14px}.repl-text small{font-size:11.5px;color:#cdb68b}.repl-text em{font-style:normal;font-size:11px;color:#9fd38a}
.repl-emblem{margin-left:auto}.repl-emblem .class-emblem{width:24px;height:24px;border-radius:6px}

/* app crest beside the wordmark */
.playtest-tools:before{padding-left:26px;background:url('/assets/icons/app-icon.png') left center/20px 20px no-repeat}

/* ===== 0.12: full-screen game, Escape menu, hover fix ===== */
body>header,body>.playtest-tools,body>footer{display:none!important}
body{grid-template-rows:minmax(0,1fr)!important}
/* A hovered control lifts above its neighbours so its label is never covered. */
[data-tip]:hover,[data-tip]:focus-visible{z-index:120!important}
[data-tip]:not([class*=absolute]):hover{position:relative}
body.hide-numbers .combat-number{display:none!important}
body.effects-low :is(.weapon-enchant,.water-orbit,.whirlwind-effect,.windfury-vortex,.starfall-impact,.fire-impact,.frost-impact,.confetti,.ff-confetti){display:none!important}
body.reduce-motion *{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}

.esc-menu{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;background:radial-gradient(ellipse at center,#0a0d0bcc,#000000ee);backdrop-filter:blur(3px);animation:esc-in .16s ease-out}
@keyframes esc-in{from{opacity:0}to{opacity:1}}
.esc-panel{width:min(560px,92vw);max-height:88vh;overflow:auto;background:linear-gradient(#1d2a22,#121a15);border:2px solid #a9843f;border-radius:14px;box-shadow:0 0 0 1px #000,0 0 0 5px #2a1f12,0 0 0 6px #6d5228,0 20px 60px #000c;color:#ecdcbb;font-family:Alegreya,Georgia,serif}
.esc-panel>header{display:flex;align-items:center;gap:12px;padding:16px 18px 12px;border-bottom:1px solid #5c4824;background:linear-gradient(#2a3a2e,#1a261f)}
.esc-panel>header h2{margin:0;flex:1;font:700 20px Cinzel,Georgia,serif;letter-spacing:1.5px;color:#f1cf86;text-shadow:0 2px 0 #000}
.esc-crest{width:38px;height:38px;background:url('/assets/icons/app-icon.png') center/contain no-repeat;filter:drop-shadow(0 2px 3px #000)}
.esc-x{width:34px;height:34px;padding:0;border-radius:8px;font-size:15px}
.esc-tabs{display:flex;gap:4px;padding:10px 14px 0;border-bottom:1px solid #3c3220}
.esc-tabs button{flex:1;border-radius:8px 8px 0 0;border-bottom:0;padding:8px 6px;font:600 13px Cinzel,Georgia,serif;background:#18221c;color:#bba977}
.esc-tabs button[aria-pressed=true]{background:#2c3b30;color:#ffe2a0;box-shadow:inset 0 2px #e2b860}
.esc-body{padding:16px 18px 20px}
.esc-main{display:grid;gap:10px;padding:6px 40px}
.esc-main button{padding:12px;font:700 15px Cinzel,Georgia,serif;letter-spacing:1px}
.esc-main button.danger{background:linear-gradient(#5a1c18,#3a0f0c);border-color:#a5463a;color:#ffd7c8}
.esc-note{margin:12px 0 0;text-align:center;font-size:13px;color:#a99b7d}
.set-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 4px;border-bottom:1px solid #ffffff12}
.set-row b{display:block;font-size:15px}
.set-row small{display:block;font-size:12px;color:#a99b7d}
.set-ctl{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.set-seg{display:flex;border:1px solid #6d5833;border-radius:8px;overflow:hidden}
.set-seg button{border:0;border-radius:0;padding:6px 11px;font-size:13px;background:#18221c;color:#c8b88e;box-shadow:none}
.set-seg button+button{border-left:1px solid #6d5833}
.set-seg button[aria-pressed=true]{background:linear-gradient(#e6bb64,#b9852f);color:#211607;font-weight:700}
.set-toggle{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 6px;min-width:84px}
.set-toggle i{width:34px;height:18px;border-radius:9px;background:#0d1410;border:1px solid #6d5833;position:relative}
.set-toggle i:after{content:'';position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#7b6f55;transition:left .12s}
.set-toggle[aria-pressed=true] i{background:#3a5a2f}
.set-toggle[aria-pressed=true] i:after{left:18px;background:#ffd98a}
.set-ctl input[type=range]{width:180px;accent-color:#e0b25a}
.set-ctl output{width:42px;text-align:right;font-variant-numeric:tabular-nums}
.keycap{min-width:92px;padding:6px 12px;border-radius:7px;background:linear-gradient(#2e3a31,#1a231d);border:1px solid #8d7140;box-shadow:0 3px 0 #0a0f0c;font:700 13px system-ui;color:#f3e2b8;text-align:center}
.keycap.fixed{display:inline-block;opacity:.7}
.keycap.listening{border-color:#ffd77a;color:#ffd77a;animation:node-pulse 1s infinite}
.set-keys{margin-bottom:14px}
.esc-launch{position:fixed;z-index:400;top:14px;right:14px;width:40px;height:40px;padding:8px;border-radius:10px;color:#e9cf93;background:linear-gradient(#26362b,#152019);border:1px solid #8d7140;display:none}
.esc-launch svg{width:100%;height:100%}
body[data-screen=menu] .esc-launch{display:block}
/* 0.12 rig: pets get their own space; muzzle flash and bolts sit at the weapon */
.battle-team .fighter.with-pet{flex-grow:1.55;max-width:230px}
.battle-team .fighter.with-pet .sprite-ground{margin-left:34%}
.battle-team .fighter.with-pet .fighter-label{margin-left:34%}
.battle-pet{left:-46%!important;width:62%!important;height:58%!important;bottom:2%!important}
.battle-pet.pet-imp,.battle-pet.pet-voidwalker,.battle-pet.pet-felhunter{left:-38%!important;width:54%!important;height:60%!important}
.pet-discovery-art>.battle-pet{left:0!important;bottom:0!important;width:100%!important;height:100%!important}
.draft-ally .battle-pet{left:-30%!important;width:52%!important;height:50%!important}
.muzzle-flash.at-tip{position:absolute;z-index:16;width:30px;height:30px;pointer-events:none;border-radius:50%;background:radial-gradient(circle,#fffbe0 0,#ffd25a 35%,#ff7a1a99 60%,transparent 72%)}
.hunter-arrow.crossbow-bolt{width:40px;height:10px}
.character-rig .rig-swing{transform-box:view-box}
/* 0.12 profession trainers */
.trainer-panel h3{display:flex;align-items:baseline;gap:10px;margin:12px 0 6px;font:700 14px Cinzel,Georgia,serif;color:#f1cf86}
.trainer-panel h3 small{font:12px Alegreya,Georgia,serif;color:#a99b7d;letter-spacing:0}
.trainer-who{margin:0;color:#cdbb92}
.trainer-panel .profession-training{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.prof-card{position:relative;display:grid!important;justify-items:center;align-content:start;gap:3px;padding:8px 6px!important;text-align:center;min-height:96px}
.prof-card .prof-icon{width:40px;height:40px}
.prof-card .prof-icon svg{width:100%;height:100%}
.prof-card b{font:700 12px Cinzel,Georgia,serif;line-height:1.15}
.prof-card small{font-size:11px;color:#d7c08a;line-height:1.15}
.prof-card.original:after{content:'NEW';position:absolute;top:4px;right:5px;font:700 8px system-ui;color:#1d1405;background:#e7bb5c;border-radius:4px;padding:1px 4px}
.prof-card.owned{opacity:.6;border-color:#6f9a52}
.prof-card.chosen{border-color:#ffd77a!important;box-shadow:0 0 0 2px #ffd77a55,0 0 14px #ffd77a44}
.train-confirm{display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;border:1px solid #a9843f;border-radius:10px;background:#101a14}
.train-confirm>div{flex:1;display:grid;gap:2px}
.train-confirm b{font:700 14px Cinzel,Georgia,serif;color:#f1cf86}
.train-confirm span{font-size:13px;line-height:1.3}
.trainer-hint{margin:10px 0 0;color:#a99b7d;font-size:13px;text-align:center}
/* 0.12 loadout strip on each hero card */
.loadout-strip{display:flex;justify-content:center;gap:3px;margin-top:4px;flex-wrap:wrap}
.ls-slot{position:relative;width:24px;height:24px;border-radius:6px;display:grid;place-items:center;background:#0e1712;border:1px solid #5e5030;cursor:help}
.ls-slot .icon,.ls-slot svg{width:100%!important;height:100%!important;margin:0!important;border:0!important}
.ls-slot.empty{opacity:.45;border-style:dashed;filter:grayscale(1)}
.ls-slot.empty svg rect{fill:transparent}
.ls-slot.q-uncommon{border-color:#3fbf4f}.ls-slot.q-rare{border-color:#3f8fff}.ls-slot.q-epic{border-color:#b45cff}
.ls-food.filled,.ls-supply.filled{box-shadow:0 0 0 1px #f0c86a88,0 0 6px #f0c86a55}
.ls-prof{height:24px;padding:0 6px;border-radius:6px;display:grid;place-items:center;font:700 10px Cinzel,Georgia,serif;color:#e8d3a0;background:#20170c;border:1px solid #8d7140;cursor:help}
.loadout-strip [data-tip]:hover:before{z-index:300}
.fl-kit{display:flex;justify-content:center;gap:2px;margin-top:2px}
.fl-kit i{width:16px;height:16px;display:block;border-radius:4px;overflow:hidden;border:1px solid #00000088}
.fl-kit i .icon,.fl-kit i svg{width:100%!important;height:100%!important;margin:0!important;border:0!important}
/* Tooltips wrap instead of running off screen */
[data-tip]:hover:before,[data-tip]:focus-visible:before{white-space:normal!important;width:max-content;max-width:300px;text-align:center;line-height:1.3;font-size:12.5px}
.trainer-panel{overflow:auto}
.trainer-panel .profession-training{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))!important;gap:6px!important}
.prof-card{min-height:70px!important;padding:6px 4px!important;gap:2px!important}
.prof-card .prof-icon{width:30px;height:30px}
.prof-card b{font-size:11px}
.train-confirm{position:sticky;bottom:0;z-index:5;box-shadow:0 -6px 16px #0009}
/* Button and bubble text is always centred */
button,.gold,.draft-stats span,.ls-prof,.keycap{text-align:center}
:where(button:not(.draft-ally-select,.prof-card,.repl-card,.map-node,.recruit-option,.talent-card,[data-reward],[data-assign-discovery],.draft-offer,.esc-launch)){display:inline-flex;align-items:center;justify-content:center;gap:6px}
button[hidden]{display:none!important}
.esc-launch{display:none!important}
body[data-screen=menu] .esc-launch{display:block!important}
.auction-list button,[data-auction]{line-height:1.1;white-space:normal}
/* 0.12 party overview */
.buff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.buff-tile{display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:8px 10px;border-radius:10px;border:1px solid #6d5833;background:linear-gradient(#22301f,#151f17)}
.buff-tile .buff-emblem{grid-row:1/3;width:34px;height:34px}
.buff-tile .buff-emblem img,.buff-tile .buff-emblem svg,.buff-tile .buff-emblem span{width:100%;height:100%}
.buff-tile b{font:700 13px Cinzel,Georgia,serif;color:#f1cf86}
.buff-tile small{font-size:12px;color:#cdbb92;line-height:1.2}
.buff-tile.inactive{opacity:.42;filter:grayscale(.8);border-style:dashed}
.buff-tile.active{box-shadow:0 0 0 1px #e9c47f55,0 0 12px #e9c47f22}
.party-overview h3 small{font:12px Alegreya,Georgia,serif;color:#a99b7d;margin-left:8px}
.buff-note{font-size:12px;color:#a99b7d;text-align:center;margin:8px 0 0}
.formation-tips{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:10px 0}
.formation-tips span{padding:5px 12px;border-radius:999px;background:#101a14;border:1px solid #6d5833;font-size:13px;cursor:help}
.modal-return{margin:10px auto 0;display:flex!important;padding:10px 22px!important}
.modal-return svg,.modal-return .action-icon{width:20px;height:20px}
.set-keys{max-height:52vh;overflow:auto;padding-right:4px}
/* 0.12 parchment zone map */
.zone-map.parchment-map{height:auto!important;aspect-ratio:1150/1000;max-height:70vh;min-height:0;background:#e9dcb2;border:3px solid #3b2a17;border-radius:6px;box-shadow:0 0 0 4px #6f5a33,0 10px 30px #000a;overflow:hidden}
.parchment-map .map-terrain{position:absolute;inset:0;width:100%;height:100%}
.parchment-map .map-lines{z-index:1}
.parchment-map .map-lines .road{fill:none;stroke:#3b2a17;stroke-width:2.4;stroke-dasharray:7 6;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.75}
.parchment-map .map-lines .road.walked{stroke:#9c2a1c;stroke-dasharray:none;stroke-width:3.4;opacity:.9}
.parchment-map .map-lines .road.route{stroke:#b8860b;stroke-dasharray:none;stroke-width:4;opacity:1;filter:drop-shadow(0 0 3px #ffd36e)}
.parchment-map .map-node{z-index:2;width:42px;height:42px;padding:8px;border:2.5px solid #3b2a17;color:#fff6dd;box-shadow:0 3px 0 #3b2a1799,inset 0 2px 0 #ffffff40,inset 0 -3px 0 #00000040;opacity:1}
.parchment-map .map-node.type-quest{background:radial-gradient(circle at 35% 30%,#ffe08a,#c98a1c 70%,#8a5a0c);color:#3b2a17}
.parchment-map .map-node.type-fight{background:radial-gradient(circle at 35% 30%,#a8a8a8,#5c5c62 70%,#33333a)}
.parchment-map .map-node.type-elite{background:radial-gradient(circle at 35% 30%,#e86a52,#a3261a 70%,#5e0f08)}
.parchment-map .map-node.type-event{background:radial-gradient(circle at 35% 30%,#8fb8ff,#2f5aa8 70%,#16306a)}
.parchment-map .map-node.type-camp{background:radial-gradient(circle at 35% 30%,#ffc07a,#d0661c 70%,#86360a)}
.parchment-map .map-node.type-treasure{background:radial-gradient(circle at 35% 30%,#f5e1a0,#a8803a 70%,#5f4416);color:#3b2a17}
.parchment-map .map-node.type-dungeon{width:70px;height:70px;padding:12px;border-width:3.5px;background:radial-gradient(circle at 35% 30%,#7d6a5a,#3d2c22 70%,#1a110c);color:#ffd7a0;box-shadow:0 0 0 5px #3b2a1755,0 4px 0 #3b2a1799}
.parchment-map .map-node:disabled{opacity:.88;filter:saturate(.55) brightness(.92)}
.parchment-map .map-node.visited{filter:grayscale(.85) brightness(.85);opacity:.75}
.parchment-map .map-node.visited:after{content:'';position:absolute;inset:6px;background:linear-gradient(45deg,transparent 45%,#9c2a1c 45%,#9c2a1c 55%,transparent 55%),linear-gradient(-45deg,transparent 45%,#9c2a1c 45%,#9c2a1c 55%,transparent 55%)}
.parchment-map .map-node.reachable{border-color:#fff3c4;box-shadow:0 0 0 4px #ffe08a,0 0 18px #ffd36e,0 3px 0 #3b2a1799}
.parchment-map .map-node.current,.parchment-map .map-node.pending{filter:none;opacity:1;box-shadow:0 0 0 4px #9c2a1c,0 3px 0 #3b2a1799}
.parchment-map .map-node.current:before{content:'';position:absolute;left:50%;bottom:calc(100% + 2px);width:18px;height:26px;translate:-50% 0;background:linear-gradient(#2f4f9a,#1b2d5c);clip-path:polygon(0 0,100% 0,100% 100%,50% 75%,0 100%);border-top:3px solid #e2b860;filter:drop-shadow(0 2px 1px #0007)}
.map-legend svg{border-color:#3b2a17}
.modal-close,.modal-close[data-tip]{position:absolute!important;right:10px;top:8px;left:auto}
.esc-launch[data-tip]{position:fixed!important}
.armor-trim{display:none!important}

/* 0.13 difficulty picker */
.difficulty-picker{display:flex;gap:6px;margin:12px 0 4px}
.difficulty-picker button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:10px;background:#294b3b!important;border:1px solid #b18c4b55;color:#f3e6c4}
.difficulty-picker button b{font:700 13px Cinzel,Georgia,serif;letter-spacing:1px}
.difficulty-picker button small{display:none}
.difficulty-picker button[aria-checked=true]{background:#8c6b35!important;border-color:#f4cc7c;box-shadow:0 0 14px #f1b95133}
/* 0.13 scout's warning before a likely loss */
.danger-view{max-width:560px;margin:0 auto;text-align:center;padding:10px 6px 4px}
.danger-view h2{margin:6px 0 4px;color:#ffd9a0;font:700 30px Cinzel,Georgia,serif}
.danger-odds{font-size:18px;color:#f3e6c4}.danger-odds b{color:#ff8a6a}
.danger-tips{text-align:left;margin:14px auto;padding-left:20px;color:#e6d8b6;line-height:1.5}
.danger-actions{display:flex;gap:12px;justify-content:center;margin-top:16px}
.danger-actions button{min-width:160px}
/* 0.13 loot assignment: stats, portraits, deltas, best fit */
.discovery-screen .loot-stats{margin:6px 0 2px;color:#f3e6c4;font-size:16px}
.upgrade-choices button{position:relative;align-items:center;text-align:center!important;gap:6px!important}
.upgrade-choices button[disabled]{opacity:.45;filter:grayscale(.6)}
.upgrade-choices .taker-portrait{display:block;width:74px;height:80px;overflow:hidden;border-radius:10px;background:#17271c;border:1px solid #b18c4b55}
.upgrade-choices .taker-portrait .combat-sprite{display:block;width:84px!important;height:100px!important;margin:-6px 0 0 -5px}
.upgrade-delta{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.upgrade-delta i{font-style:normal;font-weight:700;padding:2px 8px;border-radius:999px;background:#0e1712}
.upgrade-delta i.up{color:#8fe08a}.upgrade-delta i.down{color:#ff8a6a}
.upgrade-choices button.best-fit{border-color:#f4cc7c;box-shadow:0 0 0 1px #f4cc7c88,0 0 22px #f1b95144}
.fit-badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);padding:2px 10px;border-radius:999px;font:700 11px Cinzel,Georgia,serif;letter-spacing:1px;font-style:normal;color:#241a0e;background:linear-gradient(#ffe3a0,#c8893a);border:1px solid #3b2a17;white-space:nowrap}
/* 0.13 recruit cards never cut off their invite button */
.recruit-screen{overflow-y:auto}
.recruit-option{display:flex!important;flex-direction:column;gap:4px}
.recruit-option .recruit-portrait{height:120px!important;width:110px!important}
.recruit-option .equipped-icons{transform:scale(.82);transform-origin:top center;margin-bottom:-14px}
.recruit-option button[data-recruit]{margin-top:auto!important;min-height:48px}
.recruit-option h4{margin:6px 0 2px}
/* 0.13 defeat explanation */
.loss-lesson{margin-top:10px;padding:10px 14px;border-left:3px solid #f4cc7c;background:#0e171299;border-radius:6px;max-width:640px}
.loss-lesson b{font:700 12px Cinzel,Georgia,serif;letter-spacing:2px;color:#f4cc7c;text-transform:uppercase}
.loss-lesson p{margin:4px 0 0;color:#efe3c4}.loss-lesson .loss-intel{color:#c9bb98;font-size:.92em}
/* 0.13 campaign ending */
.campaign-end{position:relative;min-height:100%;display:grid;place-items:center;padding:40px 4%;background:linear-gradient(#0b1310cc,#0b1310ee),url('/assets/art/camp-journey-v1.png') right bottom/200% 200%;overflow:auto}
.end-inner{max-width:980px;text-align:center}
.campaign-end h1{margin:6px 0 10px;font:700 clamp(34px,5vw,58px) Cinzel,Georgia,serif;color:#ffdf9a;text-shadow:0 3px 0 #3b2a17,0 10px 30px #000}
.end-story{max-width:720px;margin:0 auto;color:#efe3c4;font-size:18px;line-height:1.6}
.end-party{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:26px 0 8px}
.end-party figure{margin:0;width:150px;animation:endRise .7s ease-out both}
.end-party figure:nth-child(2){animation-delay:.1s}.end-party figure:nth-child(3){animation-delay:.2s}.end-party figure:nth-child(4){animation-delay:.3s}.end-party figure:nth-child(5){animation-delay:.4s}
.end-party .combat-sprite{display:block;width:120px!important;height:140px!important;margin:0 auto}
.end-party figcaption b{display:block;color:#ffd56b;font:700 15px Cinzel,Georgia,serif}.end-party figcaption span{font-size:12px;color:#c9bb98}
.end-records{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:18px auto;max-width:860px}
.end-records div{padding:10px 6px;border:1px solid #b18c4b66;border-radius:10px;background:#16231bcc}
.end-records dt{font:700 10px Cinzel,Georgia,serif;letter-spacing:2px;color:#e9c47f;text-transform:uppercase}.end-records dd{margin:4px 0 0;font-size:22px;color:#fff1c8}
.end-next{margin:22px auto 0;max-width:720px;padding:16px 20px;border-radius:12px;background:linear-gradient(90deg,#14295a99,#0c140e 45%,#0c140e 55%,#560c1099);border:1px solid #6d5833}
.end-next h2{margin:0 0 6px;font:700 22px Cinzel,Georgia,serif;color:#ffdf9a}.end-next p{margin:4px 0;color:#e2d6b8}.end-hall{font-size:14px;color:#c9bb98}
.end-actions{display:flex;gap:12px;justify-content:center;margin-top:22px;flex-wrap:wrap}
@keyframes endRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (max-width:760px){.end-records{grid-template-columns:repeat(3,1fr)}}
@media (prefers-reduced-motion:reduce){.end-party figure{animation:none}}
/* 0.13 field guide */
.codex{max-width:1080px;margin:0 auto;text-align:left}
.codex h2{margin:0;font:700 30px Cinzel,Georgia,serif;color:#ffdf9a;text-align:center}
.codex h3{margin:22px 0 10px;font:700 16px Cinzel,Georgia,serif;letter-spacing:2px;color:#e9c47f;text-transform:uppercase;border-bottom:1px solid #b18c4b55;padding-bottom:4px}
.codex-lede{text-align:center;color:#c9bb98;margin:4px 0 0}
.codex-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.codex-grid article,.codex-bosses article{padding:12px 14px;border:1px solid #b18c4b44;border-radius:10px;background:#16231bcc}
.codex-grid header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.codex-grid header img,.codex-grid header svg{width:30px;height:30px}
.codex-grid header b{font:700 17px Cinzel,Georgia,serif;color:#ffd56b}
.codex-grid ul{margin:6px 0 0;padding-left:16px}.codex-grid li{margin:4px 0;font-size:14px;color:#e6d8b6}
.codex em{font-style:normal;font-size:11px;padding:1px 7px;border-radius:999px;background:#0e1712;color:#e9c47f;margin:0 4px}
.codex-buff{margin:0;font-size:13px;color:#cfe6b8}
.codex-trades{columns:2 340px;column-gap:24px}.codex-trades p{break-inside:avoid;margin:0 0 8px;font-size:14px;color:#e6d8b6}
.codex-bosses{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.codex-bosses b{color:#ffd56b;font:700 16px Cinzel,Georgia,serif}.codex-bosses small{display:block;color:#c9bb98}
.codex-bosses p{margin:6px 0 0;font-size:14px;color:#e6d8b6}.codex-bosses .ok{color:#9fe09a}.codex-bosses .bad{color:#ff9b80}
.codex-grid header{background:none!important;padding:0!important;border:0!important;justify-content:flex-start!important;min-height:0!important;box-shadow:none!important}
/* 0.13 Heroic recovery screen */
.recovery-screen{min-height:100%;display:grid;place-items:center;padding:40px 4%;background:linear-gradient(#0b1310dd,#0b1310f2),url('/assets/art/camp-journey-v1.png') left top/200% 200%}
.recovery-inner{max-width:1000px;text-align:center}
.recovery-screen h1{margin:6px 0;font:700 clamp(30px,4vw,48px) Cinzel,Georgia,serif;color:#ffdf9a}
.recovery-lede{max-width:700px;margin:0 auto 18px;color:#e2d6b8}
.casualties{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.casualty-card{width:240px;padding:16px;border-radius:14px;border:1px solid #b18c4b88;background:linear-gradient(#25362a,#16231b);display:flex;flex-direction:column;align-items:center;gap:8px}
.casualty-portrait{display:block;width:110px;height:120px;overflow:hidden;filter:grayscale(.85) brightness(.75)}
.casualty-portrait .combat-sprite{width:110px!important;height:130px!important}
.casualty-card h3{margin:0;font:700 18px Cinzel,Georgia,serif;color:#ffd56b}.casualty-card small{color:#c9bb98}
.casualty-card button{width:100%}
.ghost-danger{background:transparent!important;border:1px solid #a8564055!important;color:#ffb39e!important}
.holy-presence:after{display:none!important}
/* difficulty hints span the whole picker so they never run off the panel */
.difficulty-picker{position:relative}
.difficulty-picker button[data-tip]:hover,.difficulty-picker button[data-tip]:focus-visible{position:static!important}
.difficulty-picker button[data-tip]:hover:before,.difficulty-picker button[data-tip]:focus-visible:before{left:0!important;right:0!important;top:calc(100% + 8px)!important;bottom:auto!important;translate:0 0!important;width:auto!important;max-width:none!important}
.difficulty-note{margin:4px 0 0;font-size:12px;line-height:1.35;color:#c9bb98;min-height:2.7em}
/* 0.13: the scout report stays compact so it never covers the heroes; hover or focus to expand */
.intel-panel:not(:hover):not(:focus-within) .intel-foes,
.intel-panel:not(:hover):not(:focus-within) .intel-intent,
.intel-panel:not(:hover):not(:focus-within) .forecast small{display:none!important}
.intel-panel:not(:hover):not(:focus-within){padding:6px 12px!important;gap:3px!important;width:min(360px,40%)!important}
.intel-panel:not(:hover):not(:focus-within) .forecast{padding:4px 8px!important}
.intel-panel:not(:hover):not(:focus-within) header:after{content:'hover for intel';margin-left:auto;font-size:10px;letter-spacing:1px;color:#c9a26a;text-transform:uppercase}
.intel-panel{transition:width .15s}
.fit-scaled .intel-panel{position:absolute!important;right:14px!important;top:12px!important;margin:0!important}

/* ===== 0.13 camp HUD rework ===== */
.camp-location{display:none!important}
.camp-hud{display:flex!important;align-items:center;gap:14px!important;padding:8px 22px!important;background:linear-gradient(180deg,#1f3a2c,#142a20)!important;border-bottom:2px solid #8f6d36!important;box-shadow:0 3px 0 #0a140f}
.hud-title{flex:1;min-width:0}
.hud-title small{display:block;font:700 11px Cinzel,Georgia,serif!important;letter-spacing:2.5px!important;text-transform:uppercase;color:#d8b26a!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hud-title h1{margin:2px 0 0!important;font:700 22px Cinzel,Georgia,serif!important;color:#fff0c8!important;text-shadow:0 2px 0 #0b1712,0 0 18px #f1c97733;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none}
.party-readiness{display:none!important}

/* the line-up: five slots, filled as heroes join */
.company-line{display:flex;align-items:center;gap:5px;padding:5px 10px 5px 12px;border-radius:999px;background:#0d1b14;border:1px solid #8f6d3677;box-shadow:inset 0 2px 6px #0008}
.company-label{font:700 10px Cinzel,Georgia,serif;letter-spacing:2px;text-transform:uppercase;color:#c9a96b;margin-right:4px}
.role-pip{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:2px dashed #6b5a3a;background:#14251c}
.role-pip svg{width:15px;height:15px;fill:#5d5442}
.role-pip.filled{border:2px solid #f0cb7a;box-shadow:0 0 10px #f0c06a55,inset 0 2px 0 #ffffff30}
.role-pip.filled svg{fill:#fff6dc;filter:drop-shadow(0 1px 0 #0008)}
.role-pip.role-tank.filled{background:radial-gradient(circle at 35% 30%,#8fb8ff,#2f5aa8 70%,#16306a)}
.role-pip.role-healer.filled{background:radial-gradient(circle at 35% 30%,#a6f0a0,#3a9a45 70%,#1b5524)}
.role-pip.role-dps.filled{background:radial-gradient(circle at 35% 30%,#ff9c7a,#b23a24 70%,#5e1209)}
.role-pip.role-dps+.role-pip.role-dps{margin-left:-2px}

/* lives */
.lives-badge{display:flex;gap:2px;padding:4px 10px;border-radius:999px;background:#0d1b14;border:1px solid #8f6d3677}
.lives-badge i{font-style:normal;font-size:18px;line-height:1;color:#4a2b2b;text-shadow:0 1px 0 #000}
.lives-badge i.full{color:#ff6f6f;text-shadow:0 0 8px #ff4d4d88,0 1px 0 #5e0f08}
.lives-badge.story span{font:700 11px Cinzel,Georgia,serif;letter-spacing:2px;color:#9fe09a;text-transform:uppercase;padding:2px 2px}

/* ===== the main "next step" button ===== */
.cta-main{position:relative;display:inline-flex!important;align-items:center;gap:12px;min-width:270px;padding:9px 16px 9px 10px!important;border-radius:14px!important;cursor:pointer;
 color:#2a1a08!important;background:linear-gradient(180deg,#ffe9b0 0%,#f2c766 45%,#d39a3c 55%,#b8792a 100%)!important;
 border:2px solid #4a2e12!important;box-shadow:inset 0 2px 0 #fff6d8,inset 0 -3px 0 #8a5520,0 5px 0 #3a230c,0 10px 24px #000a,0 0 0 4px #c9a25a33!important;overflow:hidden;
 transition:transform .12s ease,filter .12s ease,box-shadow .12s ease;animation:ctaBreath 3.2s ease-in-out infinite}
.cta-main:before{content:''!important;position:absolute!important;inset:0!important;background:linear-gradient(115deg,transparent 30%,#ffffff88 45%,transparent 60%)!important;transform:translateX(-120%);transition:none;pointer-events:none;border:0!important;padding:0!important;width:auto!important;max-width:none!important;translate:none!important}
.cta-main:hover{transform:translateY(-2px);filter:brightness(1.06)}
.cta-main:hover:before{transform:translateX(120%);transition:transform .7s ease}
.cta-main:active{transform:translateY(2px);box-shadow:inset 0 2px 0 #fff6d8,inset 0 -2px 0 #8a5520,0 2px 0 #3a230c,0 4px 10px #000a!important}
.cta-icon{display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;border-radius:10px;background:radial-gradient(circle at 35% 30%,#3a5a44,#1a3326 70%);border:2px solid #4a2e12;box-shadow:inset 0 1px 0 #ffffff33}
.cta-icon svg{width:30px;height:30px}
.cta-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;text-align:left;min-width:0}
.cta-text b{font:700 19px Cinzel,Georgia,serif;letter-spacing:1.5px;text-transform:uppercase;color:#2a1a08;text-shadow:0 1px 0 #ffeec0}
.cta-text small{margin-top:3px;font:600 12.5px Alegreya,Georgia,serif;color:#5a3a14;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cta-arrow{margin-left:auto;display:grid;place-items:center;width:26px;height:26px}
.cta-arrow svg{width:24px;height:24px}
.cta-arrow svg path{stroke:#4a2e12!important}
@keyframes ctaBreath{0%,100%{box-shadow:inset 0 2px 0 #fff6d8,inset 0 -3px 0 #8a5520,0 5px 0 #3a230c,0 10px 24px #000a,0 0 0 4px #c9a25a33}50%{box-shadow:inset 0 2px 0 #fff6d8,inset 0 -3px 0 #8a5520,0 5px 0 #3a230c,0 10px 24px #000a,0 0 0 4px #f3c86a66,0 0 26px #f1c06a55}}
@media (prefers-reduced-motion:reduce){.cta-main{animation:none}.cta-main:hover:before{transition:none}}
.reduce-motion .cta-main{animation:none}

/* ===== recruit cards: everything visible, no scroll bars ===== */
.recruit-choices{max-width:1180px!important;gap:18px!important}
.recruit-option{overflow:visible!important;padding:12px 14px!important;gap:3px!important;justify-content:flex-start}
.recruit-option .equipped-icons{display:none!important}
.recruit-option .recruit-portrait{height:104px!important;width:96px!important}
.recruit-option .combat-sprite{height:110px!important}
.recruit-option h2,.recruit-option h3{margin:2px 0!important}
.recruit-option p{margin:3px 0!important;font-size:13.5px!important;line-height:1.35!important}
.recruit-option h4{margin:6px 0 0!important;font-size:13px!important}
.recruit-option .profession-badge,.recruit-option [class*=profession]{margin:4px 0!important;padding:6px 8px!important;font-size:12.5px!important}
.recruit-option button[data-recruit]{margin-top:auto!important;width:100%;min-height:46px;border-radius:10px!important;font:700 14px Cinzel,Georgia,serif!important;letter-spacing:1px;color:#2a1a08!important;background:linear-gradient(180deg,#ffe3a0,#e7b95f 60%,#c8893a)!important;border:2px solid #4a2e12!important;box-shadow:inset 0 2px 0 #fff5d7,0 4px 0 #3a230c!important}
.recruit-option button[data-recruit]:hover{filter:brightness(1.07);transform:translateY(-1px)}
.cta-main{padding:5px 14px 5px 7px!important;min-width:250px;gap:10px}
.cta-icon{width:36px;height:36px}.cta-icon svg{width:26px;height:26px}
.cta-text b{font-size:17px}.cta-text small{font-size:12px;margin-top:1px}
.role-pip{width:32px;height:32px;border-color:#8a7650;background:#1b3226}
.role-pip svg{width:17px;height:17px;fill:#8a7d62}
.company-line{padding:4px 8px 4px 12px}
.company-label{color:#e2c387}

/* ===== 0.13 title screen ===== */
body[data-screen=title] #game{position:relative;display:block!important;padding:0!important;background:#0b120d!important;overflow:hidden!important}
body[data-screen=title] .esc-launch{display:none!important}
.title-screen{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;color:#f3e6c4}
.ts-bg{position:absolute;inset:-4%;background:url('/assets/art/elwynn-scenes-v1.png') 0 0/200% 200% no-repeat;filter:saturate(1.05) brightness(.62);animation:tsDrift 38s ease-in-out infinite alternate;transform-origin:30% 60%}
.ts-glow{position:absolute;left:12%;top:38%;width:34%;height:46%;border-radius:50%;background:radial-gradient(closest-side,#ffb35a55,#ff8a2a22 55%,transparent);mix-blend-mode:screen;animation:tsFlicker 2.6s ease-in-out infinite}
.ts-fog{position:absolute;inset:auto -20% -10% -20%;height:45%;background:radial-gradient(ellipse at 30% 80%,#cfe3d522,transparent 60%),radial-gradient(ellipse at 75% 90%,#cfe3d518,transparent 55%);filter:blur(6px);animation:tsFog 26s linear infinite alternate}
.ts-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,transparent 35%,#050a07cc 100%),linear-gradient(180deg,#050a0799,transparent 30%,transparent 65%,#050a07ee)}
.ts-embers{position:absolute;left:14%;top:30%;width:30%;height:60%;pointer-events:none}
.ts-embers i{position:absolute;bottom:8%;width:4px;height:4px;border-radius:50%;background:#ffcb6b;box-shadow:0 0 8px 2px #ff9a3a;opacity:0;animation:tsEmber 6s linear infinite}
.ts-embers i:nth-child(1){left:42%;animation-delay:0s}.ts-embers i:nth-child(2){left:48%;animation-delay:.7s;animation-duration:7s}
.ts-embers i:nth-child(3){left:38%;animation-delay:1.4s}.ts-embers i:nth-child(4){left:55%;animation-delay:2.1s;animation-duration:5.5s}
.ts-embers i:nth-child(5){left:45%;animation-delay:2.8s;animation-duration:7.5s}.ts-embers i:nth-child(6){left:51%;animation-delay:3.5s}
.ts-embers i:nth-child(7){left:35%;animation-delay:4.2s;animation-duration:6.5s}.ts-embers i:nth-child(8){left:58%;animation-delay:4.9s}
.ts-embers i:nth-child(9){left:47%;animation-delay:5.6s;animation-duration:8s}.ts-embers i:nth-child(10){left:41%;animation-delay:.35s;animation-duration:5s}
.ts-embers i:nth-child(11){left:53%;animation-delay:1.05s;animation-duration:6.8s}.ts-embers i:nth-child(12){left:44%;animation-delay:1.75s}
.ts-embers i:nth-child(13){left:50%;animation-delay:2.45s;animation-duration:7.2s}.ts-embers i:nth-child(14){left:39%;animation-delay:3.15s}
.ts-embers i:nth-child(15){left:56%;animation-delay:3.85s;animation-duration:5.8s}.ts-embers i:nth-child(16){left:46%;animation-delay:4.55s}
.ts-embers i:nth-child(17){left:52%;animation-delay:5.25s;animation-duration:6.2s}.ts-embers i:nth-child(18){left:43%;animation-delay:5.95s}
.ts-center{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px}
.ts-logo{width:clamp(96px,14vh,150px);height:auto;filter:drop-shadow(0 14px 24px #000c);animation:tsRise .9s ease-out both}
.ts-name{margin:10px 0 0;font:700 clamp(40px,8vh,78px) Cinzel,Georgia,serif;letter-spacing:3px;line-height:1;color:#ffdf9a;text-shadow:0 3px 0 #3b2a17,0 10px 32px #000;animation:tsRise .9s .1s ease-out both}
.ts-name b{color:#fff1c8}
.ts-tag{margin:12px 0 0;font:500 clamp(15px,2.4vh,20px) Alegreya,Georgia,serif;color:#e9dcbc;text-shadow:0 2px 8px #000;animation:tsRise .9s .2s ease-out both}
.ts-menu{margin-top:clamp(18px,4vh,34px);display:flex;flex-direction:column;align-items:stretch;gap:10px;width:min(340px,80vw);animation:tsRise .9s .3s ease-out both}
.ts-menu .ts-primary{width:100%;min-width:0}
.ts-btn{width:100%;padding:11px 18px!important;border-radius:12px!important;font:700 15px Cinzel,Georgia,serif!important;letter-spacing:2px;text-transform:uppercase;color:#f3e6c4!important;background:linear-gradient(180deg,#1e3a2bdd,#132a1fdd)!important;border:2px solid #9c7a42!important;box-shadow:inset 0 1px 0 #ffffff1f,0 4px 0 #07100b,0 8px 18px #0008!important;transition:transform .12s,border-color .12s,background .12s}
.ts-btn:hover,.ts-btn:focus-visible{transform:translateY(-2px);border-color:#f4cc7c!important;background:linear-gradient(180deg,#2a4d39,#183424)!important;color:#fff3d2!important}
.ts-btn.ts-quit{opacity:.85}
.ts-foot{position:absolute;bottom:12px;left:0;right:0;z-index:2;text-align:center;font:600 12px Alegreya,Georgia,serif;letter-spacing:1px;color:#a99a78}
.creator-back{position:absolute;left:18px;top:14px;z-index:5;padding:7px 14px!important;border-radius:999px!important;font:700 12px Cinzel,Georgia,serif!important;letter-spacing:1.5px;color:#f3e6c4!important;background:#0d1b14cc!important;border:1px solid #9c7a42!important}
.creator-back:hover{border-color:#f4cc7c!important}
@keyframes tsDrift{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.1) translate(-1.5%,-1%)}}
@keyframes tsFlicker{0%,100%{opacity:.85;transform:scale(1)}30%{opacity:1;transform:scale(1.04)}55%{opacity:.75;transform:scale(.98)}80%{opacity:.95;transform:scale(1.02)}}
@keyframes tsFog{from{transform:translateX(-4%)}to{transform:translateX(4%)}}
@keyframes tsEmber{0%{opacity:0;transform:translate(0,0) scale(1)}10%{opacity:1}70%{opacity:.8}100%{opacity:0;transform:translate(18px,-260px) scale(.4)}}
@keyframes tsRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.ts-bg,.ts-glow,.ts-fog,.ts-embers i,.ts-logo,.ts-name,.ts-tag,.ts-menu{animation:none!important}.ts-embers{display:none}}
.reduce-motion .ts-bg,.reduce-motion .ts-glow,.reduce-motion .ts-fog,.reduce-motion .ts-embers i{animation:none!important}
.ts-foot{border:0!important;background:none!important;padding:0!important}
.recruit-option button[data-recruit]{flex:0 0 auto!important;height:50px!important;min-height:0!important;padding:0 12px!important;margin-top:auto!important}
.recruit-option button[data-recruit]+button[data-recruit]{margin-top:6px!important}
.recruit-option h4{font:700 13px Cinzel,Georgia,serif!important;letter-spacing:1px;color:#e9c47f!important}
