/* Legacy names are aliases of the design tokens in src/ui/tokens.css (CR-20261007-141, package R). Every page that loads this file must also load tokens.css. */
:root{color-scheme:dark;--bg:var(--c-bg);--surface:var(--c-surface);--surface2:var(--c-surface-2);--line:var(--c-bronze-soft);--line-soft:#332f26;--ink:var(--c-text);--muted:var(--c-text-2);--gold:var(--c-gold);--gold-bright:var(--c-gold-bright);--green:var(--tone-info);--red:var(--c-danger);--text:var(--c-text)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:14px}body{overscroll-behavior:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--gold-bright);outline-offset:3px}button:active:not(:disabled){translate:0 1px;filter:var(--btn-press-filter)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);font-weight:400}h1{font-size:30px;letter-spacing:-.5px}h2{font-size:23px}small{font-size:10px}a{color:inherit;text-decoration:none}.screen{min-height:100svh}.engraving{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;pointer-events:none}.engraving svg{width:100%;height:100%;filter:drop-shadow(0 3px 2px #0006)}.eyebrow{display:block;font-size:var(--fs-micro);letter-spacing:var(--ls-overline);font-weight:700;color:var(--gold);line-height:1.5;text-transform:uppercase}.small-label{display:block;font-size:var(--fs-micro);letter-spacing:var(--ls-overline);color:var(--muted);line-height:1.4;text-transform:uppercase}.panel-note{font-size:var(--fs-small);color:var(--muted);line-height:1.55}.button{min-height:48px;border-radius:3px;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:12px;font-size:var(--fs-body);font-weight:700;letter-spacing:.2px;border:1px solid var(--line);box-shadow:inset 0 1px #ffffff09}.primary{background:var(--btn-primary-bg);border-color:var(--btn-primary-border);color:var(--btn-primary-text);text-shadow:0 1px #e8d5a33f}.primary:hover:not(:disabled){background:var(--btn-primary-bg-hover)}.secondary{background:var(--btn-secondary-bg);border-color:var(--btn-secondary-border);color:var(--c-text)}.secondary:hover:not(:disabled){border-color:var(--gold)}.icon-button{display:inline-grid;place-items:center;background:#1e1b17;border:1px solid var(--line);width:44px;height:44px;min-width:44px;font-size:23px;border-radius:3px}.text-button{background:transparent;font-size:var(--fs-small);color:var(--gold);padding:8px;min-height:44px}.text-button:hover{color:var(--gold-bright)}.mini-button{padding:10px 13px;min-height:var(--touch-min);border:1px solid var(--btn-secondary-border);background:var(--btn-secondary-bg);color:var(--c-text);border-radius:var(--radius-md);font-size:var(--fs-small)}.full-width{width:100%}.danger{color:var(--red)}.risk-note{font-size:10px;line-height:1.55;color:var(--muted);text-align:center}.segmented{display:flex;border:1px solid var(--line);border-radius:3px;padding:3px;gap:3px;background:#141310}.segmented button{flex:1;min-height:44px;background:transparent;color:var(--muted);padding:8px 14px;font-size:var(--fs-small);border-radius:2px;white-space:nowrap}.segmented button.active{background:var(--btn-active-bg);color:var(--btn-active-text);box-shadow:var(--btn-active-ring)}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#a6b18a;box-shadow:0 0 8px #bac59633}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.section-heading h1,.section-heading h2{margin-top:4px}.section-heading>.small-label{text-align:right}.empty-state{display:flex;align-items:center;gap:14px;border:1px dashed #4c4330;border-radius:3px;padding:22px 16px;min-height:120px;width:100%;grid-column:1/-1}.empty-state>.engraving{width:50px;height:50px;opacity:.65}.empty-state strong{font-family:var(--font-display);font-weight:400;font-size:19px;line-height:1.2}.empty-state p{font-size:var(--fs-small);line-height:1.6;color:var(--muted);margin-top:8px}.rarity-0{--rarity:var(--rarity-0)}.rarity-1{--rarity:var(--rarity-1)}.rarity-2{--rarity:var(--rarity-2)}.rarity-3{--rarity:var(--rarity-3)}.rarity-4{--rarity:var(--rarity-4)}.rarity-label{display:block;font-size:var(--fs-micro);line-height:1.5;letter-spacing:.5px;color:var(--rarity,var(--muted))}.item-name{color:var(--rarity,var(--ink))}.muted{color:var(--muted)}
/* A compact camp, with a real destination behind every tab. */
.hub-screen{height:100dvh;min-height:0;max-width:1400px;margin:auto;display:flex;flex-direction:column;background:radial-gradient(ellipse at 15% 30%,#5342261c,transparent 58%),repeating-linear-gradient(115deg,#ffffff02 0 1px,transparent 1px 5px),#151411;padding:0 max(28px,env(safe-area-inset-right)) 0 max(28px,env(safe-area-inset-left))}.masthead{height:78px;min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);order:0}.brand{display:flex;align-items:center;gap:11px;font:23px var(--font-display);letter-spacing:2.1px;white-space:nowrap}.brand-mark{color:var(--gold);font-size:39px;line-height:1;text-shadow:0 0 20px #b49a4e30}.brand small{font:var(--fs-micro) var(--font-ui);letter-spacing:2.5px;color:var(--muted);display:block;margin-top:6px}.mast-actions{display:flex;align-items:center;gap:17px}.gold-balance{display:flex;align-items:center;gap:6px;color:var(--gold-bright);padding:8px 13px;background:#31281a66;border:1px solid #76603a66;border-radius:3px}.gold-balance>span{font-size:20px}.gold-balance strong{font:20px var(--font-display);font-variant-numeric:tabular-nums}.gold-balance small{font-size:var(--fs-micro);color:var(--muted);letter-spacing:.7px}.camp-nav{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 0;order:1;border-bottom:1px solid var(--line-soft);flex-shrink:0}.camp-nav button{min-height:52px;flex:1;max-width:215px;display:flex;align-items:center;justify-content:center;gap:12px;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:3px;font-size:var(--fs-body);position:relative}.camp-nav button>.engraving,.camp-nav button>span>.engraving{width:30px;height:30px;opacity:.7}.camp-nav button.active{color:var(--gold-bright);border-color:#806b3f66;background:linear-gradient(90deg,#4d3c2235,#6c4e2320,#4d3c2235)}.camp-nav button.active:after{content:'';position:absolute;left:25%;right:25%;bottom:-9px;height:2px;background:#ad9057;box-shadow:0 0 10px #b6975340}.camp-nav button.active .engraving{opacity:1}.camp-nav small{font-size:var(--fs-micro);margin-left:3px;color:var(--gold)}.camp-content{order:2;flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#68573b #171610;padding:28px 3% 24px}.camp-panel{max-width:1060px;margin:auto}.departure-layout{display:grid;grid-template-columns:1fr 1.06fr;gap:40px;align-items:center}.expedition-scene{position:relative;min-height:430px;align-self:stretch;overflow:hidden;border:1px solid #51432b;background:radial-gradient(ellipse at 50% 50%,#55624d38,transparent 52%),linear-gradient(#151711,#171711);box-shadow:inset 0 0 0 4px #161510,inset 0 0 0 5px #5e4c2733}.scene-stones{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 44px,#b2aa7720 44px 45px),repeating-linear-gradient(90deg,transparent 0 62px,#b2aa7709 62px 63px);mask-image:radial-gradient(ellipse at 50% 30%,#000,transparent 77%)}.scene-arch{position:absolute;width:164px;height:247px;top:42px;left:50%;transform:translateX(-50%);border:18px solid #55513b;border-bottom:0;border-radius:95px 95px 0 0;box-shadow:0 0 0 1px #8d80574f,0 0 0 12px #2c2d2199,inset 0 0 25px #000;background:#090f0c}.scene-arch:after{content:'';position:absolute;left:-34px;right:-34px;bottom:-28px;height:40px;background:repeating-linear-gradient(0deg,#383929 0 10px,#60604a 10px 11px);clip-path:polygon(15% 0,85% 0,100% 100%,0 100%)}.scene-portal{position:absolute;inset:32px 17px 0;border-radius:50% 50% 10% 10%;border:1px solid #8bbaa97d;box-shadow:0 0 30px #91c7ad28,inset 0 0 25px #98cfb134;background:radial-gradient(ellipse,#64796715,#00000020);animation:portal-breathe 5s ease-in-out infinite}.scene-portal:after{content:'✧';font-size:45px;position:absolute;top:32%;left:25%;color:#a3c6ad66;filter:blur(.4px)}.scene-caption{position:absolute;bottom:27px;left:24px;right:18px;text-align:center;text-shadow:0 2px 7px #000}.scene-caption h1{font-size:29px;margin:8px 0}.scene-caption p{font-size:var(--fs-small);color:var(--muted)}.scene-seal{position:absolute;top:14px;right:13px;font:15px var(--font-display);border:1px solid #90734066;color:#ad9564;border-radius:50%;padding:6px}.class-list{display:grid;grid-template-columns:1fr 1fr;gap:9px}.class-card{display:flex;align-items:center;gap:9px;min-height:83px;text-align:left;background:var(--panel-bg);border:1px solid var(--c-bronze-soft);border-radius:var(--radius-md);padding:12px 10px;position:relative;box-shadow:var(--panel-inset)}.class-card:hover{border-color:#97825b}.class-card.active{border-color:#bc9c5c;background:linear-gradient(135deg,#493b25,#26251c);box-shadow:inset 0 0 0 2px #bea46414,0 0 15px #b8965020}.class-icon{width:43px;height:48px}.class-copy{flex:1;min-width:0}.class-copy strong{font:18px var(--font-display);display:block;line-height:1.1;color:var(--ink)}.class-copy small{font-size:var(--fs-micro);color:var(--muted);display:block;margin-top:7px}.class-select-dot{position:absolute;width:5px;height:5px;right:6px;top:6px;border:1px solid #7e6e4c;transform:rotate(45deg)}.class-card.active .class-select-dot{background:var(--gold-bright);box-shadow:0 0 9px #dbc07170}.departure-loadout{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:17px;padding:11px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}.departure-loadout strong{display:block;font-size:12px;font-weight:400;line-height:1.4;margin-top:4px}.departure-loadout .text-button{white-space:nowrap}.run-settings{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 0}.run-settings .segmented{width:65%}.expedition-launch .start-button{width:100%;justify-content:space-between;font:20px var(--font-display);min-height:52px}.start-button>span:last-child{font:24px var(--font-ui)}.expedition-launch .risk-note{margin-top:9px;max-width:340px;margin-left:auto;margin-right:auto}.potion-note{margin-top:8px;color:#c6ad7f}.camp-ledger{display:flex;align-items:center;justify-content:center;gap:26px;padding:20px 0;margin-top:22px;border-top:1px solid var(--line-soft);color:var(--muted);font-size:10px}.camp-ledger>span{font-size:var(--fs-micro);letter-spacing:var(--ls-overline)}.camp-ledger strong{font:19px var(--font-display);margin-right:5px;color:var(--c-text-2);font-variant-numeric:tabular-nums}.how-to{border-top:1px solid var(--line-soft);max-width:1060px;margin:auto}.how-to summary{display:flex;list-style:none;justify-content:space-between;align-items:center;min-height:44px;cursor:pointer;font-size:var(--fs-small);color:var(--muted)}.how-to summary::-webkit-details-marker{display:none}.how-to summary span{font-size:20px;color:var(--gold)}.how-to[open] summary span{transform:rotate(45deg)}.how-to p{font-size:var(--fs-small);line-height:1.7;margin:0 0 9px;color:var(--muted)}.how-to b{color:#cfb886;font-weight:400}.hub-footer{order:3;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line-soft);font-size:var(--fs-micro);color:var(--c-text-3);min-height:37px;flex-shrink:0}.hub-footer .status-dot{margin-right:7px}.hub-footer .text-button{min-height:36px;padding:4px;font-size:10px}
/* Equipment: actual slots around an engraved adventurer, with direct comparisons. */
.character-layout{display:grid;grid-template-columns:minmax(300px,1.1fr) minmax(280px,1fr);gap:25px;align-items:start}.character-board{position:relative;height:390px;border:1px solid #685436;background:radial-gradient(ellipse at 50% 54%,#67563925,transparent 63%),repeating-linear-gradient(110deg,#ffffff03 0 1px,transparent 1px 4px),#181713;overflow:hidden;box-shadow:inset 0 0 0 4px #181713,inset 0 0 0 5px #8f74402a}.character-board:before{content:'';position:absolute;width:227px;height:277px;left:50%;top:72px;transform:translateX(-50%);border:1px solid #6d5b3433;border-radius:50% 50% 15% 15%;box-shadow:0 0 0 10px #725a2d08}.character-caption{position:absolute;top:14px;left:14px;right:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.character-caption>span:last-child{color:var(--muted);font-size:10px;white-space:nowrap}.character-figure{position:absolute;left:50%;top:91px;transform:translateX(-50%);height:274px;width:165px;filter:drop-shadow(0 8px 10px #000)}.character-figure svg{height:100%;width:100%}.equipment-slot{position:absolute;width:76px;height:82px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(140deg,#302a20,#1a1a16);border:1px solid #7b6643;border-radius:3px;box-shadow:inset 0 0 0 3px #18171288}.equipment-slot .engraving{width:45px;height:48px}.equipment-slot.empty .engraving{opacity:.26;filter:grayscale(1)}.equipment-slot.empty{border-color:#51462f;border-style:dashed;background:#11110c66}.equipment-slot.selected{outline:1px solid var(--gold-bright);outline-offset:2px;background:#383021}.slot-label{font-size:var(--fs-micro);margin-top:2px;color:var(--c-text-2)}.slot-gem{position:absolute;top:5px;right:5px;width:5px;height:5px;transform:rotate(45deg);background:var(--rarity,var(--rarity-0))}.slot-head{left:calc(50% - 38px);top:48px}.slot-weapon{left:6%;top:133px}.slot-armor{right:6%;top:133px}.slot-charm{left:6%;top:248px}.slot-feet{right:6%;top:248px}.paperdoll-note{position:absolute;left:8px;right:8px;bottom:11px;text-align:center;font-size:var(--fs-micro);color:var(--c-text-3)}.character-side{display:flex;flex-direction:column;gap:14px;min-width:0}.character-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);background:#211e17;padding:12px 0}.character-stats>div{display:grid;grid-template-columns:1fr;text-align:center;border-right:1px solid var(--line-soft)}.character-stats>div:last-child{border:0}.character-stats .engraving{width:25px;height:25px;margin:auto;opacity:.9}.character-stats strong{font:21px var(--font-display);margin-top:4px}.character-stats span:not(.engraving){font-size:var(--fs-micro);color:var(--muted);margin-top:3px}.supplies-strip{display:flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--line-soft);font-size:var(--fs-small);color:var(--muted)}.supplies-strip .engraving{width:25px;height:25px}.supplies-strip .engraving:nth-of-type(2){margin-left:auto}
/* Grids show what a thing is; details show what it does. */
.collection-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(240px,1fr);gap:24px;align-items:start}.collection-main{min-width:0}.filter-row{display:flex;gap:7px;margin-bottom:17px;border-bottom:1px solid var(--line);padding-bottom:9px}.filter-row button{min-height:44px;padding:8px 13px;font-size:var(--fs-small);background:transparent;border:1px solid transparent;border-radius:3px;color:var(--muted)}.filter-row button.active{background:var(--btn-active-bg);border-color:var(--c-gold);color:var(--btn-active-text);box-shadow:var(--btn-active-ring)}.filter-row button:hover{color:var(--ink)}.item-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.item-tile{aspect-ratio:.87;min-width:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 4px;background:radial-gradient(ellipse at 50% 35%,#75644422,transparent 74%),linear-gradient(130deg,#28251e,#1b1915);border:1px solid #594b33;border-bottom:2px solid var(--rarity,#574832);border-radius:3px;box-shadow:inset 0 0 0 3px #11100d55}.item-tile .engraving{height:54%;width:70%;max-width:60px;max-height:62px}.tile-name{font-size:var(--fs-micro);line-height:1.25;text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--rarity,var(--ink));min-height:22px;padding:0 2px}.item-tile.selected{outline:1px solid var(--gold-bright);outline-offset:2px;background:radial-gradient(ellipse,#81653633,transparent),#31291b}.item-tile:hover{border-color:#b0945d}.tile-equipped{position:absolute;right:4px;top:4px;font-size:var(--fs-small);color:var(--c-gold-bright)}.rarity-dot{position:absolute;left:6px;top:6px;height:4px;width:4px;background:var(--rarity,#ad9a72);transform:rotate(45deg)}.empty-tile{border:1px dashed #48402e;background:#15141066;aspect-ratio:.94;color:#4e4533;font:var(--fs-heading) var(--font-display)}.collection-note{margin-top:15px;font-size:10px}.item-detail{border:1px solid var(--panel-border);border-radius:var(--radius-md);background:var(--panel-bg);padding:18px;position:relative;min-width:0;box-shadow:var(--panel-inset)}.item-detail:before{content:'';position:absolute;top:-1px;left:18px;width:35px;height:2px;background:var(--rarity,#ad8e55)}.item-detail>.empty-state{border:0;padding:8px 0;align-items:flex-start}.item-detail>.empty-state .engraving{width:32px;height:36px}.detail-heading{display:flex;gap:13px;align-items:center}.detail-art{width:64px;height:68px;padding:6px;background:#15140f99;border:1px solid #76603b6b;border-radius:3px}.detail-heading h3{font-size:23px;line-height:1.15;margin:3px 0 6px}.detail-heading .small-label{font-size:var(--fs-micro)}.detail-description{font-size:var(--fs-small);line-height:1.65;color:var(--c-text-2);margin-top:15px}.item-stats{display:flex;flex-direction:column;gap:0;margin-top:13px}.item-stat{display:flex;align-items:center;gap:7px;min-height:29px;font-size:var(--fs-small)}.item-stat>.engraving{width:20px;height:20px;opacity:.8}.item-stat>span:not(.engraving){color:var(--c-text-2)}.item-stat strong{margin-left:auto;font-size:var(--fs-body);font-weight:400}.item-stat small{min-width:27px;font-size:10px;text-align:right}.stat-up{color:#90c9a4}.stat-down{color:#e59688}.comparison-note{font-size:var(--fs-micro);color:var(--c-text-3);line-height:1.5;margin-top:6px}.detail-value{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--muted);border-top:1px solid #74603940;padding-top:13px;margin-top:16px}.detail-value strong{font-size:12px;font-weight:400;color:var(--gold-bright);font-variant-numeric:tabular-nums}.detail-actions{display:flex;flex-direction:column;gap:8px;margin-top:16px}.detail-actions .button{width:100%;min-height:46px;font-size:12px}.equipped-note{font-size:10px;color:#ceb983;margin-top:12px}
/* Brann's goods are purchased once, then selected from the chest. */
.merchant-banner{display:flex;align-items:center;gap:22px;position:relative;min-height:161px;margin-bottom:20px;padding:14px 38px 14px 152px;border:1px solid var(--panel-border);border-radius:var(--radius-md);background:radial-gradient(ellipse at 5% 70%,#8a68332b,transparent 60%),linear-gradient(100deg,#2b251a,#191814);overflow:hidden;box-shadow:inset 0 0 0 4px #2f261b55}.merchant-banner h1{font-size:32px;margin-top:7px}.merchant-banner p{font:italic 14px/1.5 var(--font-display);color:var(--c-text-2);margin-top:10px}.merchant-portrait{position:absolute;bottom:-6px;left:12px;width:131px;height:156px;filter:drop-shadow(0 5px 5px #0005)}.merchant-portrait svg{height:100%;width:100%}.merchant-seal{position:absolute;right:20px;top:20px;padding:6px 11px;border:1px solid #6b532b99;border-radius:50%;font:18px var(--font-display);color:#876b3e;transform:rotate(13deg)}.shop-filters{margin-bottom:20px}.shop-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.shop-card{padding:15px;min-width:0;border:1px solid var(--panel-border);border-radius:var(--radius-md);background:radial-gradient(ellipse at 50% 10%,#725b3330,transparent 65%),#211d17;display:flex;flex-direction:column;position:relative;box-shadow:inset 0 0 0 3px #8b713311}.shop-item-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:4px}.shop-item-heading .engraving{height:66px;width:66px;margin-bottom:9px}.shop-item-heading .rarity-label{font-size:var(--fs-micro);margin-top:4px}.shop-card h3{font-size:21px;line-height:1.15;min-height:45px;color:var(--c-text)}.shop-card .item-description{font-size:10px;line-height:1.5;color:var(--c-text-2);min-height:44px;margin-top:7px}.shop-card .item-stats{margin-top:8px;min-height:32px;margin-bottom:15px}.shop-card>.button{margin-top:auto;width:100%;padding:10px 11px;justify-content:space-between;gap:5px;min-height:46px;font-size:var(--fs-small)}.shop-card>.button strong{font-size:12px;font-weight:400;white-space:nowrap}.shop-card>.button:disabled{opacity:.72;color:var(--c-text-2);background:#272219}.shop-note{font-size:10px;padding:17px 0 0}.wallet-flash{animation:wallet-receipt .7s ease-out}.sound-toggle[aria-pressed="false"]{opacity:.5}.sound-toggle[aria-pressed="false"]:not(.button){text-decoration:line-through}

/* The dungeon occupies the real viewport; its controls never scroll. */
body.is-playing{overflow:hidden;height:100dvh}.game-screen{height:100dvh;min-height:0;width:100%;position:relative;overflow:hidden;background:#070b09;touch-action:none;user-select:none;-webkit-user-select:none}#game-canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none}.game-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px #0306056b;z-index:1}.game-hud{position:absolute;z-index:3;left:max(22px,env(safe-area-inset-left));right:max(22px,env(safe-area-inset-right));top:max(20px,env(safe-area-inset-top));display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;pointer-events:none}.vitals{width:225px;max-width:100%;filter:drop-shadow(0 2px 5px #000)}.character-tag{display:flex;gap:10px;align-items:center;margin-bottom:9px}.character-tag>span:first-child{font-family:var(--font-display);font-size:20px;color:var(--c-text)}.character-tag>span:last-child{font-size:10px;color:var(--c-text-2);white-space:nowrap}.meter{position:relative;height:16px;background:#161713e6;border:1px solid #65675370;border-radius:2px;overflow:hidden}.meter-fill{height:100%;transition:width var(--dur-fast) linear;width:100%}.health-meter .meter-fill{background:var(--c-hp-fill)}.meter>span{position:absolute;inset:0;text-align:center;font-size:var(--fs-micro);font-weight:700;line-height:14px;text-shadow:0 1px 3px #000;font-variant-numeric:tabular-nums}.meter small{position:absolute;right:4px;top:3px;font-size:var(--fs-micro);letter-spacing:.7px;opacity:.7}.run-clock{text-align:center;filter:drop-shadow(0 2px 5px #000)}.portal-status{font-size:var(--fs-micro);letter-spacing:var(--ls-overline);color:#b7bea1}.portal-status.active{color:#96dcc4}.run-clock>strong{font-family:var(--font-display);display:block;font-size:36px;font-weight:400;line-height:1.25;letter-spacing:1px;font-variant-numeric:tabular-nums}.run-clock>strong.urgent{color:#e4987a}.run-clock>span:last-child{font-size:10px;color:#a7b197;display:block}.game-resources{justify-self:end;display:flex;gap:20px;align-items:flex-start;pointer-events:auto}.resource-line{display:flex;align-items:center;gap:5px;height:40px;text-shadow:0 2px 5px #000}.gold-symbol{color:var(--gold);font-size:21px}.resource-line strong{font-size:20px;font-weight:500}.resource-line small{font-size:var(--fs-micro);color:var(--gold)}.hud-actions{display:flex;gap:7px}.hud-actions button{height:var(--touch-min);min-width:var(--touch-min);border-radius:var(--radius-md);font-size:20px;display:flex;align-items:center;justify-content:center;gap:5px}.hud-actions button small{font-size:10px;padding-right:5px;color:#c3c6ac}.hud-actions button:hover{border-color:var(--panel-hover-border)}.desktop-controls{position:absolute;z-index:2;bottom:max(21px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:15px;white-space:nowrap;color:#c6cdb7;text-shadow:0 1px 3px #000;font-size:var(--fs-micro);pointer-events:none}.desktop-controls>span{display:flex;align-items:center;gap:4px}kbd{font:700 var(--fs-micro) var(--font-ui);padding:3px 4px;background:var(--surface-row);border:1px solid var(--c-bronze-soft);border-bottom:2px solid var(--c-bronze-soft);border-radius:var(--radius-sm);color:var(--c-text)}.game-bottom-info{position:absolute;bottom:58px;left:22px;right:22px;display:flex;justify-content:space-between;z-index:2;pointer-events:none;font-size:var(--fs-micro);letter-spacing:1px;color:#8a9980}.touch-controls{display:none;position:absolute;z-index:4;inset:0;pointer-events:none}.touch-controls button{touch-action:none;user-select:none;-webkit-user-select:none}#stick-zone{position:absolute;left:max(24px,env(safe-area-inset-left));bottom:max(37px,calc(env(safe-area-inset-bottom) + 18px));width:142px;height:142px;border-radius:50%;pointer-events:auto;touch-action:none}.stick-ring{position:absolute;inset:6px;border-radius:50%;border:1px solid #c4ae8a65;background:radial-gradient(circle,transparent 38%,#120e0a75 40%,#120e0a44 63%,#d7c09d15 65%);box-shadow:0 4px 24px #0003}.stick-ring:before,.stick-ring:after{content:'';position:absolute;background:#aac29640}.stick-ring:before{width:1px;height:16px;top:5px;left:50%}.stick-ring:after{width:16px;height:1px;left:5px;top:50%}#stick-knob{position:absolute;left:calc(50% - 26px);top:calc(50% - 26px);height:52px;width:52px;background:radial-gradient(circle at 40% 35%,#7d6d55bd,#3f3427a8);border:1px solid #c9b18a8c;box-shadow:0 5px 15px #0005,inset 0 1px 7px #f0e0c012;border-radius:50%;pointer-events:none}#stick-zone>span{position:absolute;bottom:-15px;width:100%;font-size:var(--fs-micro);letter-spacing:1.5px;text-align:center;color:#a3b49780}.action-cluster{position:absolute;right:max(22px,env(safe-area-inset-right));bottom:max(28px,calc(env(safe-area-inset-bottom) + 14px));height:210px;width:240px;pointer-events:none}.action-button{position:absolute;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:50%;background:#231f18cf;border:1px solid #ad95728c;box-shadow:0 3px 10px #0004,inset 0 0 8px #e6c88212;pointer-events:auto}.action-button>span{font-size:25px;line-height:1.2}.action-button>small{font-size:var(--fs-micro);margin-top:4px;letter-spacing:.4px}.action-button:active,.action-button.pressed{border-color:var(--c-gold-bright);translate:0 1px;filter:var(--btn-press-filter)}.attack-action{right:0;bottom:26px;width:82px;height:82px;border-color:#ceb379bb;background:#504831df;color:#f4e4b5}.attack-action>span{font-size:33px}.attack-action>small{font-size:var(--fs-micro)}.dodge-action{right:91px;bottom:0;width:66px;height:66px}.skill-action{right:85px;bottom:78px;width:66px;height:66px;color:#b6ddcc}.heal-action{right:169px;bottom:58px;width:57px;height:57px;color:#d2a88e}.heal-action>span{font-size:var(--fs-heading)}.heal-action small{font-size:var(--fs-micro)}.heal-action b{font-size:var(--fs-micro)}.interact-action{right:0;bottom:123px;width:64px;height:64px;border-radius:17px;color:#d7c499;border-color:#d7bc7480}.interact-action>small{font-size:var(--fs-micro)}.interact-action.available{box-shadow:0 0 15px #e0c2833f;background:#514d30d9}.cooldown-text{position:absolute;inset:0;border-radius:inherit;display:grid;place-items:center;background:#0b0907d9;font-size:24px;font-weight:400;font-variant-numeric:tabular-nums}.cooldown-text:empty{display:none}


/* Run menus leave a clear route back to the live dungeon. */
.modal-overlay{position:fixed;inset:0;z-index:var(--z-modal);animation:cr-exit var(--dur-enter) var(--ease-out) reverse both;background:#050403c9;backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.modal{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius-md);padding:25px;width:100%;max-width:620px;box-shadow:var(--shadow-panel),var(--panel-inset);animation:cr-enter var(--dur-enter) var(--ease-out) both;max-height:100%;overflow:auto;scrollbar-width:thin;scrollbar-color:#6b5838 #1a1711}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:11px}.modal h2{font-size:28px;margin-top:4px}.modal h2>small{font:var(--fs-small) var(--font-ui);color:var(--muted);margin-left:6px;white-space:nowrap}.inventory-modal{max-width:850px;max-height:90dvh}.inventory-warning{display:flex;align-items:center;gap:7px;color:var(--c-danger-text);font-size:10px;padding-bottom:11px}.inventory-warning .status-dot{background:#b9674d;box-shadow:0 0 8px #ce743a50}.inventory-tabs{display:flex;border-bottom:1px solid var(--line);gap:8px;margin:0 0 18px}.inventory-tabs button{min-height:44px;flex:1;max-width:180px;background:transparent;color:var(--muted);font-size:12px;border-bottom:2px solid transparent}.inventory-tabs button.active{color:var(--btn-active-text);border-bottom-color:var(--c-gold);background:var(--btn-active-bg)}.inventory-subhead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;font-size:var(--fs-small);color:var(--muted)}.inventory-subhead>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inventory-subhead .small-label{white-space:nowrap;font-size:var(--fs-micro)}.inventory-modal .collection-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px}.bag-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.inventory-modal>.full-width{margin-top:19px}.pause-modal{max-width:430px;text-align:center}.pause-modal>.intro{margin:12px 0 22px;color:var(--muted);font-size:12px;line-height:1.6}.pause-options{display:flex;gap:10px;margin:11px 0 21px}.pause-options .button{flex:1;font-size:12px;font-weight:400}.pause-modal .panel-note{font-size:10px}.pause-modal>.panel-note{margin-bottom:13px}.pause-modal>.risk-note{margin-top:6px}.loot-panel{position:fixed;z-index:var(--z-panel);animation:cr-enter var(--dur-enter) var(--ease-out) both;right:max(16px,env(safe-area-inset-right));top:max(115px,calc(env(safe-area-inset-top) + 100px));width:310px;max-width:calc(100vw - 36px);max-height:290px;display:flex;flex-direction:column;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius-md);box-shadow:var(--shadow-panel),var(--panel-inset);pointer-events:auto;overflow:hidden}.loot-panel>header{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:9px 9px 7px 13px;border-bottom:1px solid #6d583633;flex-shrink:0}.loot-panel .eyebrow{font-size:var(--fs-micro);letter-spacing:var(--ls-overline)}.loot-panel h2{font-size:19px;line-height:1.2;margin-top:3px}.loot-panel .icon-button{width:44px;height:44px;min-width:44px;background:transparent;border:0;font-size:27px}.loot-list{overflow:auto;min-height:0;flex:1;padding:5px 8px;scrollbar-width:thin;scrollbar-color:#7c663c transparent}.loot-row{display:flex;align-items:center;gap:9px;min-height:57px;padding:3px 1px;border-bottom:1px solid #b18b4230}.loot-row:last-child{border:0}.loot-row>.engraving{width:39px;height:43px;background:#4e3b202b;border:1px solid #977c4530;border-radius:2px}.loot-row>div{flex:1;min-width:0}.loot-row .item-name{font-size:var(--fs-small);line-height:1.3;font-weight:400}.loot-row>div>span{font-size:var(--fs-micro);color:#ac9a77;display:block;margin-top:3px}.loot-take{width:44px;min-width:44px;min-height:44px;background:#58462677;border:1px solid #8c704444;font:24px var(--font-display);color:var(--c-gold-bright);border-radius:3px}.loot-panel>footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-top:1px solid #90703e55;background:#1a1712;flex-shrink:0}.loot-panel>footer>span{font-size:var(--fs-micro);color:var(--c-text-2)}.loot-panel .mini-button{min-height:44px;padding:8px 12px;font-size:10px}.loot-panel .panel-note{padding:10px}.result-screen{display:flex;align-items:center;justify-content:center;padding:35px 20px;background:radial-gradient(ellipse at 50% 30%,#6f673044,transparent 65%),#151410}.result-screen.failure{background:radial-gradient(ellipse at 50% 30%,#702d2355,transparent 65%),#151210}.result-card{width:100%;max-width:620px;text-align:center}.result-symbol{font:64px var(--font-display);color:var(--c-gold);margin-bottom:19px}.failure .result-symbol{color:#bd7059}.result-card h1{font-size:38px;letter-spacing:-1px;margin:16px 0 13px}.intro{color:var(--muted);font-size:var(--fs-body);line-height:1.7}.result-stats{display:flex;justify-content:space-around;gap:10px;padding:24px 0;margin:26px 0 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.result-stats strong{font:31px var(--font-display);font-variant-numeric:tabular-nums}.result-stats span{display:block;font-size:var(--fs-micro);letter-spacing:1px;margin-top:7px;color:var(--muted)}.result-loot{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin-bottom:17px;max-height:225px;overflow:auto}.loot-chip{display:flex;align-items:center;gap:6px;border:1px solid #645438;border-radius:3px;background:#332a1977;padding:5px 9px;font-size:10px;color:var(--rarity,var(--ink))}.loot-chip .engraving{width:28px;height:30px}.result-buttons{display:flex;gap:12px;margin-top:19px}.result-buttons .button{flex:1}.result-card>.risk-note{margin-top:13px}.toast-stack{position:fixed;z-index:50;top:max(82px,calc(env(safe-area-inset-top) + 70px));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 36px);display:flex;flex-direction:column;align-items:center;gap:7px;pointer-events:none}.toast{background:#272216f5;border:1px solid #ac8e51;border-radius:3px;padding:12px 16px;font-size:12px;color:#e1cfaa;box-shadow:0 5px 20px #0006;animation:toast-in .18s ease-out;text-align:center;max-width:100%}.toast.danger,.toast.error,.toast.bad{background:#40241ff5;border-color:#985e4d;color:#f0c1a7}.toast.success,.toast.good{border-color:#9ba46c}.toast.warning{border-color:#ba9d5c}.toast.leaving{opacity:0;transform:translateY(-7px);transition:.2s}.run-gold{display:flex;align-items:center;gap:4px;color:var(--c-gold);font-size:12px;white-space:nowrap;padding-top:3px;font-variant-numeric:tabular-nums}.run-gold>span:first-child{font-size:var(--fs-title)}.run-gold small{font-size:var(--fs-micro);letter-spacing:.6px}.game-hud .game-resources{display:grid;grid-template-columns:auto auto;gap:0 12px;align-items:center}.game-resources .resource-line{grid-column:1;grid-row:1}.game-resources .run-gold{grid-column:1;grid-row:2}.game-resources .hud-actions{grid-column:2;grid-row:1/3}.action-button{background:#231f18cf;border-color:#ad95728c}.attack-action{background:#57462ce8;color:var(--c-gold-bright);border-color:#c3a362}.skill-action{color:#bcc6d2}.heal-action{color:#dab08b}.interact-action.available{background:#5b482cd9;box-shadow:0 0 15px #dcb9672f}.character-tag>span:first-child{color:var(--c-text)}.health-meter .meter-fill{background:var(--c-hp-fill)}
@keyframes portal-breathe{0%,100%{opacity:.55}50%{opacity:1}}@keyframes wallet-receipt{0%{box-shadow:0 0 0 4px #d7b46e70;background:#736034}100%{box-shadow:0 0 0 0 transparent}}@keyframes toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
/* Perf (CR-20261007-106): on touch devices a run menu no longer blurs the live game behind it (a full-screen backdrop blur at device resolution, every frame). The scrim is a little denser instead (79 % → 84 %), so menus read the same; desktop keeps the blur. */
@media(pointer:coarse){body.is-playing .modal-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#050403d6}body.is-playing .modal-overlay.trial-choice-overlay{background-color:#09080bd4}}


@media(max-width:1050px){.hub-screen{padding-left:22px;padding-right:22px}.camp-content{padding:23px 0}.departure-layout{gap:26px;grid-template-columns:.95fr 1.1fr}.expedition-scene{min-height:424px}.scene-caption h1{font-size:25px}.class-card{padding:12px 8px;gap:5px}.class-copy strong{font-size:17px}.class-icon{width:38px}.shop-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.item-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.character-layout{gap:18px}.game-resources{gap:10px}.desktop-controls{gap:8px}.desktop-controls>span{gap:3px}}
@media(max-width:700px){
  .hub-screen{padding:0;height:100dvh}.masthead{height:68px;min-height:68px;padding:0 max(15px,env(safe-area-inset-right)) 0 max(15px,env(safe-area-inset-left))}.brand{font-size:19px;gap:8px;letter-spacing:1.6px}.brand-mark{font-size:30px}.brand small{font-size:var(--fs-micro);letter-spacing:1.65px}.mast-actions{gap:8px}.mast-actions .icon-button{border:0;background:transparent}.gold-balance{padding:5px 8px;gap:3px}.gold-balance strong{font-size:19px}.gold-balance small{display:none}.gold-balance>span{font-size:var(--fs-title)}.camp-nav{order:3;min-height:70px;padding:4px max(7px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left));gap:4px;background:linear-gradient(#242018,#151410);border-top:1px solid #685331;border-bottom:0;box-shadow:0 -6px 20px #0003;z-index:2}.camp-nav button{min-height:57px;flex-direction:column;gap:1px;font-size:10px;max-width:none}.camp-nav button>span>.engraving{height:28px;width:28px}.camp-nav button.active{border:1px solid #96794755;background:linear-gradient(#73552820,#96713616)}.camp-nav button.active:after{top:-5px;bottom:auto;left:27%;right:27%}.camp-nav small{font-size:var(--fs-micro)}.camp-content{order:2;padding:16px max(15px,env(safe-area-inset-right)) 18px max(15px,env(safe-area-inset-left));overscroll-behavior:contain}.hub-footer{display:none}.departure-layout{display:flex;flex-direction:column;gap:17px}.expedition-scene{width:100%;min-height:125px;height:125px;align-self:auto}.scene-arch{left:78%;top:14px;width:78px;height:108px;border-width:10px;opacity:.65;box-shadow:0 0 0 1px #8d80574f,0 0 0 6px #2c2d2199}.scene-portal{inset:13px 6px 0}.scene-portal:after{font-size:24px}.scene-stones{opacity:.6}.scene-caption{left:15px;top:25px;right:90px;bottom:auto;text-align:left}.scene-caption .eyebrow{font-size:var(--fs-micro);letter-spacing:var(--ls-overline)}.scene-caption h1{font-size:25px;line-height:1.05;margin:8px 0}.scene-caption p{font-size:10px;line-height:1.4}.scene-seal{display:none}.expedition-prep{width:100%}.section-heading{margin-bottom:13px;gap:6px}.section-heading h1{font-size:27px}.section-heading h2{font-size:21px}.expedition-prep>.section-heading .eyebrow{display:none}.expedition-prep>.section-heading h2{margin-top:0;font-size:21px}.expedition-prep>.section-heading>.small-label{font-size:var(--fs-micro)}.class-list{gap:8px}.class-card{min-height:72px;padding:9px 8px;gap:8px}.class-icon{width:36px;height:43px}.class-copy strong{font-size:18px}.class-copy small{font-size:var(--fs-micro);margin-top:6px}.departure-loadout{margin-top:12px;padding:8px 0}.departure-loadout strong{font-size:var(--fs-small);line-height:1.35;max-width:205px}.departure-loadout .small-label{font-size:var(--fs-micro)}.departure-loadout .text-button{font-size:10px;padding:5px}.run-settings{margin:10px 0}.run-settings>.small-label{font-size:var(--fs-micro)}.run-settings .segmented{width:68%}.segmented button{font-size:10px;padding:7px 10px}.expedition-launch .start-button{font-size:19px}.expedition-launch .risk-note{font-size:var(--fs-micro);margin-top:7px}.camp-ledger{margin-top:17px;padding:17px 0;gap:14px;font-size:var(--fs-micro)}.camp-ledger>span{display:none}.camp-ledger strong{font-size:17px;margin-right:3px}.how-to summary{font-size:10px}.how-to p{font-size:10px}.character-layout{display:flex;flex-direction:column;gap:14px}.character-board{width:100%;height:339px}.character-board:before{height:240px;top:61px;width:195px}.character-figure{height:226px;width:136px;top:88px}.character-caption{top:12px;left:12px;right:12px}.character-caption .eyebrow{font-size:var(--fs-micro);letter-spacing:var(--ls-overline)}.character-caption>span:last-child{font-size:var(--fs-micro)}.equipment-slot{width:66px;height:72px}.equipment-slot .engraving{width:39px;height:43px}.slot-label{font-size:var(--fs-micro)}.slot-head{top:43px;left:calc(50% - 33px)}.slot-weapon{top:119px;left:6%}.slot-armor{top:119px;right:6%}.slot-charm{top:219px;left:6%}.slot-feet{top:219px;right:6%}.paperdoll-note{font-size:var(--fs-micro);bottom:10px}.character-side{width:100%;gap:12px}.character-stats{padding:9px 0}.character-stats strong{font-size:20px}.character-stats .engraving{width:22px;height:22px}.character-stats span:not(.engraving){font-size:var(--fs-micro)}.collection-layout{display:flex;flex-direction:column;gap:16px}.collection-main,.collection-layout>.item-detail{width:100%}.filter-row{gap:4px;padding-bottom:8px;margin-bottom:14px}.filter-row button{font-size:10px;padding:8px 11px;flex:1;min-width:0;white-space:nowrap}.item-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.item-tile{aspect-ratio:.86;padding:7px 3px}.tile-name{font-size:var(--fs-micro);min-height:22px}.item-detail{padding:16px}.detail-heading h3{font-size:23px}.detail-actions{flex-direction:row}.detail-actions .button{flex:1;font-size:var(--fs-small);padding:10px 8px}.item-detail>.empty-state{min-height:75px}.empty-state strong{font-size:19px}.collection-note{font-size:var(--fs-micro);margin-top:13px}.merchant-banner{min-height:130px;margin-bottom:13px;padding:13px 12px 13px 106px}.merchant-portrait{left:-3px;width:112px;height:135px}.merchant-banner .eyebrow{font-size:var(--fs-micro);letter-spacing:var(--ls-overline);line-height:1.5}.merchant-banner h1{font-size:25px;margin-top:6px;line-height:1.05;max-width:185px}.merchant-banner p{font-size:var(--fs-small);line-height:1.4;margin-top:8px}.merchant-seal{display:none}.shop-filters{margin-bottom:14px}.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shop-card{padding:12px}.shop-item-heading .engraving{height:56px;width:56px}.shop-item-heading .rarity-label{font-size:var(--fs-micro);letter-spacing:0;max-width:56px;overflow-wrap:anywhere;text-align:right}.shop-card h3{font-size:20px;min-height:42px}.shop-card .item-description{font-size:var(--fs-micro);min-height:41px;line-height:1.55}.shop-card .item-stats{margin:8px 0 12px;min-height:25px}.shop-card .item-stat{font-size:10px}.shop-card .item-stat strong{font-size:12px}.shop-card>.button{font-size:10px;padding:9px;min-height:46px}.shop-card>.button strong{font-size:var(--fs-small)}.shop-note{font-size:var(--fs-micro);line-height:1.6}.modal-overlay{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.modal{padding:18px}.inventory-modal{max-height:90dvh;padding:17px}.modal h2{font-size:25px}.modal h2>small{font-size:10px}.modal-header{gap:7px}.modal .eyebrow{font-size:var(--fs-micro)}.inventory-tabs{margin-bottom:14px}.inventory-modal .collection-layout{display:flex;gap:16px}.inventory-subhead{margin-bottom:10px;font-size:10px}.inventory-modal .item-grid{gap:7px}.inventory-modal .item-tile{aspect-ratio:.97}.inventory-modal .tile-name{font-size:var(--fs-micro);min-height:20px}.inventory-modal .item-detail{padding:13px}.inventory-modal .detail-heading h3{font-size:21px}.inventory-modal .detail-art{width:52px;height:58px}.inventory-modal .detail-description{margin-top:10px;font-size:10px}.inventory-modal .item-stats{margin-top:8px}.inventory-modal .detail-value{padding-top:10px;margin-top:10px}.inventory-modal .detail-actions{margin-top:12px}.inventory-modal>.full-width{margin-top:15px}.inventory-modal .character-board{height:310px}.inventory-modal .character-figure{height:204px;width:123px;top:86px}.inventory-modal .slot-charm,.inventory-modal .slot-feet{top:207px}.inventory-modal .paperdoll-note{bottom:9px;font-size:var(--fs-micro)}.inventory-modal .equipment-slot{height:66px;width:60px}.inventory-modal .slot-head{left:calc(50% - 30px)}.inventory-modal .slot-weapon,.inventory-modal .slot-armor{top:116px}.inventory-modal .equipment-slot .engraving{width:34px;height:37px}.loot-panel{right:max(11px,env(safe-area-inset-right));top:max(116px,calc(env(safe-area-inset-top) + 108px));width:285px;max-height:270px;max-width:calc(100vw - 34px)}.result-card h1{font-size:33px}.result-buttons>.button{padding:12px;font-size:12px}.result-card>.intro{font-size:12px}.result-stats strong{font-size:28px}.result-stats span{font-size:var(--fs-micro);letter-spacing:.5px}.result-symbol{font-size:54px}.toast{font-size:var(--fs-small);padding:10px 13px}.toast-stack{top:max(80px,calc(env(safe-area-inset-top) + 73px))}
}
/* Combat retains its tested thumb geometry and unobtrusive edge feedback. */
@media(max-width:760px),(pointer:coarse){.touch-controls{display:block}.desktop-controls{display:none}.game-bottom-info{bottom:8px;left:14px;right:14px;font-size:var(--fs-micro);opacity:.65}.game-hud{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));top:max(12px,env(safe-area-inset-top));grid-template-columns:1fr 90px 1fr;gap:8px}.vitals{width:200px}.character-tag{margin-bottom:5px;gap:5px}.character-tag>span:first-child{font-size:var(--fs-title)}.character-tag>span:last-child{font-size:var(--fs-micro);max-width:100px;overflow:hidden;text-overflow:ellipsis}.run-clock>strong{font-size:28px}.portal-status{font-size:var(--fs-micro);letter-spacing:1px}.run-clock>span:last-child{font-size:var(--fs-micro);line-height:1.3}.game-hud .game-resources{display:flex;gap:3px;flex-direction:column;align-items:flex-end}.resource-line{height:18px;gap:3px}.resource-line strong{font-size:14px}.resource-line small{font-size:var(--fs-micro)}.gold-symbol{font-size:14px}.run-gold{font-size:10px;line-height:12px;padding-top:0;gap:3px}.run-gold>span:first-child{font-size:12px}.run-gold small{font-size:var(--fs-micro)}.hud-actions{gap:5px}.hud-actions button{height:44px;min-width:44px;font-size:var(--fs-title)}.hud-actions button small{font-size:var(--fs-micro);padding-right:3px}}
@media(max-width:460px){.game-hud{grid-template-columns:minmax(0,1fr) 74px minmax(0,1fr);gap:5px;left:10px;right:10px}.character-tag{display:block;margin-bottom:5px}.character-tag>span:first-child{display:block;font-size:var(--fs-title)}.character-tag>span:last-child{display:block;font-size:var(--fs-micro);max-width:116px;margin-top:2px}.meter{height:13px}.meter>span{font-size:var(--fs-micro);line-height:11px}.meter small{font-size:var(--fs-micro);top:3px}.run-clock{padding-top:3px}.run-clock>strong{font-size:26px}.portal-status{font-size:var(--fs-micro);letter-spacing:.5px}.hud-actions{gap:4px}.hud-actions button small{font-size:var(--fs-micro)}.action-cluster{right:12px;bottom:max(29px,calc(env(safe-area-inset-bottom) + 14px));transform:scale(.88);transform-origin:right bottom}.game-resources .resource-line small{display:none}.loot-panel{width:270px}.brand{font-size:18px}.camp-content{padding-left:14px;padding-right:14px}.class-copy strong{font-size:17px}}
@media(max-width:360px){.brand small{letter-spacing:1.3px;font-size:var(--fs-micro)}.brand{font-size:var(--fs-title);gap:6px}.brand-mark{font-size:27px}.mast-actions{gap:2px}.gold-balance{padding:4px 5px}.gold-balance strong{font-size:17px}.masthead{padding-left:12px;padding-right:8px}.camp-content{padding:12px}.camp-nav{gap:1px}.scene-caption{left:12px;right:80px}.scene-caption h1{font-size:var(--fs-heading)}.scene-caption .eyebrow{font-size:var(--fs-micro)}.expedition-scene{min-height:110px;height:110px}.scene-caption{top:20px}.departure-layout{gap:13px}.class-card{gap:4px;padding:8px 5px;min-height:67px}.class-icon{width:32px;height:38px}.class-copy strong{font-size:15px}.class-copy small{font-size:var(--fs-micro)}.departure-loadout strong{max-width:172px;font-size:10px}.shop-card{padding:9px}.shop-card h3{font-size:18px}.shop-card>.button{padding:8px 6px;font-size:var(--fs-micro)}.shop-card>.button strong{font-size:10px}.shop-item-heading .engraving{width:45px}.merchant-banner{padding-left:90px}.merchant-portrait{left:-13px;width:104px}.merchant-banner h1{font-size:var(--fs-heading)}.filter-row button{padding:7px;font-size:var(--fs-micro)}.item-grid{gap:6px}.tile-name{font-size:var(--fs-micro)}.detail-heading h3{font-size:21px}.detail-art{width:54px;height:61px}.game-hud{grid-template-columns:minmax(0,1fr) 65px minmax(0,1fr);gap:4px}.hud-actions{gap:2px}.hud-actions button{min-width:44px}.hud-actions button small{font-size:var(--fs-micro)}.character-tag>span:first-child{font-size:14px}.run-clock>strong{font-size:24px}.action-cluster{right:8px;transform:scale(.78)}.inventory-modal{padding:13px}.modal-header h2{font-size:23px}.modal h2>small{font-size:var(--fs-micro)}.loot-panel{max-width:255px}.camp-ledger{gap:10px;font-size:var(--fs-micro)}}
@media(max-height:550px) and (orientation:landscape){.hub-screen{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}.masthead{height:58px;min-height:58px}.camp-nav{padding:4px 0;min-height:0}.camp-nav button{min-height:44px}.camp-nav button.active:after{bottom:-5px}.camp-content{padding:15px 0}.departure-layout{gap:22px}.expedition-scene{min-height:330px}.scene-arch{transform:translateX(-50%) scale(.75);transform-origin:top;top:22px}.scene-caption{bottom:20px}.class-card{min-height:65px;padding:8px}.class-icon{height:37px;width:33px}.class-copy strong{font-size:17px}.departure-loadout{margin-top:10px;padding:6px 0}.run-settings{margin:9px 0}.hub-footer{display:none}.game-hud{top:max(10px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));grid-template-columns:1fr 140px 1fr}.vitals{width:180px}.character-tag{display:flex;margin-bottom:4px}.character-tag>span:first-child{font-size:var(--fs-title)}.character-tag>span:last-child{font-size:var(--fs-micro)}.run-clock>strong{font-size:26px}.run-clock>span:last-child{display:none}.game-hud .game-resources{display:grid;grid-template-columns:auto auto;gap:0 12px}.resource-line{height:21px}.touch-controls{display:block}.desktop-controls{display:none}.action-cluster{transform:scale(.78);transform-origin:right bottom;bottom:max(14px,env(safe-area-inset-bottom));right:max(20px,env(safe-area-inset-right))}.game-bottom-info{bottom:8px;left:165px;right:230px;font-size:var(--fs-micro)}.modal-overlay{padding:10px}.modal{padding:16px 22px;max-height:calc(100dvh - 20px)}.inventory-modal .collection-layout{display:grid;grid-template-columns:1fr 1fr;gap:17px}.inventory-modal .character-layout{display:grid;grid-template-columns:1fr 1fr;gap:15px}.inventory-modal .character-board{height:315px}.inventory-modal .item-grid{gap:6px}.inventory-modal .item-tile{aspect-ratio:1.1}.inventory-modal .tile-name{font-size:var(--fs-micro)}.modal-header{margin-bottom:6px}.modal h2{font-size:24px}.inventory-warning{padding-bottom:6px;font-size:var(--fs-micro)}.inventory-tabs{margin-bottom:12px}.inventory-tabs button{min-height:44px}.inventory-modal .item-detail{padding:12px}.inventory-modal .detail-art{width:48px;height:51px}.inventory-modal .detail-heading h3{font-size:20px}.inventory-modal .detail-description{font-size:10px;margin-top:9px}.inventory-modal .detail-actions{margin-top:9px;flex-direction:row}.inventory-modal .detail-actions .button{padding:8px;font-size:10px}.inventory-modal .detail-value{margin-top:9px;padding-top:9px}.pause-modal>.intro{margin:8px 0 12px}.pause-options{margin:8px 0 12px}.pause-modal .panel-note{line-height:1.4;margin-bottom:6px}.pause-modal .risk-note{margin-top:3px}.pause-modal h2{font-size:25px}.result-screen{padding:24px}.result-symbol{display:none}.result-stats{margin:15px 0;padding:15px 0}.result-card h1{font-size:31px;margin:12px 0}.result-loot{margin-bottom:10px;max-height:130px}.loot-panel{right:240px;top:72px;width:265px;max-height:calc(100dvh - 95px)}.loot-panel>header{padding-top:5px;padding-bottom:3px}.loot-row{min-height:51px}.loot-panel>footer{padding:4px 9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.desktop-controls b{font-size:var(--fs-micro);font-weight:400;color:var(--gold);margin-left:2px}
@media(max-width:360px) and (orientation:portrait){#stick-zone{width:104px;height:104px;left:12px}.action-cluster{right:8px;transform:scale(.78)}.game-hud{grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr);gap:4px}.hud-actions{gap:3px}.hud-actions button{min-width:35px}.character-tag>span:first-child{font-size:15px}.run-clock>strong{font-size:25px}}

@media(pointer:coarse),(max-width:760px){.hud-actions button{min-width:44px;height:44px}.mast-actions .icon-button{width:44px;height:44px}.segmented button,.text-button,.mini-button{min-height:44px}}

.attack-action.is-aiming{border-color:#fff0b4;box-shadow:0 0 0 3px #edce8b35,0 0 28px #edce8b35;background:#655433}

#attack-knob{position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px;border:2px solid #dcfbf5;background:#8cb7a680;border-radius:50%;opacity:0;pointer-events:none;will-change:transform,opacity/* Perf (CR-20261007-106): own layer, controls.ts moves it per pointermove and .is-aiming only flips its opacity */}.attack-action.is-aiming #attack-knob{opacity:1}.attack-action.is-aiming>span{opacity:.25}.attack-action.is-aiming>small{position:relative;z-index:1}

/* Short notifications stay at the edge; channel progress is drawn in the game. */

.spell-status{display:flex;align-items:center;gap:5px;margin-top:5px;color:var(--spell-color,#c1aff2);font-size:var(--fs-micro);line-height:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.spell-status>span:last-child{overflow:hidden;text-overflow:ellipsis}
.game-feedback{width:225px;max-width:calc(100vw - 140px);margin-top:8px;pointer-events:none}

.game-feedback .toast-stack{position:static;top:auto;right:auto;bottom:auto;left:auto;transform:none;display:block;width:100%;max-width:none;margin-top:5px}
.game-feedback .toast{padding:5px 7px;border:0;border-left:2px solid #7d9571;border-radius:0;background:#0e1914d4;color:#bdc9b2;font-size:10px;line-height:14px;text-align:left;box-shadow:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;animation:none}
.game-feedback .toast.danger,.game-feedback .toast.error,.game-feedback .toast.bad{color:#e0ad96;border-left-color:#bb7b65;background:#281b15d4}
.game-feedback .toast.warning{border-left-color:#ba9d5c}

.heal-action.is-channeling{border-color:#d3edc3;background:#385233d9;box-shadow:0 0 0 2px #a6d5922a}
@media(pointer:coarse),(max-width:760px){
  .game-feedback{margin-top:7px}

  .game-feedback .toast{font-size:var(--fs-micro);line-height:13px}
  .run-clock>span:last-child{display:none}
  .run-clock.has-warning>span:last-child{display:block;color:var(--c-danger-text)}

  .spell-status{font-size:var(--fs-micro);line-height:11px;margin-top:4px}
}
@media(max-width:460px){
  .game-hud{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right))}
  .game-feedback{max-width:calc(100vw - 140px)}

}
@media(max-height:550px) and (orientation:landscape){
  .game-feedback{width:205px;margin-top:5px}

  .game-feedback .toast{font-size:var(--fs-micro);line-height:12px;padding:4px 7px}
  .spell-status{font-size:var(--fs-micro);line-height:10px;margin-top:3px}
  .character-tag{margin-bottom:4px}

}

/* Recovery feedback belongs to the attack control, never over the character. */
.attack-action.is-unavailable{border-color:#d18475;background:#522e2add;color:#ffc1ac;box-shadow:0 0 0 2px #cc75631c}
.attack-action.is-unavailable.is-aiming{border-color:#ef9c8b;background:#693b34;box-shadow:0 0 0 3px #df8a6f24,0 0 18px #b9523820}
.attack-action.is-unavailable #attack-knob{border-color:#ffd0c4;background:#bc736680}
.attack-action.is-unavailable>small{font-variant-numeric:tabular-nums;color:#ffd1c1}

/* Native browser gestures are disabled only while a run (including its menus) is open. */
body.is-playing{touch-action:none;overscroll-behavior:none;-webkit-touch-callout:none}
body.is-playing *,body.is-playing *::before,body.is-playing *::after{touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}

/* Actual health changes immediately; lost health lingers briefly as a gold segment. */
.health-trail{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--c-hp-trail);pointer-events:none;box-shadow:inset 1px 0 #fff1c4;transition:none}
.health-meter #hp-fill{position:relative;z-index:1;transition:none}
.health-meter>span,.health-meter>small{z-index:2}
.interact-action>small{max-width:56px;white-space:nowrap}

/* Lists in run menus can still scroll vertically without enabling zoom gestures. */


/* Floating movement stick: its origin is the current left-thumb press. */
/* Perf (CR-20261007-106): ring and knob are laid out once at the zone origin on their own small compositor layers, so a touch never re-rasters the full-screen HUD layer (before: once per pointermove). controls.ts anchors them with the translate property, which composes with ui-juice's scale exactly like the old left/top did; moving neither lays out nor re-rasters. Resting anchor = old --stick-x:72px/--stick-y:80%. */
#stick-zone{left:0;right:auto;top:0;bottom:0;width:45%;height:100%;border-radius:0}
#stick-zone .stick-ring{inset:auto;left:0;top:0;translate:12px calc(80dvh - 60px);width:120px;height:120px;pointer-events:none;opacity:0;will-change:transform,opacity}
#stick-zone #stick-knob{left:0;top:0;translate:46px calc(80dvh - 26px);opacity:0;will-change:transform,opacity}
#stick-zone.is-active .stick-ring,#stick-zone.is-active #stick-knob{opacity:1}
#stick-zone>span{bottom:26px;left:20px;width:auto;opacity:.5;pointer-events:none}
#stick-zone.is-active>span{opacity:0}

/* Visibility preferences stay inside the paused game menu. */
.visibility-setting{min-width:0;margin:0 0 19px;padding:0;border:0;text-align:left}
.visibility-setting>legend{margin-bottom:9px;padding:0}
.visibility-modes{width:100%}
.visibility-modes button{flex:1;min-width:0;min-height:44px;padding:10px 7px;font-size:var(--fs-small);letter-spacing:0}
.visibility-modes button.active{background:var(--btn-active-bg);color:var(--btn-active-text);box-shadow:var(--btn-active-ring)}
.visibility-setting>.panel-note{margin:8px 0 0;min-height:35px;font-size:10px;line-height:1.55}
@media(max-height:550px) and (orientation:landscape){.visibility-setting{margin-bottom:12px}.visibility-setting>legend{margin-bottom:6px}.visibility-setting>.panel-note{margin-top:6px;min-height:0}.visibility-modes button{min-height:44px}}

body.is-playing .loot-panel,body.is-playing .loot-list,body.is-playing .loot-list *{touch-action:pan-y}
/* The primary mobile action remains reachable while the preparation scrolls. */
@media(max-width:700px) and (orientation:portrait){
  .departure-panel{padding-bottom:98px}
  .expedition-launch{position:fixed;z-index:5;left:0;right:0;bottom:max(70px,calc(61px + env(safe-area-inset-bottom)));padding:10px max(15px,env(safe-area-inset-right)) 9px max(15px,env(safe-area-inset-left));background:linear-gradient(#211c14f5,#191610);border-top:1px solid #88704377;box-shadow:0 -6px 17px #0005}
  .expedition-launch .start-button{min-height:48px}
  .expedition-launch .risk-note{max-width:none;font-size:var(--fs-micro);line-height:1.3;margin-top:6px}
}
@media(max-width:700px) and (max-height:700px) and (orientation:portrait){
  .expedition-scene{height:88px;min-height:88px}
  .scene-caption{top:14px}
  .scene-caption h1{font-size:23px;margin:5px 0}
  .scene-arch{top:7px;height:92px;width:68px}
  .departure-layout{gap:13px}
  .class-card{min-height:65px;padding:7px}
  .expedition-prep>.section-heading{margin-bottom:10px}
  .expedition-prep>.section-heading h2{font-size:20px}
  .departure-loadout{margin-top:10px;padding:4px 0}
  .run-settings{margin:8px 0}
}
@media(max-width:700px) and (max-height:610px) and (orientation:portrait){
  .expedition-scene{display:none}
  .expedition-launch .risk-note{display:none}
  .departure-panel{padding-bottom:83px}
}
/* Keep the player and the movement area visible while choosing loot. */
@media(max-width:700px) and (orientation:portrait){
  .loot-panel{top:max(90px,calc(env(safe-area-inset-top) + 78px));max-height:min(240px,calc(50dvh - 120px))}
  .loot-panel>header{padding:4px 8px 4px 12px}
  .loot-panel>footer{padding:4px 9px}
}
@media(max-height:550px) and (orientation:landscape){
  .loot-panel{right:max(18px,env(safe-area-inset-right));width:265px;max-height:210px}
}
/* New item grids and slot details scroll under a thumb even during a live run. */
body.is-playing .modal,body.is-playing .modal *{touch-action:pan-y}
/* Run progression stays beside health; a new level never opens a menu on its own. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.xp-hud{display:flex;align-items:center;gap:7px;margin-top:5px;min-height:12px;color:var(--c-gold)}
#hud-level{font-size:var(--fs-micro);letter-spacing:.5px;line-height:1;white-space:nowrap}
.xp-meter{flex:1;min-width:0;height:4px;border:1px solid #a083444d;background:#15130ee8;overflow:hidden;box-shadow:0 1px 3px #0008}
.xp-meter>i{display:block;width:0;height:100%;background:linear-gradient(90deg,#816731,#dfbd6f);box-shadow:0 0 5px #d2a84950}
.level-up-button{pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:7px;width:100%;max-width:175px;min-height:44px;padding:6px 8px;margin-top:6px;background:linear-gradient(135deg,#5b451ee8,#362810ed);border:1px solid #e0bc6d;color:var(--c-gold-bright);border-radius:3px;box-shadow:inset 0 0 0 2px #eac97413,0 0 13px #d7a84935;animation:level-up-glow 1.8s ease-in-out infinite}
.level-up-button>.level-up-sigil{font-size:23px;line-height:1;color:var(--c-gold-bright)}
.level-up-button>span:last-child{display:flex;align-items:center;gap:7px;font-size:var(--fs-micro);letter-spacing:.6px}
.level-up-button b{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;background:#c4a15c;color:#221a0d;border-radius:2px;font-size:10px;font-weight:700}
.level-up-button:hover{background:linear-gradient(135deg,#785b2b,#4b381a)}
.level-up-overlay{z-index:var(--z-modal);background:#070502bc;backdrop-filter:blur(3px)}
.level-up-modal{max-width:450px;padding:23px;border-color:#b09152;box-shadow:0 25px 90px #0009,inset 0 0 0 4px #ac8a3320,0 0 40px #c48d2720}
.level-up-modal .modal-header{margin-bottom:16px}
.level-up-modal .modal-header h2{font-size:30px;color:#e7cca0}
.level-up-intro{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:15px;border-bottom:1px solid #8d703a4a;padding-bottom:13px}
.level-up-intro>p{font-size:12px;color:#cbb78d}
.level-up-intro>span{font-size:var(--fs-micro);color:#aa9060;white-space:nowrap}
.level-up-choices{display:flex;flex-direction:column;gap:10px}
.level-up-option{width:100%;min-height:90px;position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;padding:15px 12px;text-align:left;background:radial-gradient(ellipse at 5% 50%,#88713e23,transparent 65%),linear-gradient(#322b1e,#211d16);border:1px solid #846b3e;border-radius:3px;box-shadow:inset 0 0 0 3px #a98b3810}
.level-up-option:hover,.level-up-option:focus-visible{border-color:#e0c487;background:linear-gradient(#4b3b22,#322719)}
.upgrade-art{width:43px;height:48px}
.upgrade-copy{min-width:0;display:flex;flex-direction:column;gap:5px}
.upgrade-copy>strong{font:20px/1.1 var(--font-display);color:#e4c99a;hyphens:auto;overflow-wrap:anywhere}
.upgrade-copy>span{font-size:10px;line-height:1.4;color:var(--c-text-2)}
.upgrade-value{align-self:center;color:var(--c-gold-bright);font:20px/1.1 var(--font-display);white-space:nowrap;text-align:right;max-width:88px}
.level-up-modal>.panel-note{font-size:10px;line-height:1.55;margin-top:16px;color:var(--c-text-3);text-align:center}
.character-progression{border:1px solid #80673a66;background:#3328173b;padding:13px 14px}
.character-progression>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}
.character-progression strong{font:18px var(--font-display);color:var(--c-gold)}
.character-progression>div:first-child>span{font-size:var(--fs-micro);color:var(--c-text-2)}
.character-xp-meter{height:4px;background:#110f0b;margin-top:8px;border:1px solid #68502966;overflow:hidden}
.character-xp-meter>i{display:block;height:100%;background:#c3a361}
.character-progression>p{font-size:10px;line-height:1.7;margin-top:9px;color:#c7b184}
.character-progression>.mini-button{display:block;width:100%;margin-top:12px;border-color:#b59754;background:#55421e;font-size:var(--fs-small)}
.starter-note{margin-top:14px;font-size:10px;color:#b6a17a;line-height:1.5}
/* Gold is the only currency tally; equipment has no sale-price label. */
.game-resources .run-gold{grid-row:1;padding-top:0;font-size:15px}
.game-resources .hud-actions{grid-row:1}
@keyframes level-up-glow{0%,100%{box-shadow:inset 0 0 0 2px #eac97413,0 0 9px #d7a84925}50%{box-shadow:inset 0 0 0 2px #eac97428,0 0 18px #e2b85e66}}
@media(max-width:460px){
  .xp-hud{gap:5px;margin-top:4px;min-height:11px}#hud-level{font-size:var(--fs-micro);letter-spacing:.25px}
  .level-up-button{gap:5px;padding:5px;min-height:44px;margin-top:5px}.level-up-button>.level-up-sigil{font-size:19px}.level-up-button>span:last-child{font-size:var(--fs-micro);gap:5px;letter-spacing:.3px}.level-up-button b{font-size:var(--fs-micro);min-width:15px;height:16px;padding:0 3px}
  .level-up-modal{padding:18px}.level-up-modal .modal-header h2{font-size:27px}.level-up-modal .modal-header{margin-bottom:12px}
  .level-up-intro{margin-bottom:12px;padding-bottom:11px}.level-up-intro>p{font-size:var(--fs-small)}.level-up-intro>span{font-size:var(--fs-micro)}
  .level-up-option{grid-template-columns:37px minmax(0,1fr) auto;gap:9px;padding:13px 10px;min-height:88px}.upgrade-art{width:36px;height:42px}.upgrade-copy>strong{font-size:18px}.upgrade-copy>span{font-size:var(--fs-micro)}.upgrade-value{font-size:19px;max-width:60px}.level-up-modal>.panel-note{margin-top:13px;font-size:var(--fs-micro)}
  .game-resources .run-gold{font-size:12px;margin-bottom:3px}.game-resources .run-gold>span:first-child{font-size:15px}.game-resources .run-gold small{font-size:var(--fs-micro)}
}
@media(max-width:350px){.level-up-modal{padding:15px}.level-up-modal .modal-header h2{font-size:24px}.level-up-option{grid-template-columns:31px minmax(0,1fr);gap:6px 8px;min-height:95px;padding:11px}.upgrade-art{grid-row:1/3;width:30px;height:38px}.upgrade-copy{grid-column:2;grid-row:1}.upgrade-copy>strong{font-size:18px}.upgrade-value{grid-column:2;grid-row:2;text-align:left;font-size:17px}.level-up-intro>p{font-size:10px}.level-up-intro>span{font-size:var(--fs-micro)}}
@media(max-height:550px) and (orientation:landscape){.xp-hud{min-height:9px;margin-top:3px}.level-up-button{max-width:155px;margin-top:4px}.level-up-modal{max-width:670px;padding:16px 20px}.level-up-modal .modal-header{margin-bottom:10px}.level-up-modal .modal-header h2{font-size:26px}.level-up-intro{margin-bottom:12px;padding-bottom:9px}.level-up-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.level-up-option{display:flex;align-items:center;text-align:center;flex-direction:column;gap:8px;padding:12px 10px;min-height:173px}.upgrade-art{width:37px;height:39px}.upgrade-copy{gap:5px}.upgrade-copy>strong{font-size:18px}.upgrade-copy>span{font-size:var(--fs-micro)}.upgrade-value{font-size:20px;margin-top:auto;text-align:center}.level-up-modal>.panel-note{font-size:var(--fs-micro);margin-top:11px}}
/* Readable XP counts and a definite fill, kept below the top clock. */
.xp-hud{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;width:100%;min-width:145px;margin-top:7px;color:var(--c-gold-bright)}
#hud-level{grid-column:1;grid-row:1;font-size:var(--fs-micro);letter-spacing:.7px;line-height:12px}
#xp-text{grid-column:2;grid-row:1;font-size:var(--fs-micro);line-height:12px;text-align:right;color:#c9b889;font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:0 1px 3px #000}
.xp-meter{grid-column:1/-1;grid-row:2;height:6px;border-color:#a68b536b;background:#100f0bf2}
.xp-meter>i{background:linear-gradient(90deg,#9c7a37,#e4c374)}
.xp-meter.gained-level{animation:xp-level-flash .7s ease-out}
@keyframes xp-level-flash{0%{border-color:#fff0b2;box-shadow:0 0 14px #ffd37ecc}100%{border-color:#a68b536b;box-shadow:0 1px 3px #0008}}
@media(max-width:460px){.xp-hud{width:145px;gap:3px 6px;margin-top:6px}#hud-level,#xp-text{font-size:var(--fs-micro);letter-spacing:.3px;line-height:11px}}
@media(max-height:550px) and (orientation:landscape){.xp-hud{width:180px;min-width:145px;margin-top:5px;gap:3px 7px}#hud-level,#xp-text{font-size:var(--fs-micro);line-height:10px}}
/* Ground gear can be worn directly without opening the character sheet. */
.loot-row>.loot-actions{display:flex;flex:none;align-items:center;gap:4px}
.loot-equip{font:var(--fs-micro) var(--font-ui);padding:4px 3px;letter-spacing:0}
.loot-row .loot-actions .loot-take{width:44px;min-width:44px;height:44px}
.loot-row .loot-actions .loot-equip{border-color:#b1985d88;color:var(--c-gold-bright);background:#69512777}
/* A short, passive acknowledgement; its rewards are still waiting on the floor. */
.boss-victory-banner{position:absolute;z-index:6;pointer-events:none;left:50%;top:max(112px,calc(env(safe-area-inset-top) + 100px));transform:translateX(-50%);display:flex;align-items:center;gap:12px;width:290px;max-width:calc(100vw - 35px);min-height:70px;padding:11px 15px;border:1px solid #c5a25d;border-left:3px solid #dfbf7d;border-right:3px solid #dfbf7d;background:linear-gradient(110deg,#392913f5,#231e13ee,#392913f5);box-shadow:0 5px 22px #0009,inset 0 0 0 3px #a1834014,0 0 20px #ba8f3022;animation:boss-victory-reveal .3s ease-out}
.boss-victory-mark{font-size:37px;color:var(--c-gold);text-shadow:0 0 14px #e2b85b66;flex-shrink:0}
.boss-victory-banner>div{min-width:0;flex:1}.boss-victory-banner .eyebrow{font-size:var(--fs-micro);letter-spacing:var(--ls-overline);color:var(--c-gold)}
#boss-victory-name{display:block;font:21px/1.1 var(--font-display);margin:4px 0;color:var(--c-gold-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#boss-victory-reward{display:block;font-size:var(--fs-micro);line-height:1.4;color:#c6b080;white-space:nowrap}
@keyframes boss-victory-reveal{from{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%,0)}}
@media(max-width:460px) and (orientation:portrait){.boss-victory-banner{top:max(170px,calc(env(safe-area-inset-top) + 145px));width:260px;min-height:64px;padding:9px 13px;gap:10px}.boss-victory-mark{font-size:31px}#boss-victory-name{font-size:19px}#boss-victory-reward{font-size:var(--fs-micro)}}
@media(max-height:550px) and (orientation:landscape){.boss-victory-banner{top:78px;width:260px;min-height:64px;padding:9px 13px}.boss-victory-mark{font-size:31px}#boss-victory-name{font-size:19px}#boss-victory-reward{font-size:var(--fs-micro)}}
/* The threshold has no clock. Its quiet label keeps the arena itself clear. */
.run-clock.trial-phase{align-self:start;min-width:0}
.run-clock.trial-phase .portal-status{color:#cab7dc;letter-spacing:1.2px;font-size:var(--fs-micro);line-height:1.35;display:block}
.run-clock.trial-phase #hud-time{font-size:23px;line-height:1.2;letter-spacing:.5px;margin-top:5px;color:var(--c-text);white-space:normal;overflow-wrap:normal;word-break:normal}
.run-clock.trial-phase[data-phase="trial"] #hud-time{white-space:nowrap}
.run-clock.trial-phase[data-phase="antechamber"] #hud-time{font:11px/1.5 var(--font-ui);letter-spacing:1.1px;color:#c9c1ba}
.run-clock.trial-phase[data-phase="victory"] #hud-time{font-size:17px;color:var(--c-gold-bright)}
.run-clock.trial-phase #hud-warning{display:none}
/* A conversation, not a teleport button: the choice to fight is made at the gate. */
.trial-choice-overlay{z-index:var(--z-modal);background:#09080bc7;backdrop-filter:blur(4px)}
.trial-choice-modal{max-width:450px;border-color:var(--panel-trial-border);padding:24px;background:var(--panel-trial-bg);box-shadow:var(--shadow-panel),var(--panel-inset)}
.trial-choice-modal .modal-header{margin-bottom:17px}.trial-choice-modal .eyebrow{color:#b9a9c7;font-size:var(--fs-micro)}
.trial-choice-modal .modal-header h2{font-size:28px;line-height:1.12;color:#e0d3dc;letter-spacing:-.4px}
.trial-choice-modal .icon-button{border-color:#74677899;background:#241f28;color:#d6c9dc}
.veil-encounter{display:flex;align-items:center;gap:15px;padding:0 2px 16px;border-bottom:1px solid #7b6b8640}
.veil-portrait{width:59px;min-width:59px;height:76px;filter:drop-shadow(0 0 12px #b6a3d026)}.veil-portrait svg{width:100%;height:100%}
.veil-encounter p{font:italic 14px/1.6 var(--font-display);color:#c0b2c7}
.trial-opponent{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 11px}.trial-opponent .small-label{font-size:var(--fs-micro);letter-spacing:1px;color:#9e91a7}.trial-opponent strong{font:19px/1.2 var(--font-display);color:#e0c7a8;text-align:right;overflow-wrap:anywhere}
.trial-multipliers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #76637d55;background:#100d1480;padding:11px 0}
.trial-multipliers>div{text-align:center;border-right:1px solid #75617a44}.trial-multipliers>div:last-child{border:0}.trial-multipliers strong{font:22px/1.1 var(--font-display);color:#ddc59d}.trial-multipliers span{display:block;color:#a99ab2;font-size:var(--fs-micro);margin-top:4px}
.trial-gate-hint{display:flex;align-items:center;gap:11px;margin-top:15px;font-size:var(--fs-small);line-height:1.6;color:#b8acc4}.trial-gate-hint>span:first-child{font:29px var(--font-display);color:#bba6d5}.trial-gate-hint b{font-weight:400;color:#e0d1e9}
.trial-risk{font-size:var(--fs-small);line-height:1.55;margin-top:14px;padding:11px 12px;border-left:2px solid #ae8365;background:#69503a25;color:#d1b39b}
.trial-choice-actions{display:flex;flex-direction:column;gap:8px;margin-top:19px}.trial-choice-actions .button{min-height:47px}.trial-choice-actions .secondary{border-color:#75647d99;background:#2b2431;color:#c9bcd3;font-size:var(--fs-small);font-weight:400}
.trial-safe-note{text-align:center;font-size:var(--fs-micro);line-height:1.6;color:#a397aa;margin-top:10px}
/* The last three seconds are a celebration; the engine performs the extraction. */
.trial-victory-banner{width:310px;min-height:99px;border-color:var(--panel-trial-border);background:var(--panel-trial-bg);box-shadow:var(--shadow-pop),var(--panel-inset),0 0 26px #be98d932}
.trial-victory-banner .eyebrow{color:#cfb9df}.trial-victory-banner .boss-victory-mark{color:#e4cfef;text-shadow:0 0 14px #b69ddb66}
#trial-victory-name{display:block;font:21px/1.1 var(--font-display);color:var(--c-text);margin:5px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#trial-victory-gold{display:block;color:var(--c-gold);font-size:var(--fs-small);line-height:1.45}
#trial-victory-item{display:block;color:#cbb2e0;font-size:10px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trial-victory-banner small{display:block;color:#a89bad;font-size:var(--fs-micro);line-height:1.4;margin-top:5px}
@media(max-width:460px){
  .run-clock.trial-phase .portal-status{font-size:var(--fs-micro);line-height:1.4;letter-spacing:.4px}.run-clock.trial-phase #hud-time{font-size:var(--fs-title);line-height:1.15;margin-top:4px;letter-spacing:0}.run-clock.trial-phase[data-phase="antechamber"] #hud-time{font-size:var(--fs-micro);letter-spacing:.6px;line-height:1.6}.run-clock.trial-phase[data-phase="victory"] #hud-time{font-size:var(--fs-small);letter-spacing:.4px}
  .trial-choice-modal{padding:19px}.trial-choice-modal .modal-header{margin-bottom:13px}.trial-choice-modal .modal-header h2{font-size:26px}.trial-choice-modal .eyebrow{font-size:var(--fs-micro);letter-spacing:var(--ls-overline)}
  .veil-encounter{gap:12px;padding-bottom:12px}.veil-portrait{width:50px;min-width:50px;height:65px}.veil-encounter p{font-size:var(--fs-body);line-height:1.55}
  .trial-opponent{margin:13px 0 10px}.trial-opponent strong{font-size:17px}.trial-opponent .small-label{font-size:var(--fs-micro)}
  .trial-multipliers{padding:9px 0}.trial-multipliers strong{font-size:21px}.trial-multipliers span{font-size:var(--fs-micro)}
  .trial-gate-hint{font-size:10px;margin-top:12px;gap:9px;line-height:1.5}.trial-risk{font-size:10px;margin-top:12px;padding:10px 11px}.trial-choice-actions{margin-top:15px}.trial-safe-note{font-size:var(--fs-micro);margin-top:8px}
  .trial-victory-banner{top:max(140px,calc(env(safe-area-inset-top) + 115px));width:275px;min-height:96px}#trial-victory-name{font-size:19px}#trial-victory-gold{font-size:10px}#trial-victory-item{font-size:var(--fs-micro)}
}
@media(max-width:350px){.trial-choice-modal{padding:16px}.trial-choice-modal .modal-header h2{font-size:23px}.veil-encounter p{font-size:12px}.veil-portrait{width:43px;min-width:43px;height:59px}.trial-opponent strong{font-size:var(--fs-title)}.trial-risk{font-size:10px}.trial-multipliers span{font-size:var(--fs-micro)}.trial-choice-actions{gap:7px}.trial-choice-actions .button{min-height:45px}}
@media(max-height:550px) and (orientation:landscape){
  .trial-choice-modal{max-width:620px;padding:17px 22px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 23px}.trial-choice-modal .modal-header{grid-column:1/-1;margin-bottom:12px}.trial-choice-modal .modal-header h2{font-size:26px}.veil-encounter{grid-column:1;grid-row:2/4;align-self:start;padding-bottom:12px;gap:10px}.veil-portrait{width:45px;min-width:45px;height:62px}.veil-encounter p{font-size:12px;line-height:1.55}.trial-opponent{grid-column:2;grid-row:2;margin:0 0 9px}.trial-opponent strong{font-size:17px}.trial-multipliers{grid-column:2;grid-row:3;padding:8px 0}.trial-multipliers strong{font-size:19px}.trial-multipliers span{font-size:var(--fs-micro)}.trial-gate-hint{grid-column:1;grid-row:4;font-size:10px;margin-top:11px}.trial-risk{grid-column:2;grid-row:4;font-size:10px;margin-top:11px;padding:9px 10px}.trial-choice-actions{grid-column:1/-1;flex-direction:row;gap:10px;margin-top:15px}.trial-choice-actions .button{flex:1;min-height:44px}.trial-safe-note{grid-column:1/-1;margin-top:8px;font-size:var(--fs-micro)}
  .run-clock.trial-phase #hud-time{font-size:18px}.run-clock.trial-phase[data-phase="antechamber"] #hud-time{font-size:var(--fs-micro)}.trial-victory-banner{top:78px;min-height:90px;width:285px}#trial-victory-name{font-size:19px}
}
.trial-prize{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-top:12px;background:#a5813220;border:1px solid #b7985355}
.trial-prize .engraving{height:35px;width:32px}.trial-prize>div{min-width:0}.trial-prize .small-label{font-size:var(--fs-micro);letter-spacing:1px;color:#aa9567}
#trial-prize-name{display:block;font-size:var(--fs-small);line-height:1.45;font-weight:400;color:var(--c-gold);margin-top:2px}
#trial-prize-effect{display:block;font-size:var(--fs-micro);line-height:1.4;color:#b39dc4;margin-top:2px}
@media(max-width:460px){.trial-prize{padding:8px 10px;margin-top:10px;gap:8px}.trial-prize .engraving{height:30px;width:27px}#trial-prize-name{font-size:10px}#trial-prize-effect{font-size:var(--fs-micro)}.trial-choice-modal .trial-choice-actions{position:sticky;bottom:-19px;background:linear-gradient(#211b24ee,#211b24);padding:9px 0;z-index:1}}
@media(max-width:350px){.trial-choice-modal .trial-choice-actions{bottom:-16px}}
@media(max-height:550px) and (orientation:landscape){.trial-prize{grid-column:1;grid-row:4;margin-top:10px;padding:7px 9px;gap:7px}.trial-prize .engraving{width:26px;height:29px}#trial-prize-name{font-size:10px}#trial-prize-effect{font-size:var(--fs-micro)}.trial-gate-hint{grid-column:1;grid-row:5;margin-top:9px}.trial-risk{grid-column:2;grid-row:4/6;align-self:start;margin-top:10px}.trial-choice-actions{grid-row:6}.trial-safe-note{grid-row:7}}
/* Epic is a useful weapon tier, with a distinct warm border and engraved sheen. */
.rarity-3 .engraving svg,.rarity-4 .engraving svg{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--rarity) 24%,transparent)) drop-shadow(0 3px 2px #0006)}
.loot-row.rarity-3>.engraving,.loot-row.rarity-4>.engraving{border-color:color-mix(in srgb,var(--rarity) 40%,transparent);background:color-mix(in srgb,var(--rarity) 12%,transparent)}
.trial-prize-epic{display:block;margin-top:2px;font-size:var(--fs-micro);line-height:1.4;color:var(--c-gold)}
.trial-victory-banner small{font-size:var(--fs-micro);color:#dbc590}
@media(max-width:460px){.trial-prize-epic{font-size:var(--fs-micro)}}
.run-clock.trial-phase[data-phase="reward"] #hud-time{font:11px/1.45 var(--font-ui);letter-spacing:.7px;color:var(--c-gold)}
.loot-claim{font:var(--fs-micro) var(--font-ui);padding:4px 3px;border-color:#c1a36588;background:#765a2b88;color:var(--c-gold-bright)}
@media(max-width:460px){.run-clock.trial-phase[data-phase="trial"] #hud-time{font-size:12px;letter-spacing:0}.run-clock.trial-phase[data-phase="reward"] #hud-time{font-size:var(--fs-micro);letter-spacing:.3px;line-height:1.55}}

/* Ultimates keep the familiar thumb position; the outer ring fills from weapon damage. */
.class-ultimate-detail{margin-top:11px;padding:9px 11px;border-left:2px solid var(--ultimate-color,#d9bc78);background:#1b1713b8;text-align:left}
.class-ultimate-detail strong{display:block;color:var(--ultimate-color,#d9bc78);font-size:var(--fs-micro);line-height:1.4;letter-spacing:.7px}
.class-ultimate-detail p{margin:4px 0 0;color:var(--c-text-2);font-size:var(--fs-small);line-height:1.45}
#skill-btn{--ultimate-color:#d9bc78;isolation:isolate;gap:0;background:#211e1bed;border-color:#88796085;color:var(--c-text);overflow:visible}
#skill-btn:disabled{opacity:1;cursor:default}
#skill-btn:disabled:active{transform:none;translate:none;filter:none}
#skill-btn .ultimate-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;transform:rotate(-90deg)}
.ultimate-ring circle{fill:none;stroke-width:4;stroke-linecap:round}
.ultimate-ring .ultimate-ring-track{stroke:#50483b;stroke-width:3}
#ultimate-ring{stroke:var(--ultimate-color);transition:stroke-dashoffset var(--dur-enter) linear}
#skill-btn #skill-symbol{font-size:21px;line-height:23px;margin-top:1px;color:var(--ultimate-color);pointer-events:none}
#skill-btn #hud-skill{font-size:var(--fs-micro);line-height:9px;letter-spacing:.9px;margin-top:0;pointer-events:none}
#ultimate-charge{font-size:10px;font-weight:700;line-height:12px;font-variant-numeric:tabular-nums;color:var(--c-text);pointer-events:none}
#skill-btn.ultimate-ready{border-color:var(--ultimate-color);background:#443620f0;animation:ultimate-ready-pulse 1.7s ease-in-out infinite}
#skill-btn.ultimate-ready #hud-skill{color:#ffedbd;font-weight:700;letter-spacing:.6px}
#skill-btn.ultimate-active{border-color:var(--ultimate-color);background:#38312eea;box-shadow:0 0 0 2px #efe0b72a,inset 0 0 15px #eddcc521}
#skill-btn.ultimate-active #hud-skill{color:var(--ultimate-color)}
#skill-btn.ultimate-blocked:not(.ultimate-active){filter:saturate(.45)}
#desktop-ultimate{position:relative;--ultimate-color:#d9bc78}
#desktop-skill-state{font-variant-numeric:tabular-nums;min-width:25px;color:var(--c-text-2)}
#desktop-ultimate.ultimate-ready #desktop-skill-state,#desktop-ultimate.ultimate-active #desktop-skill-state{color:var(--ultimate-color)}
#desktop-ultimate.ultimate-ready kbd{color:#fff0bd;border-color:var(--ultimate-color);box-shadow:0 0 10px #e8ce8340}
.desktop-ultimate-mouse{opacity:.65;font-size:var(--fs-micro)}
.ultimate-ready-notice{position:absolute;right:160px;bottom:143px;width:145px;padding:8px 10px;border:1px solid #ad966c55;border-right:2px solid var(--ultimate-color,#d9bc78);border-radius:3px;background:#171410ed;box-shadow:0 3px 14px #0006;pointer-events:none;z-index:2;text-align:right;white-space:normal}
.ultimate-ready-notice:after{content:'';position:absolute;right:-6px;bottom:11px;width:8px;height:8px;background:#171410;border-right:1px solid var(--ultimate-color,#d9bc78);border-top:1px solid var(--ultimate-color,#d9bc78);transform:rotate(45deg)}
.ultimate-ready-notice strong{display:block;font:var(--fs-title)/1.15 var(--font-display);color:#f1dfb4;overflow-wrap:break-word}
.ultimate-ready-notice small{display:block;font-size:var(--fs-micro);line-height:11px;letter-spacing:.7px;color:var(--ultimate-color,#d9bc78);margin-top:4px}
.desktop-ultimate-notice{right:0;bottom:30px;width:150px;text-align:center}
.desktop-ultimate-notice:after{right:calc(50% - 4px);bottom:-5px;transform:rotate(135deg)}
@keyframes ultimate-ready-pulse{0%,100%{box-shadow:0 0 0 2px #ecd69138,0 0 13px #e7bb5140,inset 0 0 14px #edda9120}50%{box-shadow:0 0 0 3px #ecd69155,0 0 23px #e7bb5160,inset 0 0 18px #edda9130}}
@media(max-width:360px){.ultimate-ready-notice{width:133px;right:156px;bottom:145px}.ultimate-ready-notice strong{font-size:15px}}
@media(max-height:550px) and (orientation:landscape){.ultimate-ready-notice{bottom:145px}}
@media(prefers-reduced-motion:reduce){#skill-btn.ultimate-ready{animation:none;box-shadow:0 0 0 2px #ecd69155,0 0 16px #e7bb5140}#ultimate-ring{transition:none}}

/* A single generous touch target contains five tiny equipment indicators. */
.game-hud{z-index:5}
.quick-equipment{position:relative;display:block;width:64px;height:58px;margin-top:8px;padding:0;background:transparent;border:0;pointer-events:auto;opacity:.92;border-radius:5px}
.quick-equipment:active{background:#d2bb8020}
.quick-equipment-figure{position:absolute;left:20px;top:8px;width:24px;height:40px;border-radius:12px 12px 9px 9px;background:#d3c4a00d;border:1px solid #b9a87825;pointer-events:none}
.quick-equipment-figure:before{content:'';position:absolute;left:5px;top:-7px;width:12px;height:12px;border:1px solid #b9a87825;border-radius:50%}
.quick-slot{position:absolute;display:grid;place-items:center;width:18px;height:18px;border:1px solid #a18c633b;border-radius:3px;background:#171611d9;pointer-events:none}
.quick-slot .engraving{width:16px;height:16px}
.quick-slot .engraving svg{filter:none}
.quick-head{left:23px;top:0}.quick-weapon{left:1px;top:20px}.quick-armor{left:23px;top:20px}.quick-charm{left:45px;top:20px}.quick-feet{left:23px;top:40px}
.quick-slot.occupied{border-color:var(--rarity);background:#30271ce8;box-shadow:inset 0 0 4px #ead19b15}
.quick-slot.occupied{background:color-mix(in srgb,var(--rarity) 15%,#17140fe8)}.quick-slot.rarity-3,.quick-slot.rarity-4{box-shadow:0 0 5px color-mix(in srgb,var(--rarity) 30%,transparent)}
.quick-slot.empty .engraving{opacity:.2;filter:grayscale(1)}
@media(max-width:360px) and (orientation:portrait){.loot-panel{max-width:calc(100vw - 92px)}}
@media(max-height:550px) and (orientation:landscape){.quick-equipment{margin-top:5px}}

/* Equipment and owned items share one compact surface, with only the list scrolling. */
.rarity-3 .item-name,.rarity-3 .rarity-label,.rarity-4 .item-name,.rarity-4 .rarity-label{color:var(--rarity)}
.camp-content.compact-inventory{overflow:hidden;display:flex;flex-direction:column}
.compact-inventory #character-panel{display:flex;flex-direction:column;min-height:0;flex:1}
.compact-inventory .section-heading{flex-shrink:0;margin-bottom:12px}
.unified-inventory{display:grid;grid-template-columns:280px minmax(0,1fr);gap:24px;min-height:0;flex:1;max-height:530px}
.loadout-overview{display:flex;flex-direction:column;min-height:0;gap:8px}
.loadout-doll{height:325px;min-height:325px;position:relative;background:radial-gradient(ellipse at 50% 60%,#7760472b,transparent 64%),#181713;border:1px solid #74603d;box-shadow:inset 0 0 0 3px #171610,inset 0 0 0 4px #78633b22}
.loadout-caption{position:absolute;left:12px;right:12px;top:10px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted)}
.loadout-caption strong{font:19px var(--font-display);color:var(--text)}
.loadout-figure{position:absolute;left:50%;top:56px;transform:translateX(-50%);height:245px;width:147px;opacity:.86;pointer-events:none}.loadout-figure svg{width:100%;height:100%}
.loadout-slot{position:absolute;width:60px;height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid var(--rarity,#6f6045);border-radius:3px;background:linear-gradient(140deg,#383126f2,#181814f5);box-shadow:inset 0 0 0 2px #17130d;z-index:1}
.loadout-slot .engraving{width:39px;height:40px}.loadout-slot>span:last-child{font-size:var(--fs-micro);color:#d0c2a5}.loadout-slot.selected{outline:2px solid #e6c57e;outline-offset:2px;background:#443925}.loadout-slot.empty{border-style:dashed;border-color:#675d48}.loadout-slot.empty .engraving{opacity:.23;filter:grayscale(1)}
.loadout-head{top:42px;left:calc(50% - 30px)}.loadout-weapon{left:16px;top:120px}.loadout-armor{right:16px;top:120px}.loadout-charm{left:16px;top:221px}.loadout-feet{right:16px;top:221px}
.loadout-stats{display:flex;justify-content:space-around;align-items:center;padding:8px;background:#211e17;border:1px solid var(--line-soft);gap:9px}.loadout-stats>span{display:flex;gap:5px;align-items:center;font-size:14px}.loadout-stats .engraving{width:21px;height:21px}.loadout-level{font-size:10px;text-align:center;color:var(--muted)}
.slot-browser{display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);background:#171612;overflow:hidden}.slot-browser-heading{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line-soft);flex-shrink:0}.slot-browser-heading strong{font:24px var(--font-display)}.slot-browser-heading>span{font-size:10px;color:var(--muted)}
.owned-item-list{overflow-y:auto;overscroll-behavior:contain;min-height:70px;flex:1;padding:6px;scrollbar-width:thin;scrollbar-color:#776543 #171612}
.owned-item{width:100%;min-height:62px;padding:7px 9px;margin:0 0 5px;display:flex;align-items:center;gap:11px;text-align:left;background:#25231d;border:1px solid #514734;border-left:3px solid var(--rarity);border-radius:2px}.owned-item.selected{background:#3b3325;border-color:#b89b63}.owned-item>.engraving{width:39px;height:43px;flex-shrink:0}.owned-item-copy{min-width:0;flex:1}.owned-item-copy>strong{display:block;font:18px var(--font-display);color:var(--rarity);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.owned-item .item-stats{margin:3px 0 0;gap:6px}.owned-item .item-stat{font-size:var(--fs-micro);gap:3px}.owned-item .item-stat .engraving{display:none}.owned-item .item-stat strong{font-size:10px}.owned-item-state{font-size:20px;color:var(--gold-bright);padding-right:2px}
.owned-detail{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:linear-gradient(#2a251b,#211e17);border-top:1px solid #887047;flex-shrink:0;min-height:93px}.owned-detail-copy{min-width:0}.owned-detail-copy>strong{display:block;font:19px var(--font-display);line-height:1.1;color:var(--rarity);margin-bottom:4px}.owned-detail .rarity-label{font-size:var(--fs-micro)}.owned-detail .item-stats{margin-top:6px;gap:5px}.owned-detail .item-stat{gap:3px;font-size:var(--fs-micro)}.owned-detail .item-stat .engraving{display:none}.owned-detail .item-stat strong{font-size:var(--fs-small)}.owned-detail .button{padding:9px 13px;min-height:44px;font-size:var(--fs-small);flex-shrink:0}.owned-equipped{font-size:10px;color:#c7d3a3;white-space:nowrap}.owned-item-list .empty-state{padding:16px;min-height:70px}.owned-item-list .empty-state .engraving{width:30px;height:38px}.owned-item-list .empty-state strong{font-size:19px}.owned-item-list .empty-state p{font-size:var(--fs-small)}
.inventory-modal{display:flex;flex-direction:column;height:min(660px,calc(100dvh - 32px));overflow:hidden;width:min(820px,100%)}.inventory-modal .unified-inventory{grid-template-columns:240px minmax(0,1fr);gap:16px}.inventory-modal .loadout-doll{height:290px;min-height:290px}.inventory-modal .loadout-figure{height:221px;width:132px}.inventory-modal .loadout-charm,.inventory-modal .loadout-feet{top:205px}.inventory-modal>.full-width{flex-shrink:0;min-height:44px;margin-top:12px}.inventory-warning{flex-shrink:0}
.merchant-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:12px}.merchant-tabs button{flex:1;min-height:44px;font-size:var(--fs-body);background:#1b1913;border:1px solid var(--line-soft);border-bottom:0;color:var(--muted)}.merchant-tabs button.active{color:var(--btn-active-text);background:var(--btn-active-bg);border-color:var(--c-gold);box-shadow:var(--btn-active-ring)}.merchant-perks{max-width:620px;margin:auto}.meta-heading{display:flex;justify-content:space-between;align-items:center;font:var(--fs-heading) var(--font-display);gap:9px}.meta-heading strong{font:12px var(--font-ui);color:var(--gold-bright);font-variant-numeric:tabular-nums}.meta-intro{font-size:10px;color:var(--muted);margin:5px 0 13px}.meta-tree{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.perk-branch{display:flex;flex-direction:column;align-items:stretch;gap:13px;position:relative}.perk-branch:before{content:'';position:absolute;left:50%;top:40px;bottom:20px;width:1px;background:#796344}.perk-branch-name{text-align:center;font-size:10px;color:var(--c-text-2)}.perk-node{position:relative;display:grid;grid-template-columns:27px 1fr;grid-template-rows:1fr 12px;min-height:63px;gap:0 5px;padding:7px;background:linear-gradient(140deg,#28251e,#181813);border:1px solid #64573d;border-radius:4px;text-align:left}.perk-node .engraving{height:28px;width:27px;grid-row:span 2;align-self:center}.perk-node strong{font-size:var(--fs-small);line-height:1.15;align-self:center}.perk-node>span:last-child{font-size:var(--fs-micro);color:var(--c-text-3)}.perk-node.locked{color:var(--c-text-3)}.perk-node.locked .engraving{opacity:.45}.perk-node.available{border-color:#ac8a4d}.perk-node.learned{background:linear-gradient(140deg,#393420,#242419);border-color:#92915d}.perk-node.selected{outline:2px solid #e6c57e;outline-offset:2px}.meta-detail{margin-top:15px;padding:12px;border:1px solid var(--panel-border);border-radius:var(--radius-md);background:var(--panel-bg);box-shadow:var(--panel-inset);min-height:106px;display:flex;gap:16px;align-items:center;justify-content:space-between}.meta-detail>div{min-width:0}.meta-detail strong{font:21px var(--font-display)}.meta-detail p{font-size:var(--fs-small);line-height:1.4;margin:5px 0;color:var(--c-text-2)}.meta-detail small{font-size:10px;color:#b79376}.meta-detail .button{min-height:44px;min-width:117px;padding:9px 12px;font-size:var(--fs-small);flex-shrink:0}
body.is-playing .owned-item-list,body.is-playing .owned-item-list *{touch-action:pan-y}
.shop-quality{display:flex;align-items:center;gap:6px;margin:0 0 12px}.shop-quality>span{font-size:10px;color:var(--muted);margin-right:auto}.shop-quality button{min-height:44px;padding:7px 17px;font-size:var(--fs-small);background:#201e18;border:1px solid #5b5447;color:#b5b8b8;border-radius:3px}.shop-quality button[data-shop-rarity="1"]{color:var(--rarity-1)}.shop-quality button.active{background:var(--btn-active-bg);border-color:var(--c-gold);color:var(--btn-active-text);box-shadow:var(--btn-active-ring)}
@media(max-width:700px){
 .camp-nav button{flex:1}.compact-inventory .section-heading{margin-bottom:8px}.compact-inventory .section-heading h1{font-size:24px}.compact-inventory .section-heading .eyebrow{font-size:var(--fs-micro)}.compact-inventory .section-heading .text-button{font-size:var(--fs-micro)}.unified-inventory,.inventory-modal .unified-inventory{display:flex;flex-direction:column;gap:8px;max-height:none}.loadout-overview{gap:5px;flex-shrink:0}.loadout-doll,.inventory-modal .loadout-doll{height:148px;min-height:148px}.loadout-caption{top:7px;left:10px;right:10px;font-size:var(--fs-micro)}.loadout-caption strong{font-size:var(--fs-title)}.loadout-figure,.inventory-modal .loadout-figure{height:120px;width:78px;top:25px}.loadout-slot{width:52px;height:48px;gap:0}.loadout-slot .engraving{width:28px;height:29px}.loadout-slot>span:last-child{font-size:var(--fs-micro)}.loadout-head{left:calc(50% - 26px);top:29px}.loadout-weapon{left:18%;top:32px}.loadout-armor{right:18%;top:32px}.loadout-charm,.inventory-modal .loadout-charm{left:18%;top:91px}.loadout-feet,.inventory-modal .loadout-feet{right:18%;top:91px}.loadout-stats{padding:4px 8px;min-height:29px}.loadout-stats>span{font-size:var(--fs-small)}.loadout-stats .engraving{width:17px;height:17px}.loadout-level{display:none}.slot-browser{min-height:160px;flex:1}.slot-browser-heading{padding:5px 10px;min-height:29px}.slot-browser-heading strong{font-size:18px}.slot-browser-heading>span{font-size:var(--fs-micro)}.owned-item-list{padding:4px;min-height:60px}.owned-item{min-height:51px;padding:4px 7px;gap:8px;margin-bottom:4px}.owned-item>.engraving{width:30px;height:37px}.owned-item-copy>strong{font-size:15px}.owned-item .item-stat{font-size:var(--fs-micro)}.owned-item .item-stat strong{font-size:var(--fs-micro)}.owned-detail{padding:8px 9px;gap:7px;min-height:83px}.owned-detail-copy>strong{font-size:var(--fs-title)}.owned-detail .rarity-label{font-size:var(--fs-micro)}.owned-detail .item-stat{font-size:var(--fs-micro)}.owned-detail .item-stat strong{font-size:var(--fs-micro)}.owned-detail .button{padding:8px 10px;font-size:10px}.owned-equipped{font-size:var(--fs-micro)}.owned-detail>.panel-note{font-size:10px;line-height:1.4}.inventory-modal{height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);padding:13px}.inventory-modal .modal-header{margin-bottom:4px}.inventory-modal .modal-header .eyebrow{display:none}.inventory-modal .modal-header h2{font-size:23px}.inventory-warning{padding-bottom:7px;font-size:var(--fs-micro)}.inventory-modal>.full-width{margin-top:8px;font-size:var(--fs-small)}.merchant-panel .merchant-banner{min-height:88px;height:88px;margin-bottom:8px;padding-top:10px;padding-bottom:8px;padding-left:82px}.merchant-panel .merchant-portrait{height:106px;width:92px;left:-7px}.merchant-panel .merchant-banner .eyebrow{font-size:var(--fs-micro)}.merchant-panel .merchant-banner h1{font-size:23px;margin-top:5px}.merchant-panel .merchant-banner p{font-size:var(--fs-micro);margin-top:5px;line-height:1.3}.merchant-seal{display:none}.merchant-tabs{margin-bottom:9px}.merchant-tabs button{font-size:var(--fs-small)}.merchant-panel .shop-filters{margin-bottom:9px;padding-bottom:5px}.shop-grid{gap:8px}.shop-card{padding:10px}.shop-card h3{font-size:17px;min-height:35px}.shop-card .item-description{display:none}.shop-item-heading .engraving{width:39px;height:43px}.shop-card .item-stats{margin:7px 0 10px;min-height:17px}.meta-heading{font-size:20px}.meta-heading strong{font-size:10px}.meta-intro{font-size:var(--fs-micro);margin:4px 0 10px}.meta-tree{gap:9px}.perk-branch{gap:10px}.perk-branch-name{font-size:var(--fs-micro)}.perk-node{grid-template-columns:1fr;grid-template-rows:25px 25px 11px;min-height:72px;padding:4px;text-align:center;gap:0}.perk-node .engraving{grid-row:auto;width:24px;height:24px;margin:auto}.perk-node strong{font-size:var(--fs-micro);line-height:1.15}.perk-node>span:last-child{font-size:var(--fs-micro)}.meta-detail{margin-top:12px;padding:9px;min-height:90px;gap:10px}.meta-detail strong{font-size:17px}.meta-detail p{font-size:var(--fs-micro);margin:4px 0}.meta-detail small{font-size:var(--fs-micro)}.meta-detail .button{font-size:var(--fs-micro);min-width:92px;padding:7px}.meta-tree+.meta-detail{margin-bottom:4px}
}
@media(max-width:360px){.loadout-weapon,.loadout-charm,.inventory-modal .loadout-charm{left:11%}.loadout-armor,.loadout-feet,.inventory-modal .loadout-feet{right:11%}.loadout-doll,.inventory-modal .loadout-doll{height:138px;min-height:138px}.loadout-charm,.loadout-feet,.inventory-modal .loadout-charm,.inventory-modal .loadout-feet{top:82px}.loadout-figure,.inventory-modal .loadout-figure{height:110px}.merchant-panel .merchant-banner h1{font-size:21px}.meta-tree{gap:8px}.perk-node{min-height:69px;grid-template-rows:24px 23px 10px}.meta-detail{min-height:85px}.meta-detail .button{min-width:85px}.owned-detail-copy>strong{font-size:15px}}
@media(max-width:700px){.perks-open .merchant-banner{height:48px;min-height:48px;padding:10px 10px 9px 60px}.perks-open .merchant-banner h1{font-size:21px;margin:0}.perks-open .merchant-banner p,.perks-open .merchant-banner .eyebrow{display:none}.perks-open .merchant-portrait{height:66px;width:63px;left:-5px}.perk-node{grid-template-columns:22px 1fr;grid-template-rows:29px 11px;min-height:51px;gap:0 3px;padding:4px;text-align:left}.perk-node .engraving{grid-row:span 2;width:22px;height:24px}.perk-node strong{font-size:var(--fs-micro)}.perk-node>span:last-child{font-size:var(--fs-micro)}}
@media(max-width:700px) and (max-height:640px) and (orientation:portrait){
 .masthead{min-height:54px;height:54px}.camp-nav{min-height:58px;padding-top:2px;padding-bottom:max(3px,env(safe-area-inset-bottom))}.camp-nav button{min-height:50px}.camp-nav button>span>.engraving{width:23px;height:23px}.camp-content{padding-top:8px;padding-bottom:8px}.compact-inventory .section-heading{height:44px;min-height:44px;margin-bottom:5px}.compact-inventory .section-heading .eyebrow{display:none}.compact-inventory .section-heading h1{font-size:var(--fs-heading);margin:0}.loadout-doll,.inventory-modal .loadout-doll{height:110px;min-height:110px}.loadout-caption{top:4px;font-size:var(--fs-micro)}.loadout-caption strong{font-size:var(--fs-body)}.loadout-slot{width:44px;height:44px}.loadout-slot .engraving{width:25px;height:26px}.loadout-slot>span:last-child{font-size:var(--fs-micro)}.loadout-head{top:20px;left:calc(50% - 22px)}.loadout-weapon,.loadout-armor{top:20px}.loadout-charm,.loadout-feet,.inventory-modal .loadout-charm,.inventory-modal .loadout-feet{top:62px}.loadout-figure,.inventory-modal .loadout-figure{top:19px;height:88px;width:56px}.loadout-stats{min-height:23px;padding:2px 8px}.loadout-overview{gap:4px}.unified-inventory,.inventory-modal .unified-inventory{gap:5px}.owned-detail{min-height:65px;padding:6px 8px}.owned-detail-copy>strong{font-size:14px}.owned-detail .item-stats{margin-top:4px}.owned-item{min-height:46px;padding:3px 6px;margin-bottom:3px}.owned-item>.engraving{height:32px;width:28px}.owned-item-copy>strong{font-size:14px}.perks-open .merchant-banner{display:none}.merchant-tabs{margin-bottom:7px}.meta-intro{margin-bottom:7px}.perk-node{min-height:44px;grid-template-rows:24px 10px}.perk-branch{gap:8px}.meta-detail{margin-top:9px;padding:8px;min-height:77px}.meta-detail strong{font-size:var(--fs-title)}.meta-detail p{font-size:var(--fs-micro);line-height:1.3}.shop-quality{margin-bottom:9px}
}
@media(max-height:550px) and (orientation:landscape){.unified-inventory,.inventory-modal .unified-inventory{display:grid;grid-template-columns:190px minmax(0,1fr);gap:14px}.loadout-doll,.inventory-modal .loadout-doll{height:180px;min-height:180px}.loadout-figure,.inventory-modal .loadout-figure{top:28px;height:145px;width:90px}.loadout-slot{width:44px;height:48px}.loadout-slot .engraving{width:28px;height:30px}.loadout-head{left:calc(50% - 22px);top:30px}.loadout-weapon{left:9px;top:65px}.loadout-armor{right:9px;top:65px}.loadout-charm,.inventory-modal .loadout-charm{left:9px;top:123px}.loadout-feet,.inventory-modal .loadout-feet{right:9px;top:123px}.loadout-stats{padding:4px}.loadout-level{display:none}.inventory-modal{height:calc(100dvh - 20px);max-height:calc(100dvh - 20px)}.inventory-modal .modal-header{margin-bottom:0}.inventory-warning{display:none}.inventory-modal .modal-header .eyebrow{display:none}.slot-browser{min-height:0}.owned-detail{min-height:70px;padding:8px}.owned-item{min-height:48px}.merchant-perks{max-width:700px}.meta-tree{gap:12px}.perk-node{min-height:49px}.meta-detail{min-height:65px}}

/* Thumb-sized shop rows keep the catalogue itself scrollable below fixed filters. */
@media(max-width:700px){
 .camp-content.compact-merchant{overflow:hidden;display:flex;flex-direction:column}.compact-merchant #shop-panel{display:flex;flex-direction:column;flex:1;min-height:0}.compact-merchant .merchant-banner,.compact-merchant .merchant-tabs,.compact-merchant .shop-filters,.compact-merchant .shop-quality{flex-shrink:0}.compact-merchant #merchant-wares{display:flex;flex-direction:column;flex:1;min-height:0}.compact-merchant .shop-grid{display:flex;flex-direction:column;gap:5px;overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:2px;scrollbar-width:thin;scrollbar-color:#776543 #171612}.compact-merchant .shop-note{display:none}.compact-merchant .shop-card{display:grid;grid-template-columns:32px minmax(0,1fr) 79px;grid-template-rows:24px 16px;gap:0 7px;padding:6px;min-height:54px;flex-shrink:0;align-items:center}.compact-merchant .shop-item-heading{grid-column:1;grid-row:1 / 3;display:block;margin:0}.compact-merchant .shop-item-heading .engraving{width:32px;height:38px}.compact-merchant .shop-item-heading .rarity-label{display:none}.compact-merchant .shop-card h3{grid-column:2;grid-row:1;font-size:var(--fs-title);line-height:1.05;min-height:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-merchant .shop-card>.item-description{display:none}.compact-merchant .shop-card>.item-stats{grid-column:2;grid-row:2;margin:0;min-height:0;gap:4px;flex-wrap:nowrap;overflow:hidden;white-space:nowrap}.compact-merchant .shop-card>.item-stats:before{content:attr(data-rarity);font-size:var(--fs-micro);color:var(--rarity);padding-right:3px}.compact-merchant .shop-card .item-stat{font-size:var(--fs-micro);gap:2px}.compact-merchant .shop-card .item-stat>span:not(.engraving){display:none}.compact-merchant .shop-card .item-stat strong{font-size:10px}.compact-merchant .shop-card .item-stat .engraving{width:12px;height:12px}.compact-merchant .shop-card>.button{grid-column:3;grid-row:1 / 3;min-height:44px;min-width:0;margin:0;padding:5px;font-size:var(--fs-micro);gap:1px;display:flex;flex-direction:column;justify-content:center}.compact-merchant .shop-card>.button strong{font-size:12px}.loadout-slot>span:last-child{font-size:var(--fs-micro)}.perk-node{grid-template-columns:18px 1fr;grid-template-rows:34px 12px;min-height:56px;gap:0 3px}.perk-node .engraving{width:18px;height:22px}.perk-node strong{font-size:10px;line-height:1.1}.perk-node>span:last-child{font-size:var(--fs-micro)}.meta-detail p{font-size:var(--fs-small);line-height:1.35}.meta-detail .button{font-size:var(--fs-small)}.meta-detail small{font-size:10px}
}
@media(max-width:700px) and (max-height:640px) and (orientation:portrait){
 .compact-merchant .merchant-panel:not(.perks-open) .merchant-banner{height:44px;min-height:44px;padding:5px 8px 5px 54px;margin-bottom:6px}.compact-merchant .merchant-banner .eyebrow{display:none}.compact-merchant .merchant-banner h1{font-size:18px;margin:0}.compact-merchant .merchant-banner p{font-size:var(--fs-micro);line-height:1.15;margin:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-merchant .merchant-portrait{height:58px;width:55px;left:-3px}.compact-merchant .shop-filters{margin-bottom:5px;padding-bottom:3px}.compact-merchant .shop-quality{margin-bottom:6px}.compact-merchant .shop-card{min-height:52px;padding:5px;grid-template-rows:23px 15px}.perk-node{min-height:56px;grid-template-rows:34px 12px}.loadout-slot>span:last-child{font-size:var(--fs-micro)}
}
@media(max-width:700px){.compact-merchant .shop-card h3{font-size:14px}.compact-merchant .shop-card>.item-stats{flex-direction:row;align-items:center;height:14px;line-height:14px}.compact-merchant .shop-card>.item-stats:before{display:none}.compact-merchant .shop-card .item-stat{min-height:0;height:14px;line-height:14px}.compact-merchant .shop-card .item-stat strong{margin-left:0}.compact-merchant .shop-item-heading .engraving{margin-bottom:0}}

/* Wide phones still need a short, fixed layout: width alone cannot identify mobile. */
@media(max-height:550px) and (orientation:landscape){
 .hub-screen{height:100dvh;padding:0 max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left))}.masthead{height:44px;min-height:44px;padding:0}.brand{font-size:18px}.brand-mark{font-size:25px}.brand small{font-size:var(--fs-micro)}.gold-balance{padding:3px 8px}.gold-balance strong{font-size:18px}.camp-nav{min-height:44px;height:44px;padding:0;gap:8px;order:2;flex-shrink:0}.camp-nav button{min-height:44px;flex-direction:row;gap:6px;font-size:var(--fs-small)}.camp-nav button>span>.engraving{height:23px;width:23px}.camp-nav button.active:after{bottom:0;top:auto}.camp-content{order:3;padding:7px 0;min-height:0}.hub-footer{display:none}
 .camp-content.compact-merchant{overflow:hidden;display:flex;flex-direction:column}.compact-merchant #shop-panel{display:flex;flex-direction:column;flex:1;min-height:0}.compact-merchant .merchant-banner{display:none}.compact-merchant .merchant-tabs{margin-bottom:6px;flex-shrink:0}.compact-merchant .merchant-tabs button{min-height:44px;height:44px;font-size:var(--fs-small)}.compact-merchant #merchant-perks{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(210px,1fr);grid-template-rows:20px 15px minmax(0,1fr);column-gap:20px;width:100%;max-width:none;min-height:0;flex:1}.meta-heading{grid-column:1;grid-row:1;font-size:18px;line-height:20px}.meta-heading strong{font-size:10px}.meta-intro{grid-column:1;grid-row:2;margin:0;font-size:var(--fs-micro);line-height:14px}.meta-tree{grid-column:1;grid-row:3;gap:12px;min-height:0}.perk-branch{gap:6px}.perk-branch-name{font-size:var(--fs-micro);line-height:12px}.perk-node{min-height:50px;height:50px;grid-template-columns:25px 1fr;grid-template-rows:24px 12px;padding:6px;gap:0 6px}.perk-node .engraving{grid-row:span 2;width:25px;height:29px}.perk-node strong{font-size:var(--fs-small);line-height:1.05}.perk-node>span:last-child{font-size:var(--fs-micro)}.meta-tree+.meta-detail{grid-column:2;grid-row:1 / 4;margin:0;padding:14px;min-height:0;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:12px}.meta-detail strong{font-size:21px}.meta-detail p{font-size:12px;line-height:1.45;margin:8px 0}.meta-detail small{font-size:10px}.meta-detail .button{min-height:44px;font-size:12px;flex-shrink:0}
 .compact-inventory .section-heading{height:44px;min-height:44px;margin-bottom:5px}.compact-inventory .section-heading .eyebrow{display:none}.compact-inventory .section-heading h1{font-size:23px;margin:0}.unified-inventory,.inventory-modal .unified-inventory{grid-template-columns:190px minmax(0,1fr);max-height:none;min-height:0}.loadout-doll,.inventory-modal .loadout-doll{height:166px;min-height:166px}.loadout-caption strong{font-size:14px}.loadout-caption{top:5px;font-size:var(--fs-micro)}.loadout-figure,.inventory-modal .loadout-figure{top:26px;height:135px}.loadout-head{top:25px}.loadout-weapon,.loadout-armor{top:55px}.loadout-charm,.loadout-feet,.inventory-modal .loadout-charm,.inventory-modal .loadout-feet{top:110px}.loadout-slot{height:48px}.loadout-slot>span:last-child{font-size:var(--fs-micro)}.loadout-stats{padding:3px 6px;min-height:26px}.loadout-stats>span{font-size:var(--fs-small)}.loadout-stats .engraving{height:18px;width:18px}.slot-browser-heading{padding:5px 10px;min-height:30px}.slot-browser-heading strong{font-size:18px}.owned-item{min-height:46px;padding:3px 8px;margin-bottom:3px}.owned-item>.engraving{width:30px;height:34px}.owned-item-copy>strong{font-size:15px}.owned-item .item-stat{min-height:14px}.owned-item-list{min-height:0;padding:4px}.owned-detail{min-height:65px;padding:7px 11px}.owned-detail-copy>strong{font-size:var(--fs-title)}.owned-detail .item-stats{margin-top:3px}.owned-detail .item-stat{min-height:15px}.owned-detail .button{min-height:44px}
 .compact-merchant #merchant-wares{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(0,1.8fr);grid-template-rows:44px minmax(0,1fr);gap:8px 15px;flex:1;min-height:0}.compact-merchant .shop-filters{grid-column:1;grid-row:1;margin:0;padding:0;gap:2px;border:0}.compact-merchant .shop-filters button{padding:5px;font-size:10px;min-height:44px;flex:1}.compact-merchant .shop-quality{grid-column:1;grid-row:2;align-self:start;flex-wrap:wrap;margin:0;gap:5px}.compact-merchant .shop-quality>span{width:100%;margin:0;font-size:10px}.compact-merchant .shop-quality button{flex:1;min-height:44px;padding:5px}.compact-merchant .shop-grid{grid-column:2;grid-row:1 / 3;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;min-height:0;gap:5px;padding:1px;scrollbar-width:thin}.compact-merchant .shop-note{display:none}.compact-merchant .shop-card{display:grid;grid-template-columns:31px minmax(0,1fr) 85px;grid-template-rows:23px 15px;gap:0 8px;padding:5px;min-height:50px;flex-shrink:0;align-items:center}.compact-merchant .shop-item-heading{grid-column:1;grid-row:1 / 3;display:block;margin:0}.compact-merchant .shop-item-heading .engraving{width:31px;height:36px;margin:0}.compact-merchant .shop-item-heading .rarity-label{display:none}.compact-merchant .shop-card h3{grid-column:2;grid-row:1;min-height:0;font-size:15px;line-height:1.1;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-merchant .shop-card .item-description{display:none}.compact-merchant .shop-card>.item-stats{grid-column:2;grid-row:2;margin:0;min-height:0;height:14px;flex-direction:row;gap:7px;align-items:center;overflow:hidden}.compact-merchant .shop-card>.item-stats:before{display:none}.compact-merchant .shop-card .item-stat{min-height:0;height:14px;font-size:var(--fs-micro);gap:3px}.compact-merchant .shop-card .item-stat>.engraving{width:12px;height:12px}.compact-merchant .shop-card .item-stat strong{font-size:10px;margin:0}.compact-merchant .shop-card>.button{grid-column:3;grid-row:1 / 3;min-height:44px;margin:0;padding:5px;font-size:var(--fs-micro);display:flex;flex-direction:column;justify-content:center;gap:0}.compact-merchant .shop-card>.button strong{font-size:12px}
}
/* The discovered forge fits three deliberate purchases on a phone. */
.blacksmith-overlay{z-index:var(--z-modal)}.blacksmith-modal{width:min(600px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow-y:auto;border-color:#b48045;background:radial-gradient(ellipse at 0 0,#49321d,#1d1b16 70%);padding:18px}.blacksmith-modal .modal-header{margin-bottom:8px}.blacksmith-modal h2{font-size:25px}.forge-lore{font:italic 14px var(--font-display);color:#d6bb90;margin:4px 0 10px}.forge-wallet{font-size:12px;color:#efd3a3;padding:9px 0;border-block:1px solid #695035}.forge-offers{display:flex;flex-direction:column;gap:9px;margin:12px 0}.forge-item{display:grid;grid-template-columns:40px minmax(0,1fr) 100px;gap:10px;align-items:center;padding:10px 8px;border:1px solid #8e6036;background:#292219}.forge-art{width:40px;height:48px}.forge-item h3{font:17px var(--font-display);margin:5px 0;color:var(--rarity)}.forge-item .rarity-label{font-size:var(--fs-micro)}.forge-item .item-stats{margin:0;flex-direction:row}.forge-item .item-stat{font-size:10px;min-height:18px}.forge-item .item-stat .engraving{display:none}.forge-item .button{min-height:44px;padding:6px;font-size:var(--fs-small)}.forge-note{font-size:10px;color:var(--c-text-2);line-height:1.45;margin:8px 0 12px}
@media(max-width:360px){.blacksmith-modal{padding:12px}.blacksmith-modal h2{font-size:var(--fs-heading)}.forge-item{grid-template-columns:29px minmax(0,1fr) 80px;gap:6px;padding:8px 5px}.forge-art{width:29px;height:40px}.forge-item h3{font-size:15px}.forge-wallet{font-size:10px}}
@media(max-height:550px) and (orientation:landscape){.blacksmith-modal{width:min(800px,calc(100vw - 24px));padding:12px}.blacksmith-modal h2{font-size:21px}.forge-lore{display:none}.forge-offers{flex-direction:row;gap:8px;margin:8px 0}.forge-item{flex:1;grid-template-columns:30px minmax(0,1fr);gap:5px;min-width:0;padding:7px}.forge-art{width:30px;height:36px}.forge-item h3{font-size:14px}.forge-item .button{grid-column:1 / -1}.forge-note{margin:5px 0;font-size:var(--fs-micro)}.forge-wallet{padding:6px 0}}

/* Keep prices readable even when purchase is disabled. */
.button.price-button{flex-direction:column;gap:3px;line-height:1.2;white-space:normal;min-height:48px;padding:7px 5px}
.button.price-button strong{display:block;font-size:12px;color:inherit}
.button.price-button span{display:block;font-size:10px;font-weight:400}
.button.price-button:disabled{opacity:1;background:#28231d;border-color:#655039;color:var(--c-gold-bright)}
.button.price-button:disabled span{color:#d7b1a0}
/* Veyra's compact, persistent commission book. */
.quests-open .merchant-banner{display:none!important}.merchant-tabs .has-reward,.camp-nav .has-reward{color:var(--c-gold-bright)!important;text-shadow:0 0 12px #d5a74e88}
#merchant-quests{max-width:740px;width:100%;margin:0 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#776543 #171612}
.quest-giver{display:flex;gap:12px;align-items:center;padding:8px 12px;border:1px solid #625538;background:radial-gradient(ellipse at left,#4b4032,#1b1b19 70%)}.quest-sigil{font-size:48px;color:#d4c7aa;text-shadow:0 0 18px #bb93cf}.quest-giver h2{font-size:25px;margin:2px 0;color:var(--c-text)}.quest-giver p{font-size:12px;margin:3px 0;color:var(--c-text-2);font-style:italic}.quest-summary{font-size:10px;color:var(--c-text-2);line-height:1.4;margin:8px 0}.quest-chains{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.quest-chain{border:1px solid #514936;background:#24231e;color:var(--c-text-2);min-height:64px;padding:6px;display:grid;grid-template-columns:24px 1fr;text-align:left;align-items:center;gap:2px 5px;cursor:pointer}.quest-chain .engraving{width:24px;height:30px;grid-row:span 2}.quest-chain strong{font-size:var(--fs-small)}.quest-chain small{font-size:10px;color:var(--c-text-2)}.quest-chain.selected{border-color:#d9be7d;background:#383023}.quest-chain.ready small{color:#f8d885}.quest-detail{padding:14px;border:1px solid var(--panel-border);border-radius:var(--radius-md);background:var(--panel-bg);box-shadow:var(--panel-inset);margin-top:9px;display:grid;gap:8px}.quest-detail h3{font-size:23px;margin:0;color:#ecd9b1}.quest-detail p{font-size:12px;line-height:1.4;margin:0;color:#c7c0b0}.quest-progress{width:100%;height:6px;accent-color:#d6b363}.quest-reward{font-size:12px;color:#eacb88}.quest-detail .button{min-height:44px;width:100%}.quest-item-note{font-size:10px;color:var(--c-text-2)}.quest-detail .button:disabled{opacity:.75}
@media(max-width:500px){.quest-giver{padding:6px 9px;gap:8px}.quest-sigil{font-size:33px}.quest-giver h2{font-size:20px}.quest-giver p{font-size:10px}.quest-giver .eyebrow{font-size:var(--fs-micro)}.quest-chains{gap:4px}.quest-chain{grid-template-columns:1fr;text-align:center;padding:5px 2px;min-height:48px}.quest-chain .engraving{display:none}.quest-chain strong{font-size:10px}.quest-chain small{font-size:var(--fs-micro)}.quest-detail{gap:7px;padding:10px}.quest-detail h3{font-size:20px}.quest-summary{font-size:var(--fs-micro);margin:6px 0}}
@media(max-height:550px) and (orientation:landscape){#merchant-quests{display:grid;grid-template-columns:1fr 1.2fr;gap:8px 14px;overflow:auto}.quest-giver,.quest-summary,.quest-chains{grid-column:1}.quest-summary{margin:0}.quest-detail{grid-column:2;grid-row:1 / 4;margin:0;padding:9px;gap:5px}.quest-giver h2{font-size:20px}.quest-giver p{font-size:10px}.quest-detail h3{font-size:19px}.quest-detail p{font-size:var(--fs-small)}.quest-sigil{font-size:32px}}
/* Quiet iron-and-gold HUD; actions are anchored above the currency. */
.game-hud .game-resources{position:absolute;right:0;top:0;display:flex;flex-direction:column;align-items:flex-end;gap:5px}.game-resources .hud-actions{order:0}.game-resources .run-gold{order:1;margin:0 5px 0 0;background:linear-gradient(90deg,transparent,#171512c9);padding:2px 5px}.hud-actions button{position:relative;width:var(--touch-min);min-width:var(--touch-min);height:var(--touch-min);padding:6px;border:1px solid var(--panel-border);border-radius:var(--radius-md);background:var(--panel-bg);box-shadow:var(--panel-inset),var(--shadow-pop)}.hud-actions button .engraving{width:29px;height:29px;display:block}.hud-actions button .engraving svg{width:100%;height:100%}.hud-actions button small{position:absolute;bottom:1px;right:2px;font-size:var(--fs-micro);padding:0 2px;line-height:11px;background:#151410d9;color:#e1cda3;border-radius:2px}.character-tag>span:first-child{color:var(--c-text);letter-spacing:.4px}.health-meter{border:1px solid #95825a;box-shadow:0 0 0 2px #11110ed9,inset 0 1px 4px #000;border-radius:0}.health-meter .meter-fill{background:var(--c-hp-fill)}.xp-meter{border-color:#716649!important;border-radius:0!important}.run-clock>strong{color:var(--c-text)}.portal-status{color:var(--c-text-2)}.quick-equipment{filter:sepia(.12)}
@media(max-width:700px){.game-hud{display:block;top:max(10px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right))}.game-hud .vitals{width:calc(100% - 108px);max-width:235px}.game-hud .run-clock{position:absolute;right:0;top:74px;width:95px;padding:0}.game-hud .run-clock>strong{font-size:var(--fs-heading);line-height:1.1}.game-hud .portal-status{font-size:var(--fs-micro);letter-spacing:.7px}.game-hud .game-resources{top:0;right:0}.hud-actions{gap:5px}.character-tag{gap:5px}.character-tag>span:last-child{overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-micro)}.game-hud .run-gold{font-size:12px}.game-hud .run-clock.trial-phase #hud-time{font-size:10px}}
.death-overlay{position:absolute;inset:0;z-index:var(--z-cinematic);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:radial-gradient(ellipse,#08040475,#000d);pointer-events:auto;animation:death-darken 2.7s ease-out both}.death-overlay span{display:block;width:100%;padding:24px 5px;text-align:center;background:linear-gradient(90deg,transparent,#090404b0 25%,#090404b0 75%,transparent);font:clamp(25px,7vw,80px)/1.2 var(--font-display);letter-spacing:.13em;color:#a02d28;text-shadow:0 0 18px #650c09aa,0 2px 3px #000;animation:death-words 2.7s ease-out both}.death-overlay small{color:#9c8175;font:12px var(--font-display);letter-spacing:2px;animation:death-words 2.7s ease-out both}.is-dying .game-hud,.is-dying .touch-controls,.is-dying .desktop-controls,.is-dying .game-bottom-info{visibility:hidden}.is-dying #game-canvas{filter:saturate(.3) brightness(.65)}
@keyframes death-darken{from{opacity:0}25%,85%{opacity:1}to{opacity:1}}@keyframes death-words{0%,10%{opacity:0;transform:scale(.94)}30%,83%{opacity:1}100%{opacity:.2;transform:scale(1.04)}}@media(prefers-reduced-motion:reduce){.death-overlay,.death-overlay span,.death-overlay small{animation:none}}
.loadout-weapon2{left:calc(50% - 24px);top:154px}.loadout-weapon2 .engraving{opacity:.85}.switch-weapon-button{width:52px;height:52px;right:104px;bottom:104px;pointer-events:auto;border:1px solid #b09b72a0;background:linear-gradient(145deg,#3d3526e0,#181a17df);box-shadow:inset 0 0 0 3px #19181388}.switch-weapon-button .engraving{width:26px;height:26px}.switch-weapon-button small{font-size:var(--fs-micro);white-space:nowrap;letter-spacing:0}.switch-weapon-button.switching{background:conic-gradient(#ba9d61 var(--swap-progress),#24241d 0);animation:swap-pulse .3s ease-in-out infinite alternate}@keyframes swap-pulse{to{filter:brightness(1.3)}}
@media(max-width:700px){.loadout-weapon2{top:62px;left:calc(50% - 22px)}.switch-weapon-button{right:88px;bottom:111px;width:48px;height:48px}}
@media(min-width:701px) and (pointer:fine){.game-screen .switch-weapon-button{position:fixed;right:24px;bottom:90px;display:flex}.touch-controls:has(.switch-weapon-button){display:block}.touch-controls #stick-zone,.touch-controls .action-button:not(.switch-weapon-button){display:none}.touch-controls .action-cluster{pointer-events:none}}
.build-summary{padding:6px 8px;border:1px solid #66573c66;background:#191914;color:var(--c-text-2);font-size:10px;display:grid;gap:5px;max-height:80px;overflow-y:auto;flex-shrink:0}.build-row{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.build-row>strong{font-size:var(--fs-micro);color:#d9c598;margin-right:3px}.build-chip{padding:2px 5px;background:#302c22;border:1px solid #64563e66;border-radius:2px;color:var(--c-text)}.shrine-buffs{font-size:var(--fs-micro);line-height:1.4;color:#e2cc96;background:#1d1b14bb;padding:3px 5px;margin-top:5px;border-left:2px solid #aa9564;max-width:220px}.build-summary:empty{display:none}@media(max-height:550px) and (orientation:landscape){.build-summary{max-height:57px;font-size:var(--fs-micro);padding:4px;gap:3px}.build-chip{padding:1px 3px}}
/* Keep the swap target separate from Ultimate, including the 0.78 mobile cluster scale. */
@media(max-width:700px){.switch-weapon-button{right:95px;bottom:170px;width:58px;height:58px}}
.quest-tracker{position:relative;max-width:220px;margin-top:7px;padding:6px 7px 8px;background:linear-gradient(90deg,#161713ed,#161713aa);border-left:2px solid #958466;color:#d4c7ac;box-shadow:0 2px 8px #0005;pointer-events:none}.quest-tracker small{display:block;font-size:var(--fs-micro);letter-spacing:.5px;margin-bottom:3px}.quest-tracker strong{display:block;font:12px/1.25 var(--font-display)}.quest-tracker i{position:absolute;left:0;bottom:0;height:2px;background:#ad9d77;max-width:100%;transition:width .2s}.quest-tracker.complete{border-color:#efd083;color:#f4daa1;background:linear-gradient(90deg,#352c1ce8,#161713aa)}.quest-tracker.complete i{background:#e8c479}@media(max-width:500px){.quest-tracker{padding:5px 6px 7px}.quest-tracker strong{font-size:var(--fs-small)}.quest-tracker small{font-size:var(--fs-micro)}}
/* Original engraved fantasy controls; the weapon art follows the active slot. */
.action-button:not(.ultimate-ready):not(.is-unavailable):not(.switching){background:radial-gradient(circle at 35% 22%,#514631dd,#20221de8 65%,#11130fee);border-color:#a5906599;box-shadow:inset 0 0 0 3px #14161288,inset 0 1px 4px #e8d6a222,0 3px 9px #0008}.action-button>span:has(.engraving){display:flex;align-items:center;justify-content:center}.action-button .engraving{width:31px;height:31px;display:block;filter:drop-shadow(0 2px 2px #0009)}.action-button .engraving svg{width:100%;height:100%}.attack-action #attack-symbol .engraving{width:44px;height:44px}.action-button small{color:var(--c-text);letter-spacing:.45px;text-shadow:0 1px 2px #000}.attack-action.is-unavailable .engraving{filter:sepia(.5) saturate(.7) drop-shadow(0 0 3px #cb5149)}.heal-action .engraving{width:34px;height:34px}.dodge-action .engraving{width:34px;height:34px}.switch-weapon-button .engraving{width:28px;height:28px}

.quest-tracker .quest-objective{display:block;font:var(--fs-small)/1.35 var(--font-ui);margin-top:3px;color:#efe3cc}.quest-tracker strong{font-size:10px;color:#b7aa90}.quest-tracker.complete .quest-objective{color:#ffe4a6}@media(max-width:500px){.quest-tracker .quest-objective{font-size:10px}.quest-tracker strong{font-size:var(--fs-micro)}}

.equipment-effect{font:var(--fs-small)/1.35 var(--font-ui);color:#d9c5a0;margin:5px 0 0;max-width:260px}

.stone-meter{position:relative;height:15px;margin-top:6px;background:var(--surface-row);border:1px solid var(--panel-border)}.stone-meter span{position:relative;z-index:1;font:var(--fs-micro) var(--font-ui);letter-spacing:1px;color:var(--c-text);padding-left:5px}.stone-meter i{position:absolute;left:0;top:0;bottom:0;background:#9fb18566;transition:width var(--dur-fast)}.stone-meter.petrified i{background:#b8c0a9}

.loot-effect{font:10px/1.4 var(--font-ui);color:#c9b58c;margin:5px 0 0}.mastery-label{display:block;color:#c8bb90;font:var(--fs-micro) var(--font-ui);margin-top:5px;letter-spacing:.8px}

/* Separate weapon special and item ultimate, reachable without covering the player. */
.weapon-skill-action{width:60px;height:60px;background:conic-gradient(#bca77e var(--charge,0%),#2a261f 0);color:#f4e1b8;border:2px solid #79684a}.weapon-skill-action:before{content:'';position:absolute;inset:3px;border-radius:50%;background:#27241e}.weapon-skill-action>*{position:relative}.weapon-skill-action .engraving{width:25px;height:25px}.weapon-skill-action>small{font-size:var(--fs-micro);margin-top:0}.weapon-skill-action>b{font-size:var(--fs-micro)}.weapon-skill-action.ready{box-shadow:0 0 17px #eed68a88;border-color:#ffe6a6}.weapon-skill-action:disabled{opacity:.75}
#weapon-skill-btn{right:76px;bottom:70px;width:58px;height:58px}#skill-btn{right:141px;bottom:135px;width:51px;height:51px}#heal-btn{right:145px;bottom:72px;width:47px;height:47px}#switch-weapon-btn{right:78px;bottom:140px;width:49px;height:49px}#attack-btn{right:0;bottom:24px}#dodge-btn{right:77px;bottom:0}#interact-btn{right:0;bottom:121px}
.ultimate-item-choice{border-top:1px solid #aa8e4c44;padding-top:5px;margin-top:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ultimate-item-choice>small{font:var(--fs-micro)/1.3 var(--font-ui);color:var(--c-gold)}.ultimate-item-choice .button{min-height:34px;font-size:10px;padding:5px 8px}.active-ultimate-summary{font:var(--fs-micro)/1.4 var(--font-ui);color:#bfaa79;padding:3px 7px}.owned-detail{flex-shrink:0}.owned-detail-copy{min-width:0}.owned-detail .equipment-effect{font-size:10px;line-height:1.3}.owned-detail{max-height:46%;overflow:auto}
@media(max-width:600px){#attack-btn{width:66px;height:66px}#dodge-btn{width:54px;height:54px}#interact-btn{width:57px;height:57px}#skill-btn .ultimate-ring{width:100%;height:100%}#skill-btn #skill-symbol{font-size:19px}#skill-btn #ultimate-charge{font-size:var(--fs-micro)}#skill-btn small{font-size:var(--fs-micro)}.action-cluster{height:210px;width:202px;right:12px}.ultimate-ready-notice{right:130px;bottom:194px}.active-ultimate-summary{font-size:var(--fs-micro)}}
@media(max-width:600px){.action-cluster{transform:none!important}.owned-detail{max-height:66%}.loadout-overview .build-summary{display:flex;gap:7px;padding:4px 6px}.loadout-overview .build-row{flex:1;min-width:0}.active-ultimate-summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ultimate-item-choice .button{min-height:44px}.ability-help{margin-top:4px;color:#c9b58c;font:10px/1.3 var(--font-ui)}.ability-help summary{cursor:pointer;min-height:22px;display:flex;align-items:center}.ability-help p{margin:4px 0}.owned-detail .rarity-label{font-size:var(--fs-micro)}}

.rune-binding{color:#b8d8ce;font-size:var(--fs-small);line-height:1.35;margin:4px 0;letter-spacing:.02em}

/* The costly endgame catalogue fits on one compact, inspect-before-buy panel. */
.premium-open .merchant-banner{display:none}
#merchant-premium{max-width:660px;width:100%;margin:0 auto;min-height:0}
.premium-heading h2{font:28px var(--font-display);color:var(--gold-bright);margin:3px 0 13px}
.premium-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.premium-card{display:grid;grid-template-columns:35px minmax(0,1fr);gap:3px 8px;min-height:84px;padding:10px;background:var(--panel-bg);border:1px solid var(--panel-border);text-align:left;color:var(--c-text);border-radius:var(--radius-md)}
.premium-card .engraving{grid-row:span 3;width:33px;height:40px;align-self:center}
.premium-card strong{font:18px var(--font-display);line-height:1.1;min-width:0;overflow-wrap:anywhere;hyphens:auto}
.premium-card small{font-size:10px;color:var(--c-text-2)}
.premium-price{font-size:12px;color:var(--c-gold-bright);font-variant-numeric:tabular-nums}
.premium-card.selected{border-color:#efca83;box-shadow:inset 0 0 18px #ce964b16;outline:1px solid #efca8360}
.premium-detail{padding:14px;margin-top:12px;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:var(--radius-md);box-shadow:var(--panel-inset)}
.premium-detail h3{font:24px var(--font-display);margin:0;color:var(--c-gold-bright)}
.premium-detail p{font-size:var(--fs-body);line-height:1.4;margin:8px 0 12px;color:#d1c3ab}
.premium-detail .button{min-height:44px;width:100%;font-size:12px;padding:10px}
.premium-deficit{display:block;color:var(--c-danger-text);font-size:var(--fs-small);margin-top:7px}
.shop-quality button[data-shop-rarity="2"]{color:var(--rarity-2)}
@media(max-width:700px){
 .merchant-tabs button{padding:6px 3px;font-size:10px;min-width:0}
 .premium-heading .eyebrow{font-size:var(--fs-micro)}.premium-heading h2{font-size:23px;margin-bottom:9px}
 .premium-grid{gap:7px}.premium-card{grid-template-columns:24px minmax(0,1fr);gap:3px 5px;min-height:78px;padding:8px 6px}.premium-card .engraving{width:23px;height:30px}.premium-card strong{font-size:15px}.premium-card small{font-size:var(--fs-micro)}.premium-price{font-size:var(--fs-small)}
 .premium-detail{padding:11px;margin-top:9px}.premium-detail h3{font-size:21px}.premium-detail p{font-size:12px;margin:6px 0 10px}
 .shop-quality button{padding:7px 10px}
}
@media(max-height:550px) and (orientation:landscape){
 #merchant-premium{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,1fr);grid-template-rows:30px minmax(0,1fr);gap:8px 15px;max-width:none;flex:1;min-height:0}
 .premium-heading{grid-row:1;grid-column:1}.premium-heading .eyebrow{display:none}.premium-heading h2{font-size:var(--fs-heading);margin:0}.premium-grid{grid-row:2;grid-column:1;align-content:start}.premium-card{min-height:72px;padding:7px}.premium-detail{grid-row:1 / 3;grid-column:2;margin:0;padding:12px;align-self:start}.premium-detail p{font-size:12px}
}
/* Coarse pointers keep real thumb-sized targets in landscape as well. */
@media(pointer:coarse),(max-width:700px){.action-cluster{transform:none!important;width:202px}#attack-btn{width:66px;height:66px}#dodge-btn{width:54px;height:54px}#interact-btn{width:57px;height:57px}}
/* English UI (CR-20261007-140, WP1): labels that used to be typed in capitals are written in sentence/Title case
   in index.html, ui-online.js and room-lobby.ts and shown in capitals here (GLOSSARY §1). Screen readers get the
   normal-case text. */
.eyebrow,.small-label,.brand,.gold-balance small,.run-gold small,.resource-line small,.camp-ledger>span,.death-overlay>span,#hud-level,.portal-status,.hud-telemetry,.desktop-controls kbd,#desktop-skill-state,#stick-zone>span,.action-button small,.result-stats span,.rune-pedestal>small,.vault-heading>strong,.bonfire-class-name,.forge-item .rarity-label,.run-clock:is([data-phase="antechamber"],[data-phase="reward"],[data-phase="victory"]) #hud-time{text-transform:uppercase}
.small-label select,.small-label input{text-transform:none}
/* Longer English slot labels ("Weapon II") stay on one line instead of wrapping out of the slot. */
.loadout-slot>span:last-child{white-space:nowrap;letter-spacing:0;margin-inline:-6px;max-width:calc(100% + 12px);overflow:hidden;text-overflow:ellipsis}
.unified-inventory .loadout-slot:is([data-slot="weapon"],[data-slot="weapon2"])>span:last-child{margin-inline:-10px;max-width:calc(100% + 20px)}
.switch-weapon-button small{letter-spacing:0}
@media(orientation:portrait){.departure-kit-summary .departure-kit-row{grid-template-columns:20px 50px minmax(0,1fr)}.departure-kit-summary .departure-kit-row>span:not(.engraving){white-space:nowrap}}
