/* SHTREK UI 2.0 — complete glossy idle-game presentation layer. */
:root{
  --ui-navy:#10283e;--ui-navy-2:#071827;--ui-blue:#294f70;--ui-line:#4d7594;
  --ui-gold:#ffbd28;--ui-gold-2:#d8740b;--ui-green:#39dc37;--ui-green-2:#159d1b;
  --ui-cream:#fff4d1;--ui-muted:#a8bfd0;--ui-shadow:#020913;
  --bg:#08131d;--bg-panel:#10283e;--bg-panel-2:#183a55;--stroke:#436b88;
  --lantern:#ffc23e;--lantern-dim:#c87313;--text:#f7fbff;--text-muted:#9db5c5;
  --sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --display:var(--sans);
}
*{box-sizing:border-box}
html{background:#07121b}
body{
  color:var(--text);font-family:var(--sans);
  background:
    radial-gradient(circle at 50% -5%,rgba(78,169,226,.3),transparent 30%),
    linear-gradient(180deg,#15354d 0,#091722 45%,#071018 100%);
}
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.16;
  background:url("../assets/images/kingdom-map-v1.webp") center 28% / cover no-repeat;
  filter:blur(9px) saturate(1.25);transform:scale(1.06);
  animation:world-breathe 12s ease-in-out infinite alternate;
}
.app{max-width:520px;background:linear-gradient(90deg,rgba(0,0,0,.24),transparent 8%,transparent 92%,rgba(0,0,0,.24));padding-bottom:76px}
main{padding:8px 12px 22px}

/* Header and currencies */
header.top,body:has(#view-shakhta.active) header.top{
  display:flex;position:sticky;top:0;z-index:55;min-height:58px;padding:7px 10px;border:0;border-bottom:3px solid #07121d;
  background:linear-gradient(180deg,#2d5b7e,#102b43);box-shadow:0 4px 13px rgba(0,0,0,.55),inset 0 1px rgba(255,255,255,.22);
}
header.top::before,header.top::after{display:none}
header.top h1{margin:0;flex:1;color:#fff;font:900 20px var(--sans);letter-spacing:.01em;text-transform:none;text-shadow:0 2px 0 #06121d,0 3px 5px #000}
header.top h1 small{margin-top:2px;color:#8edbff;font:800 8px var(--sans);letter-spacing:.15em;text-transform:uppercase}
header.top .money{
  min-width:112px;justify-content:flex-start;padding:7px 10px;border:2px solid #5f8198;border-radius:10px;
  background:linear-gradient(180deg,#17364e,#091b2b);box-shadow:inset 0 0 0 2px #06121d,inset 0 1px rgba(255,255,255,.2),0 3px 5px rgba(0,0,0,.4);
  color:#fff;font:900 15px var(--sans);
}
header.top .money::before{content:"★";display:grid;place-items:center;width:23px;height:23px;border-radius:50%;color:#fff4a8;background:linear-gradient(180deg,#ffd83b,#e28a09);text-shadow:0 1px #8a4900;box-shadow:0 0 0 2px #8b5205}

.resource-bar{top:58px;margin:0 -5px 8px;gap:5px;padding-top:6px;background:linear-gradient(180deg,rgba(8,19,29,.94),transparent)}
.resource-pill{
  min-height:48px;padding:8px 4px 7px 29px;border:2px solid #527793;border-radius:11px;
  background:linear-gradient(180deg,#1e4664,#0a2032);box-shadow:inset 0 0 0 2px #071521,inset 0 1px rgba(255,255,255,.2),0 3px 6px rgba(0,0,0,.45);
}
.resource-pill>span{left:7px;top:12px;font-size:18px}.resource-pill b{font:900 12px var(--sans)}.resource-pill small{color:#62e66b;font:800 7px var(--sans)}

/* Reusable blue game panels */
.skill-shaft,.mine-stage,.inv-row,.pick-card,.char-card,.castle-card,.city-card,.mine-hud,.bonus-panel{
  border:2px solid var(--ui-line);border-radius:12px;background:linear-gradient(155deg,#234a67,#0d263a 72%);
  box-shadow:inset 0 0 0 2px #071722,inset 0 1px rgba(255,255,255,.16),0 5px 11px rgba(0,0,0,.45);color:#f7fbff;
}
.skill-shaft::before,.mine-stage::before,.pick-card::before,.char-card::before{display:none}
.skill-shaft{margin:11px 0 7px;padding:12px 14px}.skill-shaft .label{color:#d8e8f2;font:800 11px var(--sans)}.skill-shaft .value{color:#64ed72;font:900 14px var(--sans)}
.shaft-track,.char-track,.progress-track{border:2px solid #06121b;border-radius:8px;background:#06131e;box-shadow:inset 0 2px 5px #000,0 0 0 1px #527492}
.shaft-fill,.char-fill,.progress-fill{background:linear-gradient(180deg,#63f25e,#22b52d 56%,#12801d);box-shadow:inset 0 1px rgba(255,255,255,.5),0 0 7px rgba(55,220,58,.5)}

.section-title,#view-castle .section-title{
  margin:17px 0 8px;padding:7px 10px;border:2px solid #496e88;border-radius:9px;text-align:left;
  background:linear-gradient(180deg,#244c69,#112d43);box-shadow:inset 0 0 0 2px #091a28;
  color:#fff;font:900 12px var(--sans);letter-spacing:.02em;text-transform:none;
}
.section-title::before{content:"◆ ";color:#59d3ff}.section-title::after{display:none}
.hint{color:#9fb7c7;font:600 11px var(--sans);line-height:1.45}

/* Inventory */
.inv-grid{gap:7px}.inv-row{min-height:58px;padding:9px 10px;gap:9px}.inv-row.locked{opacity:.48;filter:saturate(.4)}
.inv-row .icon-wrap{width:35px;height:35px}.inv-row .name{color:#fff;font:800 13px var(--sans)}.inv-row .cat{color:#85a9bf;font:700 8px var(--sans)}
.inv-row .count{color:#66e66e;font:900 13px var(--sans)}.inv-row .price{color:#ffc84a;font:800 10px var(--sans)}

/* Buttons */
button,.pick-action,.char-action,.sell-btn,.pick-upgrade button,.inv-row button[data-smelt],.city-actions button,.back-link,#castleUpBtn{
  -webkit-appearance:none;border:2px solid #6990aa;border-radius:9px;background:linear-gradient(180deg,#376481,#173a54);
  box-shadow:inset 0 0 0 2px #0b2131,inset 0 1px rgba(255,255,255,.22),0 3px 0 #06111a;
  color:#fff;font:800 11px var(--sans);text-shadow:0 1px #07111a;
}
button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 0 0 2px #0b2131,0 1px 0 #06111a}
button:disabled{filter:saturate(.3);opacity:.45}
.sell-btn,.pick-action.buy,.char-action,.city-actions button.primary,#castleUpBtn,.pick-upgrade button,.inv-row button[data-smelt]{
  border-color:#7bed65;background:linear-gradient(180deg,#61ee55,#23bf2b 55%,#15931c);box-shadow:inset 0 0 0 2px #0b6412,inset 0 1px rgba(255,255,255,.45),0 3px 0 #06470b;color:#fff;text-shadow:0 2px #08610c;
}
.mode-toggle{margin:10px 0}.mode-toggle button{border-radius:9px;padding:9px 12px}.mode-toggle button.active{border-color:#ffc54c;background:linear-gradient(180deg,#ffdb53,#dc8b13);box-shadow:inset 0 0 0 2px #8a4c05,0 3px 0 #5c3103;color:#fff}

/* Tools and heroes */
.pick-grid,.char-grid{gap:9px}.pick-card,.char-card{padding:12px}.pick-card.equipped{border-color:#ffbf37;box-shadow:inset 0 0 0 2px #6d3d06,0 0 12px rgba(255,185,43,.42)}
.pick-icon,.char-emoji{border:2px solid #5d85a0;background:radial-gradient(circle at 35% 25%,#3b6885,#102b40);box-shadow:inset 0 0 0 2px #071824,0 3px 6px rgba(0,0,0,.4)}
.pick-info .n,.char-info .n{color:#fff;font:900 13px var(--sans)}.pick-info .s,.char-info .s{color:#9eb9ca;font:600 10px var(--sans);line-height:1.35}.pick-upgrade{border-top-color:#466c87}
.char-card.master{border-color:#ffc044}.char-progress .row{color:#b0c5d2}.char-progress .row b{color:#68e973}
.char-emoji.hero-atlas{
  width:68px;height:68px;flex:0 0 68px;border-radius:12px;background-position:var(--hero-pos);background-repeat:no-repeat;
  animation:hero-idle 3.4s ease-in-out infinite;transform-origin:50% 90%;
}
.hero-atlas-1{background-image:url("../assets/images/heroes-atlas-v1.webp");background-size:400% 200%}
.hero-atlas-2{background-image:url("../assets/images/heroes-atlas-v2.webp");background-size:200% 100%}
.char-card:nth-child(2n) .hero-atlas{animation-delay:-1.1s}.char-card:nth-child(3n) .hero-atlas{animation-delay:-2.2s}
.pick-icon{width:72px;height:72px;flex:0 0 72px;padding:2px;overflow:hidden}
.pick-icon .tool-art{display:block;width:100%;height:100%;background-position:var(--tool-pos);background-size:500% 300%;background-repeat:no-repeat;filter:drop-shadow(0 4px 3px rgba(0,0,0,.72));transition:transform .18s ease,filter .18s ease}
.tool-art-pick{background-image:url("/assets/images/pickaxes-atlas-v1.webp")}
.tool-art-axe{background-image:url("/assets/images/axes-atlas-v1.webp")}
.pick-card:hover .tool-art,.pick-card.equipped .tool-art{transform:scale(1.08) rotate(-2deg);filter:drop-shadow(0 0 7px rgba(255,208,74,.55)) drop-shadow(0 4px 3px #000)}

/* Generated bitmap resources replace the former procedural SVG drawings. */
.atlas-icon{display:inline-block;background-position:var(--atlas-pos);background-repeat:no-repeat;border-radius:5px}
.mineral-atlas-1{background-image:url("../assets/images/minerals-atlas-v1.webp");background-size:400% 400%}
.mineral-atlas-2{background-image:url("../assets/images/minerals-atlas-v2.webp");background-size:400% 400%}
.mineral-atlas-3{background-image:url("../assets/images/minerals-atlas-v3.webp");background-size:400% 200%}
.wood-atlas{background-image:url("../assets/images/wood-atlas-v1.webp");background-size:400% 300%}
.ingot-atlas{background-image:url("../assets/images/ingots-atlas-v1.webp");background-size:500% 400%}
.icon-wrap.atlas-icon{filter:drop-shadow(0 2px 2px rgba(0,0,0,.65))}
.inv-row:hover .atlas-icon,.last-find .atlas-icon{animation:resource-glint 2.2s ease-in-out infinite}

/* Mine and forest scenes */
.mine-stage{padding:12px}.mine-scene,.forest-scene{border:3px solid #527793;border-radius:10px;box-shadow:inset 0 0 35px #000,0 0 0 2px #071521}.mine-hud,.bonus-panel{border-radius:9px;background:linear-gradient(180deg,#1c405b,#0b2437)}
.forest-scene::after{content:"";position:absolute;left:5%;bottom:5%;width:34%;height:43%;z-index:2;background-image:url("../assets/images/wood-atlas-v1.webp");background-size:400% 300%;background-position:0 0;background-repeat:no-repeat;filter:drop-shadow(0 5px 5px rgba(0,0,0,.6));animation:resource-glint 3s ease-in-out infinite;pointer-events:none}
.last-find{color:#fff;font:800 13px var(--sans)}.bonus-tag{border-color:#43a7bc;background:#12394b;color:#67e9e3}

/* Castle and buildings */
.castle-banner{margin:10px 0;border:2px solid #ffc24a;border-radius:11px;background:linear-gradient(180deg,#2d5b7e,#102a42);box-shadow:inset 0 0 0 2px #081a29,0 4px 9px rgba(0,0,0,.45)}
.castle-banner::before,.castle-banner::after{content:"★";color:#ffd34f}.castle-banner-text{color:#fff;background:none;font:900 18px var(--sans);text-shadow:0 2px #071827}
.castle-card,.city-card{border-color:#527a96;background:linear-gradient(150deg,#234c69,#0c263a)}.castle-level{color:#ffc948;background:none;font:900 22px var(--sans)}.castle-sub,.castle-cost,.city-info .s{color:#a8c0cf}.castle-note{color:#69e877}
#castleMap.castle-map{
  width:calc(100% + 32px);margin-left:-16px;margin-right:-16px;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  background-color:#315b45!important;
  background-image:linear-gradient(rgba(8,22,30,.04),rgba(8,22,30,.12)),url("/assets/images/kingdom-map-v1.webp")!important;
  background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;
  animation:map-arrive .7s ease-out both;
}
.castle-map>.scene-horizon,.castle-map>.sky-cloud,.castle-map>.mist-cloud,.castle-map>.iso-platform,.castle-map>.iso-bridges,.castle-map>.castle-roads,.castle-map>.scene-forest,.castle-map>.scene-river,.castle-map>.scene-bridges{opacity:0!important;pointer-events:none!important}
.map-tile .mt-label{padding:3px 7px;border:1px solid #547893;border-radius:6px;background:rgba(8,25,38,.88);color:#fff;font:800 9px var(--sans)}

/* The buildings are already painted into kingdom-map-v1. Keep only accessible
   hotspots and their live level badges instead of drawing the old SVG set over it. */
#castleMap .map-tile .mt-ic{display:none}
#castleMap .map-tile{
  min-width:0;min-height:0;justify-content:flex-start;
  padding:0!important;border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;outline:none!important;
  transform:none!important;z-index:6;overflow:visible;
}
#castleMap .map-tile:hover,#castleMap .map-tile:focus,#castleMap .map-tile:active{
  padding:0!important;border:0!important;background:transparent!important;
  box-shadow:none!important;transform:none!important;outline:none!important;
}
#castleMap .map-tile .mt-label{
  position:absolute;left:50%;bottom:calc(100% + 4px);z-index:2;transform:translateX(-50%);
  font-size:10px;line-height:1.25;text-shadow:0 1px 2px #000;
  padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;
  white-space:nowrap;pointer-events:none;
}
#castleMap .map-tile .mt-level{display:block;color:#ffd45f;font-size:9px}
#castleMap .map-tile.soon::after{display:none}
#castleMap .map-tile::before{
  content:"";position:absolute;inset:0;background:center/contain no-repeat;
  opacity:0;transition:opacity .16s ease,filter .16s ease;pointer-events:none;
}
#castleMap .map-tile:hover::before,#castleMap .map-tile:focus-visible::before,#castleMap .map-tile:active::before{
  opacity:1;filter:brightness(1.18) saturate(1.12) drop-shadow(0 0 6px #ffe079) drop-shadow(0 0 2px #fff);
}
#castleMap .map-tile[data-building="zamok"]{left:35%!important;top:11%!important;width:39%;height:35%}
#castleMap .map-tile[data-building="zamok"]::before{background-image:url("/assets/images/castle-buildings/castle-v1.webp")}
#castleMap .map-tile[data-building="zamok"].alert::after,
#castleMap .map-tile[data-building="kuznya"].alert::after{
  content:"!";display:grid!important;place-items:center;position:absolute;z-index:10;right:7%;top:2%;
  width:25px;height:25px;border:2px solid #fff1a4;border-radius:50%;
  background:linear-gradient(180deg,#ffdd45,#e77b0a);color:#592900;font:1000 17px var(--sans);text-shadow:0 1px #fff7b0;
  box-shadow:0 0 0 2px #7a3d06,0 0 13px #ffd43d;animation:castle-map-alert 1.1s ease-in-out infinite;
}
#castleMap .map-tile[data-building="shakhta"]{left:8%!important;top:10%!important;width:34%;height:20%}
#castleMap .map-tile[data-building="shakhta"]::before{background-image:url("/assets/images/castle-buildings/mine-v1.webp")}
#castleMap .map-tile[data-building="les"]{left:74%!important;top:10%!important;width:22%;height:18%}
#castleMap .map-tile[data-building="kuznya"]{left:3%!important;top:39%!important;width:36%;height:27%}
#castleMap .map-tile[data-building="kuznya"]::before{background-image:url("/assets/images/castle-buildings/forge-v1.webp")}
#castleMap .map-tile[data-building="lesopilka"]{left:68%!important;top:20%!important;width:31%;height:19%}
#castleMap .map-tile[data-building="lesopilka"]::before{background-image:url("/assets/images/castle-buildings/sawmill-v1.webp")}
#castleMap .map-tile[data-building="bank"]{left:63%!important;top:44%!important;width:30%;height:21%}
#castleMap .map-tile[data-building="bank"]::before{background-image:url("/assets/images/castle-buildings/bank-v1.webp")}
#castleMap .map-tile[data-building="rynok"]{left:37%!important;top:52%!important;width:27%;height:16%}
#castleMap .map-tile[data-building="prichal"]{left:65%!important;top:74%!important;width:34%;height:25%}
#castleMap .map-tile[data-building="prichal"]::before{background-image:url("/assets/images/castle-buildings/dock-v1.webp")}
#castleMap .map-tile[data-building="magazin"],
#castleMap .map-tile[data-building="taverna"],
#castleMap .map-tile[data-building="ohota"],
#castleMap .map-tile[data-building="ugol"],
#castleMap .map-tile[data-building="laboratoriya"],
#castleMap .map-tile[data-building="arena"],
#castleMap .map-tile[data-building="poligon"],
#castleMap .map-tile[data-building="polya"]{display:none}
.castle-map-hero{
  position:absolute!important;z-index:14!important;left:51%;top:83%;width:56px!important;height:72px!important;
  padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;
  transform:translate(-50%,-70%)!important;overflow:visible!important;cursor:pointer;touch-action:manipulation;
}
.castle-map-hero-figure{position:relative;display:block;width:100%;height:56px;background:url("/assets/images/world-horse-idle-v2.webp") center/contain no-repeat;filter:drop-shadow(0 4px 3px rgba(0,0,0,.7));animation:world-horse-idle 2.1s ease-in-out infinite;pointer-events:none}
.castle-map-hero.paper-doll .castle-map-hero-figure{background-image:url("/assets/images/world-hero-horse-unarmored-idle-v1.webp")}
.castle-map-hero b,.castle-map-hero small{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;text-shadow:0 2px 3px #000}
.castle-map-hero b{bottom:4px;color:#ffe8a1;font:800 8px var(--serif);pointer-events:none}
.castle-map-hero small{bottom:-6px;color:#bde8f4;font:700 7px var(--sans);pointer-events:none}
.castle-map-hero:hover .castle-map-hero-figure,.castle-map-hero:focus-visible .castle-map-hero-figure{filter:brightness(1.12) drop-shadow(0 0 7px #ffd65b) drop-shadow(0 4px 3px rgba(0,0,0,.7))}

/* Illustrated scene backgrounds shared by every game section. */
.view.active:not(#view-shakhta):not(#view-castle){
  position:relative;isolation:isolate;min-height:calc(100vh - 136px);
  margin:-8px -12px -22px;padding:14px 12px 28px;overflow:hidden;
}
.view.active:not(#view-shakhta):not(#view-castle)::before{
  content:"";position:absolute;inset:-18px;z-index:-2;pointer-events:none;
  background-image:linear-gradient(180deg,rgba(4,12,20,.32),rgba(4,10,16,.72)),var(--scene-bg);
  background-position:center top;background-size:cover;background-repeat:no-repeat;
  filter:var(--scene-filter,none);transform:scale(1.035);transform-origin:50% 35%;
  animation:scene-breathe 15s ease-in-out infinite alternate;
}
.view.active:not(#view-shakhta):not(#view-castle)::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background:
    radial-gradient(circle at 16% 18%,rgba(255,220,113,.8) 0 1px,transparent 2px),
    radial-gradient(circle at 78% 28%,rgba(109,214,255,.7) 0 1px,transparent 2px),
    radial-gradient(circle at 34% 72%,rgba(255,190,73,.65) 0 1.5px,transparent 2.5px),
    radial-gradient(circle at 88% 82%,rgba(138,225,255,.65) 0 1px,transparent 2px);
  background-size:120px 170px,160px 210px,190px 240px,145px 195px;
  animation:scene-particles 12s linear infinite;
}
#view-les,#view-lesopilka{--scene-bg:url("/assets/images/forest-screen-v1.webp");--scene-filter:saturate(1.08)}
#view-kuznya{--scene-bg:url("/assets/images/forge-screen-v1.webp");--scene-filter:saturate(1.08)}
#view-inv,#view-tools,#view-chars,#view-herodetail{--scene-bg:url("/assets/images/guild-hall-screen-v1.webp")}
#view-castleinfo{--scene-bg:url("/assets/images/guild-hall-screen-v1.webp");--scene-filter:hue-rotate(-8deg) saturate(1.12)}
#view-bank{--scene-bg:url("/assets/images/guild-hall-screen-v1.webp");--scene-filter:sepia(.12) saturate(1.3) brightness(1.04)}

/* Glassier panels let the artwork remain visible without sacrificing readability. */
.view.active:not(#view-shakhta):not(#view-castle) .skill-shaft,
.view.active:not(#view-shakhta):not(#view-castle) .mine-stage,
.view.active:not(#view-shakhta):not(#view-castle) .inv-row,
.view.active:not(#view-shakhta):not(#view-castle) .pick-card,
.view.active:not(#view-shakhta):not(#view-castle) .char-card,
.view.active:not(#view-shakhta):not(#view-castle) .castle-card,
.view.active:not(#view-shakhta):not(#view-castle) .city-card{
  background:linear-gradient(155deg,rgba(32,72,101,.9),rgba(7,25,39,.91) 72%);
  backdrop-filter:blur(5px);animation:panel-arrive .38s ease-out both;
}
.view.active .inv-row:nth-child(2n),.view.active .pick-card:nth-child(2n),.view.active .char-card:nth-child(2n){animation-delay:.04s}
.view.active .inv-row:nth-child(3n),.view.active .pick-card:nth-child(3n),.view.active .char-card:nth-child(3n){animation-delay:.08s}
#view-les .forest-scene{
  background-image:linear-gradient(180deg,rgba(9,35,31,.08),rgba(5,19,16,.38)),url("/assets/images/forest-screen-v1.webp");
  background-position:center;background-size:cover;animation:scene-glow 8s ease-in-out infinite alternate;
}
#view-kuznya .mine-stage{box-shadow:inset 0 0 30px rgba(255,113,24,.2),0 0 0 2px #071521;animation:forge-glow-panel 3s ease-in-out infinite alternate}

/* Edge-to-edge mine artwork without the former panel frame. */
#view-shakhta{
  background:transparent!important;border:0!important;border-radius:0!important;
  box-shadow:none!important;
}
#view-shakhta .mine-depths{
  width:calc(100% + 24px);margin-left:-12px;margin-right:-12px;
  padding-top:calc(150% - 295px);
  border:0!important;border-radius:0!important;box-shadow:none!important;
  background:transparent!important;
}
#view-shakhta .mine-depths>.depth-head{
  position:absolute!important;inset:12px 12px auto!important;z-index:12;
  width:auto;margin:0!important;
}
#view-shakhta .mine-strata{border-left:0;border-right:0;box-shadow:none}
#view-shakhta .depth-head{
  position:relative!important;inset:auto!important;margin:0 0 8px!important;min-height:60px;padding:7px 12px 13px;
  align-items:start;gap:10px;border:0!important;border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;backdrop-filter:none;
}
#view-shakhta .depth-head>.mine-level-info{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 9px;min-width:0;flex:1;
  padding:0!important;border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;
}
#view-shakhta .depth-head>.mine-level-info::before,
#view-shakhta .depth-head>.mine-level-info::after{display:none!important;background:transparent!important}
#view-shakhta .mine-level-info>b{grid-column:1;font:900 14px var(--sans);color:#fff;text-shadow:0 2px 3px #03101a;white-space:nowrap}
#view-shakhta .mine-level-info>small{grid-column:2;text-align:right;align-self:center;color:#ffe071;font:800 9px var(--sans);text-shadow:0 1px 2px #000}
#view-shakhta .mine-level-progress-row{grid-column:1 / 3;display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:6px;align-items:center}
#view-shakhta .mine-level-progress{
  height:6px;overflow:hidden;border:0;border-radius:4px;background:rgba(3,14,23,.68);box-shadow:inset 0 1px 2px #000
}
#view-shakhta .mine-level-progress>i{display:block;width:0;height:100%;background:linear-gradient(90deg,#19ae28,#75f06c);box-shadow:0 0 7px #4ee658;transition:width .35s ease}
#view-shakhta .mine-level-progress-row>strong{color:#74f278;font:900 9px var(--sans);text-align:right;text-shadow:0 1px 2px #000,0 0 5px rgba(60,228,71,.7)}
#view-shakhta .mine-level-info>em{grid-column:1 / 3;color:#d1e7f2;font:700 7px var(--sans);font-style:normal;text-shadow:0 1px 2px #000}
#view-shakhta .depth-head>span{
  flex:0 0 auto;margin-top:1px!important;padding:0!important;border:0!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;color:#d6eaf4!important;font:700 7px var(--sans)!important;text-shadow:0 1px 2px #000!important;
}

/* Continue the generated surface sky behind the upper mine HUD. */
body:has(#view-shakhta.active) .app{
  background-color:#17100b;
  background-image:url("/assets/images/royal-mine-surface-v1.webp");
  background-position:center -175px;background-size:100% auto;background-repeat:no-repeat;
}
body:has(#view-shakhta.active){
  background-color:#0874ce;background-image:none;
}
body:has(#view-shakhta.active) header.top{
  border-bottom:1px solid rgba(190,226,245,.5);
  background:
    radial-gradient(ellipse at 18% 20%,rgba(255,255,255,.34),transparent 25%),
    radial-gradient(ellipse at 78% 5%,rgba(255,255,255,.22),transparent 24%),
    linear-gradient(180deg,rgba(41,137,191,.88),rgba(15,63,91,.9));
  box-shadow:0 4px 14px rgba(3,18,29,.45),inset 0 1px rgba(255,255,255,.28);
  backdrop-filter:blur(6px);
}
body:has(#view-shakhta.active) header.top h1 small{color:#d8f3ff}
body:has(#view-shakhta.active) .resource-bar{
  background:linear-gradient(180deg,rgba(20,81,116,.82),rgba(8,35,54,.42) 72%,transparent);
  backdrop-filter:blur(4px);
}

/* Four-frame generated miner replaces emoji workers on every unlocked tier. */
#view-shakhta .strata-worker.miner-sprite{
  display:block;width:82px;height:82px;left:46%;bottom:15px;font-size:0;
  background-image:url("/assets/images/miner-sprite-v1.webp");
  background-size:200% 200%;background-repeat:no-repeat;background-position:0 0;
  filter:drop-shadow(0 4px 3px rgba(0,0,0,.75));transform-origin:50% 100%;
  animation:miner-sprite-swing 1.05s steps(1,end) infinite;
}
#view-shakhta .strata-floor:nth-child(2n) .miner-sprite{animation-delay:-.52s}
#view-shakhta .strata-floor:nth-child(3n) .miner-sprite{animation-delay:-.78s}
#view-shakhta .strata-worker.locked-worker{animation:none;left:58%;font-size:22px}

@keyframes scene-breathe{from{transform:scale(1.035) translate3d(0,0,0)}to{transform:scale(1.075) translate3d(-5px,-8px,0)}}
@keyframes scene-particles{from{background-position:0 0,20px 0,0 30px,40px 10px}to{background-position:15px -170px,0 -210px,25px -210px,15px -185px}}
@keyframes scene-glow{from{filter:saturate(1) brightness(.94)}to{filter:saturate(1.12) brightness(1.06)}}
@keyframes forge-glow-panel{from{box-shadow:inset 0 0 20px rgba(255,105,20,.12),0 0 0 2px #071521}to{box-shadow:inset 0 0 42px rgba(255,128,31,.32),0 0 0 2px #a54c17}}
@keyframes panel-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes miner-sprite-swing{
  0%,24%{background-position:0 0;transform:translateY(0) scale(1)}
  25%,49%{background-position:100% 0;transform:translateY(1px) scale(1.02)}
  50%,74%{background-position:0 100%;transform:translateY(3px) scale(1.03,.97)}
  75%,100%{background-position:100% 100%;transform:translateY(0) scale(1)}
}

/* Reference-inspired five-button dock: always one row, image icons, game-like depth. */
nav.tabs{
  display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;
  flex-wrap:nowrap!important;gap:4px!important;padding:6px 6px calc(6px + env(safe-area-inset-bottom))!important;
  background:linear-gradient(180deg,#183b57 0%,#091c2d 55%,#06121e 100%)!important;
  border-top:2px solid #6d99b5!important;box-shadow:0 -5px 18px rgba(0,0,0,.7),inset 0 2px rgba(255,255,255,.15)!important;
}
nav.tabs>.nav-item-wrap,nav.tabs>button{
  min-width:0!important;width:auto!important;flex:none!important;margin:0!important;
}
nav.tabs>.nav-item-wrap{display:block!important;position:relative}
nav.tabs button{
  width:100%!important;min-width:0!important;min-height:62px!important;padding:3px 1px 5px!important;gap:0!important;
  border:2px solid #456b86!important;border-radius:11px!important;
  background:linear-gradient(180deg,#315b78,#15364f 58%,#0b263b)!important;
  box-shadow:inset 0 0 0 2px #071a29,inset 0 1px rgba(255,255,255,.22),0 3px 0 #030b12!important;
  color:#dcebf4!important;font:800 8px var(--sans)!important;text-shadow:0 1px 2px #000!important;
  transition:transform .16s ease,filter .16s ease,border-color .16s ease!important;
}
nav.tabs button .ic{
  display:block;width:38px;height:39px;margin:-5px auto -1px;font-size:0!important;
  background-position:center;background-size:contain;background-repeat:no-repeat;
  filter:drop-shadow(0 3px 2px rgba(0,0,0,.7));transform-origin:50% 80%;
}
#navMineBtn .ic{background-image:url("/assets/images/nav-mine-v1.webp")}
nav.tabs>button[data-view="inv"] .ic{background-image:url("/assets/images/nav-inventory-v1.webp")}
nav.tabs>button[data-view="tools"] .ic{background-image:url("/assets/images/nav-tools-v7.webp")}
nav.tabs>button[data-view="chars"] .ic{background-image:url("/assets/images/nav-heroes-v7.webp")}
#navCastleBtn .ic{background-image:url("/assets/images/nav-castle-v3.webp")}
nav.tabs button.active{
  border-color:#ffd34d!important;color:#fff6bd!important;
  background:linear-gradient(180deg,#3c6885,#1b405a 58%,#102e43)!important;
  box-shadow:inset 0 0 0 2px #132b3c,0 0 13px rgba(255,190,38,.7),0 3px 0 #6f3e05!important;
}
nav.tabs button.active .ic{animation:nav-icon-active 1.8s ease-in-out infinite}
nav.tabs button:active:not(:disabled){transform:translateY(2px)!important;filter:brightness(1.12)}
.nav-dropdown{bottom:70px!important;left:0!important;min-width:145px!important}

/* Richer mine tiers: glowing veins, animated cart traffic and lamp light. */
#view-shakhta .strata-floor{
  height:138px;border-bottom:8px solid #25150c;
  background:
    radial-gradient(circle at 18% 48%,color-mix(in srgb,var(--mineral) 48%,transparent),transparent 31%),
    linear-gradient(90deg,rgba(4,9,14,.18),rgba(36,57,72,.14) 55%,rgba(3,8,12,.34)),
    linear-gradient(100deg,#16100c,#352419 47%,#100d0b);
  box-shadow:inset 0 10px 18px rgba(0,0,0,.62),inset 0 -12px 16px rgba(0,0,0,.72),inset 0 0 28px color-mix(in srgb,var(--mineral) 18%,transparent);
}
#view-shakhta .strata-floor::before{
  bottom:15px;height:4px;border-block:2px solid #100a07;
  background:repeating-linear-gradient(90deg,#8c6035 0 13px,#382313 13px 17px);
  box-shadow:0 7px 0 #5a3820,0 10px 0 #170d08;
}
#view-shakhta .strata-floor::after{
  background:linear-gradient(90deg,transparent 23%,#674526 23% 25%,transparent 25% 73%,#674526 73% 75%,transparent 75%);
  opacity:.9;
}
#view-shakhta .strata-rocks{left:4%;bottom:22px;animation:ore-vein-pulse 2.4s ease-in-out infinite!important}
#view-shakhta .strata-lamp{top:13px;width:8px;height:9px;animation:mine-lamp-flicker 1.5s ease-in-out infinite}
#view-shakhta .strata-lamp::after{
  content:"";position:absolute;left:50%;top:8px;width:70px;height:78px;transform:translateX(-50%);
  background:radial-gradient(ellipse at top,rgba(255,190,70,.22),transparent 70%);pointer-events:none;
}
#view-shakhta .strata-cart{
  display:block;right:3%;bottom:17px;width:70px;height:58px;font-size:0;
  background:url("/assets/images/mine-cart-v1.webp") center/contain no-repeat;
  filter:drop-shadow(0 4px 3px #000);animation:mine-cart-shuttle 5.4s ease-in-out infinite;
}
#view-shakhta .strata-floor:nth-child(2n) .strata-cart{animation-delay:-2.7s}
#view-shakhta .strata-floor:nth-child(3n) .strata-cart{animation-delay:-4s}
#view-shakhta .strata-label{backdrop-filter:blur(4px);border-width:2px;box-shadow:inset 0 0 0 1px #07131d,0 3px 9px #000}

@keyframes nav-icon-active{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.08);filter:drop-shadow(0 0 7px #ffd34d)}}
@keyframes mine-cart-shuttle{0%,15%{transform:translateX(0)}48%,65%{transform:translateX(-42px)}100%{transform:translateX(0)}}
@keyframes mine-lamp-flicker{0%,100%{opacity:.82;box-shadow:0 0 7px 3px #e99832}45%{opacity:1;box-shadow:0 0 13px 6px #ffb43b}58%{opacity:.72}}

/* Generated mine-tier paintings replace the former procedural cave layers. */
#view-shakhta .strata-floor{
  height:130px;background-color:#17100b;background-position:center;background-size:cover;background-repeat:no-repeat;
  box-shadow:inset 0 5px 10px rgba(0,0,0,.25),inset 0 -7px 10px rgba(0,0,0,.45);
}
#view-shakhta .strata-floor.tier-art-0{background-image:url("/assets/images/mine-tier-gold-v1.webp")}
#view-shakhta .strata-floor.tier-art-1{background-image:url("/assets/images/mine-tier-stone-v1.webp")}
#view-shakhta .strata-floor.tier-art-2{background-image:url("/assets/images/mine-tier-crystal-v1.webp")}
#view-shakhta .strata-floor.tier-art-3{background-image:url("/assets/images/mine-tier-diamond-v1.webp")}
#view-shakhta .strata-floor::before,#view-shakhta .strata-floor::after,
#view-shakhta .strata-rocks,#view-shakhta .strata-lamp{display:none!important}
#view-shakhta .strata-floor.locked{
  filter:saturate(.18) brightness(.42);background-blend-mode:luminosity;
}
#view-shakhta .strata-floor:not(.locked){animation:tier-light-breathe 4.2s ease-in-out infinite alternate}
#view-shakhta .strata-floor:nth-child(2n):not(.locked){animation-delay:-2.1s}
#view-shakhta .strata-label{left:7px;top:9px;width:38%;background:linear-gradient(180deg,rgba(19,46,66,.94),rgba(7,23,36,.94))}
#view-shakhta .tier-progress{
  height:7px;margin-top:5px;overflow:hidden;border:1px solid #07121c;border-radius:5px;
  background:#06111a;box-shadow:inset 0 1px 3px #000;
}
#view-shakhta .tier-progress i{
  display:block;width:var(--tier-progress,0%);height:100%;border-radius:inherit;
  background:linear-gradient(90deg,#1bb92b,#72f064);box-shadow:0 0 6px rgba(82,238,91,.7);
  transition:width .35s ease;
}
#view-shakhta .tier-progress-text{margin-top:3px!important;color:#d8ecf7!important;font-size:7px!important}
#view-shakhta .strata-worker.miner-sprite{left:43%;bottom:14px}
#view-shakhta .strata-cart{bottom:11px}
@keyframes tier-light-breathe{from{filter:brightness(.94) saturate(.96)}to{filter:brightness(1.08) saturate(1.12)}}

/* Compact top HUD leaves the painted tier visible. */
#view-shakhta .strata-label{
  left:7px;right:auto;top:3px;width:min(76%,365px);height:32px;padding:1px 2px;
  display:grid;grid-template-columns:34px minmax(48px,auto) minmax(0,1fr) 82px;
  grid-template-rows:15px 12px;column-gap:6px;align-items:center;
  border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;
  text-shadow:0 1px 2px #000,0 0 4px #000;
}
#view-shakhta .strata-label small{grid-column:1;grid-row:1 / 3;font-size:7px;line-height:1.1}
#view-shakhta .strata-label b{grid-column:2;grid-row:1 / 3;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#view-shakhta .strata-label .strata-status{
  grid-column:3;grid-row:1 / 3;margin:0;font-size:7px;line-height:1.2;
  white-space:normal;overflow:hidden;max-height:18px;
}
#view-shakhta .strata-label .tier-progress{grid-column:4;grid-row:1;margin:0;height:7px}
#view-shakhta .strata-label .tier-progress-text{
  grid-column:4;grid-row:2;margin:0!important;text-align:center;font-size:6.5px!important;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* Blend the generated surface illustration into the first underground tier. */
#view-shakhta .mine-strata{
  margin-top:-34px;padding-top:34px;border-top:0!important;
  background:linear-gradient(180deg,rgba(23,16,11,0),rgba(23,16,11,.74) 19px,#17100b 34px);
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 30px,#000 100%);
  mask-image:linear-gradient(180deg,transparent 0,#000 30px,#000 100%);
}

/* Correctly anchored mining submenu with illustrated choices. */
#navMineWrap .nav-dropdown{
  left:0!important;right:auto!important;bottom:calc(100% + 7px)!important;
  width:178px!important;min-width:178px!important;margin:0!important;padding:7px!important;
  transform:none!important;overflow:hidden;
  border:2px solid #648ba5!important;border-radius:13px!important;
  background:linear-gradient(180deg,rgba(38,78,105,.98),rgba(8,28,43,.99))!important;
  box-shadow:inset 0 0 0 2px #071824,0 7px 22px rgba(0,0,0,.75)!important;
}
#navMineWrap .nav-dropdown button{
  display:grid!important;grid-template-columns:42px 1fr!important;align-items:center!important;gap:8px!important;
  width:100%!important;min-height:52px!important;padding:4px 8px 4px 4px!important;text-align:left!important;
  border:1px solid #4f7690!important;border-radius:9px!important;
  background:linear-gradient(180deg,#2d5875,#122f45)!important;
  box-shadow:inset 0 0 0 1px #081b29,0 2px 4px rgba(0,0,0,.45)!important;
  color:#eef8ff!important;font:800 11px var(--sans)!important;
}
#navMineWrap .nav-dropdown button::before{
  content:"";display:block;width:40px;height:40px;background-position:center;background-size:cover;background-repeat:no-repeat;
  border-radius:8px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.6));
}
#navMineWrap .nav-dropdown button[data-view="shakhta"]::before{background-image:url("/assets/images/nav-mine-v1.webp");background-size:contain}
#navMineWrap .nav-dropdown button[data-view="les"]::before{background-image:url("/assets/images/forest-screen-v1.webp")}
#navMineWrap .nav-dropdown button[data-view="plavilnya"]::before{background-image:url("/assets/images/castle-buildings/smelter-v1.webp");background-size:contain}
#navMineWrap .nav-dropdown button[data-view="kuznya"]::before{background-image:url("/assets/images/forge-screen-v1.webp")}
#navMineWrap .nav-dropdown button[data-view="lesopilka"]::before{background-image:url("/assets/images/castle-buildings/sawmill-v1.webp");background-size:contain}
#navMineWrap .nav-dropdown button.active{
  border-color:#ffd34d!important;color:#fff2a5!important;
  box-shadow:inset 0 0 0 1px #132b3c,0 0 8px rgba(255,190,38,.5)!important;
}

/* Bottom dock matches the kingdom map: timber frame, blue roofs, gold trim. */
nav.tabs{
  border-top:3px solid #a87535!important;
  background:linear-gradient(180deg,#69451f 0%,#38220f 48%,#1d1008 100%)!important;
  box-shadow:0 -5px 18px rgba(0,0,0,.68),inset 0 2px rgba(255,225,154,.22)!important;
}
nav.tabs button{
  border-color:#8c693e!important;
  background:linear-gradient(180deg,#294f69 0%,#17384e 58%,#0b2638 100%)!important;
  box-shadow:inset 0 0 0 2px #091b27,inset 0 1px rgba(255,255,255,.2),0 3px 0 #160b04!important;
  color:#e8dfcb!important;
}
nav.tabs button.active{
  border-color:#f1bd4c!important;color:#fff0a8!important;
  background:linear-gradient(180deg,#3b6985,#20475e 58%,#123246)!important;
  box-shadow:inset 0 0 0 2px #102b3b,0 0 13px rgba(255,192,53,.72),0 3px 0 #73400b!important;
}

/* Tier HUD borrows each illustrated tier's own accent color. */
#view-shakhta .strata-label b{color:#fff0b1;text-shadow:0 1px 2px #000,0 0 5px var(--mineral)}
#view-shakhta .strata-label .tier-progress{background:rgba(4,13,20,.72);box-shadow:inset 0 1px 3px #000,0 0 0 1px rgba(143,190,214,.35)}
#view-shakhta .strata-label .tier-progress i{background:linear-gradient(90deg,color-mix(in srgb,var(--mineral) 72%,#39cf49),#8cf17a)}
@keyframes castle-map-alert{0%,100%{transform:scale(1) translateY(0)}50%{transform:scale(1.16) translateY(-3px)}}
@media(max-width:380px){
  #view-shakhta .strata-label{width:78%;grid-template-columns:28px 43px minmax(0,1fr) 72px;column-gap:3px;padding:1px}
  #view-shakhta .strata-label .strata-status{font-size:6.5px}
  #view-shakhta .strata-label .tier-progress-text{font-size:6px!important}
}

/* Inputs and status */
.qty-input{border:2px solid #4e748e;background:#071b2a;color:#fff}.toast{border:2px solid #fff097;background:linear-gradient(180deg,#ffd94d,#e68c0a);box-shadow:0 4px 0 #704000,0 8px 16px rgba(0,0,0,.5);color:#172332}
.reset-btn{border:2px solid #ce5e4d;background:linear-gradient(180deg,#873e35,#4b201d);color:#ffd8d1}.sync-overlay{background:radial-gradient(circle at center,#183b55,#07131d)}.sync-overlay .spinner{border-color:#294d66;border-top-color:#50d8ff}
.auth-card{width:min(100%,380px);padding:20px;border:2px solid #527b97;border-radius:16px;background:linear-gradient(155deg,#234d6b,#0b2538);box-shadow:inset 0 0 0 2px #071824,0 12px 30px rgba(0,0,0,.55)}
.auth-logo{font-size:45px;filter:drop-shadow(0 4px 3px #000)}.auth-card h2{margin:2px 0 5px;font:900 27px var(--sans);color:#fff}.auth-card p{margin:0 0 14px!important;color:#a9c1d0!important}
.auth-card form{display:grid;gap:9px}.auth-card input{width:100%;padding:12px 13px;border:2px solid #527a96;border-radius:10px;outline:none;background:#071b2a;color:#fff;font:700 14px var(--sans);box-shadow:inset 0 2px 5px rgba(0,0,0,.55)}.auth-card input:focus{border-color:#5bd6ff;box-shadow:0 0 0 3px rgba(91,214,255,.14)}
.auth-actions{display:grid;grid-template-columns:1fr;gap:8px}.auth-actions button{min-height:44px}.auth-actions button:first-child{border-color:#73eb68;background:linear-gradient(180deg,#5ee758,#1dad28);box-shadow:inset 0 0 0 2px #0b6512,0 3px 0 #06440a}
.auth-error{min-height:16px;color:#ffb09f;font:700 11px var(--sans)}.auth-divider{display:flex;align-items:center;gap:8px;margin:12px 0;color:#7594a8;font:700 9px var(--sans)}.auth-divider::before,.auth-divider::after{content:"";height:1px;flex:1;background:#41647d}.auth-telegram{display:block;padding:11px;border:2px solid #4d9fd1;border-radius:9px;background:#1973a8!important;color:#fff!important;text-decoration:none;font:800 12px var(--sans)}.auth-card>small{display:block;margin-top:9px;color:#829eaf;font:600 9px var(--sans)}

/* Shared navigation, visually matching the reference while staying at bottom. */
nav.tabs{
  z-index:70!important;gap:5px!important;padding:6px 7px calc(6px + env(safe-area-inset-bottom))!important;border-top:3px solid #315a76!important;
  background:linear-gradient(180deg,#244d6b,#0c2539)!important;box-shadow:0 -5px 16px rgba(0,0,0,.6),inset 0 1px rgba(255,255,255,.18)!important;
}
nav.tabs button{
  min-height:57px!important;border:2px solid #537995!important;border-radius:10px!important;padding:5px 2px!important;
  background:linear-gradient(180deg,#2d5875,#122f45)!important;box-shadow:inset 0 0 0 2px #081b29,0 3px 0 #06121c!important;
  color:#c9d8e2!important;font:800 9px var(--sans)!important;text-transform:none!important;text-shadow:0 1px #000!important;
}
nav.tabs button .ic{font-size:22px!important;filter:drop-shadow(0 2px 1px #000)}
nav.tabs button.active{border-color:#ffd151!important;color:#fff4b1!important;background:linear-gradient(180deg,#385f79,#18384f)!important;box-shadow:inset 0 0 0 2px #102331,0 0 11px rgba(255,193,46,.65)!important}
.nav-dropdown{border:2px solid #527995;background:linear-gradient(180deg,#204761,#0b2335);box-shadow:inset 0 0 0 2px #071824,0 7px 18px #000}.nav-dropdown button{min-height:auto!important}

/* Transparent map-style dock: one shared glass base, no boxes under icons. */
nav.tabs{
  gap:2px!important;padding-inline:5px!important;
  border-top:1px solid rgba(185,217,234,.42)!important;
  background:linear-gradient(180deg,rgba(15,44,64,.7),rgba(5,20,32,.86))!important;
  box-shadow:0 -5px 18px rgba(0,0,0,.5),inset 0 1px rgba(255,255,255,.13)!important;
  backdrop-filter:blur(12px) saturate(1.18);
}
nav.tabs button{
  border-color:transparent!important;border-radius:8px!important;
  background:transparent!important;box-shadow:none!important;color:#c8dae5!important;
}
nav.tabs button .ic{font-size:0!important;width:38px!important;height:39px!important;filter:drop-shadow(0 3px 2px rgba(0,0,0,.7))}
nav.tabs button.active{
  border-color:transparent!important;color:#fff1a7!important;
  background:radial-gradient(ellipse at 50% 62%,rgba(255,190,49,.18),transparent 68%)!important;
  box-shadow:inset 0 -3px #eeb43d!important;
}
nav.tabs button:not(.active):active{background:rgba(126,190,221,.12)!important}

@media(max-width:380px){main{padding-inline:9px}.resource-pill{padding-left:24px}.resource-pill>span{left:5px}.inv-row{padding-inline:7px}.inv-row .price{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}

/* Unified glass HUD: the mine counters and header echo the transparent bottom dock. */
header.top,body:has(#view-shakhta.active) header.top{
  min-height:60px;padding:7px 11px;border-bottom:1px solid rgba(190,222,239,.46);
  background:linear-gradient(180deg,rgba(22,65,92,.8),rgba(5,25,39,.88))!important;
  box-shadow:0 5px 18px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.15)!important;
  backdrop-filter:blur(12px) saturate(1.2);
}
header.top h1{position:relative;padding-left:43px;font-size:19px;line-height:1.05}
header.top h1::before{
  content:"";position:absolute;left:0;top:50%;width:36px;height:36px;transform:translateY(-50%);
  border-radius:50%;background:url("/assets/images/nav-mine-v1.webp") center/40px no-repeat;
  filter:drop-shadow(0 3px 3px rgba(0,0,0,.65));
}
header.top h1 small{color:#a9d9ef!important;letter-spacing:.13em}
header.top .money{
  position:relative;min-width:118px;min-height:40px;padding:7px 11px 7px 47px;border:1px solid rgba(239,193,78,.55);
  border-radius:12px;background:linear-gradient(180deg,rgba(39,83,108,.48),rgba(8,31,47,.58));
  box-shadow:inset 0 1px rgba(255,255,255,.15),0 3px 10px rgba(0,0,0,.28);
  color:#fff4bd;font-size:15px;text-shadow:0 2px 2px #000;overflow:hidden;
}
header.top .money::before{
  content:"";position:absolute;left:6px;bottom:1px;width:40px;height:40px;border-radius:0;
  background:url("/assets/images/header-coins-v2.webp") center/contain no-repeat;
  box-shadow:none;filter:drop-shadow(0 3px 3px rgba(74,35,0,.7));
  animation:hud-coin-float 2.8s ease-in-out infinite;
}
header.top .money::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(110deg,transparent 25%,rgba(255,241,172,.16) 43%,transparent 60%);
  transform:translateX(-120%);animation:hud-glint 5s ease-in-out infinite;
}
#view-shakhta .resource-bar{
  top:60px;margin:0 -4px 8px;padding:5px 4px 7px;gap:1px;border:1px solid rgba(185,217,234,.38);
  border-radius:0 0 13px 13px;background:linear-gradient(180deg,rgba(15,44,64,.72),rgba(5,20,32,.84))!important;
  box-shadow:0 5px 15px rgba(0,0,0,.32),inset 0 1px rgba(255,255,255,.12);
  backdrop-filter:blur(12px) saturate(1.18);
}
#view-shakhta .resource-pill{
  min-height:47px;padding:7px 3px 6px 28px;border:0;border-radius:7px;background:transparent!important;
  box-shadow:none!important;transition:background .18s ease,transform .18s ease;
}
#view-shakhta .resource-pill:not(:last-child)::after{
  content:"";position:absolute;right:0;top:9px;bottom:9px;width:1px;
  background:linear-gradient(transparent,rgba(156,204,228,.42),transparent);
}
#view-shakhta .resource-pill>span{left:7px;top:13px;font-size:17px;filter:drop-shadow(0 2px 2px #000)}
#view-shakhta .resource-pill.coin>span{top:7px;left:3px;width:27px;height:30px;font-size:0;background:url("/assets/images/header-coins-v2.webp") center/contain no-repeat}
#view-shakhta .resource-pill b{font-size:11px;color:#f5fbff;text-shadow:0 2px 2px #000}
#view-shakhta .resource-pill small{font-size:6.5px;color:#9fc9dc;letter-spacing:.04em}
#view-shakhta .resource-pill.coin small{color:#ffd873}
#view-shakhta .resource-pill.iron>span{color:#9fe6ff}
#view-shakhta .resource-pill.gold>span{color:#ffbd45}
#view-shakhta .resource-pill.gem>span{color:#d08cff}
@keyframes hud-coin-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-2px) rotate(1deg)}}
@keyframes hud-glint{0%,68%{transform:translateX(-120%)}86%,100%{transform:translateX(120%)}}
@media(max-width:380px){header.top h1{padding-left:36px;font-size:17px}header.top h1::before{width:31px;height:31px;background-size:35px}header.top .money{min-width:105px;padding-left:42px}#view-shakhta .resource-pill{padding-left:24px}#view-shakhta .resource-pill>span{left:5px}}

/* Compact floating top HUD. */
header.top,body:has(#view-shakhta.active) header.top{
  width:100%;min-height:52px;margin:0;padding:5px 12px;
  border:0;border-bottom:1px solid rgba(190,222,239,.46);border-radius:0;
}
header.top h1{padding-left:37px;font-size:17px}
header.top h1::before{width:31px;height:31px;background-size:35px}
header.top h1 small{font-size:7px}
header.top .money{min-width:104px;min-height:35px;padding:5px 8px 5px 40px;border-radius:10px;font-size:13px}
header.top .money::before{left:4px;bottom:1px;width:34px;height:34px}
#view-shakhta .resource-bar{
  top:58px;width:calc(100% - 20px);margin:5px auto 8px;padding:3px 3px 5px;border-radius:11px;
}
#view-shakhta .resource-pill{min-height:40px;padding:5px 2px 4px 25px}
#view-shakhta .resource-pill>span{left:6px;top:10px;font-size:15px}
#view-shakhta .resource-pill.coin>span{top:5px;left:2px;width:25px;height:27px}
#view-shakhta .resource-pill b{font-size:10px}
#view-shakhta .resource-pill small{font-size:6px}
#view-shakhta .resource-pill:not(:last-child)::after{top:7px;bottom:7px}
@media(max-width:360px){
  header.top,body:has(#view-shakhta.active) header.top{width:100%}
  header.top h1{padding-left:31px;font-size:15px}header.top h1::before{width:27px;height:27px;background-size:31px}
  header.top .money{min-width:94px;padding-left:36px;font-size:12px}
  #view-shakhta .resource-bar{width:calc(100% - 10px)}
  #view-shakhta .resource-pill{padding-left:21px}#view-shakhta .resource-pill b{font-size:9px}
}

/* Full-screen royal mine. The global header and mine counters remain visible
   while the tier artwork scrolls underneath them. */
body:has(#view-shakhta.active) .app{
  width:100%;max-width:none!important;min-height:100vh;margin:0!important;padding-bottom:76px;
  background-size:100% auto!important;
}
body:has(#view-shakhta.active) header.top{
  position:fixed!important;z-index:90;left:0;right:0;top:0;width:100%!important;max-width:none!important;margin:0!important;
}
body:has(#view-shakhta.active) main{width:100%;max-width:none;padding:57px 0 22px!important}
body:has(#view-shakhta.active) nav.tabs{width:100%!important;max-width:none!important}
#view-shakhta{width:100%;min-height:calc(100vh - 57px);overflow:visible}
#view-shakhta>.resource-bar{
  position:sticky!important;z-index:70;top:52px!important;width:calc(100% - 16px)!important;margin:0 auto 8px!important;
}
#view-shakhta>.skill-shaft{margin-left:12px;margin-right:12px}
#view-shakhta .mine-depths{width:100%!important;margin-left:0!important;margin-right:0!important}
#view-shakhta .mine-stage{margin-left:0;margin-right:0;border-left:0;border-right:0;border-radius:0}

/* Large adventure map: deliberately larger than the phone viewport so it can
   be explored like a classic turn-based fantasy strategy map. */
nav.tabs{grid-template-columns:repeat(6,minmax(0,1fr))!important}
nav.tabs>button,nav.tabs>.nav-item-wrap>button{font-size:7px!important}
#navMapBtn .ic{
  font-size:0!important;border-radius:7px;
  background-image:url("/assets/images/adventure-world-map-v1.webp")!important;
  background-size:cover!important;box-shadow:inset 0 0 0 1px rgba(255,229,145,.5);
}
#view-worldmap{
  position:relative;z-index:0;margin:-8px -12px -22px;min-height:calc(100vh - 103px);
  overflow:hidden;background:#07131d!important;isolation:isolate;
}
#view-worldmap::before,#view-worldmap::after{display:none!important}
.world-map-hud{
  box-sizing:border-box;position:absolute;z-index:20;top:8px;left:50%;width:calc(100% - 16px);max-width:430px;padding:7px 9px 8px;
  transform:translateX(-50%);text-align:center;color:#fff1bd;pointer-events:auto;
  border:1px solid rgba(227,205,142,.48);border-radius:12px;
  background:linear-gradient(180deg,rgba(26,55,67,.82),rgba(8,26,37,.88));
  box-shadow:0 5px 14px rgba(0,0,0,.5),inset 0 1px rgba(255,255,255,.13);backdrop-filter:blur(8px);
}
.world-hud-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.world-hud-title>b{min-width:0;font:700 13px var(--serif);letter-spacing:.3px;white-space:nowrap}
#worldHeroCoords{flex:0 1 auto;width:auto!important;max-width:52%;min-height:23px!important;padding:3px 6px!important;overflow:hidden;white-space:nowrap;border:1px solid rgba(164,213,228,.45)!important;border-radius:10px!important;background:rgba(7,27,39,.72)!important;color:#bdeaff!important;font:700 7.5px var(--sans)!important;box-shadow:none!important}
#worldHeroCoords:active{filter:brightness(1.25)}
.world-hero-bars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.world-stat{position:relative;display:block;height:17px;overflow:hidden;border:1px solid rgba(222,229,210,.35);border-radius:8px;background:rgba(3,18,27,.8)}
.world-stat>i{position:absolute;inset:0;display:block}.world-stat>i>em{display:block;width:0;height:100%;transition:width .3s ease}
.world-stat>small{position:relative;z-index:1;display:block!important;margin:0!important;color:#fff!important;font:700 7px/15px var(--sans)!important;text-shadow:0 1px 2px #000}
.world-stat.hp em{background:linear-gradient(90deg,#8b1919,#e64d42)}
.world-stat.mana em{background:linear-gradient(90deg,#174b9b,#3f9eff)}
.world-stat.xp em{background:linear-gradient(90deg,#8a6516,#e9bd39)}
.world-map-viewport{
  width:100%;height:calc(100vh - 103px);overflow:auto;overscroll-behavior:contain;
  scrollbar-width:none;touch-action:pan-x pan-y;background:#0b2830;
}
.world-map-viewport::-webkit-scrollbar{display:none}
.world-map-canvas{
  position:relative;width:20000px;height:20000px;overflow:hidden;
  background-color:#4d873e;background-image:url("/assets/images/world-grass-tile-v1.webp");
  background-position:0 0;background-size:512px 512px;background-repeat:repeat;
  box-shadow:inset 0 0 70px rgba(2,14,16,.46);cursor:crosshair;
}
.world-map-canvas::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;box-shadow:inset 0 0 80px rgba(1,12,16,.55)}
.world-map-decor{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.map-chunk{position:absolute;width:900px;height:900px;contain:strict;overflow:visible}
.map-decor{position:absolute;display:block;width:var(--size);height:var(--size);transform:translate(-50%,-50%) rotate(var(--turn));transform-origin:50% 80%;contain:strict;background-image:url("/assets/images/world-decor-atlas-v1.webp");background-size:300% 200%;background-repeat:no-repeat;filter:drop-shadow(4px 6px 3px rgba(14,39,20,.42))}
.map-tree{background-position:0 0}
.map-tree::after{display:none}
.map-bush{background-position:50% 0}
.map-rock{background-position:100% 0}
.map-flowers{background-position:0 100%}
.map-pond{height:calc(var(--size)*.72);background-position:50% 100%;z-index:0}
.map-road{height:calc(var(--size)*.146);border-radius:12px;background-color:#c99a55;background-image:url("/assets/images/world-road-segment-v1.webp")!important;background-size:100% 100%!important;background-position:center!important;box-shadow:0 0 0 2px rgba(112,78,39,.28);filter:drop-shadow(0 2px 2px rgba(62,72,33,.3));z-index:0}

/* The world map is its own full-screen mode; the global Shtrek header only
   wastes vertical space here. Other game sections keep the header unchanged. */
body.world-map-mode header.top{display:none!important}
body.world-map-mode nav.tabs{display:none!important}
body.world-map-mode .app{width:100%;max-width:none!important;min-height:100vh;min-height:100dvh;margin:0!important;padding-bottom:0!important;background:transparent!important}
body.world-map-mode main{width:100%;max-width:none!important;margin:0!important;padding:0!important}
body.world-map-mode #view-worldmap{width:100vw;min-height:100vh;min-height:100dvh;margin:0!important}
body.world-map-mode .world-map-viewport{width:100vw;height:100vh;height:100dvh}
body.world-map-mode .world-map-hud{top:calc(8px + env(safe-area-inset-top))}
body.world-map-mode #view-worldmap{position:fixed!important;inset:0!important;z-index:100!important;overflow:hidden!important}
body.world-map-mode .world-map-viewport{position:absolute!important;inset:0!important;margin:0!important}
.world-castle{
  position:absolute;z-index:5;left:42%;top:69%;width:190px;height:190px;padding:0;border:0!important;
  transform:translate(-50%,-82%);overflow:visible!important;background:url("/assets/images/world-castle-v1.webp") center/contain no-repeat!important;
  filter:drop-shadow(0 9px 7px rgba(0,0,0,.68));box-shadow:none!important;cursor:pointer;
}
.world-castle span,.world-hero b{
  position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);white-space:nowrap;padding:2px 7px;
  color:#fff0b0;font:700 9px var(--sans);text-shadow:0 1px 2px #000;border-radius:8px;
  background:rgba(9,28,30,.73);box-shadow:0 1px 4px rgba(0,0,0,.5);
}
.world-castle span{bottom:-24px;min-width:130px;padding:4px 10px 5px}
.world-castle span b{position:static;display:block;transform:none;padding:0;background:none;box-shadow:none;font:700 10px var(--serif)}
.world-castle span small{display:block;color:#aee7ff;font:700 8px var(--sans)}
.world-castle:hover{filter:drop-shadow(0 0 10px rgba(255,218,99,.8)) drop-shadow(0 9px 7px rgba(0,0,0,.68))}
.world-castle:hover,.world-castle:focus,.world-castle:focus-visible,.world-castle:active{
  transform:translate(-50%,-82%)!important;background:url("/assets/images/world-castle-v1.webp") center/contain no-repeat!important;
  border:0!important;box-shadow:none!important;outline:none!important;
}
.world-mountain-mine{position:absolute;z-index:6;left:44.17%;top:68.18%;width:190px;height:175px;padding:0!important;transform:translate(-50%,-78%)!important;border:0!important;background:url("/assets/images/world-mountain-mine-v1.webp") center/contain no-repeat!important;box-shadow:none!important;filter:drop-shadow(0 8px 6px rgba(0,0,0,.62));overflow:visible!important}
.world-mountain-mine:hover,.world-mountain-mine:focus,.world-mountain-mine:active{transform:translate(-50%,-78%)!important;border:0!important;background:url("/assets/images/world-mountain-mine-v1.webp") center/contain no-repeat!important;box-shadow:none!important;filter:brightness(1.1) drop-shadow(0 0 8px #ffbd4c) drop-shadow(0 8px 6px rgba(0,0,0,.62))}
.world-mountain-mine>span{position:absolute;left:50%;bottom:-13px;min-width:115px;transform:translateX(-50%);padding:3px 8px;border-radius:8px;background:rgba(8,25,31,.82);color:#ffe4a1;text-shadow:0 1px 2px #000}
.world-mountain-mine b,.world-mountain-mine small{display:block;white-space:nowrap}.world-mountain-mine b{font:700 9px var(--serif)}.world-mountain-mine small{color:#a9dce8;font:700 7px var(--sans)}
.world-hero{
  --walk-time:.8s;position:absolute;z-index:8;left:43%;top:69%;width:84px;height:88px;
  transform:translate(-50%,-73%);transition:left var(--walk-time) linear,top var(--walk-time) linear;
  pointer-events:auto;cursor:pointer;touch-action:manipulation;
}
.world-parked-horse{position:absolute;z-index:7;width:92px;height:88px;transform:translate(-50%,-78%);background:url("/assets/images/world-horse-parked-v1.webp") center/contain no-repeat;filter:drop-shadow(0 5px 3px rgba(0,0,0,.55));pointer-events:none}
.world-parked-horse.hidden{display:none}
.world-white-stallion{
  --stallion-walk-time:2s;position:absolute;z-index:7;left:40.9%;top:67.24%;width:84px;height:88px;
  transform:translate(-50%,-80%);pointer-events:none;
  transition:left var(--stallion-walk-time) linear,top var(--stallion-walk-time) linear;
}
.world-white-stallion>i{
  position:absolute;inset:0;display:block;overflow:hidden;transform-origin:50% 82%;
  background:url("/assets/images/world-white-stallion-v1.webp") center/contain no-repeat;
  filter:drop-shadow(0 5px 3px rgba(0,0,0,.58));
}
.world-white-stallion.face-left>i{scale:-1 1}
.world-white-stallion>i::before{display:none}
.world-white-stallion.wandering>i{
  inset:14px 9px;
  background-image:url("/assets/images/world-white-stallion-walk-v1.webp");
  background-size:400% 100%;background-position:0 0;background-repeat:no-repeat;
  animation:white-stallion-frames .72s linear infinite,white-stallion-step .36s ease-in-out infinite alternate;
}
.world-white-stallion::after{
  content:"";position:absolute;z-index:-1;left:13%;right:10%;bottom:5px;height:10px;border-radius:50%;
  background:rgba(10,32,17,.38);filter:blur(2px);
}
.world-white-stallion>span{
  position:absolute;left:50%;bottom:-18px;min-width:112px;transform:translateX(-50%);
  padding:3px 7px;border-radius:8px;text-align:center;white-space:nowrap;
  background:rgba(8,25,31,.82);color:#fff1bd;text-shadow:0 1px 2px #000;
  box-shadow:0 2px 5px rgba(0,0,0,.45);
}
.world-white-stallion b,.world-white-stallion small{display:block}.world-white-stallion b{font:700 9px var(--serif)}.world-white-stallion small{color:#bce9f5;font:700 7px var(--sans)}
@keyframes white-stallion-step{from{transform:translateY(0) rotate(-.7deg)}to{transform:translateY(-4px) rotate(.7deg)}}
@keyframes white-stallion-frames{
  0%,24.99%{background-position:0 0}
  25%,49.99%{background-position:33.333% 0}
  50%,74.99%{background-position:66.667% 0}
  75%,100%{background-position:100% 0}
}
.world-return-castle{
  position:absolute;z-index:25;left:50%;bottom:calc(10px + env(safe-area-inset-bottom));display:flex!important;align-items:center;justify-content:center;gap:6px;
  width:min(52%,205px)!important;min-height:38px!important;padding:4px 9px!important;transform:translateX(-50%);
  color:#fff1b3!important;border:1px solid rgba(255,220,119,.7)!important;border-radius:18px!important;
  background:linear-gradient(180deg,rgba(37,76,94,.9),rgba(10,35,51,.94))!important;
  box-shadow:0 5px 15px rgba(0,0,0,.55),inset 0 1px rgba(255,255,255,.16)!important;backdrop-filter:blur(8px);
}
.world-return-castle span{font-size:20px;filter:drop-shadow(0 2px 2px #000)}
.world-return-castle b{font:700 10px var(--serif);letter-spacing:.2px}
.world-return-castle:active{transform:translateX(-50%) translateY(2px)!important;filter:brightness(1.15)}
.world-corner-btn{
  position:absolute;z-index:26;bottom:calc(8px + env(safe-area-inset-bottom));display:grid!important;grid-template-rows:43px 12px;place-items:center;
  width:58px!important;height:59px!important;padding:2px!important;border:1px solid rgba(226,215,162,.55)!important;border-radius:13px!important;
  color:#fff2b5!important;background:linear-gradient(180deg,rgba(38,76,91,.9),rgba(8,31,45,.94))!important;
  box-shadow:0 5px 14px rgba(0,0,0,.55),inset 0 1px rgba(255,255,255,.14)!important;backdrop-filter:blur(8px);
}
.world-corner-btn>b{font:700 8px var(--serif)}
.world-corner-btn>span{display:block;width:42px;height:40px;background-position:center;background-size:cover;background-repeat:no-repeat;filter:drop-shadow(0 2px 2px #000)}
.world-minimap-btn{left:9px}.world-minimap-btn>span{position:relative;overflow:hidden;border-radius:8px;background-image:url("/assets/images/world-grass-tile-v1.webp")}
.world-minimap-btn>span::before{content:"";position:absolute;left:-4px;right:-4px;top:67%;height:5px;transform:rotate(2deg);border-block:1px solid #846339;background:#d0a45f;box-shadow:0 1px 2px rgba(0,0,0,.4)}
.world-minimap-btn>span::after{content:"";position:absolute;left:var(--mini-hero-x,43%);top:var(--mini-hero-y,69%);width:8px;height:8px;transform:translate(-50%,-50%);border:2px solid #ffe25c;border-radius:50%;background:#244c74;box-shadow:0 0 4px #ffd83c}
.world-bag-btn{right:9px}.world-bag-btn>span{background-size:contain;background-image:url("/assets/images/nav-inventory-v1.webp")}
.world-corner-btn:active{transform:translateY(2px)!important;filter:brightness(1.15)}
body.world-map-mode .world-return-castle,body.world-map-mode .world-corner-btn{position:fixed!important}
body.world-map-mode .world-return-castle{left:50%!important;bottom:calc(10px + env(safe-area-inset-bottom))!important}
body.world-map-mode .world-minimap-btn{left:max(9px,env(safe-area-inset-left))!important;bottom:calc(8px + env(safe-area-inset-bottom))!important}
body.world-map-mode .world-bag-btn{right:max(9px,env(safe-area-inset-right))!important;bottom:calc(8px + env(safe-area-inset-bottom))!important}
.world-overview{position:absolute;z-index:60;inset:0;display:grid;place-items:center;padding:13px;background:rgba(2,12,19,.8);backdrop-filter:blur(7px)}
.world-overview.hidden{display:none}
.world-cave{position:absolute;z-index:80;inset:0;background:#071016}.world-cave.hidden{display:none}
.world-cave-hud{position:absolute;z-index:5;left:50%;top:8px;width:min(94%,410px);transform:translateX(-50%);display:grid;grid-template-columns:1fr auto;align-items:center;padding:7px 9px;border:1px solid #a4773e;border-radius:11px;background:rgba(15,27,31,.9);color:#ffe0a0;box-shadow:0 5px 12px #000;backdrop-filter:blur(7px)}
.world-cave-hud b{font:700 13px var(--serif)}.world-cave-hud small{grid-column:1;color:#b9cbd0;font:600 7px var(--sans)}.world-cave-hud button{grid-column:2;grid-row:1/3;width:auto!important;min-height:30px!important;padding:5px 9px!important;background:linear-gradient(#8a5127,#4e2b18)!important;color:#ffe2a0!important;border:1px solid #c9924b!important;border-radius:9px!important;font:700 8px var(--sans)!important}
.world-cave-viewport{width:100%;height:100vh;overflow:auto;scrollbar-width:none;touch-action:pan-x pan-y}.world-cave-viewport::-webkit-scrollbar{display:none}
.world-cave-canvas{position:relative;width:1600px;height:1600px;background:#10171a url("/assets/images/world-cave-interior-v1.webp") center/cover no-repeat;box-shadow:inset 0 0 60px #000;cursor:crosshair}
.world-cave-hero{--cave-walk-time:.8s;position:absolute;z-index:4;left:50%;top:88%;width:48px;height:68px;transform:translate(-50%,-82%);transition:left var(--cave-walk-time) linear,top var(--cave-walk-time) linear;filter:drop-shadow(0 4px 3px #000);pointer-events:none}
.world-cave-hero>span:first-child{position:relative;display:block;width:100%;height:100%;background:url("/assets/images/world-hero-idle-v1.webp") center/contain no-repeat}.world-cave-hero>b{position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);padding:2px 6px;white-space:nowrap;border-radius:7px;background:rgba(5,17,21,.75);color:#ffe6a0;font:700 7px var(--sans)}
.world-cave-hero.face-left>span:first-child{scale:-1 1}.world-cave-hero.walking>span:first-child{background-image:url("/assets/images/world-hero-walk-v1.webp");background-size:400% 100%;background-position:0 0;animation:world-foot-frames .72s steps(4) infinite,world-foot-bob .36s ease-in-out infinite alternate}
.world-cave-hero.mounted{width:84px;height:88px;transform:translate(-50%,-73%)}
.world-cave-hero.mounted>span:first-child{background-image:url("/assets/images/world-horse-idle-v2.webp");background-size:contain;background-position:center}
.world-cave-hero.mounted.walking>span:first-child{background-image:url("/assets/images/world-horse-gallop-v1-cropped.webp");background-size:400% 100%;background-position:0 0;animation:world-horse-frames .44s linear infinite,world-horse-gallop .22s cubic-bezier(.45,.05,.55,.95) infinite alternate}
.world-cave-hero.mounted.paper-doll>span:first-child{background-image:url("/assets/images/world-hero-horse-unarmored-idle-v1.webp")}
.world-cave-hero.mounted.paper-doll.walking>span:first-child{background-image:url("/assets/images/world-hero-horse-unarmored-gallop-v1.webp");background-size:400% 100%;background-position:0 0}
.world-cave-hero.mounted.paper-doll.has-helmet.walking>span:first-child{background-image:url("/assets/images/world-rider-helmeted-gallop-v1.webp")}
.world-overview-panel{width:min(96%,520px);padding:8px;border:1px solid #c6a85d;border-radius:14px;background:linear-gradient(180deg,#183b4c,#081e2d);box-shadow:0 12px 35px #000}
.world-overview-title{display:flex;align-items:center;justify-content:space-between;padding:1px 3px 7px;color:#ffe69b;font:700 14px var(--serif)}
.world-overview-title button{width:30px!important;height:30px!important;padding:0!important;border-radius:50%!important;background:#6c2721!important;color:#fff!important;font-size:22px!important;line-height:26px!important}
.world-overview-map{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden;border:2px solid #806637;border-radius:10px;background:#4d873e url("/assets/images/world-grass-tile-v1.webp") center/128px 128px repeat;box-shadow:inset 0 0 28px rgba(0,0,0,.6)}
.world-overview-road{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 1px 1px rgba(0,0,0,.45))}
.world-overview-road path{fill:none;stroke:#c99c59;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.world-overview-map i{position:absolute;display:block;transform:translate(-50%,-70%);filter:drop-shadow(0 2px 3px #000)}
.overview-castle{left:42%;top:69%;width:44px;height:52px;background:url("/assets/images/world-castle-v1.webp") center/contain no-repeat}
.overview-mine{left:44.17%;top:68.18%;width:30px;height:30px;background:url("/assets/images/world-mountain-mine-v1.webp") center/contain no-repeat}
.overview-hero{width:24px;height:29px;border:3px solid #ffe467;border-radius:50%;background:url("/assets/images/world-horse-idle-v2.webp") center/contain no-repeat;box-shadow:0 0 9px #ffd83c}
.overview-hero.unarmored:not(.on-foot){background-image:url("/assets/images/world-hero-horse-unarmored-idle-v1.webp")}
.overview-hero.on-foot{background-image:url("/assets/images/world-hero-walk-v1.webp");background-size:400% 100%;background-position:0 0}
.world-overview-panel>small{display:block;padding:6px 2px 1px;text-align:center;color:#bcd2d8;font:600 8px var(--sans)}
.hero-bag-shell{position:relative;width:min(94vw,calc(82vh * .667),380px);height:auto;aspect-ratio:2/3;padding:0;border:0;border-radius:0;background:url("/assets/images/world-hero-open-bag-v1.webp") center/contain no-repeat;box-shadow:none;filter:drop-shadow(0 14px 18px rgba(0,0,0,.72))}
.hero-bag-shell::before{display:none}
.hero-bag-flap{position:absolute;z-index:2;left:18%;right:18%;top:8%;height:34px;display:flex;align-items:center;justify-content:center;border:0;border-radius:0;background:transparent;box-shadow:none;color:#ffe2a0;font:700 14px var(--serif);text-shadow:0 2px 3px #301407,0 0 5px #5b270c}
.hero-bag-flap button{position:absolute;right:-20%;top:-10px;width:31px!important;height:31px!important;padding:0!important;border:2px solid #d8a24f!important;border-radius:50%!important;background:#672d20!important;color:#fff!important;font-size:22px!important;box-shadow:0 3px 7px #000!important}
.hero-bag-content{position:absolute;z-index:3;left:18%;right:18%;top:45%;height:24%;overflow:auto;padding:4px;border:0;border-radius:24%;background:transparent;scrollbar-width:thin}
.hero-bag-content section+section{margin-top:8px}.hero-bag-content h4{margin:0 0 4px;color:#ffd88a;font:700 10px var(--serif)}
.hero-bag-item{display:grid;grid-template-columns:35px 1fr auto;align-items:center;gap:6px;min-height:39px;padding:3px 6px;border-bottom:1px solid rgba(239,195,122,.18);color:#fff1d1;font:700 9px var(--sans)}
.hero-bag-item:last-child{border-bottom:0}.hero-bag-item .icon-wrap{width:33px;height:33px}.hero-bag-item>b{color:#ffe06f;font-size:11px}
.hero-bag-item .equipment-icon{width:33px;height:33px;background-size:500% 400%}
.hero-bag-item>span{min-width:0}.hero-item-gem{display:block;margin-top:2px;color:#8fe7ff;font:600 7px var(--sans)}
.hero-bag-empty{display:grid;place-items:center;gap:4px;padding:24px 5px;text-align:center;color:#f6d6a5;font:700 11px var(--serif);text-shadow:0 2px 3px #000}
.hero-bag-empty small{color:#d0a875;font:600 8px var(--sans)}
.empty-bag-pocket{display:none}
.world-hero-figure{position:relative;z-index:2;display:block;width:100%;height:100%}
.world-horse-shadow{position:absolute;z-index:1;left:10%;right:7%;bottom:4px;height:13px;border-radius:50%;background:rgba(10,32,17,.42);filter:blur(2px);transform-origin:center}
.world-hero.walking:not(.on-foot) .world-horse-shadow{animation:world-horse-shadow .34s linear infinite}
.world-horse-dust{position:absolute;z-index:1;left:4px;bottom:6px;width:28px;height:18px;opacity:0;background:radial-gradient(circle at 20% 70%,rgba(221,197,136,.75) 0 3px,transparent 4px),radial-gradient(circle at 60% 40%,rgba(205,181,119,.62) 0 5px,transparent 6px)}
.world-hero.face-left .world-horse-dust{left:auto;right:4px;scale:-1 1}
.world-hero.walking:not(.on-foot) .world-horse-dust{animation:world-horse-dust .68s ease-out infinite}
.world-move-target{
  position:absolute;z-index:4;width:34px;height:18px;transform:translate(-50%,-50%);opacity:0;
  border:2px solid rgba(255,230,115,.9);border-radius:50%;box-shadow:0 0 8px #ffe36d,inset 0 0 6px #ffe36d;pointer-events:none;
}
.world-move-target.show{animation:world-target-pulse 1s ease-out forwards}
@keyframes world-horse-gallop{0%{transform:translateY(0) rotate(-2deg) scaleX(1.01) scaleY(.96)}25%{transform:translateY(-9px) rotate(1deg) scaleX(.98) scaleY(1.03)}50%{transform:translateY(-3px) rotate(2deg) scaleX(1.02) scaleY(.97)}75%{transform:translateY(-11px) rotate(-1deg) scaleX(.97) scaleY(1.04)}100%{transform:translateY(0) rotate(-2deg) scaleX(1.01) scaleY(.96)}}
@keyframes world-horse-frames{
  0%,24.99%{background-position:0 0}
  25%,49.99%{background-position:33.333% 0}
  50%,74.99%{background-position:66.667% 0}
  75%,100%{background-position:100% 0}
}
@keyframes world-horse-frames-8{0%,12.49%{background-position:0 center}12.5%,24.99%{background-position:14.286% center}25%,37.49%{background-position:28.571% center}37.5%,49.99%{background-position:42.857% center}50%,62.49%{background-position:57.143% center}62.5%,74.99%{background-position:71.429% center}75%,87.49%{background-position:85.714% center}87.5%,100%{background-position:100% center}}
@keyframes cohesive-walk-frames-8{0%,12.49%{background-position:0 center}12.5%,24.99%{background-position:14.286% center}25%,37.49%{background-position:28.571% center}37.5%,49.99%{background-position:42.857% center}50%,62.49%{background-position:57.143% center}62.5%,74.99%{background-position:71.429% center}75%,87.49%{background-position:85.714% center}87.5%,100%{background-position:100% center}}
@keyframes cohesive-walk-mask-8{0%,12.49%{-webkit-mask-position:0 center;mask-position:0 center}12.5%,24.99%{-webkit-mask-position:14.286% center;mask-position:14.286% center}25%,37.49%{-webkit-mask-position:28.571% center;mask-position:28.571% center}37.5%,49.99%{-webkit-mask-position:42.857% center;mask-position:42.857% center}50%,62.49%{-webkit-mask-position:57.143% center;mask-position:57.143% center}62.5%,74.99%{-webkit-mask-position:71.429% center;mask-position:71.429% center}75%,87.49%{-webkit-mask-position:85.714% center;mask-position:85.714% center}87.5%,100%{-webkit-mask-position:100% center;mask-position:100% center}}
@keyframes world-helmet-mask-frames{
  0%,24.99%{-webkit-mask-position:0 0;mask-position:0 0}
  25%,49.99%{-webkit-mask-position:33.333% 0;mask-position:33.333% 0}
  50%,74.99%{-webkit-mask-position:66.667% 0;mask-position:66.667% 0}
  75%,100%{-webkit-mask-position:100% 0;mask-position:100% 0}
}
@keyframes world-horse-idle{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(.4deg)}}
@keyframes world-foot-frames{from{background-position:0 0}to{background-position:133.333% 0}}
@keyframes world-battle-mask-frames{from{-webkit-mask-position:0 0;mask-position:0 0}to{-webkit-mask-position:133.333% 0;mask-position:133.333% 0}}
@keyframes world-foot-frames-centered{from{background-position:0 center}to{background-position:133.333% center}}
@keyframes world-battle-mask-centered{from{-webkit-mask-position:0 center;mask-position:0 center}to{-webkit-mask-position:133.333% center;mask-position:133.333% center}}
@keyframes world-horse-frames-centered{0%,24.99%{background-position:0 center}25%,49.99%{background-position:33.333% center}50%,74.99%{background-position:66.667% center}75%,100%{background-position:100% center}}
@keyframes world-horse-mask-centered{0%,24.99%{-webkit-mask-position:0 center;mask-position:0 center}25%,49.99%{-webkit-mask-position:33.333% center;mask-position:33.333% center}50%,74.99%{-webkit-mask-position:66.667% center;mask-position:66.667% center}75%,100%{-webkit-mask-position:100% center;mask-position:100% center}}
@keyframes world-foot-bob{from{transform:translateY(0)}to{transform:translateY(-2px)}}
@keyframes world-foot-idle{0%,100%{transform:translateY(0)}50%{transform:translateY(-1px)}}
@keyframes world-horse-shadow{0%,50%,100%{transform:scaleX(1);opacity:.5}25%,75%{transform:scaleX(.76);opacity:.3}}
@keyframes world-horse-dust{0%{opacity:0;transform:translate(12px,0) scale(.3)}28%{opacity:.75}100%{opacity:0;transform:translate(-24px,-7px) scale(1.45)}}
@keyframes world-target-pulse{0%{opacity:0;scale:.45}25%{opacity:1}100%{opacity:0;scale:1.5}}
@media(max-width:380px){
  .world-map-canvas{width:20000px;height:20000px}
  nav.tabs{gap:0!important;padding-inline:2px!important}
  nav.tabs>button,nav.tabs>.nav-item-wrap>button{font-size:6.5px!important}
  nav.tabs>.nav-item-wrap>button>.ic,nav.tabs>button>.ic{width:28px!important;height:28px!important}
}
@media(max-width:350px){.world-hud-title>b{font-size:10px}#worldHeroCoords{max-width:58%;font-size:7px!important}}

/* Gold rewards now appear inside the dedicated gold tier. */
#view-shakhta .strata-floor.gold-found-flash{
  animation:gold-tier-flash 1.65s ease-out!important;
}
#view-shakhta .gold-find-burst{
  position:absolute;z-index:20;right:8%;top:50%;display:grid;grid-template-columns:48px auto;
  grid-template-rows:auto auto;align-items:center;column-gap:7px;min-width:175px;padding:7px 12px 7px 7px;
  border:1px solid rgba(255,220,99,.8);border-radius:13px;
  background:linear-gradient(135deg,rgba(92,50,4,.88),rgba(28,17,5,.83));
  box-shadow:0 0 24px rgba(255,183,27,.85),inset 0 1px rgba(255,247,190,.42);
  pointer-events:none;animation:gold-find-pop 1.65s cubic-bezier(.2,.78,.2,1) forwards;
}
#view-shakhta .gold-find-ore{
  grid-row:1 / 3;display:grid;place-items:center;width:48px;height:48px;
  filter:drop-shadow(0 0 8px rgba(255,194,40,.9)) drop-shadow(0 4px 4px rgba(63,28,0,.75));
  animation:gold-ore-bounce .55s ease-out both;
}
#view-shakhta .gold-find-ore .icon-wrap{width:46px;height:46px}
#view-shakhta .gold-find-burst b{align-self:end;color:#fff0a0;font:900 13px var(--sans);text-shadow:0 2px 2px #5d2c00}
#view-shakhta .gold-find-burst small{align-self:start;color:#ffd24d;font:800 10px var(--sans);text-shadow:0 1px 2px #000}
@keyframes gold-find-pop{
  0%{opacity:0;transform:translateY(-35%) scale(.45)}
  18%{opacity:1;transform:translateY(-50%) scale(1.08)}
  72%{opacity:1;transform:translateY(-50%) scale(1)}
  100%{opacity:0;transform:translateY(-72%) scale(.92)}
}
@keyframes gold-ore-bounce{0%{transform:translateY(9px) rotate(-12deg) scale(.65)}65%{transform:translateY(-3px) rotate(4deg) scale(1.12)}100%{transform:none}}
@keyframes gold-tier-flash{0%,100%{filter:none}20%{filter:brightness(1.32) saturate(1.35)}55%{filter:brightness(1.12) saturate(1.18)}}

/* Tools screen uses the same transparent blue-gold language as the bottom dock. */
#view-tools .mode-toggle{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:4px;border:1px solid rgba(185,217,234,.42);
  border-radius:12px;background:linear-gradient(180deg,rgba(15,44,64,.7),rgba(5,20,32,.86));
  box-shadow:0 5px 16px rgba(0,0,0,.4),inset 0 1px rgba(255,255,255,.13);backdrop-filter:blur(12px);
}
#view-tools .mode-toggle button{
  min-width:0;padding:8px 3px;border:0;border-radius:8px;background:transparent!important;
  box-shadow:none;color:#c8dae5;font:800 9px var(--sans);text-shadow:0 1px 2px #000;
}
#view-tools .mode-toggle button.active{
  color:#fff1a7;background:radial-gradient(ellipse at 50% 70%,rgba(255,190,49,.2),transparent 72%)!important;
  box-shadow:inset 0 -3px #eeb43d!important;
}
#view-tools .pick-card{
  border:1px solid rgba(119,167,194,.46);border-radius:13px;
  background:linear-gradient(145deg,rgba(31,76,104,.76),rgba(5,24,37,.84))!important;
  box-shadow:0 5px 15px rgba(0,0,0,.38),inset 0 1px rgba(255,255,255,.13)!important;
  backdrop-filter:blur(9px);overflow:hidden;
}
#view-tools .pick-card.equipped{
  border-color:rgba(255,202,72,.78);box-shadow:0 0 15px rgba(255,185,42,.3),inset 0 -3px #eeb43d!important;
}
#view-tools .pick-icon{border-color:rgba(126,183,213,.55);background:radial-gradient(circle at 40% 25%,rgba(74,133,167,.74),rgba(7,30,45,.72))}
#view-tools .pick-action,#view-tools .pick-upgrade button,#view-tools .gem-socket-btn,#view-tools .gem-upg-btn{
  border:1px solid rgba(114,171,201,.58);background:rgba(8,31,47,.56);box-shadow:inset 0 1px rgba(255,255,255,.1);
}
#view-tools .pick-upgrade,#view-tools .gem-slot{border-top-color:rgba(126,178,204,.3)}
#view-tools .gem-slot.filled{padding:8px;border-radius:10px;background:rgba(5,24,37,.4)}
.gem-bonus-guide{
  margin:9px 0 12px;padding:8px;border:1px solid rgba(185,217,234,.4);border-radius:13px;
  background:linear-gradient(155deg,rgba(25,67,94,.76),rgba(5,22,35,.86));
  box-shadow:0 5px 16px rgba(0,0,0,.38),inset 0 1px rgba(255,255,255,.12);backdrop-filter:blur(10px);
}
.gem-guide-title{display:flex;align-items:baseline;gap:6px;padding:1px 3px 7px;color:#fff1a7}
.gem-guide-title>span{color:#b47cff;text-shadow:0 0 8px #9c56ff}.gem-guide-title>b{font:900 12px var(--sans)}
.gem-guide-title>small{margin-left:auto;color:#91b6c9;font:700 7px var(--sans)}
.gem-guide-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:6px;padding:6px 3px;border-top:1px solid rgba(135,183,208,.18)}
.gem-guide-effect b,.gem-guide-effect small{display:block}.gem-guide-effect b{color:#ffd36b;font:800 8px var(--sans)}
.gem-guide-effect small{margin-top:2px;color:#9fc0d1;font:600 6.5px/1.25 var(--sans)}
.gem-guide-stones{display:flex;flex-wrap:wrap;gap:3px}
.gem-guide-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 2px;border:1px solid rgba(149,112,211,.34);border-radius:7px;background:rgba(16,34,54,.62)}
.gem-guide-chip .icon-wrap{width:15px;height:15px}.gem-guide-chip i{color:#e9ddff;font:700 6.5px var(--sans);font-style:normal}
@media(max-width:370px){.gem-guide-row{grid-template-columns:92px minmax(0,1fr)}.gem-guide-effect small{font-size:6px}.gem-guide-chip i{font-size:6px}}

/* Registered player appears as the first hero and opens a personal skill page. */
#view-chars .player-hero-card{cursor:pointer;border-color:rgba(255,196,69,.72)!important;background:linear-gradient(145deg,rgba(49,91,117,.88),rgba(8,30,45,.9))!important}
#view-chars .player-hero-card:active{transform:translateY(1px)}
.player-avatar,.player-profile-avatar{
  display:grid!important;place-items:center;border-radius:50%!important;
  background:radial-gradient(circle at 35% 25%,#ffd86b,#b86b16 58%,#4b2709)!important;
  color:#fff4c1!important;font:900 25px var(--display)!important;text-shadow:0 2px 2px #5c2d06;
  box-shadow:inset 0 0 0 3px #5e330d,0 0 0 2px #e9b548,0 4px 9px rgba(0,0,0,.45)!important;
}
.player-open-btn{color:#fff0a5!important;border-color:#dca63d!important}
#view-player{padding-top:4px}
.player-profile-card{
  margin-top:10px;padding:12px;border:1px solid rgba(190,222,239,.46);border-radius:14px;
  background:linear-gradient(155deg,rgba(31,77,105,.88),rgba(5,24,38,.92));
  box-shadow:0 7px 20px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.14);backdrop-filter:blur(10px);
}
.player-profile-head{display:flex;align-items:center;gap:12px;padding:4px 3px 13px;border-bottom:1px solid rgba(146,195,218,.25)}
.player-profile-avatar{width:72px;height:72px;flex:0 0 72px;font-size:31px!important}
.player-profile-head>span:last-child{min-width:0}.player-profile-head small,.player-profile-head b{display:block}
.player-profile-head small{color:#9cc4d8;font:800 8px var(--sans);letter-spacing:.12em;text-transform:uppercase}
.player-profile-head b{margin-top:3px;color:#fff3bd;font:900 20px var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 2px 3px #000}
.player-skill-list{display:grid;gap:8px;margin-top:11px}
.player-skill{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid rgba(126,177,204,.35);border-radius:11px;background:rgba(5,25,39,.48)}
.player-skill-icon{display:grid;place-items:center;width:43px;height:43px;flex:0 0 43px;border-radius:10px;background:rgba(31,73,98,.72);font-size:23px;filter:drop-shadow(0 2px 2px #000)}
.player-skill-info{min-width:0;flex:1}.player-skill-info>b,.player-skill-info>small{display:block}
.player-skill-info>b{color:#f4f9fc;font:900 12px var(--sans)}.player-skill-info>small{margin-top:2px;color:#a7c6d5;font:700 8px var(--sans)}
.player-skill-info>i{display:block;height:7px;margin-top:7px;overflow:hidden;border:1px solid #06131d;border-radius:5px;background:#06131d;box-shadow:inset 0 1px 3px #000}
.player-skill-info>i>em{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1fb52e,#75ef69);box-shadow:0 0 7px #49df51;transition:width .35s ease}
.wood-skill .player-skill-info>i>em{background:linear-gradient(90deg,#7a9d38,#b5df63);box-shadow:0 0 7px #91c64b}

/* Main hero dashboard: compact mobile tabs, real character preview and
   two-column skill/equipment navigation without changing game mechanics. */
#view-player{padding:4px 8px calc(82px + env(safe-area-inset-bottom))}
#view-player>.back-link{margin:0 0 6px}
#view-player .player-profile-card{margin:0;padding:9px;border-color:#8b6a39;border-radius:16px;background:linear-gradient(160deg,rgba(27,59,73,.96),rgba(7,25,35,.98));box-shadow:0 8px 22px rgba(0,0,0,.52),inset 0 1px rgba(255,233,168,.13)}
#view-player .player-profile-head{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;min-height:102px;padding:0 4px 7px;border-bottom:1px solid rgba(231,185,99,.27)}
.player-profile-visual{position:relative;align-self:stretch;display:block;min-height:96px;overflow:hidden;border:1px solid #9e7841;border-radius:13px;background:radial-gradient(circle at 50% 33%,#315e70 0,#183b4d 45%,#071c29 78%);box-shadow:inset 0 0 18px #03111a,0 3px 8px rgba(0,0,0,.45)}
.player-profile-visual::after{content:"";position:absolute;left:18%;right:18%;bottom:7px;height:7px;border-radius:50%;background:rgba(0,0,0,.42);filter:blur(2px)}
.player-profile-visual>i{position:absolute;z-index:2;inset:3px 0 1px;display:block;background:url("/assets/images/world-hero-master-base-v1.webp") center/auto 100% no-repeat;filter:drop-shadow(0 3px 2px rgba(0,0,0,.65))}
.player-profile-identity{align-self:center;min-width:0}.player-profile-identity small,.player-profile-identity b,.player-profile-identity em{display:block}.player-profile-identity small{color:#c5a76d!important;font-size:7px!important;letter-spacing:.16em}.player-profile-identity b{margin-top:3px!important;font:900 19px var(--serif)!important}.player-profile-identity em{margin-top:6px;color:#8fd3b1;font:700 8px var(--sans);font-style:normal}
.player-profile-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:7px 0}
.player-profile-stats>span{min-width:0;padding:6px 4px;border:1px solid rgba(112,149,163,.35);border-radius:9px;background:rgba(4,20,29,.55);text-align:center}.player-profile-stats small,.player-profile-stats b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-profile-stats small{color:#92adba;font:700 6px var(--sans)}.player-profile-stats b{margin-top:2px;color:#ffe09a;font:900 10px var(--mono)}
.player-profile-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:4px}.player-profile-tabs button{min-height:36px!important;padding:5px!important;border:1px solid #46697b!important;border-radius:10px!important;background:linear-gradient(#274d61,#102f40)!important;color:#b7d0db!important;font:800 9px var(--sans)!important}.player-profile-tabs button.active{border-color:#d5a04b!important;background:linear-gradient(#81572b,#452b17)!important;color:#fff0b0!important;box-shadow:inset 0 0 0 1px rgba(255,224,148,.2),0 0 8px rgba(224,161,61,.22)!important}
.player-tab-panel{display:none}.player-tab-panel.active{display:block}
#playerSkillsPanel{padding-top:7px}.player-skill-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:0}.player-skill{min-width:0;gap:6px;padding:6px;border-radius:9px}.player-skill-icon{width:31px;height:31px;flex-basis:31px;border-radius:8px;font-size:17px}.player-skill-info>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px}.player-skill-info>small{font-size:6px}.player-skill-info>i{height:5px;margin-top:4px}
#playerGearPanel{padding-top:8px}.hero-equip-summary{margin:0 0 7px!important;padding:8px 10px!important;border:1px solid #80633d!important;border-radius:11px!important;background:linear-gradient(145deg,rgba(67,49,27,.92),rgba(19,34,40,.95))!important;color:#f5d99b!important;font:700 8px/1.35 var(--sans)!important;box-shadow:0 4px 10px rgba(0,0,0,.38)}
#view-player .hero-equip-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
#view-player .hero-slot{min-width:0;margin:0;border:1px solid #4c6b79;border-radius:11px;background:linear-gradient(150deg,rgba(28,62,77,.96),rgba(7,27,38,.98));box-shadow:0 3px 8px rgba(0,0,0,.38);overflow:hidden}
#view-player .hero-slot[open]{grid-column:1/-1;border-color:#b88945}
#view-player .hero-slot>summary{min-height:54px;padding:6px;gap:6px;background:transparent}
#view-player .hero-slot-icon{flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:rgba(3,18,27,.55)}
#view-player .hero-slot-info b{font-size:9px}#view-player .hero-slot-info small{font-size:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#view-player .hero-slot-options{padding:5px 7px 8px;gap:4px;background:rgba(3,15,22,.42)}#view-player .hero-slot-option{min-height:39px;padding:4px 2px;gap:5px}#view-player .hero-slot-option-name{font-size:8px}#view-player .hero-slot-action{min-width:58px!important;min-height:30px!important;padding:4px!important;font-size:7px!important}
@media(max-width:350px){.player-skill-list{grid-template-columns:1fr}#view-player .hero-equip-grid{grid-template-columns:1fr}#view-player .hero-slot[open]{grid-column:auto}.player-profile-head{grid-template-columns:74px minmax(0,1fr)!important}}

/* Hero detail: compact guild dossier. Boris receives construction-specific
   live metrics while all other roster heroes keep the same mechanics. */
#view-herodetail{padding:4px 8px calc(82px + env(safe-area-inset-bottom))}
#view-herodetail>.back-link{margin:0 0 7px}
#view-herodetail .hero-detail-card{margin:0;padding:10px;border:1px solid #66899a;border-radius:16px;background:linear-gradient(158deg,rgba(27,65,83,.97),rgba(5,23,34,.98));box-shadow:0 9px 24px rgba(0,0,0,.52),inset 0 1px rgba(255,255,255,.13);overflow:hidden}
#view-herodetail .hero-detail-card.boris-detail{border-color:#a67b3f;background:linear-gradient(158deg,rgba(60,62,52,.97),rgba(17,31,35,.98) 58%,rgba(7,23,31,.99))}
.hero-detail-head{display:grid;grid-template-columns:76px minmax(0,1fr);gap:11px;align-items:center;padding:2px 2px 10px;border-bottom:1px solid rgba(229,190,113,.25)}
.hero-detail-portrait-wrap{display:grid;place-items:center;width:76px;height:76px;border:1px solid #b18a4e;border-radius:14px;background:radial-gradient(circle at 48% 34%,#4b7180,#173747 58%,#081d29);box-shadow:inset 0 0 16px #071923,0 4px 10px rgba(0,0,0,.48)}
.hero-detail-portrait-wrap .char-emoji{width:68px!important;height:68px!important;flex:none;margin:0!important;border:0;border-radius:11px;box-shadow:none}
.hero-detail-identity{min-width:0}.hero-detail-identity>small,.hero-detail-identity>b,.hero-detail-identity>em{display:block}
.hero-detail-identity>small{color:#d7b36d;font:800 7px var(--sans);letter-spacing:.14em;text-transform:uppercase}
.hero-detail-identity>.castle-level{margin-top:3px;color:#fff0b0;font:900 22px var(--serif);line-height:1.05;text-align:left}
.hero-detail-identity>.castle-sub{margin-top:6px;color:#93d9b5;font:800 8px var(--sans);font-style:normal}
.hero-detail-metrics{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0}
.hero-detail-metrics[hidden]{display:none}
.hero-detail-metrics>span{min-width:0;padding:7px;border:1px solid rgba(172,139,77,.52);border-radius:10px;background:linear-gradient(145deg,rgba(73,56,31,.72),rgba(12,31,38,.8))}
.hero-detail-metrics small,.hero-detail-metrics b{display:block}.hero-detail-metrics small{color:#b9a77e;font:700 6px var(--sans)}.hero-detail-metrics b{margin-top:3px;color:#ffe198;font:900 10px var(--mono);overflow:hidden;text-overflow:ellipsis}
#heroDetailTraining.active{color:#78ef8a;text-shadow:0 0 7px rgba(80,230,104,.42)}
.hero-detail-progress{margin:8px 1px 0}.hero-detail-progress-label{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px;color:#a9c3ce;font:700 7px var(--sans)}.hero-detail-progress-label b{color:#7ced86;font:900 8px var(--mono)}
.hero-detail-progress>.char-track{position:relative;height:12px;overflow:hidden}.hero-detail-progress .char-track-label{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font:900 6px var(--mono);text-shadow:0 1px 2px #000}
#view-herodetail .castle-note{margin:9px 0 0;padding:9px;border:1px solid rgba(104,151,169,.4);border-radius:11px;background:rgba(4,21,30,.48);color:#bed4dc;font:650 8px/1.45 var(--sans)}
.hero-construction-table{margin-top:8px;border:1px solid rgba(170,132,67,.55);border-radius:12px;background:rgba(7,23,29,.63);overflow:hidden}
.hero-construction-title{display:grid;grid-template-columns:29px minmax(0,1fr);padding:8px;border-bottom:1px solid rgba(191,151,78,.38);background:linear-gradient(90deg,rgba(105,74,30,.56),rgba(21,43,48,.48))}.hero-construction-title>span{grid-row:1/3;display:grid;place-items:center;font-size:19px}.hero-construction-title>b{color:#ffe39e;font:900 9px var(--sans)}.hero-construction-title>small{color:#acbec3;font:650 6px var(--sans)}
.hero-construction-list{display:grid}.hero-construction-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:6px;align-items:center;min-width:0;padding:7px 8px;border-top:1px solid rgba(117,147,154,.18)}.hero-construction-row:first-child{border-top:0}.hero-building-icon{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(177,141,78,.43);border-radius:8px;background:rgba(67,51,27,.55);font-size:15px}.hero-construction-row .name{min-width:0}.hero-construction-row .name b,.hero-construction-row .name small,.hero-construction-row .count small,.hero-construction-row .count b{display:block}.hero-construction-row .name b{color:#f4efe2;font:850 8px var(--sans)}.hero-construction-row .name small{margin-top:2px;color:#96adb5;font:650 6px var(--sans);white-space:normal}.hero-construction-row .count{text-align:right}.hero-construction-row .count small{color:#a89d80;font:650 5.5px var(--sans)}.hero-construction-row .count b,.hero-construction-row>.count{color:#7be588;font:900 7px var(--mono)}
#view-herodetail .castle-cost{margin:8px 1px 0;color:#d2bd8d;font:700 7px var(--sans)}#view-herodetail #heroDetailHireBtn{width:100%;min-height:39px;margin-top:8px}
@media(max-width:350px){.hero-detail-head{grid-template-columns:66px minmax(0,1fr)}.hero-detail-portrait-wrap{width:66px;height:70px}.hero-detail-portrait-wrap .char-emoji{width:61px!important;height:61px!important}.hero-detail-metrics{grid-template-columns:1fr}.hero-construction-row{grid-template-columns:27px minmax(0,1fr)}.hero-construction-row .count{grid-column:2;text-align:left}}

/* Copper tier: six painted milestones plus continuous per-level richness. */
#view-shakhta .strata-floor.copper-tier{
  position:relative;height:158px;border-top:0;background-position:center 23px;background-size:100% auto;
  filter:brightness(var(--copper-light,.92));
  animation:copper-tier-breathe var(--copper-speed,3.8s) ease-in-out infinite alternate!important;
}
#view-shakhta .strata-floor:has(+ .copper-tier){border-bottom:0}
#view-shakhta .copper-tier.copper-stage-0{background-image:url("/assets/images/copper-tier-stage-0-v1.webp")}
#view-shakhta .copper-tier.copper-stage-1{background-image:url("/assets/images/copper-tier-stage-1-v1.webp")}
#view-shakhta .copper-tier.copper-stage-2{background-image:url("/assets/images/copper-tier-stage-2-v1.webp")}
#view-shakhta .copper-tier.copper-stage-3{background-image:url("/assets/images/copper-tier-stage-3-v1.webp")}
#view-shakhta .copper-tier.copper-stage-4{background-image:url("/assets/images/copper-tier-stage-4-v1.webp")}
#view-shakhta .copper-tier.copper-stage-5{background-image:url("/assets/images/copper-tier-stage-5-v1.webp")}
#view-shakhta .copper-richness{
  position:absolute;z-index:2;inset:28px 0 0;pointer-events:none;opacity:var(--copper-richness,.04);
  background:
    radial-gradient(circle at 13% 42%,#ffd08a 0 1px,#d6722c 2px,transparent 4px),
    radial-gradient(circle at 28% 68%,#ffb45c 0 1px,#a9461f 2px,transparent 4px),
    radial-gradient(circle at 52% 30%,#ffd39a 0 1px,#c45b24 2px,transparent 3px),
    radial-gradient(circle at 72% 63%,#ffbd69 0 1px,#9d3c1d 2px,transparent 4px),
    radial-gradient(circle at 88% 35%,#ffe0ae 0 1px,#c45b24 2px,transparent 3px);
  background-size:73px 47px,91px 61px,67px 83px,109px 57px,81px 71px;
  mix-blend-mode:screen;box-shadow:inset 0 0 var(--copper-glow,6px) rgba(222,93,31,.38);
  animation:copper-sparkle var(--copper-speed,3.8s) steps(2,end) infinite;
}
#view-shakhta .copper-evolution-badge{
  position:absolute;z-index:9;left:44px;right:auto;top:17px;padding:0;border:0;border-radius:0;
  background:transparent;color:#d99554;font:800 5.5px var(--sans);text-shadow:0 1px 2px #000;backdrop-filter:none;
}
#view-shakhta .tier-yield-badge{
  position:absolute;z-index:10;right:7px;top:35px;display:grid;place-items:center;min-width:78px;padding:4px 7px;
  border:1px solid rgba(255,190,77,.72);border-radius:7px;background:linear-gradient(180deg,rgba(82,46,14,.94),rgba(37,20,7,.94));
  box-shadow:inset 0 1px rgba(255,240,183,.2),0 2px 6px rgba(0,0,0,.55);text-shadow:0 1px 2px #000;
}
#view-shakhta .tier-yield-badge small{color:#d9b778;font:800 5.5px var(--sans);letter-spacing:.04em}
#view-shakhta .tier-yield-badge b{color:#ffe087;font:1000 10px var(--sans)}
#view-shakhta .copper-tier .strata-label{
  left:0;right:0;top:0;width:auto;height:28px;padding:2px 7px;
  display:grid;grid-template-columns:32px 53px minmax(0,1fr) 86px;
  grid-template-rows:13px 8px;column-gap:4px;row-gap:1px;align-items:center;
  border:0;border-radius:0;
  background:linear-gradient(180deg,rgba(15,38,51,.88),rgba(7,23,34,.82));
  box-shadow:none;backdrop-filter:blur(5px);
}
#view-shakhta .copper-tier .strata-label>small{
  grid-column:1;grid-row:1 / 3;align-self:stretch;display:grid;place-items:center;margin:0;
  border-right:1px solid rgba(137,182,204,.27);color:#9dbccc;font-size:6.5px;line-height:1.15;text-align:center;
}
#view-shakhta .copper-tier .strata-label>b{grid-column:2;grid-row:1;font-size:10px;text-align:left;color:#ffd09a}
#view-shakhta .copper-tier .strata-status{
  grid-column:3;grid-row:1!important;max-height:none!important;margin:0!important;
  padding-right:27px;color:#dcecf4!important;font-size:6px!important;letter-spacing:-.02em;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;
}
#view-shakhta .copper-tier .tier-progress{grid-column:3!important;grid-row:2!important;height:4px!important;margin:0!important}
#view-shakhta .copper-tier .tier-progress-text{
  display:block!important;grid-column:3;grid-row:1;justify-self:end;align-self:center;margin:0!important;
  color:#7cf080!important;font:1000 7px var(--sans)!important;line-height:1!important;text-shadow:0 1px 2px #000,0 0 5px rgba(71,230,83,.65);
}
#view-shakhta .copper-tier .tier-yield-badge{
  position:static;grid-column:4;grid-row:1 / 3;align-self:stretch;display:grid;place-content:center;min-width:0;margin:0;padding:1px 4px;
  border:0;border-left:1px solid rgba(244,158,59,.45);border-radius:0;background:rgba(82,39,10,.28);box-shadow:inset 0 1px rgba(255,231,166,.15);
}
#view-shakhta .copper-tier .tier-yield-badge small{font-size:5px}
#view-shakhta .copper-tier .tier-yield-badge b{font-size:9px}
@media(max-width:370px){
  #view-shakhta .copper-tier .tier-yield-badge small{font-size:4.5px}
  #view-shakhta .copper-tier .tier-yield-badge b{font-size:8px}
}
@media(max-width:370px){
  #view-shakhta .copper-tier .strata-label{grid-template-columns:27px 45px minmax(0,1fr) 75px;column-gap:2px;padding-inline:4px}
  #view-shakhta .copper-tier .strata-label>b{font-size:9px}
  #view-shakhta .copper-evolution-badge{left:34px;font-size:5px}
}

#view-shakhta .tier-hit-popup{
  position:absolute;z-index:30;left:50%;top:48%;display:flex;align-items:center;gap:7px;min-width:150px;padding:7px 10px;
  border:2px solid #72ed68;border-radius:10px;background:linear-gradient(180deg,rgba(25,79,49,.96),rgba(8,37,24,.96));
  box-shadow:inset 0 0 0 2px #092917,0 0 15px rgba(74,235,91,.65),0 5px 12px rgba(0,0,0,.7);
  pointer-events:none;animation:tier-hit-rise 1.25s ease-out forwards;
}
#view-shakhta .tier-hit-popup .icon-wrap{width:34px;height:34px;flex:0 0 34px}
#view-shakhta .tier-hit-popup span,#view-shakhta .tier-hit-popup small,#view-shakhta .tier-hit-popup b{display:block}
#view-shakhta .tier-hit-popup small{color:#9de7a3;font:800 6px var(--sans)}
#view-shakhta .tier-hit-popup b{color:#fff;font:1000 11px var(--sans);white-space:nowrap;text-shadow:0 1px 2px #000}
#view-shakhta .strata-floor.tier-hit-flash{animation:tier-hit-floor-flash .45s ease-out}
@keyframes tier-hit-rise{0%{opacity:0;transform:translate(-50%,12px) scale(.8)}18%{opacity:1;transform:translate(-50%,0) scale(1.05)}75%{opacity:1;transform:translate(-50%,-18px) scale(1)}100%{opacity:0;transform:translate(-50%,-34px) scale(.94)}}
@keyframes tier-hit-floor-flash{0%{filter:brightness(1.55) saturate(1.25)}100%{filter:brightness(1) saturate(1)}}
#view-shakhta .copper-tier .strata-worker.miner-sprite{
  left:48%;bottom:-10px;width:118px;height:118px;background-size:contain;background-position:center bottom;background-repeat:no-repeat;
  animation:copper-miner-work 1.05s ease-in-out infinite!important;filter:drop-shadow(0 5px 4px rgba(0,0,0,.8));
  scale:var(--copper-worker-scale,.88);transform-origin:58% 58%;
}
#view-shakhta .copper-tier .strata-worker.miner-sprite::after{
  content:"";position:absolute;z-index:-1;right:-8px;top:19px;width:64px;height:64px;border-radius:50%;
  border-top:3px solid rgba(255,205,112,.7);border-right:2px solid rgba(215,112,42,.34);
  filter:drop-shadow(0 0 4px rgba(255,156,49,.75));opacity:0;pointer-events:none;
  animation:copper-pick-trail 1.05s linear infinite;
}
#view-shakhta .copper-impact{
  position:absolute;z-index:7;left:70%;bottom:38px;width:8px;height:8px;border-radius:50%;pointer-events:none;
}
#view-shakhta .copper-impact::before{
  content:"";position:absolute;inset:-5px;border-radius:50%;background:#fff4b0;
  box-shadow:0 0 5px 2px #ffad32,0 0 12px 5px rgba(215,83,22,.75);animation:copper-impact-light 1.05s linear infinite;
}
#view-shakhta .copper-impact::after{
  content:"";position:absolute;left:-18px;top:7px;width:42px;height:12px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(151,103,72,.42),transparent 70%);animation:copper-impact-dust 1.05s linear infinite;
}
#view-shakhta .copper-impact>i{
  position:absolute;left:3px;top:3px;width:4px;height:3px;border-radius:1px;background:linear-gradient(135deg,#ffd085,#ad481d);
  box-shadow:0 0 4px #ff8b29;animation:copper-shard-fly 1.05s cubic-bezier(.2,.65,.35,1) infinite;
}
#view-shakhta .copper-impact>i:nth-child(1){--shard-x:25px;--shard-y:-25px;--shard-r:150deg}
#view-shakhta .copper-impact>i:nth-child(2){--shard-x:31px;--shard-y:-8px;--shard-r:230deg;animation-delay:-.02s}
#view-shakhta .copper-impact>i:nth-child(3){--shard-x:18px;--shard-y:18px;--shard-r:110deg;animation-delay:-.04s}
#view-shakhta .copper-impact>i:nth-child(4){--shard-x:-18px;--shard-y:-17px;--shard-r:-170deg;animation-delay:-.01s}
#view-shakhta .copper-impact>i:nth-child(5){--shard-x:-12px;--shard-y:20px;--shard-r:-90deg;animation-delay:-.05s}
#view-shakhta .copper-worker-stage-0 .strata-worker.miner-sprite{
  bottom:-8px;width:122px;height:122px;background-image:url("/assets/images/copper-miner-stage-0-animation-v1.webp");
  background-size:200% 200%;background-position:0 0;animation:copper-stage0-arms 1.05s steps(1,end) infinite!important;
  transform:none;scale:var(--copper-worker-scale,.88);
}
#view-shakhta .copper-worker-stage-1 .strata-worker.miner-sprite{background-image:url("/assets/images/copper-miner-stage-1-v1.webp")}
#view-shakhta .copper-worker-stage-2 .strata-worker.miner-sprite{background-image:url("/assets/images/copper-miner-stage-2-v1.webp")}
#view-shakhta .copper-worker-stage-3 .strata-worker.miner-sprite{background-image:url("/assets/images/copper-miner-stage-3-v1.webp")}
#view-shakhta .copper-worker-stage-4 .strata-worker.miner-sprite{background-image:url("/assets/images/copper-miner-stage-4-v1.webp")}
#view-shakhta .copper-worker-stage-5 .strata-worker.miner-sprite{background-image:url("/assets/images/copper-miner-stage-5-v1.webp")}
#view-shakhta .copper-stage-0 .strata-cart,#view-shakhta .copper-stage-1 .strata-cart{display:none!important}
@keyframes copper-miner-work{
  0%,100%{transform:translate3d(0,0,0) rotate(-1deg)}
  18%{transform:translate3d(-2px,-2px,0) rotate(-6deg)}
  28%,42%{transform:translate3d(-5px,-5px,0) rotate(-14deg)}
  60%,69%{transform:translate3d(7px,4px,0) rotate(9deg)}
  78%{transform:translate3d(2px,1px,0) rotate(-4deg)}
  88%{transform:translate3d(0,0,0) rotate(0)}
}
@keyframes copper-stage0-arms{
  0%,19%,100%{background-position:0 0}
  20%,44%{background-position:100% 0}
  45%,64%{background-position:0 100%}
  65%,84%{background-position:100% 100%}
  85%,99%{background-position:0 0}
}
@keyframes copper-pick-trail{
  0%,43%,74%,100%{opacity:0;transform:rotate(-42deg) scale(.72)}
  48%{opacity:.15;transform:rotate(-26deg) scale(.85)}
  61%{opacity:.9;transform:rotate(18deg) scale(1.05)}
  71%{opacity:0;transform:rotate(48deg) scale(1.12)}
}
@keyframes copper-impact-light{0%,62%,76%,100%{opacity:0;transform:scale(.2)}66%{opacity:1;transform:scale(1.35)}71%{opacity:.8;transform:scale(.75)}}
@keyframes copper-impact-dust{0%,64%,100%{opacity:0;transform:scale(.3)}70%{opacity:.75;transform:scale(1)}91%{opacity:0;transform:translateY(-5px) scale(1.45)}}
@keyframes copper-shard-fly{
  0%,64%{opacity:0;transform:translate(0,0) rotate(0)}
  67%{opacity:1;transform:translate(0,0) rotate(0)}
  88%{opacity:.9;transform:translate(var(--shard-x),var(--shard-y)) rotate(var(--shard-r))}
  100%{opacity:0;transform:translate(var(--shard-x),calc(var(--shard-y) + 16px)) rotate(var(--shard-r))}
}
@keyframes copper-sparkle{0%,100%{background-position:0 0,13px 8px,7px 19px,29px 2px,3px 11px}50%{background-position:5px 3px,8px 13px,12px 14px,24px 7px,8px 5px;filter:brightness(1.5)}}
@keyframes copper-tier-breathe{from{box-shadow:inset 0 5px 10px rgba(0,0,0,.32),inset 0 -7px 10px rgba(0,0,0,.5)}to{box-shadow:inset 0 4px 8px rgba(0,0,0,.2),inset 0 -5px 8px rgba(0,0,0,.38),inset 0 0 18px rgba(206,91,30,.18)}}

@keyframes hero-idle{0%,100%{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-3px) rotate(.5deg)}}
@keyframes resource-glint{0%,100%{filter:drop-shadow(0 2px 2px rgba(0,0,0,.65)) brightness(1)}50%{filter:drop-shadow(0 0 8px rgba(119,220,255,.7)) brightness(1.16)}}
@keyframes world-breathe{from{transform:scale(1.06) translateY(0)}to{transform:scale(1.1) translateY(-8px)}}
@keyframes map-arrive{from{opacity:.3;transform:scale(.985)}to{opacity:1;transform:scale(1)}}

/* Exact map-derived highlights: same pixels, so no building can jump on press. */
#castleMap.castle-map{background-size:100% 100%!important}
#castleMap .map-tile::before{background-image:url("/assets/images/kingdom-map-v1.webp")!important;background-repeat:no-repeat!important}
#castleMap .map-tile:hover::before,#castleMap .map-tile:focus-visible::before,#castleMap .map-tile:active::before{
  opacity:.88;filter:brightness(1.2) saturate(1.14) drop-shadow(0 0 5px #ffe079);
}
#castleMap .map-tile[data-building="zamok"]::before{background-size:256.5% 285.8%!important;background-position:57.4% 16.9%!important;clip-path:polygon(8% 15%,42% 0,74% 11%,86% 35%,100% 72%,74% 100%,22% 96%,0 68%)}
#castleMap .map-tile[data-building="shakhta"]::before{background-size:294.2% 500%!important;background-position:12.1% 12.5%!important;clip-path:polygon(4% 8%,78% 0,100% 35%,86% 100%,10% 92%,0 42%)}
#castleMap .map-tile[data-building="kuznya"]::before{background-size:277.8% 370.4%!important;background-position:4.7% 53.4%!important;clip-path:polygon(18% 0,76% 8%,100% 60%,82% 100%,4% 92%,0 38%)}
#castleMap .map-tile[data-building="lesopilka"]::before{background-size:322.6% 526.4%!important;background-position:98.6% 24.7%!important;clip-path:polygon(10% 18%,68% 0,100% 31%,96% 91%,28% 100%,0 67%)}
#castleMap .map-tile[data-building="bank"]::before{background-size:333.4% 476.2%!important;background-position:90% 55.7%!important;clip-path:polygon(25% 0,76% 7%,100% 45%,87% 100%,9% 94%,0 42%)}
#castleMap .map-tile[data-building="prichal"]::before{background-size:294.2% 400%!important;background-position:98.5% 98.7%!important;clip-path:polygon(22% 5%,84% 0,100% 64%,73% 100%,5% 90%,0 37%)}

/* Forest becomes an edge-to-edge illustrated production scene like the mine. */
#view-les{padding-top:8px}
#view-les>.skill-shaft{margin:0 -12px 8px;border-radius:0;border-inline:0;background:linear-gradient(180deg,rgba(24,79,57,.9),rgba(8,43,31,.86))}
#view-les>.mine-stage{margin:0 -12px;padding:0 0 12px;border:0;border-radius:0;background:transparent;box-shadow:none}
#view-les .forest-scene{
  height:430px;margin:0;border:0;border-radius:0;box-shadow:inset 0 -70px 70px rgba(3,17,10,.5);
  background-image:linear-gradient(180deg,rgba(5,31,20,.02),rgba(4,26,16,.18)),url("/assets/images/forest-screen-v1.webp");
  background-position:center top;background-size:cover;animation:forest-scene-breathe 10s ease-in-out infinite alternate;
}
#view-les .forest-canopy,#view-les .forest-ray,#view-les .forest-ground,#view-les .forest-log,#view-les .forest-stump,#view-les .forest-logpile,#view-les .forest-scene::after{display:none!important}
#view-les .lumberjack-figure-svg{left:8%;bottom:3%;width:43%;height:63%;filter:drop-shadow(0 7px 7px rgba(0,0,0,.65));animation:lumberjack-breathe 2.5s ease-in-out infinite}
#view-les .mine-hud{position:relative;margin:-58px 8px 0;z-index:8;background:linear-gradient(180deg,rgba(20,72,52,.92),rgba(6,37,27,.94));backdrop-filter:blur(7px)}
#view-les .last-find,#view-les .progress-track,#view-les .hint{position:relative;z-index:8;margin-inline:10px}
#view-les .last-find{margin-top:9px}
@keyframes forest-scene-breathe{from{background-position:50% 0;filter:saturate(1)}to{background-position:52% -9px;filter:saturate(1.12) brightness(1.04)}}
@keyframes lumberjack-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

/* Mining submenu now uses the same transparent glass language as the dock. */
#navMineWrap .nav-dropdown{
  border:1px solid rgba(188,220,237,.38)!important;
  background:linear-gradient(180deg,rgba(18,55,78,.78),rgba(5,24,38,.9))!important;
  box-shadow:0 7px 22px rgba(0,0,0,.62),inset 0 1px rgba(255,255,255,.12)!important;
  backdrop-filter:blur(12px) saturate(1.15);
}
#navMineWrap .nav-dropdown button{
  min-height:48px!important;border:0!important;border-radius:6px!important;
  border-bottom:1px solid rgba(154,199,221,.18)!important;background:transparent!important;box-shadow:none!important;
}
#navMineWrap .nav-dropdown button:last-child{border-bottom:0!important}
#navMineWrap .nav-dropdown button.active{background:radial-gradient(ellipse at 28% 50%,rgba(255,194,50,.17),transparent 72%)!important;box-shadow:inset 3px 0 #edb63f!important}

/* Stable bottom dock: final geometry override. Icons never change position. */
nav.tabs{
  display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;align-items:stretch!important;
  width:100%!important;height:auto!important;min-height:62px!important;gap:2px!important;
  padding:3px 5px calc(3px + env(safe-area-inset-bottom))!important;
}
nav.tabs>.nav-item-wrap,nav.tabs>button{
  position:relative!important;display:block!important;width:100%!important;min-width:0!important;height:54px!important;
  margin:0!important;padding:0!important;align-self:stretch!important;overflow:visible!important;
}
nav.tabs>.nav-item-wrap>button,nav.tabs>button{
  display:grid!important;grid-template-rows:36px 12px!important;place-items:center!important;
  width:100%!important;height:54px!important;min-height:54px!important;padding:0 1px 2px!important;gap:0!important;
  transform:none!important;transition:background-color .15s ease,color .15s ease!important;
}
nav.tabs>.nav-item-wrap>button>.ic,nav.tabs>button>.ic{
  position:static!important;display:block!important;grid-row:1!important;align-self:center!important;
  width:32px!important;height:32px!important;margin:2px auto 0!important;padding:0!important;
  background-position:50% 50%!important;background-size:contain!important;background-repeat:no-repeat!important;
  transform:none!important;animation:none!important;scale:1!important;
}
nav.tabs>.nav-item-wrap>button.active>.ic,nav.tabs>button.active>.ic{
  transform:none!important;animation:none!important;filter:drop-shadow(0 0 6px rgba(255,205,69,.72)) drop-shadow(0 3px 2px rgba(0,0,0,.72))!important;
}
nav.tabs>.nav-item-wrap>button:active,nav.tabs>button:active{transform:none!important}
nav.tabs .nav-alert-badge{top:2px!important;right:8%!important;z-index:5!important}
#navMineWrap .nav-dropdown{bottom:60px!important}
@media(max-width:360px){
  nav.tabs>.nav-item-wrap>button>.ic,nav.tabs>button>.ic{width:30px!important;height:30px!important;margin-top:3px!important}
  nav.tabs>.nav-item-wrap>button,nav.tabs>button{font-size:7.5px!important}
}

#view-kuznya>.skill-shaft{padding-bottom:11px}
#view-kuznya .kuznya-resource-upgrade{display:block;color:#8fe697;font:700 9px var(--sans);line-height:1.35}

/* Separate production buildings: ore is smelted here, equipment is forged in the smithy. */
#view-plavilnya{--scene-bg:url("/assets/images/forge-screen-v1.webp");--scene-filter:saturate(1.08)}
#view-plavilnya .kuznya-resource-upgrade{display:block;color:#8fe697;font:700 9px var(--sans);line-height:1.35}
.smelter-stage{position:relative;min-height:0;padding:10px!important;overflow:hidden}
.smelter-building-art{width:82px;height:76px;background:url("/assets/images/castle-buildings/smelter-v1.webp") center/contain no-repeat;filter:drop-shadow(0 5px 5px rgba(0,0,0,.75))}
.smelter-overview{display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;gap:8px;margin-bottom:8px;padding:8px 10px;border:1px solid #a56a32;border-radius:14px;background:linear-gradient(145deg,rgba(63,39,25,.96),rgba(20,29,34,.98));box-shadow:inset 0 1px rgba(255,208,139,.16),0 6px 16px rgba(0,0,0,.55)}
.smelter-overview-info small,.smelter-overview-info b,.smelter-overview-info span{display:block}.smelter-overview-info>small{color:#e8943b;font:900 7px var(--sans);letter-spacing:1.2px}.smelter-overview-info>b{margin:2px 0;color:#ffe1a1;font:800 15px var(--serif)}.smelter-overview-info>span{color:#ffbd55;font:900 10px var(--mono)}
.smelter-quick-stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.smelter-quick-stats>span{padding:5px;border:1px solid rgba(207,143,72,.4);border-radius:8px;background:rgba(8,24,31,.65);text-align:center}.smelter-quick-stats b,.smelter-quick-stats small{display:block}.smelter-quick-stats b{color:#ffe16d;font:900 11px var(--mono)}.smelter-quick-stats small{color:#a9c1ca;font:700 7px var(--sans)}
.smelter-panel-title,.smelter-section-head{display:flex;justify-content:space-between;align-items:end;gap:8px}.smelter-panel-title{margin-bottom:7px}.smelter-panel-title b,.smelter-panel-title small,.smelter-section-head b,.smelter-section-head small{display:block}.smelter-panel-title b,.smelter-section-head b{color:#ffe09a;font:800 13px var(--serif)}.smelter-panel-title small,.smelter-section-head small{color:#9eb9c4;font:700 7px var(--sans)}
.smelter-section-head{margin:13px 3px 6px;padding-bottom:5px;border-bottom:1px solid rgba(221,157,72,.42)}
.smelter-jobs-panel{margin:8px 0;padding:8px;border:1px solid #bd7330;border-radius:12px;background:linear-gradient(145deg,rgba(74,42,21,.96),rgba(17,30,37,.97));box-shadow:0 4px 12px rgba(0,0,0,.45)}
#smelterMetalList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.smelter-recipe-card{overflow:hidden;border:1px solid #536f7c;border-radius:11px;background:linear-gradient(150deg,rgba(34,71,86,.97),rgba(10,32,43,.98));box-shadow:inset 0 1px rgba(255,255,255,.08),0 3px 7px rgba(0,0,0,.42)}.smelter-recipe-card.is-busy{border-color:#c47a35}
.smelter-recipe-main{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:6px;padding:7px}.smelter-recipe-main .icon-wrap{width:41px;height:41px}.smelter-recipe-main .name{min-width:0}.smelter-recipe-main .name b,.smelter-recipe-main .name small{display:block}.smelter-recipe-main .name b{overflow:hidden;text-overflow:ellipsis;color:#fff0c6;font:800 9px var(--sans)}.smelter-recipe-main .name small{margin-top:2px;color:#9db9c6;font:700 6px/1.25 var(--sans)}.smelter-recipe-main>strong{color:#ffe16d;font:900 11px var(--mono);text-align:right}.smelter-recipe-main>strong small{display:block;color:#95adb8;font:700 6px var(--sans)}
.smelter-recipe-yield{display:flex;justify-content:space-between;gap:5px;padding:4px 7px;border-block:1px solid rgba(111,146,160,.28);background:rgba(5,22,31,.42);color:#bbd0d8;font:700 7px var(--sans)}.smelter-recipe-yield b{color:#8ff09b}.smelter-recipe-yield em{color:#ffb455;font-style:normal}
.smelter-recipe-actions{display:grid;grid-template-columns:45px 45px minmax(58px,1fr);gap:4px;padding:6px}.smelter-recipe-actions .qty-input{width:100%;min-width:0;height:31px;padding:3px;text-align:center}.smelter-recipe-actions button{min-width:0!important;min-height:31px!important;padding:3px!important;font-size:7px!important}.smelter-max-btn{background:linear-gradient(#42647a,#203e52)!important;color:#d9edf5!important}
#smelterIngotList{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.smelter-ingot-card{min-height:62px;padding:7px!important}.smelter-ingot-card .icon-wrap{width:40px;height:40px}.smelter-ingot-card .name{font-size:9px}.smelter-ingot-card .count{font-size:11px}
@media(max-width:370px){#smelterMetalList,#smelterIngotList{grid-template-columns:1fr}.smelter-overview-info>b{font-size:13px}}
.blacksmith-forging{position:relative;width:100%;aspect-ratio:16/9;min-height:190px;margin-bottom:10px;overflow:hidden;border:2px solid #8e6337;border-radius:12px;background:url("/assets/images/blacksmith-forging-v1.webp") center/cover no-repeat;box-shadow:inset 0 0 0 2px #1a0c05,0 6px 15px rgba(0,0,0,.55)}
.blacksmith-forging::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 42% 68%,rgba(255,143,31,.3),transparent 18%);animation:forge-fire-pulse .75s ease-in-out infinite alternate;pointer-events:none}
.forge-hammer{position:absolute;z-index:2;left:45%;top:17%;font-size:38px;transform-origin:20% 90%;filter:drop-shadow(0 3px 2px #000);animation:blacksmith-hammer 1.05s cubic-bezier(.7,0,.8,1) infinite}
.forge-sparks{position:absolute;z-index:3;left:47%;top:62%;color:#fff09a;font-size:24px;text-shadow:0 0 5px #ff8a00,12px -4px #ffbf38,-10px 5px #ff6a00;animation:forge-spark-pop 1.05s steps(2,end) infinite}
.equipment-icon{display:block;flex:0 0 54px;width:54px;height:54px;background-position:var(--equipment-pos);background-size:500% 400%;background-repeat:no-repeat;filter:drop-shadow(0 2px 2px #000)}
.equipment-icon.sword-atlas{background-image:url("/assets/images/swords-atlas-v1.webp")}
.equipment-icon.armor-atlas{background-image:url("/assets/images/armors-atlas-v1.webp")}
.metal-palette-icon{position:relative;isolation:isolate}
.metal-palette-icon::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 35% 24%,var(--metal-bright) 0 12%,var(--metal-base) 48%,var(--metal-dark) 100%);opacity:.78;mix-blend-mode:color}
.ingot-atlas.metal-palette-icon::after{-webkit-mask:url("/assets/images/ingots-atlas-v1.webp") var(--atlas-pos)/500% 400% no-repeat;mask:url("/assets/images/ingots-atlas-v1.webp") var(--atlas-pos)/500% 400% no-repeat}
.armor-atlas.metal-palette-icon::after{-webkit-mask:url("/assets/images/armors-atlas-v1.webp") var(--equipment-pos)/500% 400% no-repeat;mask:url("/assets/images/armors-atlas-v1.webp") var(--equipment-pos)/500% 400% no-repeat}
.sword-atlas.metal-palette-icon::after{-webkit-mask:url("/assets/images/swords-atlas-v1.webp") var(--equipment-pos)/500% 400% no-repeat;mask:url("/assets/images/swords-atlas-v1.webp") var(--equipment-pos)/500% 400% no-repeat}
.hero-gear-icon{position:relative;display:block;flex:0 0 46px;width:46px;height:46px;overflow:hidden;background-image:url("/assets/images/hero-gear-types-atlas-v1.webp");background-size:400% 300%;background-position:var(--gear-pos);background-repeat:no-repeat;filter:drop-shadow(0 2px 2px rgba(0,0,0,.72));isolation:isolate}
.hero-gear-icon::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--gear-c1,#dce5ec) 4%,var(--gear-c2,#fff) 38%,var(--gear-c3,#8798a5) 72%,var(--gear-c1,#dce5ec) 100%);background-position:50% 50%;opacity:var(--gear-tint-opacity,0);mix-blend-mode:color;-webkit-mask-image:url("/assets/images/hero-gear-types-atlas-v1.webp");mask-image:url("/assets/images/hero-gear-types-atlas-v1.webp");-webkit-mask-size:400% 300%;mask-size:400% 300%;-webkit-mask-position:var(--gear-pos);mask-position:var(--gear-pos);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;pointer-events:none}
.hero-slot-icon .hero-gear-icon{width:36px;height:36px;flex-basis:36px}
.hero-slot-option-icon .hero-gear-icon{width:42px;height:42px;flex-basis:42px;border-radius:7px;background-color:rgba(4,17,25,.5)}
.forge-category-grid{position:sticky;z-index:8;top:calc(54px + env(safe-area-inset-top));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;padding:7px;margin-bottom:8px;border:1px solid #6e5637;border-radius:12px;background:rgba(10,29,39,.94);box-shadow:0 5px 14px rgba(0,0,0,.55);backdrop-filter:blur(8px)}
.forge-category{position:relative;display:grid!important;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:3px;width:auto!important;min-width:0!important;min-height:43px!important;padding:3px!important;border:1px solid #426075!important;border-radius:8px!important;background:linear-gradient(155deg,#24475d,#102a3b)!important;color:#dbe9ef!important;box-shadow:inset 0 1px rgba(255,255,255,.1)!important}
.forge-category.active{border-color:#f0b844!important;background:linear-gradient(155deg,#785128,#3d2815)!important;box-shadow:inset 0 0 0 1px #a66d29,0 0 8px rgba(255,190,65,.35)!important}
.forge-category .hero-gear-icon{width:29px;height:29px;flex-basis:29px}.forge-category span{min-width:0;text-align:left}.forge-category b,.forge-category small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forge-category b{font:800 7px var(--sans)}.forge-category small{color:#9fc7d8;font:700 6px var(--mono)}
.forge-category>i{position:absolute;right:-3px;top:-5px;display:grid;place-items:center;width:16px;height:16px;border:1px solid #fff0a1;border-radius:50%;background:#ef9b19;color:#492100;font:900 10px var(--sans);box-shadow:0 0 6px #ffd055}
.forge-selected-panel{overflow:hidden;border:1px solid #52758b;border-radius:12px;background:linear-gradient(155deg,rgba(24,56,74,.96),rgba(7,28,41,.97));box-shadow:0 5px 14px rgba(0,0,0,.45)}
.forge-selected-panel>header{display:flex;align-items:center;gap:10px;padding:8px 11px;border-bottom:1px solid #496779;background:rgba(255,255,255,.035)}
.forge-selected-panel>header .hero-gear-icon{width:46px;height:46px}.forge-selected-panel>header span{min-width:0}.forge-selected-panel>header b,.forge-selected-panel>header small{display:block}.forge-selected-panel>header b{color:#ffe09a;font:800 14px var(--serif)}.forge-selected-panel>header small{margin-top:2px;color:#a8c9d6;font:700 8px var(--sans)}
.forge-selected-panel .hero-slot-options{padding:6px 8px 9px;gap:4px}.forge-selected-panel .hero-slot-option{min-height:54px;padding:5px 3px}.forge-selected-panel .hero-slot-action{min-width:55px!important}
@media(max-width:370px){.forge-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.forge-category b{font-size:8px}}
.equipment-pair{display:flex;align-items:center;flex:0 0 72px;width:72px;height:48px}
.equipment-pair .equipment-icon{flex:0 0 42px;width:42px;height:42px}
.equipment-pair .equipment-icon+.equipment-icon{margin-left:-13px}
.smithy-ingot-cost{display:grid!important;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:8px!important}
.smithy-ingot-cost>small{grid-column:1/-1;color:#d8eaf2}
.smithy-cost-item{display:flex;align-items:center;gap:3px;min-width:0;padding:3px;border:1px solid #4d6d80;border-radius:7px;background:rgba(5,20,30,.58);font-size:7px;line-height:1.15}
.smithy-cost-item .icon-wrap{flex:0 0 28px;width:28px;height:28px}
.smithy-cost-item.ok{color:#8ff09b;border-color:#4c9a62}.smithy-cost-item.miss{color:#ff9c8d;border-color:#9b4c43}
.forge-recipe-row .name{min-width:0;flex:1}
@keyframes blacksmith-hammer{0%,32%{transform:rotate(-32deg) translateY(-5px)}58%,65%{transform:rotate(34deg) translateY(7px)}100%{transform:rotate(-32deg) translateY(-5px)}}
@keyframes forge-spark-pop{0%,48%,100%{opacity:0;transform:scale(.4)}58%,72%{opacity:1;transform:scale(1.35)}}
@keyframes forge-fire-pulse{from{opacity:.55}to{opacity:1}}

#castleMap .map-tile[data-building="plavilnya"]{display:block!important;left:72%!important;top:48%!important;width:27%!important;height:23%!important;z-index:7!important}
#castleMap .map-tile[data-building="plavilnya"]::before{inset:-18%!important;background-image:url("/assets/images/castle-buildings/smelter-v1.webp")!important;background-size:contain!important;background-position:center!important;clip-path:none!important;opacity:1!important;filter:drop-shadow(0 5px 5px rgba(0,0,0,.7))!important}
#castleMap .map-tile[data-building="plavilnya"]:hover::before,#castleMap .map-tile[data-building="plavilnya"]:focus-visible::before{filter:brightness(1.14) drop-shadow(0 0 7px #ffb23f)!important}
#castleMap .map-tile[data-building="plavilnya"] .mt-label{bottom:calc(100% + 24px)!important;z-index:8!important}

/* Give the bank and smelter their own visual zones. The bank is painted into
   the source map, so only the separately rendered smelter is repositioned. */
#castleMap.castle-map{height:840px!important}
#castleMap .map-tile[data-building="plavilnya"]{
  left:43%!important;top:67%!important;width:25%!important;height:20%!important;
}
#castleMap .map-tile[data-building="plavilnya"]::before{inset:-12%!important}
#castleMap .map-tile[data-building="plavilnya"] .mt-label{bottom:calc(100% + 15px)!important}
@media(max-width:380px){#castleMap.castle-map{height:790px!important}}

/* Map press feedback stays on the selected hit area instead of redrawing a
   misaligned crop of the full kingdom map. The smelter remains a real cutout. */
#castleMap .map-tile:not([data-building="plavilnya"]):hover::before,
#castleMap .map-tile:not([data-building="plavilnya"]):focus-visible::before,
#castleMap .map-tile:not([data-building="plavilnya"]):active::before{
  opacity:1!important;
  filter:brightness(1.14) drop-shadow(0 0 7px #ffb23f)!important;
}
#castleMap .map-tile[data-building="zamok"]::before{inset:0!important;background-image:url("/assets/images/castle-buildings/castle-map-highlight-v2.webp")!important;background-size:100% 100%!important;background-position:center!important;clip-path:none!important}
#castleMap .map-tile[data-building="shakhta"]::before{inset:0!important;background-image:url("/assets/images/castle-buildings/mine-map-highlight-v2.webp")!important;background-size:100% 100%!important;background-position:center!important;clip-path:none!important}
#castleMap .map-tile[data-building="kuznya"]::before{inset:0!important;background-image:url("/assets/images/castle-buildings/forge-map-highlight-v2.webp")!important;background-size:100% 100%!important;background-position:center!important;clip-path:none!important}
#castleMap .map-tile[data-building="lesopilka"]::before{inset:0!important;background-image:url("/assets/images/castle-buildings/sawmill-map-highlight-v2.webp")!important;background-size:100% 100%!important;background-position:center!important;clip-path:none!important}
#castleMap .map-tile[data-building="bank"]::before{inset:0!important;background-image:url("/assets/images/castle-buildings/bank-map-highlight-v2.webp")!important;background-size:100% 100%!important;background-position:center!important;clip-path:none!important}
#castleMap .map-tile:not([data-building="plavilnya"]):hover,
#castleMap .map-tile:not([data-building="plavilnya"]):focus-visible,
#castleMap .map-tile:not([data-building="plavilnya"]):active{
  background:transparent!important;
  border-radius:0!important;box-shadow:none!important;
}
#castleMap .map-tile:not([data-building="plavilnya"]):hover .mt-label,
#castleMap .map-tile:not([data-building="plavilnya"]):focus-visible .mt-label,
#castleMap .map-tile:not([data-building="plavilnya"]):active .mt-label{
  color:#fff1a0!important;text-shadow:0 1px 2px #000,0 0 7px #ffc43d!important;
}

/* Sawmill production scene: the source painting stays still while lightweight
   overlays animate the blade, incoming log and sawdust. */
#view-lesopilka{--scene-bg:url("/assets/images/sawmill-cutting-v1.webp");--scene-filter:saturate(1.08)}
#view-lesopilka .city-card{padding:8px!important}
.sawmill-cutting-scene{position:relative;width:100%;aspect-ratio:16/9;margin:8px 0 10px;overflow:hidden;border:2px solid #8e6337;border-radius:12px;background:url("/assets/images/sawmill-cutting-v1.webp") center/cover no-repeat;box-shadow:inset 0 0 0 2px #1a0c05,0 6px 15px rgba(0,0,0,.55)}
.animated-saw-blade{position:absolute;left:48.8%;top:28%;width:19%;aspect-ratio:1;border:4px dashed rgba(239,246,250,.74);border-radius:50%;filter:drop-shadow(0 0 4px #dff8ff);animation:sawmill-blade-spin .62s linear infinite}
.animated-saw-blade::after{content:"";position:absolute;left:43%;top:43%;width:14%;height:14%;border-radius:50%;background:#63717b;box-shadow:0 0 0 3px rgba(224,233,238,.75)}
.animated-log{position:absolute;left:19%;top:51%;width:31%;height:8%;border-radius:45%;background:linear-gradient(180deg,rgba(117,65,26,.08),rgba(62,31,12,.32));animation:sawmill-log-feed 2.4s ease-in-out infinite}
.animated-sawdust{position:absolute;left:58%;top:55%;color:#ffe29a;font-size:22px;text-shadow:9px 2px #ffc253,-8px 4px #d99a36,3px -8px #fff0b0;animation:sawmill-sawdust 1.1s steps(3,end) infinite}
@keyframes sawmill-blade-spin{to{transform:rotate(360deg)}}
@keyframes sawmill-log-feed{0%,100%{transform:translateX(-8px)}50%{transform:translateX(8px)}}
@keyframes sawmill-sawdust{0%,100%{opacity:.2;transform:translate(0,0) scale(.65)}45%{opacity:1;transform:translate(8px,-7px) scale(1.2)}80%{opacity:0;transform:translate(17px,-15px) scale(.8)}}
@media(prefers-reduced-motion:reduce){.animated-saw-blade,.animated-log,.animated-sawdust{animation:none!important}}
.board-icon{position:relative;display:block;background-color:transparent!important;background-image:url("/assets/images/boards-atlas-v1.webp")!important;background-repeat:no-repeat!important;background-size:1000% 500%!important;background-position:var(--board-pos)!important;filter:drop-shadow(0 2px 2px rgba(20,9,2,.52))}
.board-icon::before,.board-icon::after,.board-icon>i{display:none!important}
.production-all-btn{display:flex!important;align-items:center!important;justify-content:center!important;width:calc(100% - 8px)!important;min-height:42px!important;margin:6px 4px 10px!important;border:2px solid #dfac43!important;border-radius:10px!important;background:linear-gradient(180deg,#3b6985,#17384e)!important;box-shadow:inset 0 0 0 2px #0b2434,0 3px 0 #75410d,0 0 10px rgba(255,188,55,.28)!important;color:#fff0a6!important;font:900 11px var(--sans)!important;text-shadow:0 2px #10202c!important}
.production-all-btn:disabled{opacity:.4!important;filter:grayscale(.45)!important;box-shadow:inset 0 0 0 2px #0b2434!important}

/* Full-viewport backgrounds and phone safe-area alignment for map and mine. */
header.top{
  padding-top:calc(5px + env(safe-area-inset-top))!important;
  min-height:calc(52px + env(safe-area-inset-top))!important;
}
body.castle-map-mode{
  background:#315b45!important;
}
body.castle-map-mode::before{display:none!important}
body.castle-map-mode .app{
  width:100%;max-width:none!important;min-height:100vh;min-height:100dvh;margin:0!important;
  background:transparent!important;
}
body.castle-map-mode main{width:100%;padding:0 0 22px!important}
body.castle-map-mode #view-castle{position:relative;width:100%;min-height:calc(100dvh - 52px);overflow:hidden}
body.castle-map-mode #view-castle>.castle-banner{
  position:relative;z-index:20;width:calc(100% - 20px);max-width:500px;margin:10px auto!important;
}
body.castle-map-mode #castleMap.castle-map{
  width:100%!important;min-height:calc(100vh - 52px);min-height:calc(100dvh - 52px);
  margin:0!important;padding-top:0;
  background-size:100% 100%!important;background-position:center top!important;
}
body:has(#view-shakhta.active) .app{
  min-height:100vh;min-height:100dvh;
  background-size:100% auto!important;
  background-position:center clamp(-210px,-34vw,-145px)!important;
  background-repeat:no-repeat!important;
}
body:has(#view-shakhta.active) main{
  padding-top:calc(52px + env(safe-area-inset-top))!important;
}
body:has(#view-shakhta.active) #view-shakhta{min-height:calc(100dvh - 52px - env(safe-area-inset-top))}
body:has(#view-shakhta.active) #view-shakhta>.resource-bar{
  top:calc(52px + env(safe-area-inset-top))!important;
}

/* Individually coloured rare resources: every definition supplies three
   colours, animated across a hand-drawn ore shard or timber cut. */
.rare-resource-icon{position:relative;display:block;flex:0 0 auto;width:38px;height:38px;filter:drop-shadow(0 3px 2px rgba(0,0,0,.62))}
.rare-resource-icon::before,.rare-resource-icon>i{
  content:"";position:absolute;background:linear-gradient(115deg,var(--rare-c1) 4%,var(--rare-c2) 36%,var(--rare-c3) 66%,var(--rare-c1) 96%);background-size:280% 280%;
  animation:rare-resource-shimmer 3.2s linear infinite;
}
.rare-ore-icon::before{inset:3px 5px 2px;clip-path:polygon(48% 0,88% 25%,100% 69%,63% 100%,19% 91%,0 49%,20% 13%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.25)}
.rare-ore-icon>i{inset:10px 11px 8px;clip-path:polygon(50% 0,100% 48%,55% 100%,0 64%);opacity:.72;filter:brightness(1.35)}
.rare-ore-icon::after{content:"✦";position:absolute;right:2px;top:0;color:#fff;font:900 12px/1 var(--sans);text-shadow:0 0 7px var(--rare-c1);animation:rare-icon-glint 1.9s ease-in-out infinite}
.rare-wood-icon::before{left:3px;right:3px;top:8px;height:23px;border:2px solid rgba(42,21,8,.78);border-radius:45% 12% 12% 45%;box-shadow:inset 0 0 0 2px rgba(255,255,255,.18),0 4px 0 color-mix(in srgb,var(--rare-c3) 72%,#1f0d06)}
.rare-wood-icon>i{left:8px;right:1px;top:3px;height:11px;border:1px solid rgba(42,21,8,.72);border-radius:7px;transform:rotate(-5deg);box-shadow:0 19px 0 color-mix(in srgb,var(--rare-c2) 82%,#44210e)}
.rare-wood-icon::after{content:"";position:absolute;left:5px;top:13px;width:14px;height:14px;border:2px solid rgba(255,255,255,.46);border-radius:50%;box-shadow:inset 0 0 0 3px rgba(62,27,9,.3)}
@keyframes rare-resource-shimmer{0%{background-position:0 50%}100%{background-position:280% 50%}}
@keyframes rare-icon-glint{0%,55%,100%{opacity:.25;transform:scale(.65) rotate(0)}72%{opacity:1;transform:scale(1.2) rotate(45deg)}}

.rare-skill-icon{position:relative;font-size:0!important;overflow:hidden}
.rare-skill-icon::before{content:"";position:absolute;inset:7px;background:linear-gradient(115deg,#fff08a,#56dfff,#a851ff,#fff08a);background-size:260% 100%;animation:rare-resource-shimmer 3s linear infinite;filter:drop-shadow(0 0 5px #55cfff)}
.rare-skill-ore::before{clip-path:polygon(50% 0,93% 27%,100% 72%,58% 100%,12% 84%,0 38%)}
.rare-skill-wood::before{inset:11px 5px;border-radius:12px 4px 4px 12px;box-shadow:0 7px 0 rgba(103,68,225,.7)}

/* Universal map bag: category sections and item cards replace narrow emoji
   rows. Future item groups can use the same section/grid/card structure. */
.hero-bag-content{left:12%!important;right:12%!important;top:21%!important;height:66%!important;padding:8px!important;border-radius:15%!important;background:rgba(29,13,7,.32)!important;box-shadow:inset 0 0 22px rgba(24,8,3,.42)}
.hero-bag-section+ .hero-bag-section{margin-top:12px}
.hero-bag-section>h4{position:sticky;top:-8px;z-index:2;margin:0 0 6px!important;padding:5px 7px;border-radius:7px;background:rgba(48,24,12,.9);color:#ffe09a!important;font:800 10px var(--serif)!important;text-shadow:0 1px 2px #000}
.hero-bag-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.hero-bag-card{position:relative;display:grid;grid-template-columns:39px minmax(0,1fr);align-items:center;gap:5px;min-height:56px;padding:5px 5px 14px;border:1px solid rgba(225,174,91,.48);border-radius:9px;background:linear-gradient(145deg,rgba(71,42,22,.94),rgba(30,17,10,.96));box-shadow:inset 0 1px rgba(255,255,255,.1),0 2px 5px rgba(0,0,0,.45);overflow:hidden}
.hero-bag-card>.rare-resource-icon{width:36px;height:36px}
.hero-bag-card>span{min-width:0}.hero-bag-card>span>b,.hero-bag-card>span>small{display:block}.hero-bag-card>span>b{overflow:hidden;color:#fff0ca;font:800 8px/1.15 var(--sans)}.hero-bag-card>span>small{margin-top:3px;color:#b99971;font:600 6px var(--sans)}
.hero-bag-card>strong{position:absolute;right:6px;bottom:3px;color:#ffe36e;font:900 10px var(--sans);text-shadow:0 1px 2px #000}
.world-bag-modal[data-transfer-enabled="true"] .hero-bag-content{left:10%;right:10%;top:29%;height:49%;padding:6px;overflow:auto;border-radius:12px;background:rgba(25,14,8,.72);box-shadow:inset 0 0 12px rgba(0,0,0,.55)}
#worldBagModal{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;z-index:190!important}
.bag-transfer-actions{position:sticky;z-index:3;top:-6px;display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:2px 0 6px;background:linear-gradient(rgba(25,14,8,.98) 75%,transparent)}
.bag-transfer-actions button{min-height:30px!important;padding:4px!important;border:1px solid #d6a44b!important;border-radius:8px!important;background:linear-gradient(#76502b,#402714)!important;color:#fff0bd!important;font:800 7px var(--sans)!important;box-shadow:0 2px 4px #000!important}
.bag-transfer-actions button:disabled{opacity:.38!important}
.bag-transfer-columns{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.bag-transfer-columns>div{min-width:0}.bag-transfer-columns h3{margin:2px 0 5px;color:#ffe278;font:800 8px var(--serif);text-align:center}
.bag-transfer-columns .hero-bag-grid{grid-template-columns:1fr;gap:4px}
.bag-transfer-columns .hero-bag-card{grid-template-columns:31px minmax(0,1fr);min-height:46px;padding:3px 4px 12px}
.bag-transfer-columns .hero-bag-card>.rare-resource-icon{width:30px;height:30px}
.bag-transfer-columns .hero-bag-card.transferable{padding-bottom:28px}
.bag-item-transfer{position:absolute!important;left:4px!important;right:4px!important;bottom:3px!important;width:calc(100% - 8px)!important;min-height:19px!important;padding:2px 3px!important;border:1px solid rgba(224,175,80,.7)!important;border-radius:5px!important;background:linear-gradient(#6d4a28,#38210f)!important;color:#ffe9aa!important;font:800 6px var(--sans)!important;box-shadow:none!important}
.hero-bag-card.transferable>strong{bottom:30px}
.hero-bag-empty.compact{padding:12px 3px;font-size:8px}
.rare-ore-info-row .rare-resource-icon{width:36px;height:36px}
@media(max-width:350px){.hero-bag-grid{grid-template-columns:1fr}.hero-bag-content{left:14%!important;right:14%!important}}

/* Hero inventory: one category at a time, matching the smithy's compact flow. */
#view-inv{padding-bottom:88px}
.inventory-hero-head{display:flex;align-items:center;gap:11px;margin-bottom:8px;padding:9px 11px;border:1px solid #7c6844;border-radius:13px;background:linear-gradient(145deg,rgba(32,65,81,.96),rgba(8,29,42,.98));box-shadow:inset 0 1px rgba(255,255,255,.12),0 5px 14px rgba(0,0,0,.45)}
.inventory-hero-portrait{flex:0 0 54px;width:54px;height:54px;border:1px solid #ad8545;border-radius:50%;background:radial-gradient(circle,#315a71 0 58%,#102b3c 59%) url("/assets/images/world-hero-idle-v1.webp") center 12%/65% auto no-repeat;box-shadow:inset 0 0 10px #071722,0 0 8px rgba(224,171,68,.28)}
.inventory-hero-head>span:last-child{min-width:0}.inventory-hero-head b,.inventory-hero-head small{display:block}.inventory-hero-head b{color:#ffe09a;font:800 15px var(--serif)}.inventory-hero-head small{margin-top:3px;color:#a9c7d3;font:700 8px var(--sans)}
.inventory-category-grid{position:sticky;z-index:8;top:calc(54px + env(safe-area-inset-top));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:8px;padding:7px;border:1px solid #6e5637;border-radius:12px;background:rgba(10,29,39,.95);box-shadow:0 5px 14px rgba(0,0,0,.55);backdrop-filter:blur(8px)}
.inventory-category{display:grid!important;grid-template-columns:27px minmax(0,1fr);align-items:center;gap:3px;width:auto!important;min-width:0!important;min-height:43px!important;padding:4px!important;border:1px solid #426075!important;border-radius:8px!important;background:linear-gradient(155deg,#24475d,#102a3b)!important;color:#dbe9ef!important;box-shadow:inset 0 1px rgba(255,255,255,.1)!important}
.inventory-category.active{border-color:#f0b844!important;background:linear-gradient(155deg,#785128,#3d2815)!important;box-shadow:inset 0 0 0 1px #a66d29,0 0 8px rgba(255,190,65,.35)!important}
.inventory-category>i{font-style:normal;font-size:21px;filter:drop-shadow(0 2px 2px #000)}.inventory-category>span{min-width:0;text-align:left}.inventory-category b,.inventory-category small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inventory-category b{font:800 7px var(--sans)}.inventory-category small{margin-top:2px;color:#ffe56f;font:800 7px var(--mono)}
.inventory-selected-panel{overflow:hidden;border:1px solid #52758b;border-radius:12px;background:linear-gradient(155deg,rgba(24,56,74,.96),rgba(7,28,41,.98));box-shadow:0 5px 14px rgba(0,0,0,.45)}
.inventory-selected-panel>header{padding:9px 12px;border-bottom:1px solid #496779;background:rgba(255,255,255,.035)}.inventory-selected-panel>header b,.inventory-selected-panel>header small{display:block}.inventory-selected-panel>header b{color:#ffe09a;font:800 14px var(--serif)}.inventory-selected-panel>header small{margin-top:2px;color:#a8c9d6;font:700 8px var(--sans)}
.inventory-category-panel{display:none;padding:7px}.inventory-category-panel.active{display:block}.inventory-category-panel>.inv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
#view-inv .inventory-category-panel .inv-row{display:grid;grid-template-columns:45px minmax(0,1fr);grid-template-rows:1fr auto;align-items:center;gap:2px 7px;min-height:66px;padding:6px 8px;border:1px solid rgba(111,157,181,.45);border-radius:9px;background:linear-gradient(145deg,rgba(31,68,88,.94),rgba(10,35,50,.97));box-shadow:inset 0 1px rgba(255,255,255,.08),0 2px 5px rgba(0,0,0,.38)}
#view-inv .inventory-category-panel .inv-row .icon-wrap,#view-inv .inventory-category-panel .inv-row>.rare-resource-icon{grid-row:1/3;width:43px;height:43px}
#view-inv .inventory-category-panel .inv-row .name{align-self:end;min-width:0;overflow:hidden;color:#fff0ca;font:800 9px/1.15 var(--sans)}#view-inv .inventory-category-panel .inv-row .cat{display:block;margin-top:2px;color:#85a9bf;font:700 6px var(--sans)}
#view-inv .inventory-category-panel .inv-row .count{align-self:start;color:#ffe36e;font:900 12px var(--mono);text-shadow:0 1px 2px #000}
#view-inv [data-inventory-panel="equipment"]>.inv-grid{grid-template-columns:1fr}#view-inv [data-inventory-panel="equipment"] .hero-slot{margin:0}
@media(max-width:370px){.inventory-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-category b{font-size:8px}.inventory-category-panel>.inv-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.rare-resource-icon::before,.rare-resource-icon>i,.rare-skill-icon::before{animation:none!important}}

/* Generated rare-resource paintings replace the temporary procedural shapes. */
.rare-resource-icon{
  --rare-atlas:none;--rare-atlas-size:500% 200%;
  background-image:var(--rare-atlas)!important;background-size:var(--rare-atlas-size)!important;
  background-position:var(--rare-pos)!important;background-repeat:no-repeat!important;
  animation:rare-painted-breathe 2.8s ease-in-out infinite alternate;
}
.rare-ore-icon{--rare-atlas:url("/assets/images/rare-ores-atlas-v1.webp");--rare-atlas-size:500% 200%}
.rare-wood-icon{--rare-atlas:url("/assets/images/rare-logs-atlas-v1.webp");--rare-atlas-size:500% 300%}
.rare-resource-icon>i{display:none!important}
.rare-resource-icon::before{
  content:""!important;position:absolute!important;inset:0!important;border:0!important;border-radius:0!important;clip-path:none!important;box-shadow:none!important;
  background:linear-gradient(115deg,transparent 22%,var(--rare-c1) 39%,var(--rare-c2) 50%,var(--rare-c3) 61%,transparent 78%)!important;background-size:260% 100%!important;
  -webkit-mask-image:var(--rare-atlas);mask-image:var(--rare-atlas);-webkit-mask-size:var(--rare-atlas-size);mask-size:var(--rare-atlas-size);-webkit-mask-position:var(--rare-pos);mask-position:var(--rare-pos);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  opacity:.38;mix-blend-mode:screen;animation:rare-painted-sheen 2.9s linear infinite!important;pointer-events:none;
}
.rare-resource-icon::after{content:"✦"!important;position:absolute!important;right:0!important;left:auto!important;top:1px!important;width:auto!important;height:auto!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;color:#fff;font:900 11px/1 var(--sans);text-shadow:0 0 7px var(--rare-c1);animation:rare-icon-glint 2.1s ease-in-out infinite!important}
@keyframes rare-painted-sheen{from{background-position:130% 0}to{background-position:-130% 0}}
@keyframes rare-painted-breathe{from{filter:drop-shadow(0 3px 2px rgba(0,0,0,.62)) brightness(.94)}to{filter:drop-shadow(0 0 5px var(--rare-c2)) brightness(1.09)}}

/* Polished activity panels for rare mining and tree chopping. */
.cave-dig-panel{z-index:35!important;bottom:calc(14px + env(safe-area-inset-bottom))!important;width:min(92%,390px)!important;gap:7px!important}
.cave-dig-status{
  position:relative;overflow:hidden;padding:10px!important;border:2px solid #b88745!important;border-radius:14px!important;
  background:linear-gradient(155deg,rgba(29,55,68,.97),rgba(8,24,34,.98) 68%)!important;
  box-shadow:inset 0 0 0 2px rgba(4,15,22,.85),inset 0 1px rgba(255,255,255,.16),0 9px 24px rgba(0,0,0,.68)!important;
  backdrop-filter:blur(9px);animation:activity-panel-arrive .25s ease-out both;
}
.cave-dig-status::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 0,rgba(102,217,255,.18),transparent 34%),linear-gradient(100deg,transparent 20%,rgba(255,221,133,.07) 48%,transparent 72%);background-size:auto,220% 100%;animation:activity-panel-light 5s linear infinite}
.activity-panel-head{position:relative;z-index:1;display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:9px;padding-bottom:8px;border-bottom:1px solid rgba(196,157,96,.34);text-align:left}
.activity-panel-head>span:nth-child(2){min-width:0}.activity-panel-head b,.activity-panel-head small{display:block}.activity-panel-head b{color:#fff0bd;font:800 13px var(--serif);text-shadow:0 2px 3px #000}.activity-panel-head small{margin-top:2px;color:#8fc6d8!important;font:700 7px var(--sans)!important;text-transform:uppercase;letter-spacing:.08em}
.activity-panel-head>em{padding:4px 7px;border:1px solid #55c774;border-radius:10px;background:rgba(20,111,52,.55);color:#91f5a9;font:800 7px var(--sans);font-style:normal;text-transform:uppercase;box-shadow:0 0 8px rgba(58,214,100,.22)}
.activity-panel-icon{display:block;width:44px;height:44px;background-repeat:no-repeat;filter:drop-shadow(0 3px 3px #000)}
.activity-panel-icon.dig-icon{background-image:url("/assets/images/rare-ores-atlas-v1.webp");background-size:500% 200%;background-position:0 0}
.activity-panel-icon.chop-icon{background-image:url("/assets/images/rare-logs-atlas-v1.webp");background-size:500% 300%;background-position:0 0}
.activity-status-text{position:relative;z-index:1;min-height:28px;margin:8px 2px 5px;color:#e4eef2;font:700 9px/1.35 var(--sans);text-align:left}
.activity-main-progress{position:relative;z-index:1;height:12px!important;margin:5px 0 8px!important;border:1px solid #09202c!important;border-radius:7px!important;background:#06141d!important;box-shadow:inset 0 2px 4px #000!important}
.activity-main-progress .progress-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,#2a8dc7,#64e2ff,#ecee89)!important;box-shadow:0 0 9px #58d7f4;transition:width .2s linear}
.cave-dig-skill-row{position:relative;z-index:1;margin-top:7px!important;padding:8px!important;border:1px solid rgba(117,161,180,.3)!important;border-radius:9px;background:rgba(4,20,29,.48);text-align:left!important}
.cave-dig-skill-row>small{display:flex!important;align-items:center;justify-content:space-between;color:#b8cfda!important;font:700 8px var(--sans)!important}.cave-dig-skill-row>small>b{color:#ffe078;font-size:10px}
.cave-dig-skill-row>.progress-track{height:7px!important;margin:5px 0 0!important;border:0!important;border-radius:5px;background:#07141b!important}.cave-dig-skill-row>.progress-track .progress-fill{border-radius:5px;background:linear-gradient(90deg,#397fa2,#6ce0f3)!important;box-shadow:0 0 6px rgba(89,211,237,.45)}
#caveDigStopBtn,#treeChopStopBtn{width:100%!important;min-height:35px!important;margin-top:8px!important;padding:7px 10px!important;border:1px solid #de7665!important;border-radius:9px!important;background:linear-gradient(180deg,#a83d35,#6d211f)!important;color:#ffe4d5!important;font:800 9px var(--sans)!important;box-shadow:inset 0 1px rgba(255,255,255,.15),0 3px 7px rgba(0,0,0,.45)!important}
.cave-dig-buttons{gap:7px!important}.cave-dig-buttons>button{min-height:42px!important;border-radius:11px!important;font:800 10px var(--sans)!important}
#caveDigBtn{background:linear-gradient(180deg,#ffd66c,#dc8e27)!important;border-color:#ffe39a!important;color:#40250b!important}
#caveBagBtn{background:linear-gradient(180deg,rgba(48,86,105,.96),rgba(12,39,54,.97))!important;border-color:#6999ac!important;color:#fff0bd!important}
.cave-dig-panel:has(#caveDigStatus:not([style*="none"])) .cave-dig-buttons{position:absolute;z-index:4;right:0;top:-45px;width:96px!important}.cave-dig-panel:has(#caveDigStatus:not([style*="none"])) #caveBagBtn{width:96px!important;min-height:37px!important;padding:5px!important}

.tree-chop-panel{z-index:45!important;width:min(92vw,390px)!important}
body.world-map-mode .tree-chop-panel{bottom:calc(76px + env(safe-area-inset-bottom))!important}
.tree-chop-panel .cave-dig-status{border-color:#879c50!important;background:linear-gradient(155deg,rgba(40,66,48,.98),rgba(10,31,24,.98) 70%)!important}
.tree-chop-head{grid-template-columns:46px minmax(0,1fr) 29px!important;margin:0!important}
.tree-chop-head button{width:28px!important;height:28px!important;border:1px solid #cf8c69!important;border-radius:50%!important;background:#672e23!important;color:#fff1dd!important;font:800 18px/24px var(--sans)!important;box-shadow:0 2px 5px #000!important}
.tree-chop-panel .activity-main-progress .progress-fill{background:linear-gradient(90deg,#4b8f35,#91db55,#ffe27d)!important;box-shadow:0 0 9px #76cd4a!important}
.tree-chop-panel .cave-dig-skill-row>.progress-track .progress-fill{background:linear-gradient(90deg,#397834,#89d75a)!important;box-shadow:0 0 6px rgba(112,207,78,.5)!important}
#treeChopStartBtn{min-height:39px!important;margin-top:8px!important;border:1px solid #e4ba5b!important;border-radius:10px!important;background:linear-gradient(180deg,#f4c55e,#b87524)!important;color:#392108!important;font:900 10px var(--sans)!important;box-shadow:inset 0 1px rgba(255,255,255,.42),0 4px 8px rgba(0,0,0,.5)!important}
@keyframes activity-panel-arrive{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@keyframes activity-panel-light{to{background-position:0 0,-220% 0}}
@media(max-height:620px){.cave-dig-status{padding:8px!important}.activity-panel-head{padding-bottom:5px}.activity-panel-icon{width:38px;height:38px}.activity-panel-head{grid-template-columns:40px minmax(0,1fr) auto}.activity-status-text{min-height:0;margin:5px 2px;font-size:8px}.cave-dig-skill-row{padding:6px!important}}
@media(prefers-reduced-motion:reduce){.cave-dig-status,.cave-dig-status::before{animation:none!important}}

/* Sword-bearing skeleton patrol at world coordinates 8080 × 13888. */
.world-skeleton-warrior{
  --skeleton-walk-time:2s;position:absolute;z-index:8;left:40.4%;top:69.44%;width:40px;height:69px;
  transform:translate(-50%,-88%);transition:left var(--skeleton-walk-time) linear,top var(--skeleton-walk-time) linear;
  pointer-events:auto;cursor:default;
}
.world-skeleton-warrior>i{
  position:absolute;inset:0;display:block;background-image:url("/assets/images/world-skeleton-swordsman-walk-v1.webp");
  background-size:400% 100%;background-position:0 0;background-repeat:no-repeat;transform-origin:50% 88%;
  filter:drop-shadow(0 5px 3px rgba(0,0,0,.7));
}
.world-skeleton-warrior.face-left>i{scale:-1 1}
.world-skeleton-warrior.walking>i{animation:skeleton-walk-frames .68s linear infinite,skeleton-walk-bob .34s ease-in-out infinite alternate}
.world-skeleton-warrior::after{content:"";position:absolute;z-index:-1;left:10%;right:5%;bottom:2px;height:9px;border-radius:50%;background:rgba(8,20,13,.48);filter:blur(2px)}
.world-skeleton-warrior>.skeleton-status{position:absolute;left:50%;top:-32px;bottom:auto;min-width:100px;transform:translateX(-50%);padding:2px 3px;border:0;border-radius:0;background:transparent;text-align:center;text-shadow:0 1px 2px #000;box-shadow:none}
.skeleton-status>b{display:block;white-space:nowrap;color:#ff554d;font:900 8px var(--serif);text-shadow:0 1px #4c0808,0 0 6px rgba(255,50,42,.48)}
.skeleton-status>i{position:relative;display:block;width:100%;height:5px;margin:3px 0 2px;overflow:hidden;border:0;border-radius:4px;background:rgba(28,3,5,.58);box-shadow:none}
.skeleton-status>i>em{display:block;width:100%;height:100%;border-radius:3px;background:linear-gradient(90deg,#8f1115,#e52c2c,#ff6b4b);box-shadow:0 0 5px #e72b27;transition:width .25s ease}
.skeleton-status>small{display:block;white-space:nowrap;color:#ffd6cb;font:800 6px var(--sans)}

.world-auto-battle-btn{right:74px!important}
.world-auto-battle-btn>span{display:grid!important;place-items:center;width:42px!important;height:40px!important;background:none!important;color:#dceaf2;font-size:24px!important;line-height:1!important;text-shadow:0 2px 3px #000;filter:drop-shadow(0 2px 2px #000)!important}
.world-auto-battle-btn.active{border-color:#ff8164!important;background:linear-gradient(180deg,rgba(135,43,36,.96),rgba(67,15,19,.97))!important;box-shadow:0 0 12px rgba(255,68,45,.62),inset 0 1px rgba(255,255,255,.18)!important}
.world-auto-battle-btn.active>span{color:#ffb06d;animation:auto-battle-pulse 1s ease-in-out infinite alternate}
.world-auto-battle-btn.active>b{color:#ffd0ac!important}
@keyframes auto-battle-pulse{from{transform:scale(.92)}to{transform:scale(1.12);text-shadow:0 0 8px #ff4b31}}
@media(max-width:420px){body.world-map-mode .world-return-castle{left:43%!important;width:31%!important}.world-auto-battle-btn{right:73px!important}}
@keyframes skeleton-walk-frames{0%,24.99%{background-position:0 0}25%,49.99%{background-position:33.333% 0}50%,74.99%{background-position:66.667% 0}75%,100%{background-position:100% 0}}
@keyframes skeleton-walk-bob{from{transform:translateY(0) rotate(-.6deg)}to{transform:translateY(-3px) rotate(.6deg)}}
@media(prefers-reduced-motion:reduce){.world-skeleton-warrior.walking>i,.world-auto-battle-btn.active>span{animation:none!important}}

/* Work actions: the actual dig/chop jobs drive these classes from JS. */
.world-work-effect{position:absolute;z-index:24;inset:0;display:block;overflow:visible;pointer-events:none;transform:none!important;contain:layout style}
.world-work-tool{position:absolute;z-index:2;left:48%;top:18%;width:48px;height:48px;background-repeat:no-repeat;background-size:500% 300%;background-position:0 0;filter:drop-shadow(0 3px 2px rgba(0,0,0,.75));transform-origin:18% 82%}
.working-dig .world-work-tool{background-image:url("/assets/images/pickaxes-atlas-v1.webp");will-change:transform;animation:world-pickaxe-swing .82s cubic-bezier(.45,.05,.55,.95) infinite}
.working-chop .world-work-tool{left:50%;top:20%;background-image:url("/assets/images/axes-atlas-v1.webp");will-change:transform;animation:world-axe-swing .72s cubic-bezier(.45,.05,.55,.95) infinite}
.world-work-impact{position:absolute;z-index:3;left:76%;top:67%;width:8px;height:8px;border-radius:50%;opacity:0;background:#ffe39a;box-shadow:8px -6px 0 -2px #fff0b6,-7px -9px 0 -2px #d9f3ff,11px 6px 0 -3px #efb14c,-10px 5px 0 -3px #e6d3a4;filter:drop-shadow(0 0 4px #ffc952)}
.working-dig .world-work-impact{animation:world-work-impact .82s ease-out infinite}
.working-chop .world-work-impact{left:80%;top:58%;background:#f3cf75;box-shadow:8px -6px 0 -2px #d99a47,-7px -9px 0 -2px #f0d795,11px 6px 0 -3px #a8642d,-10px 5px 0 -3px #e7bb6c;animation:world-work-impact .72s ease-out infinite}
.world-cave-hero.working-dig>span:first-child{transform-origin:50% 86%;animation:world-work-body .82s ease-in-out infinite}
.world-hero.working-chop .world-hero-figure{transform-origin:50% 88%;animation:world-work-body .72s ease-in-out infinite!important}
.map-tree.being-chopped{z-index:4;animation:world-tree-hit .72s ease-in-out infinite;filter:drop-shadow(4px 6px 3px rgba(14,39,20,.42)) drop-shadow(0 0 7px rgba(255,205,85,.52))}
.map-tree.being-chopped::after{content:"";display:block!important;position:absolute;left:42%;top:65%;width:16%;height:7%;border-radius:50%;background:rgba(255,219,132,.9);box-shadow:0 0 8px #ffca55;animation:world-tree-chip .72s ease-out infinite}
@keyframes world-pickaxe-swing{0%,18%{transform:rotate(-70deg) translate(-4px,-6px)}55%,66%{transform:rotate(20deg) translate(5px,6px)}100%{transform:rotate(-70deg) translate(-4px,-6px)}}
@keyframes world-axe-swing{0%,18%{transform:rotate(-76deg) translate(-5px,-8px)}55%,66%{transform:rotate(24deg) translate(5px,7px)}100%{transform:rotate(-76deg) translate(-5px,-8px)}}
@keyframes world-work-body{0%,100%{transform:rotate(-1deg) translateY(0)}52%,66%{transform:rotate(3deg) translate(2px,2px)}}
@keyframes world-work-impact{0%,48%{opacity:0;transform:scale(.25) rotate(0)}55%{opacity:1;transform:scale(1) rotate(15deg)}100%{opacity:0;transform:scale(1.7) rotate(38deg)}}
@keyframes world-tree-hit{0%,48%,100%{transform:translate(-50%,-50%) rotate(var(--turn))}55%{transform:translate(calc(-50% + 2px),-50%) rotate(calc(var(--turn) + 1.8deg))}}
@keyframes world-tree-chip{0%,48%{opacity:0;transform:translate(0,0) scale(.4)}55%{opacity:1}100%{opacity:0;transform:translate(18px,-14px) rotate(60deg) scale(1.15)}}
@media(prefers-reduced-motion:reduce){.working-dig .world-work-tool,.working-chop .world-work-tool,.working-dig .world-work-impact,.working-chop .world-work-impact,.world-cave-hero.working-dig>span:first-child,.world-hero.working-chop .world-hero-figure,.map-tree.being-chopped,.map-tree.being-chopped::after{animation:none!important}}

.world-hero.hero-canvas-only.on-foot{width:100px!important;height:96px!important;transform:translate(-50%,-75%)!important}
.world-hero.hero-canvas-only:not(.on-foot){width:144px!important;height:134px!important;transform:translate(-50%,-75%)!important}
.world-cave-hero.hero-canvas-only:not(.mounted){width:92px!important;height:88px!important}
.world-cave-hero.hero-canvas-only.mounted{width:132px!important;height:123px!important}
.hero-frame-canvas{position:absolute;z-index:20;inset:0;width:100%;height:100%;display:block;pointer-events:none;transform:none!important;animation:none!important}
.hero-canvas-only .world-hero-figure,.world-cave-hero.hero-canvas-only>span:first-child,.castle-map-hero.hero-canvas-only .castle-map-hero-figure,#playerProfileFigure.hero-canvas-only{
  background:transparent!important;background-image:none!important;animation:none!important;transform:none!important;scale:1!important;filter:none!important;
}
.hero-canvas-only .world-hero-equipment{display:none!important}
.hero-canvas-only .world-hero-figure::before,.hero-canvas-only .world-hero-figure::after,
.world-cave-hero.hero-canvas-only>span:first-child::before,.world-cave-hero.hero-canvas-only>span:first-child::after,
.castle-map-hero.hero-canvas-only .castle-map-hero-figure::before,.castle-map-hero.hero-canvas-only .castle-map-hero-figure::after,
#playerProfileFigure.hero-canvas-only::before,#playerProfileFigure.hero-canvas-only::after{content:none!important;display:none!important;background:none!important;animation:none!important}
.hero-canvas-ready .hero-frame-canvas{filter:drop-shadow(0 3px 2px rgba(0,0,0,.58))}
.world-hero.hero-canvas-only.on-foot .world-horse-shadow{left:31%;right:29%;height:7px;bottom:3px}
.world-cave-hero.hero-canvas-only>b,.world-hero.hero-canvas-only>b{bottom:-7px}
