/* v129 zA: home V2, currency bar, Utilities, bright look, hidden allies, claims on top. Everything is scoped to a class that only exists
   when its Feat switch is ON (home1.zAh, home1.zAt, home1.zAu, body.zA-bright, body.zA-hid, .zAclaim ...), so OFF = old look. */
/* ---- homeV2 ---- */
.home1.zAh .zAhome{display:grid;gap:8px}
.home1.zAh .zAbig{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.home1.zAh .zAsmall{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.dh .home1.zAh .btn.zAb{--zc:#7c3aed;background:linear-gradient(180deg,color-mix(in srgb,var(--zc) 78%,#fff 6%),color-mix(in srgb,var(--zc) 55%,#000));border:1px solid color-mix(in srgb,var(--zc) 60%,#fff);box-shadow:0 3px 0 rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.25);position:relative}
.dh .home1.zAh .zAbig .btn.zAb{min-height:78px}
.dh .home1.zAh .zAbig .btn.zAb .ti{font-size:2.1rem}
.dh .home1.zAh .zAbig .btn.zAb .tl2{font-size:.92rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.dh .home1.zAh .zAsmall .btn.zAb{min-height:54px;padding:3px 0}
.dh .home1.zAh .zAsmall .btn.zAb .ti{font-size:1.3rem}
.dh .home1.zAh .zAsmall .btn.zAb .tl2{font-size:.62rem;color:#fff;letter-spacing:.02em}
.home1.zAh .btn.zAb.locked{filter:grayscale(.7) brightness(.8)}
body.cpx-tabs #app .home1.zAh .btn.zAb{box-shadow:inset 0 0 0 100px color-mix(in srgb,var(--zc) 38%,transparent)!important}
/* ---- topbar: one row, every currency once ---- */
.home1.zAt .top{flex-wrap:nowrap}
.home1.zAt .top .tr{flex:1 1 auto;min-width:0;justify-content:flex-end;gap:3px;margin-left:0}
.home1.zAt .top .coinbtn,.home1.zAt .top .ver.dia,.home1.zAt .zAc{display:inline-flex;align-items:center;gap:2px;height:32px;padding:0 6px;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,0)),rgba(12,10,26,.82)!important;border:1px solid rgba(212,175,55,.45)!important;box-shadow:none!important;font:900 .74rem/1 GameFont,Georgia,serif;color:#fff;min-width:0;white-space:nowrap;-webkit-font-smoothing:antialiased;text-shadow:none}
.home1.zAt .top .ver.dia{color:#bae6fd}.home1.zAt .top .ver.dia em{font-style:normal;color:#4ade80;margin-left:2px}
.home1.zAt .zAc i,.home1.zAt .coinbtn i,.home1.zAt .ver.dia i{font-style:normal;font-size:.85rem}
.home1.zAu.zAt .top .tl{flex:0 0 auto}
@media (max-width:370px){.home1.zAt .zAc,.home1.zAt .coinbtn,.home1.zAt .ver.dia{padding:0 4px;font-size:.68rem}}
body.cpx-coins #app .home1.zAt .coinbtn{background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,0)),rgba(12,10,26,.82)!important}
/* menus: the old "You have ..." line repeats the money bar */
body.zA-topbar .gstore .gshave{display:none}
/* ---- utilities dropdown ---- */
.zAuw{position:relative;display:inline-flex}
.home1 .zAub{min-width:38px;font-size:1.15rem}
.zAmenu{position:absolute;top:calc(100% + 6px);left:0;z-index:30;display:grid;gap:4px;min-width:170px;padding:6px;border-radius:14px;background:rgba(18,12,36,.97);border:1px solid rgba(212,175,55,.55);box-shadow:0 10px 28px rgba(0,0,0,.65)}
.zAmenu[hidden]{display:none}
.home1 .zAmenu .ver.zAmi{display:flex;align-items:center;gap:10px;justify-content:flex-start;width:100%;min-width:0;height:42px;padding:0 12px;border-radius:10px;text-align:left;position:relative}
.zAmenu .zAl{font-size:.9rem;font-weight:800;color:#f3e6c0}
body.cpx-icons #app .top .zAmenu .ver{width:100%;min-width:0;height:42px}
.home1.zAu .top .tl{gap:6px}
/* ---- bright look: menus and non-dungeon screens only ---- */
body.zA-bright:not([data-scr=battle]):not([data-scr=hall]) .home1{background-color:#4a3a78;background-blend-mode:screen}
body.zA-bright:not([data-scr=battle]):not([data-scr=hall]) .dh .win.dhp,body.zA-bright:not([data-scr=battle]):not([data-scr=hall]) .win.dhp{background:radial-gradient(120% 80% at 50% 0%,rgba(167,139,250,.28),transparent 60%),linear-gradient(180deg,#2b2350 0%,#1d1840 100%)}
body.zA-bright:not([data-scr=battle]):not([data-scr=hall]) .dh .veil{background:rgba(24,18,50,.5);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
body.zA-bright:not([data-scr=battle]):not([data-scr=hall]) .loot{background:rgba(255,255,255,.09)}
body.zA-bright:not([data-scr=battle]):not([data-scr=hall]) .home1 .patrol{background:rgba(48,38,92,.82)}
body.zA-bright:not([data-scr=battle]):not([data-scr=hall]) .home1 .htitle h1{filter:brightness(1.1)}
/* ---- hidden allies: the pet and mercenary appear only while they act ---- */
body.zA-hid[data-scr=battle] #pet,body.zA-hid[data-scr=battle] #merc{opacity:0;scale:.25;transition:opacity .14s ease-out,scale .14s ease-out}
body.zA-hid[data-scr=battle] #pet.zA-in,body.zA-hid[data-scr=battle] #merc.zA-in{opacity:1;scale:1}
body.zA-hid[data-scr=battle] #merc.down.zA-in{opacity:.6}
/* ---- claims on top ---- */
.zAclaim{display:grid;gap:6px;padding:8px;border-radius:12px;background:linear-gradient(180deg,rgba(250,204,21,.22),rgba(250,204,21,.06));border:1px solid rgba(250,204,21,.6)}
.zAclaim h3{margin:0}
.zAcrow{display:flex;align-items:center;gap:8px}
.zAcrow>div{flex:1;min-width:0}.zAcrow small{display:block}
.zAic{font-size:1.8rem;line-height:1}
.loot.quest.zAgone{display:none!important}
.zAfold{justify-self:center;opacity:.85}
.loot.quest.zAready{border-color:rgba(250,204,21,.7);background:rgba(250,204,21,.12)}
.home1.zAt .coinbtn .zAc{border:0!important;background:none!important;padding:0;height:auto}
body.zA-topbar .win:has(>.curbar) .ph .tally{display:none}
/* ---- v140 home fixes (Dragon 11-12): top bar that fits, readable text on any painting, textured buttons, level plate nearer the middle ---- */
/* outline for text that sits straight on the painting: a black edge all round + a soft shadow */
.home1 .htitle small,.home1 .htitle h1,.home1 .homexp span,.home1.zAt .top .zAc,.home1.zAt .top .coinbtn,.home1.zAt .top .ver.dia,.home1 .btn.gofloor small{
  text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000,0 0 4px #000,0 2px 8px rgba(0,0,0,.85)!important}
.home1 .htitle h1{-webkit-text-stroke:1.5px rgba(0,0,0,.85);paint-order:stroke fill}
.home1 .htitle small{color:#bfe6ff;font-weight:800;-webkit-text-stroke:1px rgba(0,0,0,.7);paint-order:stroke fill}
.home1 .homexp span{-webkit-text-stroke:.8px rgba(0,0,0,.8);paint-order:stroke fill}
.home1.zAh .btn.zAb .tl2{text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000,0 2px 4px rgba(0,0,0,.8)!important;-webkit-text-stroke:.6px rgba(0,0,0,.7);paint-order:stroke fill}
/* top bar: a dark fade behind it so it reads on a bright painting; icons small; pills never clip (they wrap to a second row if a phone is narrow) */
.home1.zAt .top{isolation:isolate;align-items:flex-start;flex-wrap:nowrap}
.home1.zAt .top::before{content:"";position:absolute;left:-12px;right:-12px;top:-10px;height:calc(100% + 22px);min-height:66px;background:linear-gradient(180deg,rgba(6,4,16,.82) 0%,rgba(6,4,16,.55) 60%,rgba(6,4,16,0) 100%);z-index:-1;pointer-events:none}
.home1.zAt .top .tl{flex:0 0 auto;gap:4px}
.home1.zAt .top .tl .ver{width:38px!important;min-width:38px!important;height:38px!important}
body.cpx-icons #app .home1.zAt .top .tl .ver img.cpx{width:24px!important;height:24px!important}
.home1.zAt .top .tr{flex:1 1 0;min-width:0;flex-wrap:wrap;justify-content:flex-end;gap:4px 3px}
.home1.zAt .top .tr>*{flex:0 0 auto}
.home1.zAt .top .coinbtn,.home1.zAt .top .ver.dia,.home1.zAt .top .zAc{width:auto!important;min-width:0!important;height:32px!important;padding:0 8px!important;font-size:.72rem!important;gap:3px;background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,0)),rgba(10,8,22,.9)!important;border:1px solid rgba(212,175,55,.6)!important}
.home1.zAt .top .coinbtn .zAc,.home1.zAt .top .coinbtn .zAc b{height:auto!important;padding:0!important;border:0!important;background:none!important}
body.cpx-icons #app .home1.zAt .top .zAc img.cpx,body.cpx-icons #app .home1.zAt .top .ver.dia img.cpx,body.cpx-icons #app .home1.zAt .top .coinbtn img.cpx{width:18px!important;height:18px!important;margin:0!important}
body.cpx-coins #app .home1.zAt .top .coinbtn{background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,0)),rgba(10,8,22,.9)!important}
@media (max-width:380px){.home1.zAt .top .coinbtn,.home1.zAt .top .ver.dia,.home1.zAt .top .zAc{padding:0 6px!important;font-size:.66rem!important}}
/* home buttons get the same grain + carved edge as every other plate (a coloured gradient used to skip it) */
.dh .home1.zAh .btn.zAb{background-image:linear-gradient(180deg,rgba(255,240,210,.18),rgba(255,255,255,0) 42%,rgba(0,0,0,.28)),url(../assets/ui/skin_grain.webp),linear-gradient(180deg,color-mix(in srgb,var(--zc) 78%,#fff 6%),color-mix(in srgb,var(--zc) 55%,#000))!important;background-size:100% 100%,128px 128px,100% 100%!important;background-repeat:no-repeat,repeat,no-repeat!important;border:1px solid rgba(212,175,55,.55)!important;box-shadow:0 3px 0 rgba(0,0,0,.5),inset 0 1px 0 rgba(255,236,190,.28),inset 0 -2px 0 rgba(0,0,0,.35)!important}
/* level plate (name, level, power, Switch) and title sit nearer the middle: the hero tucks in behind them a little */
.home1.zAh .hstage .hhero{margin-right:-30px}
.home1.zAh .hstage .htitle{position:relative;z-index:2}
.home1.zAh .nplate{background:linear-gradient(90deg,rgba(59,29,94,.94),rgba(20,12,36,.85))}

/* v142: the diamond pill keeps its pill (the Craftpix icon look stripped it), so it no longer sits on top of the gold pill's number */
body.cpx-icons #app .home1.zAt .top .ver.dia{background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,0)),rgba(10,8,22,.9) !important;border:1px solid rgba(212,175,55,.6) !important;padding:0 8px !important;width:auto !important;min-width:0 !important;height:32px !important;border-radius:16px !important;box-shadow:0 2px 0 rgba(0,0,0,.45) !important;flex:0 0 auto;white-space:nowrap}
.home1.zAt .top .coinbtn{flex:0 0 auto;white-space:nowrap}

/* v144: no horns on the Portal home; hero and allies a little further left, title block a little up and right */
.home1 .dsig .horn{display:none!important}
.home1.zAh .hstage .hhero{transform:translateX(-27px)}
.home1.zAh .hstage .htitle{transform:translate(13px,-14px) scale(.95);transform-origin:left center}

/* ===== v145 ===== */
/* battle: the darker rectangle behind the arch is gone (the arch and fog stay) */
.room .rback{background:none!important;box-shadow:none!important}

/* home title text: thinner black edge, more shadow */
.home1 .htitle small,.home1 .htitle h1,.home1 .homexp span,.home1.zAt .top .zAc,.home1.zAt .top .coinbtn,.home1.zAt .top .ver.dia,.home1 .btn.gofloor small{text-shadow:0 1px 0 rgba(0,0,0,.9),0 2px 3px rgba(0,0,0,.85),0 4px 12px rgba(0,0,0,.85),0 0 22px rgba(0,0,0,.6)!important}
.home1 .htitle h1{-webkit-text-stroke:.6px rgba(0,0,0,.8);paint-order:stroke fill}

/* Utilities menu: the game's plum + gold + grain look */
.home1 .zAmenu{min-width:200px;padding:8px;gap:6px;border-radius:16px;background:linear-gradient(180deg,rgba(56,38,98,.97),rgba(24,15,50,.98));border:1px solid rgba(212,175,55,.75);box-shadow:0 14px 34px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.16),inset 0 0 0 1px rgba(0,0,0,.45)}
body #app .home1 .zAmenu .ver.zAmi{height:44px!important;width:100%!important;min-width:0!important;padding:0 14px 0 10px!important;gap:10px;border-radius:11px!important;font-size:1.05rem!important;
  background:linear-gradient(180deg,rgba(255,240,210,.16),rgba(255,255,255,0) 45%,rgba(0,0,0,.26)),url(../assets/ui/skin_grain.webp),linear-gradient(180deg,rgba(104,70,178,.96),rgba(54,33,108,.96))!important;background-size:100% 100%,128px 128px,100% 100%!important;border:1px solid rgba(212,175,55,.55)!important;box-shadow:0 2px 0 rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.18)!important}
.home1 .zAmenu .zAl{font-family:GameFont,Georgia,serif;font-size:.98rem;letter-spacing:.02em;color:#fff1c9;text-shadow:0 1px 0 #000,0 2px 6px rgba(0,0,0,.85)}
body #app .home1 .zAmenu .ver.zAmi img.cpx{width:26px!important;height:26px!important}

/* Suggestions window: only as tall as it needs, never taller than most of the screen */
.dh .win.dhp.tall.ideawin{height:auto!important;min-height:0!important;max-height:min(600px,calc(100dvh - 90px))!important;gap:6px}
.ideawin .scroll.ideas{flex:0 1 auto;min-height:0;max-height:min(440px,calc(100dvh - 230px))}

/* Mini Games: smaller tiles, each its own colour, window about 30% see-through */
.dh .win:has(.mgs),body.cpx-win #modal .win:has(.mgs){background:rgba(24,16,48,.3)!important;border-image-slice:60!important;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.mgs{gap:6px}
.mgtile,body.cpx-win #modal .loot.mgtile{--mc:#7c3aed;padding:7px 12px!important;min-height:0!important;border-radius:12px!important;border:1px solid color-mix(in srgb,var(--mc) 55%,#fff)!important;
  background:linear-gradient(180deg,rgba(255,240,210,.16),rgba(255,255,255,0) 45%,rgba(0,0,0,.26)),url(../assets/ui/skin_grain.webp),linear-gradient(180deg,color-mix(in srgb,var(--mc) 80%,#fff 6%),color-mix(in srgb,var(--mc) 55%,#000))!important;background-size:100% 100%,128px 128px,100% 100%!important;box-shadow:0 2px 0 rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.18)!important}
.mgtile .lic{font-size:1.35rem!important;width:2rem}.mgtile b{font-size:.98rem}.mgtile small{font-size:.74rem}
.mgtile[data-mg=forge],body.cpx-win #modal .loot.mgtile[data-mg=forge]{--mc:#b45309}.mgtile[data-mg=arena],body.cpx-win #modal .loot.mgtile[data-mg=arena]{--mc:#b91c1c}.mgtile[data-mg=spark],body.cpx-win #modal .loot.mgtile[data-mg=spark]{--mc:#ca8a04}.mgtile[data-mg=rush],body.cpx-win #modal .loot.mgtile[data-mg=rush]{--mc:#15803d}.mgtile[data-mg=dojo],body.cpx-win #modal .loot.mgtile[data-mg=dojo]{--mc:#1d4ed8}.mgtile[data-mg=idle],body.cpx-win #modal .loot.mgtile[data-mg=idle]{--mc:#0f766e}

/* leaderboard avatars */
.brow{grid-template-columns:2.2rem minmax(0,1fr) auto auto}
.brow .bwho{display:flex;align-items:center;gap:8px;min-width:0}
.brow .bav{position:relative;flex:none;width:38px;height:44px;border-radius:10px;background:radial-gradient(closest-side,rgba(124,92,210,.45),rgba(20,14,40,.6));border:1px solid rgba(212,175,55,.35);overflow:visible}
.brow .bav .av{position:absolute;inset:-2px -2px 0 -2px;width:auto;height:auto;animation:none}
.brow .bnm{min-width:0;display:block}.brow .bnm b,.brow .bnm small{display:block}

/* boss / dungeon banners: textured, gilded, magical */
.celeb{isolation:isolate;overflow:visible;padding:18px 0 16px;
  background:linear-gradient(90deg,transparent,rgba(88,28,135,.94) 12%,rgba(46,16,92,.97) 50%,rgba(88,28,135,.94) 88%,transparent)}
.celeb.cboss{background:linear-gradient(90deg,transparent,rgba(153,27,27,.94) 12%,rgba(76,12,28,.97) 50%,rgba(153,27,27,.94) 88%,transparent)}
.celeb.cdungeon{background:linear-gradient(90deg,transparent,rgba(180,110,10,.96) 10%,rgba(110,60,6,.98) 50%,rgba(180,110,10,.96) 90%,transparent)}
.celeb::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(circle at 14% 34%,rgba(255,240,190,.95) 0 1.4px,transparent 2.6px),radial-gradient(circle at 31% 72%,rgba(255,240,190,.8) 0 1.2px,transparent 2.4px),radial-gradient(circle at 57% 24%,rgba(255,240,190,.9) 0 1.6px,transparent 2.8px),radial-gradient(circle at 73% 66%,rgba(255,240,190,.85) 0 1.3px,transparent 2.5px),radial-gradient(circle at 88% 38%,rgba(255,240,190,.9) 0 1.5px,transparent 2.7px),
  radial-gradient(ellipse 55% 130% at 50% 50%,rgba(255,222,140,.34),transparent 70%),url(../assets/ui/skin_grain.webp);background-size:auto,auto,auto,auto,auto,auto,128px 128px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);animation:celebsparkle 1.4s ease-in-out infinite alternate}
.celeb::after{content:"";position:absolute;left:6%;right:6%;top:0;bottom:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,transparent,#f5d77a 22%,#fff3c4 50%,#f5d77a 78%,transparent) top/100% 2px no-repeat,linear-gradient(90deg,transparent,#f5d77a 22%,#fff3c4 50%,#f5d77a 78%,transparent) bottom/100% 2px no-repeat;filter:drop-shadow(0 0 6px rgba(255,214,110,.9))}
@keyframes celebsparkle{from{opacity:.65;filter:brightness(.9)}to{opacity:1;filter:brightness(1.25)}}
.celeb small{color:#ffe9a8;text-shadow:0 1px 0 #000,0 0 10px rgba(255,210,100,.8)}
.celeb small::before{content:"\2726  "}.celeb small::after{content:"  \2726"}
.celeb b{background:linear-gradient(180deg,#fffbe6 0%,#ffe08a 45%,#f0a020 60%,#fff1b8 100%);background-size:100% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;-webkit-text-stroke:.8px rgba(60,20,0,.85);paint-order:stroke fill;
  filter:drop-shadow(0 2px 0 rgba(0,0,0,.85)) drop-shadow(0 0 14px rgba(255,200,80,.9)) drop-shadow(0 0 30px rgba(255,150,40,.5));letter-spacing:.04em;text-shadow:none!important}
@media (prefers-reduced-motion:reduce){.celeb::before{animation:none}}

/* v146: leaderboard avatars stay inside their box */
.brow .bav{overflow:hidden!important}
.brow .bav .av{inset:0!important;width:100%!important;height:100%!important}
.brow .bav .av img,.brow .bav .av canvas{max-width:100%;max-height:100%}

/* ===== v147 ===== */
/* drawn icons */
.powi{width:1.05em;height:1.05em;vertical-align:-.17em;display:inline-block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.6))}
.btn .ti svg.dhi{width:1em;height:1em;display:block;margin:0 auto;filter:drop-shadow(0 2px 2px rgba(0,0,0,.65))}

/* XP bar: sparkles and shine build up as it nears full (--sp is 0 at 55%, 1 at 100%) */
.bar.xp.xpsp{filter:drop-shadow(0 0 calc(9px*var(--sp,0)) rgba(255,214,90,calc(.9*var(--sp,0))))}
.bar.xp.xpsp>u{position:relative;overflow:hidden;box-shadow:0 0 calc(2px + 10px*var(--sp,0)) rgba(255,224,110,calc(.25 + .6*var(--sp,0)))}
.bar.xp.xpsp>u::before{content:"";position:absolute;inset:0;opacity:var(--sp,0);
  background:radial-gradient(circle at 12% 30%,#fff 0 2px,rgba(255,240,150,.7) 2.6px,transparent 4.4px),radial-gradient(circle at 31% 68%,#fffbe0 0 1.6px,rgba(255,240,150,.6) 2.4px,transparent 4px),radial-gradient(circle at 52% 24%,#fff 0 2.2px,rgba(255,240,150,.7) 3px,transparent 4.8px),radial-gradient(circle at 70% 62%,#fff8cc 0 1.8px,rgba(255,240,150,.6) 2.6px,transparent 4.4px),radial-gradient(circle at 88% 34%,#fff 0 2px,rgba(255,240,150,.7) 2.8px,transparent 4.6px);
  background-size:64px 100%;animation:xpTw calc(1.9s - .9s*var(--sp,0)) steps(6,end) infinite}
.bar.xp.xpsp>u::after{content:"";position:absolute;top:0;bottom:0;width:38%;left:-45%;opacity:calc(.25 + .6*var(--sp,0));
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.85),transparent);animation:xpShine calc(3s - 1.6s*var(--sp,0)) ease-in-out infinite}
@keyframes xpTw{0%{background-position:0 0;filter:brightness(1)}50%{filter:brightness(1.6)}100%{background-position:64px 0;filter:brightness(1)}}
@keyframes xpShine{0%{left:-45%}60%,100%{left:120%}}
@media (prefers-reduced-motion:reduce){.bar.xp.xpsp>u::before,.bar.xp.xpsp>u::after{animation:none}}

/* Enter Floor: a raised, beaten-metal slab */
body.cpx-btn #app .home1 .btn.gofloor.primary:not(.tab):not(.qb):not(.cmd),.dh .home1 .btn.gofloor{position:relative;overflow:hidden;border-radius:16px!important;border:2px solid #f1cf7a!important;
  background:linear-gradient(180deg,rgba(255,236,190,.34) 0,rgba(255,255,255,0) 18%,rgba(0,0,0,0) 55%,rgba(0,0,0,.42) 100%),url(../assets/ui/skin_grain.webp),radial-gradient(130% 150% at 50% 0%,#8b4be8 0%,#4a2378 42%,#1a0c30 100%)!important;background-size:100% 100%,128px 128px,100% 100%!important;background-blend-mode:normal,soft-light,normal!important;
  box-shadow:0 5px 0 #5d3a0c,0 8px 14px rgba(0,0,0,.6),0 0 22px rgba(255,217,139,.4),inset 0 2px 0 rgba(255,244,205,.65),inset 0 -3px 6px rgba(0,0,0,.55),inset 0 0 0 4px rgba(20,8,40,.55),inset 0 0 0 5px rgba(241,207,122,.35)!important}
.home1 .btn.gofloor::before{content:"";position:absolute;left:8px;right:8px;top:4px;height:42%;border-radius:12px 12px 40% 40%;background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,0));pointer-events:none}
.home1 .btn.gofloor::after{content:"";position:absolute;top:0;bottom:0;width:30%;left:-40%;background:linear-gradient(100deg,transparent,rgba(255,240,200,.45),transparent);animation:goSheen 4.2s ease-in-out infinite;pointer-events:none}
@keyframes goSheen{0%{left:-40%}55%,100%{left:130%}}
.home1 .btn.gofloor:active{transform:translateY(3px);box-shadow:0 2px 0 #5d3a0c,0 4px 8px rgba(0,0,0,.6),inset 0 2px 0 rgba(255,244,205,.5),inset 0 -2px 5px rgba(0,0,0,.55)!important}
.home1 .btn.gofloor .gol{text-shadow:0 2px 0 #3a1c06,0 0 12px rgba(255,214,120,.55),0 -1px 0 rgba(255,255,255,.5);-webkit-text-stroke:.7px #2b1204;paint-order:stroke fill;color:#f2b83e!important}
@media (prefers-reduced-motion:reduce){.home1 .btn.gofloor::after{animation:none}}

/* name placard: engraved plate with a rim, grain, corner studs and a slow shimmer */
.home1 .nplate{position:relative;overflow:hidden;border-radius:12px!important;border:1px solid #e7c46b!important;
  background:linear-gradient(180deg,rgba(255,235,185,.2),rgba(255,255,255,0) 40%,rgba(0,0,0,.35)),url(../assets/ui/skin_grain.webp),linear-gradient(95deg,#5a2a92,#2b1450 55%,#1a0d33)!important;background-size:100% 100%,128px 128px,100% 100%!important;background-blend-mode:normal,soft-light,normal!important;
  box-shadow:0 5px 14px rgba(0,0,0,.6),0 0 14px rgba(180,120,255,.3),inset 0 1px 0 rgba(255,238,190,.6),inset 0 -2px 5px rgba(0,0,0,.5),inset 0 0 0 3px rgba(18,8,36,.6),inset 0 0 0 4px rgba(231,196,107,.3)!important;padding:7px 15px 7px 13px!important}
.home1 .nplate::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 6px 6px,#f3d58a 0 1.6px,transparent 2.4px),radial-gradient(circle at calc(100% - 6px) 6px,#f3d58a 0 1.6px,transparent 2.4px),radial-gradient(circle at 6px calc(100% - 6px),#f3d58a 0 1.6px,transparent 2.4px),radial-gradient(circle at calc(100% - 6px) calc(100% - 6px),#f3d58a 0 1.6px,transparent 2.4px);pointer-events:none}
.home1 .nplate small{text-shadow:0 1px 2px #000}

/* every window is see-through (about 45% clear), with a soft blur so the words stay readable */
body.cpx-win #modal .win:not(.dhbox),.dh #modal .win:not(.dhbox){background:rgba(18,13,10,.58)!important;border-image-slice:60!important;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
body.cpx-win #modal .win:not(.dhbox) .loot,body.cpx-win #modal .win:not(.dhbox) .optrow{background:rgba(40,30,22,.5)!important}
.dh .win:has(.mgs),body.cpx-win #modal .win:has(.mgs){background:rgba(24,16,48,.3)!important}

/* Founder tab */
details.optfounder>summary.optsec{display:block;list-style:none;margin:8px 0 6px;padding:6px 10px;border-radius:10px;background:linear-gradient(90deg,rgba(212,175,55,.28),rgba(212,175,55,.06));border:1px solid rgba(212,175,55,.45);color:#f3d68a;font-weight:900;letter-spacing:.04em;cursor:pointer}
.optfounder .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.optfounder .fgl{grid-column:1/-1;font-size:.66rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:#d9b45a;margin:6px 2px 0}
.optfounder .fgrid>.optrow,.optfounder .fgrid>.btn{margin:0!important;min-width:0;padding:7px 9px!important;gap:6px!important;align-items:center}
.optfounder .fgrid>.optrow small{font-size:.62rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.optfounder .fgrid>.optrow b{font-size:.82rem}
.optfounder .fgrid>.optrow .lic{font-size:1.1rem}
.optfounder .fgrid>.optrow .btn.small{min-width:0;padding:4px 8px;font-size:.72rem}
.optfounder .fgrid>.cpxrow,.optfounder .fgrid>.lyopt,.optfounder .fgrid>#o_biz{grid-column:1/-1}
#o_feat .fgrid>.optrow small{display:none}
#o_feat .fgrid>.optrow{min-height:38px}
body.cpx-btn #app .home1 .btn.gofloor.primary:not(.tab):not(.qb):not(.cmd){border-image:none!important;border:2px solid #f1cf7a!important;border-width:2px!important}
/* founder tiles: one per row, compact (the half-width grid squeezed the words) */
.optfounder .fgrid{grid-template-columns:1fr}
#o_feat .fgrid{grid-template-columns:1fr 1fr}
#o_feat .fgrid>.optrow b{font-size:.74rem;line-height:1.15}
#o_feat .fgrid>.optrow .btn.small{padding:3px 7px;min-height:30px}
.optfounder .fgrid>.optrow small{-webkit-line-clamp:1}

/* v148: Hero button on the floor screen shows a centred helmet icon */
.hall1 .nav14 .hpor14.hsvg{display:grid!important;place-items:center;width:36px!important;height:36px!important}
.hall1 .nav14 .hpor14.hsvg svg{width:26px;height:26px;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.7))}

/* v149: keep the mount behind the hero on every home draw (it relied on a layout class that was sometimes missing) */
.home1 .hhero{isolation:isolate}

/* v150: no dark box behind the arch on the floor screen or anywhere else */
html body .rback,html body .room .rback,html body .hall1 .rback,html body .b1 .rback{background:none!important;box-shadow:none!important;border:0!important}

/* v150: FIGHT button gets the same grain, bevel and gloss as Enter Floor (colour stays) */
body.cpx-btn #app .hall1 #fight.fight14:not(.tab):not(.qb):not(.cmd),.dh .hall1 #fight.fight14{
  background-image:linear-gradient(180deg,rgba(255,244,214,.26),rgba(255,255,255,0) 46%,rgba(0,0,0,.3)),url(../assets/ui/skin_grain.webp)!important;
  background-size:100% 100%,128px 128px!important;border-image:none!important;border:1.5px solid #d4af37!important;
  box-shadow:inset 0 2px 0 rgba(255,244,214,.4),inset 0 -4px 0 rgba(0,0,0,.34),inset 0 0 14px rgba(0,0,0,.25),0 4px 0 rgba(0,0,0,.5),0 6px 14px rgba(0,0,0,.45)!important;
  position:relative;overflow:hidden}
.hall1 #fight.fight14::before{content:'';position:absolute;left:8%;right:8%;top:3px;height:36%;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,0));pointer-events:none}
.hall1 #fight.fight14 .fl14,.hall1 #fight.fight14 .fic14{position:relative;z-index:1}
.hall1 #fight.fight14 .fl14{text-shadow:0 2px 0 rgba(0,0,0,.55)}

/* v150: the loot crate sits high on the screen so the opened loot list fits without scrolling */
.win.dhbox .boxwin{justify-content:flex-start!important;min-height:0!important}
.boxwin.iscrate:not(.open) .chest.c2.crate{margin:clamp(8px,2vh,22px) auto clamp(14px,3vh,28px)!important}
.win.dhbox .boxwin:not(.open):not(.iscrate){padding-top:clamp(8px,3vh,28px)}
.dh .veil:has(.win.dhbox .boxwin:not(.open)){align-items:center!important;padding-top:16px!important}
/* v151: opened chest + loot sit as a group in the middle of the screen; a long list pushes it to the top, OK stays at the bottom */
.win.dhbox .boxwin.open.cfix>.chest.c2,.win.dhbox .boxwin.open>.chest.c2{flex:0 0 auto!important;height:auto!important;min-height:0!important;margin-top:auto!important;margin-bottom:6px!important}
.win.dhbox .boxwin.open.cfix .lootscroll,.win.dhbox .boxwin.open .lootscroll{flex:0 1 auto!important;max-height:none!important;margin-bottom:auto}
.win.dhbox .boxwin.open .thumbbar,.win.dhbox .boxwin.open>.btn{flex:none}

/* v151: pet peeks out from behind the name placard (placard is drawn over it); mount a little higher */
.home1 .htitle .h122a.pet.peek{position:absolute!important;right:auto!important;bottom:auto!important;z-index:0!important;pointer-events:none;display:block}
.home1 .htitle .h122a.pet.peek img{display:block;width:100%;height:auto;filter:drop-shadow(0 2px 3px rgba(0,0,0,.6))}
.home1 .htitle .h122a.pet.peek.flipme img{transform:scaleX(-1)}
.home1 .htitle .nplate{z-index:1}
.home1 .h122a.mount{translate:0 -9px}

/* v151: loot and chest pages were nearly solid; now you can see the scene through them */
.dh .veil:has(.win.dhbox),.dh .veil:has(.boxwin),.dh .veil:has(.lootlist),.dh .veil:has(.loot1){background:radial-gradient(120% 70% at 50% 35%,rgba(29,22,51,.5),rgba(8,6,15,.62) 70%)!important;backdrop-filter:blur(5px)!important;-webkit-backdrop-filter:blur(5px)!important}
body.cpx-win #modal .win.dhbox,.dh #modal .win.dhbox,.win.dhbox{background:rgba(18,13,10,.4)!important;border-image-slice:60!important;backdrop-filter:blur(3px)}
.win.dhbox .loot,.win .lootrow,.win.dhbox .loot.r-common,.win.dhbox .loot[class*='r-']{background-color:rgba(20,18,37,.62)!important}

/* v151: when a window opens, the screen behind it is only lightly blurred */
.dh .veil{backdrop-filter:blur(1.5px) saturate(.9) brightness(.9)!important;-webkit-backdrop-filter:blur(1.5px) saturate(.9) brightness(.9)!important}
.dh .veil:has(.win.dhbox),.dh .veil:has(.boxwin),.dh .veil:has(.lootlist),.dh .veil:has(.loot1){backdrop-filter:blur(1.5px)!important;-webkit-backdrop-filter:blur(1.5px)!important}
body.zA-bright:not([data-scr=battle]):not([data-scr=hall]) .dh .veil{backdrop-filter:blur(1px)!important;-webkit-backdrop-filter:blur(1px)!important}
body.cpx-win #modal .win:not(.dhbox),.dh #modal .win:not(.dhbox),body.cpx-win #modal .win.dhbox,.dh #modal .win.dhbox{backdrop-filter:blur(1.5px)!important;-webkit-backdrop-filter:blur(1.5px)!important}

/* v151: Founder tab: smaller buttons, three switches across, and a filter box */
.optfounder .fsearch{display:block;width:100%;box-sizing:border-box;margin:0 0 8px;padding:7px 10px;border-radius:10px;border:1px solid rgba(212,175,55,.45);background:rgba(10,8,20,.5);color:#f4e6c1;font-size:.85rem}
.optfounder .fgrid>[hidden]{display:none!important}
.optfounder .fgrid>.optrow{padding:5px 8px!important;min-height:0}
.optfounder .fgrid>.optrow b{font-size:.76rem}
.optfounder .fgrid>.optrow .btn.small{padding:2px 7px;min-height:26px;font-size:.68rem}
#o_feat .fgrid{grid-template-columns:1fr 1fr 1fr;gap:5px}
#o_feat .fgrid>.optrow{padding:4px 6px!important;min-height:32px;flex-wrap:wrap}
#o_feat .fgrid>.optrow b{font-size:.68rem}
.optfounder .btn,.optfounder .optrow .btn,.optfounder .optrow .btn.small{min-height:26px!important;height:auto;padding:2px 8px!important;font-size:.68rem!important;border-radius:8px!important;flex:0 0 auto;width:auto!important}
.optfounder .fgrid>#o_biz,.optfounder .fgrid>.btn{width:100%!important;min-height:30px!important;font-size:.78rem!important;text-align:left}
.optfounder .optrow>.row,.optfounder .optrow .btns,.optfounder .optrow .cpxbtns{gap:4px!important;flex-wrap:wrap}
.optfounder .fgrid>.optrow{gap:4px 6px!important}
.optfounder .fgrid>.optrow small{font-size:.58rem!important;-webkit-line-clamp:1}
.optfounder .fsearch{padding:5px 9px;font-size:.78rem;margin-bottom:5px}

/* v152: top-bar currency (gold, diamonds, sparks, skulls, hammer): no pill or box, just the icon and number floating; lowered 8px */
body #app .home1.zAt .top .coinbtn,body #app .home1.zAt .top .ver.dia,body #app .home1.zAt .top .zAc,body.cpx-coins #app .home1.zAt .top .coinbtn,body.cpx-icons #app .home1.zAt .top .ver.dia{
  background:none!important;border:0!important;box-shadow:none!important;border-image:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  text-shadow:0 1px 0 #000,0 1px 3px rgba(0,0,0,.95),0 0 8px rgba(0,0,0,.8)!important}
body #app .home1.zAt .top .coinbtn::before,body #app .home1.zAt .top .coinbtn::after,body #app .home1.zAt .top .zAc::before,body #app .home1.zAt .top .zAc::after,body #app .home1.zAt .top .ver.dia::before,body #app .home1.zAt .top .ver.dia::after{display:none!important}
.home1.zAt .top .coinbtn img,.home1.zAt .top .zAc img,.home1.zAt .top .ver.dia img,.home1.zAt .top .zAc i,.home1.zAt .top .coinbtn i{filter:drop-shadow(0 1px 2px rgba(0,0,0,.9))}
.home1.zAt .top .coinbtn,.home1.zAt .top .ver.dia,.home1.zAt .top .zAc{position:relative;top:8px}
body #app .home1.zAt .top .coinbtn,body.cpx-coins #app .home1.zAt .top .coinbtn{background-image:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0))!important}
